.template-root[data-brand="brentwood-nolensville-record"] {
  --brand-tokens-brand-50: #eff8ed;
  --brand-tokens-brand-100: #d9f0d5;
  --brand-tokens-brand-200: #b2e0ab;
  --brand-tokens-brand-300: #83cc7c;
  --brand-tokens-brand-400: #55b44f;
  --brand-tokens-brand-500: #3a9d35;
  --brand-tokens-brand-600: #2e8a2b;
  --brand-tokens-brand-700: #1f6a1f;
  --brand-tokens-brand-800: #175218;
  --brand-tokens-brand-900: #0f3a11;
  --brand-tokens-brand-950: #082409;
  --brand-tokens-greyscale-10: #ffffff;
  --brand-tokens-greyscale-50: #f4f6f5;
  --brand-tokens-greyscale-100: #e7ebe9;
  --brand-tokens-greyscale-200: #d2d8d5;
  --brand-tokens-greyscale-300: #adb5b1;
  --brand-tokens-greyscale-400: #838d89;
  --brand-tokens-greyscale-500: #5c6663;
  --brand-tokens-greyscale-600: #49524f;
  --brand-tokens-greyscale-700: #363d3b;
  --brand-tokens-greyscale-800: #242927;
  --brand-tokens-greyscale-900: #141817;
  --brand-tokens-greyscale-950: #0c0f0e;
  --brand-tokens-greyscale-1000: #060807;
  --brand-tokens-typography-body: "Lora";
  --brand-tokens-typography-labels: "Inter Tight";
  --brand-tokens-typography-titles-a: "Google Sans Flex";
  --brand-tokens-typography-titles-b: "Google Sans Flex";
  --tint-light: #eff5ee; /* pale hillside green, one step off white */
}

/* Links come from 700 and below. The vivid 600 measures 4.39:1 on the paper,
   which is a rule and a bullet, not a link. */
.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-default,
.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-tint {
  --interactive-text-primary-idle: var(--brand-tokens-brand-700);
  --interactive-text-primary-hover: var(--brand-tokens-brand-800);
  --interactive-text-primary-pressed: var(--brand-tokens-brand-900);
}
.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-inverted {
  --interactive-text-primary-idle: var(--brand-tokens-brand-300);
  --interactive-text-primary-hover: var(--brand-tokens-brand-200);
  --interactive-text-primary-pressed: var(--brand-tokens-brand-100);
  --text-default-4: var(--brand-tokens-brand-300);
}
.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-brand {
  --interactive-text-primary-idle: var(--brand-tokens-brand-100);
  --interactive-text-primary-hover: var(--brand-tokens-greyscale-10);
  --interactive-text-primary-pressed: var(--brand-tokens-brand-200);
}

/* Buttons: the filled primary needs the deep stops, since the fleet default
   fill and hover both sit too light against a white label here. */
.template-root[data-brand="brentwood-nolensville-record"] {
  --interactive-contained-primary-idle: var(--brand-tokens-brand-700);
  --interactive-contained-primary-hover: var(--brand-tokens-brand-800);
  --interactive-contained-primary-pressed: var(--brand-tokens-brand-900);
}
.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-inverted {
  --interactive-contained-primary-idle: var(--brand-tokens-greyscale-10);
  --interactive-contained-primary-hover: var(--brand-tokens-brand-100);
  --interactive-contained-primary-pressed: var(--brand-tokens-brand-200);
  --interactive-contained-primary-on-idle: var(--brand-tokens-brand-900);
}
.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-inverted .block-cta__input {
  color: var(--brand-tokens-greyscale-900);
}

.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-default:has(.block-header) {
  background-image: linear-gradient(
    180deg,
    transparent 0%,
    color-mix(in srgb, var(--brand-tokens-brand-200) 34%, transparent) 100%
  );
}

.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-inverted {
  background-image: radial-gradient(
    120% 80% at 50% 120%,
    color-mix(in srgb, var(--brand-tokens-brand-900) 55%, transparent) 0%,
    transparent 70%
  );
}

.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-default .card-section-label,
.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-tint .card-section-label,
.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-default .article-kicker,
.template-root[data-brand="brentwood-nolensville-record"] .block-container--bg-tint .article-kicker {
  color: var(--brand-tokens-greyscale-500);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Overlay forms set type on a photo; keep the fleet's light overlay ramp. */
.template-root[data-brand="brentwood-nolensville-record"] .block-container .block-hero__overlay-kicker.card-section-label,
.template-root[data-brand="brentwood-nolensville-record"] .block-container .block-hero__cover-kicker.card-section-label,
.template-root[data-brand="brentwood-nolensville-record"] .block-container .block-feature-card__overlay-kicker.card-section-label,
.template-root[data-brand="brentwood-nolensville-record"] .block-container .block-article-hero__overlay-kicker.article-kicker {
  color: var(--brand-tokens-greyscale-10);
}

.template-root[data-brand="brentwood-nolensville-record"] .block-header__masthead,
.template-root[data-brand="brentwood-nolensville-record"] .block-hero__lead-title,
.template-root[data-brand="brentwood-nolensville-record"] .block-feature-card__title,
.template-root[data-brand="brentwood-nolensville-record"] .block-article-hero__title {
  letter-spacing: -0.022em;
  line-height: 1.06;
}

/* The overlay lead fills the band. No hero variant stretches to its container:
   every one of them is sized by its content, and this one by the crop on its
   photo (21:9 in Hero.css, a letterbox in a centre column). So the column,
   the per-breakpoint wrapper and the media all stretch, and the photo drops
   its fixed ratio and takes the height the rails give it. Desktop only, both
   because the columns stack at 1199px. */
@media (min-width: 1200px) {
  .template-root[data-brand="brentwood-nolensville-record"]
    .block-container__col:has(.block-hero--overlay) {
    align-self: stretch;
    display: flex;
    min-width: 0;
  }
  .template-root[data-brand="brentwood-nolensville-record"]
    .block-container__col:has(.block-hero--overlay)
    > :where(div):has(> .block-hero--overlay) {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
  }
  .template-root[data-brand="brentwood-nolensville-record"] .block-hero--overlay,
  .template-root[data-brand="brentwood-nolensville-record"] .block-hero__overlay-media {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
  }
  .template-root[data-brand="brentwood-nolensville-record"] .block-hero__overlay-image {
    aspect-ratio: auto;
    height: 100%;
    width: 100%;
  }
}

/* Below desktop the columns stack and the lead is sized by its crop again;
   these are Hero.css's own steps, restated because a brand-scoped rule
   outranks a plain one inside a media query. */
@media (max-width: 1199px) {
  .template-root[data-brand="brentwood-nolensville-record"] .block-hero__overlay-image {
    aspect-ratio: 16 / 9;
  }
}
@media (max-width: 767px) {
  .template-root[data-brand="brentwood-nolensville-record"] .block-hero__overlay-image {
    aspect-ratio: 4 / 5;
  }
}

/* The forecast sits under the signup card in the same rail, so it matches that
   card's width. The stock widget caps at 334px and centres itself
   (WeatherWidget.css), which reads as a narrower, off-square block under a
   full-width card. Scoped to the rail that holds the bounded (gray) CTA, so
   every other placement keeps the stock cap. */
.template-root[data-brand="brentwood-nolensville-record"]
  .block-container__col:has(.block-cta--gray)
  .block-weather {
  max-width: none;
}
