/* Generated by src/site/scope-themes.js from src/site/themes/home.css. Edit the source, not this file. */
/* Site-wide: no orphan/widow words in body paragraphs */
    p:is(.t-home,.t-home *) { text-wrap: pretty; }

    /* ========================================
       FONTS
       ======================================== */

    /* ========================================
       DESIGN TOKENS
       ======================================== */
    .t-home {
      /* Brand Colors */
      --color-labor-red: #e53941;
      --color-plum: #54063A;
      --color-eggplant: #5E1A79;
      --color-lavender: #F5BDFF;
      --color-fuchsia: #ED6BE9;
      --color-blush: #FFB2B2;
      --color-bone: #ffffff;
      --color-statement: #181818;

      /* Semantic Colors */
      --color-primary: var(--color-labor-red);
      --color-surface-dark: var(--color-plum);
      --color-surface-light: var(--color-bone);
      --color-text-primary: var(--color-statement);
      --color-text-inverse: #FFFFFF;
      --color-text-muted: rgba(255, 255, 255, 0.7);

      /* Typography — Font Families */
      --font-heading: 'Right Grotesk Compact', 'Arial Narrow', Arial, sans-serif;
      --font-body: 'ABC Monument Grotesk', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
      --font-links: 'ABC Monument Grotesk', Arial, sans-serif;

      /* Typography — Hierarchy */
      --text-display: clamp(40px, 6vw, 72px);       /* Hero headline */
      --text-h2: clamp(28px, 3.5vw, 36px);           /* Section titles */
      --text-h3: 22px;                                /* Card titles */
      --text-body-lg: clamp(15px, 1.5vw, 17px);      /* Lead / subtitle text */
      --text-body: 16px;                              /* Default body */
      --text-body-sm: 14px;                           /* Secondary body, captions */
      --text-label: 11px;                             /* Overline labels */
      --text-btn: 15.5px;                             /* Button text */

      /* Spacing (8dp rhythm) */
      --space-xs: 4px;
      --space-sm: 8px;
      --space-md: 16px;
      --space-lg: 24px;
      --space-xl: 32px;
      --space-2xl: 48px;
      --space-3xl: 64px;
      --space-4xl: 96px;

      /* Animation */
      --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
      --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
      --ease-content: ease;
      --duration-fast: 150ms;
      --duration-normal: 250ms;
      --duration-slow: 400ms;

      /* Layout */
      --header-height: 80px;
      --max-width: none;

      /* Responsive page margin — changes per breakpoint
         Breakpoints: mobile <768px | tablet 768–1023px | desktop ≥1024px */
      --page-margin: clamp(48px, 5vw, 104px);
    }

    /* ========================================
       RESET & BASE
       ======================================== */
    *:is(.t-home,.t-home *), *:is(.t-home,.t-home *)::before, *:is(.t-home,.t-home *)::after {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    .lenis.lenis-smooth:is(.t-home,.t-home *) { scroll-behavior: auto !important; }
    .lenis.lenis-stopped:is(.t-home,.t-home *) { overflow: clip; }

    .t-home {
      font-family: var(--font-body);
      font-size: 16px;
      line-height: 1.6;
      color: var(--color-text-primary);
      background-color: var(--color-bone);
      overflow-x: clip;   /* prevents sideways scroll WITHOUT breaking position: sticky */
    }

    a:is(.t-home,.t-home *) {
      text-decoration: none;
      color: inherit;
    }

    a:visited:is(.t-home,.t-home *) {
      text-decoration: none;
    }

    button:is(.t-home,.t-home *) {
      font-family: inherit;
      cursor: pointer;
      border: none;
      background: none;
    }

    img:is(.t-home,.t-home *) {
      max-width: 100%;
      height: auto;
      display: block;
    }

    /* ========================================
       HEADER & NAV
       ======================================== */
    .header:is(.t-home,.t-home *) {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1000;
      height: auto;
      display: flex;
      align-items: center;
      padding: 26px 0;
      transition: background-color var(--duration-normal) var(--ease-out),
                  box-shadow var(--duration-normal) var(--ease-out);
    }

    .header--scrolled:is(.t-home,.t-home *) {
      background-color: #e8394a;
      box-shadow: 0 2px 20px rgba(232, 57, 74, 0.3);
    }

    .header__inner:is(.t-home,.t-home *) {
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      gap: 15px;
      width: 100%;
      max-width: var(--max-width);
      margin: 0 auto;
      animation: t-home-heroFadeUp 1s ease 0.1s both;
      padding: 0 var(--page-margin);
    }

    /* Logo */
    .header__logo:is(.t-home,.t-home *) {
      position: relative;
      z-index: 1001;
      flex-shrink: 0;
    }

    .header__logo svg:is(.t-home,.t-home *),
    .header__logo img:is(.t-home,.t-home *) {
      height: 16.5px;
      width: auto;
      display: block;
      transition: opacity var(--duration-fast) var(--ease-out);
    }

    .header__logo:hover svg:is(.t-home,.t-home *) {
      opacity: 0.85;
    }

    /* Desktop Nav */
    .nav:is(.t-home,.t-home *) {
      display: flex;
      align-items: center;
      gap: var(--space-xl);
    }

    .nav__link:is(.t-home,.t-home *) {
      font-family: var(--font-links);
      font-size: 14px;
      font-weight: 700;
      color: var(--color-text-inverse);
      letter-spacing: 0.03em;
      padding: var(--space-sm) 0;
      position: relative;
      transition: color var(--duration-fast) var(--ease-out);
    }

    .nav__link:is(.t-home,.t-home *)::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 0;
      height: 2px;
      background-color: var(--color-labor-red);
      transition: width var(--duration-normal) var(--ease-out);
    }

    .nav__link:visited:is(.t-home,.t-home *) {
      color: var(--color-text-inverse);
    }

    .nav__link:hover:is(.t-home,.t-home *) {
      color: var(--color-text-inverse);
    }

    .nav__link:hover:is(.t-home,.t-home *)::after {
      width: 100%;
    }

    /* Nav hover: the label "rolls" up and a duplicate rolls in from below,
       replacing the red underline. Labels are wrapped in .nav-roll[data-text]
       at runtime (see the nav-roll script). */
    .nav__link:is(.t-home,.t-home *)::after { display: none; }
    .nav-roll:is(.t-home,.t-home *) { display: inline-block; overflow: hidden; position: relative; vertical-align: bottom; }
    .nav-roll__i:is(.t-home,.t-home *) { display: block; position: relative; transition: transform 0.28s cubic-bezier(0.33, 1, 0.68, 1); }
    .nav-roll__i:is(.t-home,.t-home *)::after { content: attr(data-text); position: absolute; left: 0; top: 100%; }
    .nav__link:hover .nav-roll__i:is(.t-home,.t-home *),
    .nav__dropdown-link:hover .nav-roll__i:is(.t-home,.t-home *) { transform: translateY(-100%); }

    .nav__link:focus-visible:is(.t-home,.t-home *) {
      outline: 2px solid var(--color-lavender);
      outline-offset: 4px;
      border-radius: 2px;
    }

    /* Nav Dropdown */
    .nav__dropdown:is(.t-home,.t-home *) {
      position: relative;
    }

    .nav__dropdown-trigger:is(.t-home,.t-home *) {
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }

    .nav__dropdown-trigger svg:is(.t-home,.t-home *) {
      width: 12px;
      height: 12px;
      transition: transform var(--duration-fast) var(--ease-out);
    }

    .nav__dropdown:hover .nav__dropdown-trigger svg:is(.t-home,.t-home *) {
      transform: rotate(180deg);
    }

    .nav__dropdown-menu:is(.t-home,.t-home *) {
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%);
      padding-top: 12px;
      opacity: 0;
      visibility: hidden;
      transition: opacity var(--duration-fast) var(--ease-out),
                  visibility var(--duration-fast);
    }

    .nav__dropdown:hover .nav__dropdown-menu:is(.t-home,.t-home *) {
      opacity: 1;
      visibility: visible;
    }

    .nav__dropdown-panel:is(.t-home,.t-home *) {
      background-color: var(--color-plum);
      border-radius: 0;
      padding: var(--space-sm) 0;
      min-width: 240px;
      box-shadow: 0 8px 30px rgba(84, 6, 58, 0.4);
    }

    .nav__dropdown-link:is(.t-home,.t-home *) {
      display: block;
      font-family: var(--font-links);
      font-size: 14px;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.85);
      padding: 10px var(--space-lg);
      transition: background-color var(--duration-fast) var(--ease-out),
                  color var(--duration-fast) var(--ease-out);
      white-space: nowrap;
    }

    .nav__dropdown-link:hover:is(.t-home,.t-home *) {
      background-color: rgba(255, 255, 255, 0.1);
      color: #fff;
    }

    /* Mobile overlay dropdown */
    .nav-overlay__sub:is(.t-home,.t-home *) {
      display: none;
      flex-direction: column;
      align-items: flex-start;
      gap: var(--space-sm);
      padding: var(--space-sm) 0;
    }

    .nav-overlay__sub.is-open:is(.t-home,.t-home *) {
      display: flex;
    }

    .nav-overlay__sub-link:is(.t-home,.t-home *) {
      font-family: var(--font-body);
      font-size: 16px;
      font-weight: 500;
      color: rgba(255, 255, 255, 0.7);
      text-decoration: none;
      transition: color var(--duration-fast) var(--ease-out);
    }

    .nav-overlay__sub-link:hover:is(.t-home,.t-home *) {
      color: #fff;
    }

    .nav-overlay__dropdown-trigger:is(.t-home,.t-home *) {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      cursor: pointer;
    }

    .nav-overlay__dropdown-trigger svg:is(.t-home,.t-home *) {
      width: 16px;
      height: 16px;
      opacity: 0;   /* fades in/out with the nav links */
      transition: transform var(--duration-fast) var(--ease-out),
                  opacity var(--duration-normal) var(--ease-out);
    }

    .nav-overlay--open .nav-overlay__dropdown-trigger svg:is(.t-home,.t-home *) { opacity: 1; }

    .nav-overlay__dropdown-trigger.is-open svg:is(.t-home,.t-home *) {
      transform: rotate(180deg);
    }

    /* CTA Button */
    .btn:is(.t-home,.t-home *) {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 15.5px;
      letter-spacing: 0.05em;
      padding: 13px 30px;
      border-radius: 0;
      min-height: 44px;
      min-width: 44px;
      cursor: pointer;
      text-decoration: none;
      transition: transform var(--duration-fast) var(--ease-out),
                  background-color var(--duration-fast) var(--ease-out),
                  color var(--duration-fast) var(--ease-out),
                  border-color var(--duration-fast) var(--ease-out),
                  box-shadow var(--duration-fast) var(--ease-out);
    }

    .btn:active:is(.t-home,.t-home *) {
      transform: scale(0.97);
    }

    .btn:focus-visible:is(.t-home,.t-home *) {
      outline: 2px solid var(--color-lavender);
      outline-offset: 3px;
    }

    .btn--primary:is(.t-home,.t-home *),
    .btn--primary:visited:is(.t-home,.t-home *) {
      background-color: var(--color-labor-red);
      color: var(--color-text-inverse);
      border: 2px solid var(--color-labor-red);
      text-decoration: none;
    }

    .btn--primary:hover:is(.t-home,.t-home *) {
      background-color: transparent;
      color: var(--color-labor-red);
      border-color: var(--color-labor-red);
      box-shadow: none;
    }

    /* Arrow: points right, rotates to point up-right (↗) on hover. */
    .btn--primary:is(.t-home,.t-home *)::after {
      content: '→';
      display: inline-block;
      margin-left: 0.6em;
      transition: transform 0.28s cubic-bezier(0.33, 1, 0.68, 1);
    }

    .btn--primary:hover:is(.t-home,.t-home *)::after {
      transform: rotate(-45deg);
    }

    .btn--outline:is(.t-home,.t-home *) {
      border: 2px solid var(--color-text-inverse);
      color: var(--color-text-inverse);
      background: transparent;
    }

    .btn--outline:hover:is(.t-home,.t-home *) {
      background-color: rgba(255, 255, 255, 0.1);
    }

    /* Mobile Menu Toggle */
    .nav-toggle:is(.t-home,.t-home *) {
      display: none;
      position: relative;
      z-index: 1001;
      width: 44px;
      height: 44px;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: 4px;
    }

    .nav-toggle__bar:is(.t-home,.t-home *) {
      width: 18px;
      height: 2px;
      background-color: var(--color-text-inverse);
      border-radius: 0;
      transition: transform var(--duration-normal) var(--ease-out),
                  opacity var(--duration-fast) var(--ease-out);
      transform-origin: center;
    }

    /* Two-line hamburger — hide the third bar. */
    .nav-toggle__bar:nth-child(3):is(.t-home,.t-home *) { display: none; }

    .nav-toggle--active .nav-toggle__bar:nth-child(1):is(.t-home,.t-home *) {
      transform: translateY(3px) rotate(45deg);
    }

    .nav-toggle--active .nav-toggle__bar:nth-child(2):is(.t-home,.t-home *) {
      transform: translateY(-3px) rotate(-45deg);
    }

    /* Mobile Nav Overlay */
    .nav-overlay:is(.t-home,.t-home *) {
      display: none;
    }

    /* ========================================
       HERO
       ======================================== */
    .hero:is(.t-home,.t-home *) {
      position: sticky;              /* stays pinned while the intro card slides over it */
      top: 0;
      z-index: 1;
      height: 100dvh;
      display: flex;
      align-items: flex-end;         /* oversized title sits at the bottom of the photo */
      justify-content: center;
      overflow: hidden;
      background-color: var(--color-plum);
    }

    /* Background image — flipped horizontally */
    .hero__image:is(.t-home,.t-home *) {
      position: absolute;
      inset: 0;
      z-index: 1;
    }

    .hero__image img:is(.t-home,.t-home *) {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 30%;
      /* Blur ramps up on scroll via --hero-blur (set in JS) */
      filter: blur(var(--hero-blur, 0px));
      transform: scale(1.06);   /* 1.06 hides blur edge bleed. Not flipped: the shop signs would read backwards. */
      animation: t-home-heroSlowZoom 12s ease-out both;   /* eases in from slightly closer on load */
      will-change: filter;
    }
    @keyframes t-home-heroSlowZoom { from { transform: scale(1.14); } to { transform: scale(1.06); } }
    @media (prefers-reduced-motion: reduce) {
      .hero__image img:is(.t-home,.t-home *) { filter: none !important; transform: none; animation: none; }
    }

    /* Gradient overlay — heavier on the left for text readability */
    .hero__overlay:is(.t-home,.t-home *) {
      position: absolute;
      inset: 0;
      z-index: 2;
      /* Dark at the bottom for the title, a light wash at the top for the nav. */
      background:
        linear-gradient(to top, rgba(13, 13, 18, 0.82) 0%, rgba(13, 13, 18, 0.35) 38%, rgba(13, 13, 18, 0) 62%),
        linear-gradient(to bottom, rgba(13, 13, 18, 0.45) 0%, rgba(13, 13, 18, 0) 22%);
    }

    /* Bottom gradient for depth */
    .hero__overlay:is(.t-home,.t-home *)::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 40%;
      display: none;
      background: linear-gradient(
        to top,
        rgba(84, 6, 58, 0.6) 0%,
        transparent 100%
      );
    }

    /* Content */
    .hero__content:is(.t-home,.t-home *) {
      position: relative;
      z-index: 3;
      width: 100%;
      max-width: var(--max-width);
      margin: 0 auto;   /* same container as the header, so it lines up with the logo */
      padding: 0 var(--page-margin) clamp(40px, 5vw, 72px);
      text-align: left;
      /* Text blurs/fades on scroll alongside the image (--hero-blur set in JS) */
      filter: blur(var(--hero-blur, 0px));
      opacity: var(--hero-fade, 1);
      will-change: filter, opacity;
    }
    @media (prefers-reduced-motion: reduce) {
      .hero__content:is(.t-home,.t-home *) { filter: none !important; opacity: 1 !important; }
    }

    .hero__title:is(.t-home,.t-home *) {
      font-family: 'Right Grotesk Compact', 'Arial Narrow', Arial, sans-serif;
      font-weight: 700;
      font-size: clamp(56px, 9vw, 150px);
      line-height: 0.88;
      letter-spacing: 0.005em;
      text-transform: none;
      color: var(--color-text-inverse);
      margin: 0;
      opacity: 0;
      transform: translateY(30px);
      animation: t-home-heroFadeUp 1.2s ease 0.7s forwards;
    }

    .hero__ministries:is(.t-home,.t-home *) {
      font-family: var(--font-body);
      font-size: clamp(15px, 1.3vw, 20px);
      line-height: 1.45;
      color: #fff;
      margin: clamp(18px, 2vw, 28px) 0 0;
      opacity: 0;
      transform: translateY(20px);
      animation: t-home-heroFadeUp 1.1s ease 1s forwards;
    }

    .hero__cta:is(.t-home,.t-home *) {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      margin-top: var(--space-xl);
      font-family: var(--font-body);
      font-weight: 400;
      font-size: 14px;
      letter-spacing: 0;
      color: var(--color-text-inverse);
      text-decoration: none;
      border: 1px solid var(--color-text-inverse);
      padding: 13px 24px;
      transition: background-color 0.3s ease, color 0.3s ease;
      opacity: 0;
      transform: translateY(20px);
      animation: t-home-heroFadeUp 1.1s ease 1.2s forwards;
    }

    .hero__cta:hover:is(.t-home,.t-home *) { background-color: #fff; color: #9b0041; }

    /* CTA arrow uses the font's built-in glyph rather than an SVG vector. */
    .ui-arrow:is(.t-home,.t-home *) { display: inline-block; transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }

    /* Arrow points right, rotates to point up-right (↗) on hover. */
    .hero__cta:hover .ui-arrow:is(.t-home,.t-home *) { transform: translateX(4px); }

    /* Two CTAs side by side. */
    .hero__actions:is(.t-home,.t-home *) {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: var(--space-xl);
    }
    .hero__actions .hero__cta:is(.t-home,.t-home *) { margin-top: 0; }

    /* Sign-up strip: sits directly under the hero and slides up over it. */
    .signup-strip:is(.t-home,.t-home *) {
      position: relative;
      z-index: 2;
      background: #9b0041;
      color: #fff;
    }
    .signup-strip__inner:is(.t-home,.t-home *) {
      max-width: var(--max-width);
      margin: 0 auto;
      padding: clamp(22px, 2.4vw, 32px) var(--page-margin);
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 16px clamp(24px, 4vw, 64px);
      align-items: center;
    }
    .signup-strip__title:is(.t-home,.t-home *) {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: clamp(22px, 2vw, 28px);
      line-height: 1.05;
      color: #fff;
      margin: 0;
    }
    .signup-strip__title small:is(.t-home,.t-home *) {
      display: block;
      font-family: var(--font-body);
      font-weight: 400;
      font-size: 13px;
      color: rgba(255, 255, 255, 0.72);
      margin-top: 4px;
    }
    .signup-strip__form:is(.t-home,.t-home *) {
      display: grid;
      grid-template-columns: 1fr 1fr 1.4fr auto;
      gap: 8px;
    }
    .signup-strip__form input:is(.t-home,.t-home *) {
      min-width: 0;
      width: 100%;
      font-family: var(--font-body);
      font-size: 14px;
      padding: 13px 14px;
      border: none;
      border-radius: 0;
      background: #fff;
      color: var(--color-statement);
    }
    .signup-strip__form input:is(.t-home,.t-home *)::placeholder { color: rgba(24, 24, 24, 0.5); }
    .signup-strip__form .hero__newsletter-submit:is(.t-home,.t-home *) { font-size: 14px; padding: 13px 24px; justify-content: center; }
    /* iPad and phones: names side by side, email full width, Submit only as wide as its label. */
    @media (max-width: 1024px) {
      .signup-strip__inner:is(.t-home,.t-home *) { grid-template-columns: 1fr; }
      .signup-strip__form:is(.t-home,.t-home *) { grid-template-columns: 1fr 1fr; }
      .signup-strip__email:is(.t-home,.t-home *) { grid-column: 1 / -1; }
      .signup-strip__form .hero__newsletter-submit:is(.t-home,.t-home *) { justify-self: start; }
    }

    /* Submit — same treatment as the footer newsletter button. */
    .hero__newsletter-submit:is(.t-home,.t-home *) {
      display: inline-flex;
      align-items: center;
      font-family: var(--font-links);
      font-weight: 500;
      font-size: 11px;
      letter-spacing: 0.03em;
      text-transform: none;
      color: #9b0041;
      background-color: #fff;
      border: 2px solid #fff;
      border-radius: 0;
      cursor: pointer;
      padding: 10px 20px;
      transition: background-color 0.28s ease, color 0.28s ease;
    }
    .hero__newsletter-submit:is(.t-home,.t-home *)::after {
      content: '\2192';
      display: inline-block;
      margin-left: 0.6em;
      transition: transform 0.28s cubic-bezier(0.33, 1, 0.68, 1);
    }
    .hero__newsletter-submit:hover:is(.t-home,.t-home *) { background-color: transparent; color: #fff; }
    .hero__newsletter-submit:hover:is(.t-home,.t-home *)::after { transform: rotate(-45deg); }

    /* Scroll indicator */
    .hero__scroll:is(.t-home,.t-home *) {
      position: absolute;
      bottom: var(--space-xl);
      left: 50%;
      transform: translateX(-50%);
      z-index: 3;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--space-sm);
      color: rgba(255, 255, 255, 0.5);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      opacity: 0;
      animation: t-home-heroFadeUp 1s ease 1.2s forwards;
    }

    .hero__scroll-line:is(.t-home,.t-home *) {
      width: 1px;
      height: 40px;
      background: linear-gradient(to bottom, rgba(255, 255, 255, 0.5), transparent);
      animation: t-home-scrollPulse 2s var(--ease-in-out) infinite;
    }

    /* ========================================
       ANIMATIONS
       ======================================== */
    @keyframes t-home-heroFadeUp {
      0% {
        opacity: 0;
        transform: translateY(20px);
      }
      100% {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @keyframes t-home-scrollPulse {
      0%, 100% {
        opacity: 0.5;
        transform: scaleY(1);
      }
      50% {
        opacity: 1;
        transform: scaleY(1.3);
        transform-origin: top;
      }
    }

    /* Reduced Motion */
    @media (prefers-reduced-motion: reduce) {
      *:is(.t-home,.t-home *),
      *:is(.t-home,.t-home *)::before,
      *:is(.t-home,.t-home *)::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
      }

      .hero__title:is(.t-home,.t-home *),
      .hero__subtitle:is(.t-home,.t-home *),
      .hero__actions:is(.t-home,.t-home *),
      .hero__scroll:is(.t-home,.t-home *) {
        opacity: 1;
        transform: none;
      }
    }

    /* ========================================
       RESPONSIVE — Breakpoints
       mobile: max-width 767px
       tablet: 768px – 1023px
       desktop: 1024px +
       ======================================== */

    /* — Tablet & below (< 1024px) — */
    @media (max-width: 1023px) {
      .t-home {
        --page-margin: 32px;
        --header-height: 72px;
      }

      /* Compact header on mobile: logo centred, hamburger pinned right. */
      .header:is(.t-home,.t-home *) { padding: 0; height: var(--header-height); }
      .header__inner:is(.t-home,.t-home *) { flex-direction: row; justify-content: flex-start; position: relative; gap: 0; }
      .header__logo svg:is(.t-home,.t-home *), .header__logo img:is(.t-home,.t-home *) { height: 13px; }
      /* Logo sits centred by default and slides to the left margin as the menu opens. */
      .header__logo:is(.t-home,.t-home *) { transition: transform 0.45s cubic-bezier(0.5, 0, 0.75, 0); transform: translateX(calc(50vw - var(--page-margin) - 50%)); }
      .t-home.nav-open .header__logo { transform: translateX(0); }
      /* Snap (no travel) while the viewport is resizing; only animate on menu toggle. */
      .t-home.is-resizing .header__logo { transition: none; }
      .nav-toggle:is(.t-home,.t-home *) { position: absolute; right: var(--page-margin); top: 50%; transform: translateY(-50%); }

      .nav:is(.t-home,.t-home *) {
        display: none;
      }

      .nav-toggle:is(.t-home,.t-home *) {
        display: flex;
      }

      /* Mobile Nav Overlay */
      .nav-overlay:is(.t-home,.t-home *) {
        display: flex;
        flex-direction: column;
        position: fixed;
        inset: 0;
        z-index: 999;
        background-color: var(--color-plum);
        padding: calc(var(--header-height) + var(--space-2xl)) var(--page-margin) var(--space-2xl);
        transform: translateX(100%);
        visibility: hidden;
        /* Slide in from the right, easing in (slow → fast). */
        transition: transform 0.45s cubic-bezier(0.5, 0, 0.75, 0),
                    visibility 0.45s var(--ease-out);
      }

      .nav-overlay--open:is(.t-home,.t-home *) {
        transform: translateX(0);
        visibility: visible;
      }

      .nav-overlay__link:is(.t-home,.t-home *) {
        font-family: var(--font-heading);
        font-size: 20px;
        line-height: 1.1;
        font-weight: 700;
        text-transform: capitalize;
        color: var(--color-text-inverse);
        padding: 5px 0;
        opacity: 0;
        transform: translateX(-20px);
        transition: opacity var(--duration-normal) var(--ease-out),
                    transform var(--duration-normal) var(--ease-out),
                    color var(--duration-fast) var(--ease-out);
        min-height: 0;
        display: flex;
        align-items: center;
      }

      .nav-overlay--open .nav-overlay__link:is(.t-home,.t-home *) {
        opacity: 1;
        transform: translateX(0);
      }

      /* Stagger mobile nav items */
      .nav-overlay--open .nav-overlay__link:nth-child(1):is(.t-home,.t-home *) { transition-delay: 0.05s; }
      .nav-overlay--open .nav-overlay__link:nth-child(2):is(.t-home,.t-home *) { transition-delay: 0.1s; }
      .nav-overlay--open .nav-overlay__link:nth-child(3):is(.t-home,.t-home *) { transition-delay: 0.15s; }
      .nav-overlay--open .nav-overlay__link:nth-child(4):is(.t-home,.t-home *) { transition-delay: 0.2s; }
      .nav-overlay--open .nav-overlay__link:nth-child(5):is(.t-home,.t-home *) { transition-delay: 0.25s; }
      .nav-overlay--open .nav-overlay__link:nth-child(6):is(.t-home,.t-home *) { transition-delay: 0.3s; }

      .nav-overlay__link:hover:is(.t-home,.t-home *) {
        color: var(--color-lavender);
      }

      .nav-overlay__link:focus-visible:is(.t-home,.t-home *) {
        outline: 2px solid var(--color-lavender);
        outline-offset: 4px;
        border-radius: 2px;
      }

      .nav-overlay__cta:is(.t-home,.t-home *) {
        margin-top: auto;
        padding-top: var(--space-xl);
      }

      /* Keep the hero content vertically centred (no bottom offset) and let the
         overlay inherit the base dark tint — consistent across all widths. */
      .hero__image img:is(.t-home,.t-home *) {
        object-position: 58% 25%;
      }
    }

    /* — Mobile (< 768px) — */
    @media (max-width: 767px) {
      .t-home {
        --page-margin: 20px;
        --header-height: 64px;
      }

      .header__inner:is(.t-home,.t-home *) {
        padding: 0 var(--page-margin);
      }

      .hero:is(.t-home,.t-home *) {
        min-height: 100dvh;
      }

      .hero__image img:is(.t-home,.t-home *) {
        object-position: 58% 20%;
      }

      /* Overlay inherits the base dark tint (consistent across widths); content
         stays vertically centred with symmetric padding. */
      .hero__content:is(.t-home,.t-home *) {
        padding: 0 var(--page-margin) var(--space-2xl);
        text-align: left;
      }

      /* Slightly larger hero title + buttons on mobile. */
      .hero__title:is(.t-home,.t-home *) { font-size: clamp(48px, 14vw, 72px); }
      .hero__cta:is(.t-home,.t-home *) { font-size: 14px; gap: 10px; padding: 13px 24px; }

      /* Buttons centred and sized to their text (not full width). */
      .hero__actions:is(.t-home,.t-home *) {
        flex-direction: column;
        align-items: flex-start;
      }

      .hero__scroll:is(.t-home,.t-home *) {
        display: none;
      }
    }

    /* ========================================
       SECTION UTILITIES
       ======================================== */
    .section-label:is(.t-home,.t-home *) {
      display: block;
      font-family: var(--font-body);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--color-labor-red);
      margin-bottom: var(--space-sm);
    }

    .section-heading:is(.t-home,.t-home *) {
      font-family: var(--font-heading);
      font-weight: 700;
      line-height: 1.05;
      color: var(--color-statement);
    }

    .btn--outline-dark:is(.t-home,.t-home *) {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 15.5px;
      letter-spacing: 0.05em;
      padding: 13px 30px;
      border-radius: 0;
      min-height: 44px;
      border: 2px solid var(--color-labor-red);
      color: var(--color-labor-red);
      background: transparent;
      cursor: pointer;
      text-decoration: none;
      transition: background-color var(--duration-fast) var(--ease-out),
                  color var(--duration-fast) var(--ease-out),
                  transform var(--duration-fast) var(--ease-out);
    }

    .btn--outline-dark:hover:is(.t-home,.t-home *) {
      background-color: var(--color-labor-red);
      color: #fff;
    }

    .btn--outline-dark:active:is(.t-home,.t-home *) {
      transform: scale(0.97);
    }

    /* ========================================
       THE LATEST FROM NATALIE — ENDLESS REEL GLIDE
       ======================================== */
    .latest:is(.t-home,.t-home *) {
      background-color: var(--color-bone);
      padding: var(--space-4xl) 0;
      overflow: hidden;
    }

    .latest__header:is(.t-home,.t-home *) {
      max-width: var(--max-width);
      margin: 0 auto;
      padding: 0 var(--page-margin);
      margin-bottom: var(--space-2xl);
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 0.8s ease, transform 0.8s ease;
    }

    .latest.is-visible .latest__header:is(.t-home,.t-home *) {
      opacity: 1;
      transform: translateY(0);
    }

    .latest__title:is(.t-home,.t-home *) {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: clamp(40px, 5.2vw, 66px);
      line-height: 1.05;
      color: #9b0041;
      margin-bottom: var(--space-sm);
    }

    .latest__subtitle:is(.t-home,.t-home *) {
      font-family: var(--font-body);
      font-size: var(--text-body-lg);
      line-height: 1.5;
      color: rgba(24, 24, 24, 0.6);
      max-width: 520px;
    }

    /* Reels drift continuously across the screen in a staggered line that
       fades out at both edges. Hover pauses the glide and lifts the reel.
       The track holds the reels twice so the loop is seamless (see JS). */
    .latest__glide:is(.t-home,.t-home *) {
      /* Room above for the hover lift and below for the staggered cards,
         so nothing (including the "Watch" labels) gets clipped by the mask. */
      padding: 28px 0 72px;
      overflow: hidden;
      -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
      mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
    }
    .latest__track:is(.t-home,.t-home *) {
      display: flex;
      align-items: flex-start;
      gap: 18px;
      width: max-content;
      animation: t-home-reelGlide var(--glide-duration, 60s) linear infinite;
    }
    .latest__glide:hover .latest__track:is(.t-home,.t-home *),
    .latest__glide:focus-within .latest__track:is(.t-home,.t-home *) { animation-play-state: paused; }
    @keyframes t-home-reelGlide { to { transform: translateX(-50%); } }

    /* Reel card */
    .reel-card:is(.t-home,.t-home *) {
      position: relative;
      display: block;
      flex: none;
      width: clamp(170px, 17vw, 250px);
      aspect-ratio: 9 / 16;
      overflow: hidden;
      background-color: #222;
      transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.6s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .reel-card:nth-child(even):is(.t-home,.t-home *) { margin-top: 28px; }
    .reel-card:hover:is(.t-home,.t-home *) {
      transform: translateY(-10px) scale(1.03);
      box-shadow: 0 28px 50px rgba(13, 13, 18, 0.25);
      z-index: 2;
    }
    .reel-card video:is(.t-home,.t-home *),
    .reel-card img:is(.t-home,.t-home *) {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .reel-card:hover img:is(.t-home,.t-home *) { transform: scale(1.08); }
    .reel-card:is(.t-home,.t-home *)::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(13, 13, 18, 0.55), rgba(13, 13, 18, 0) 45%);
      pointer-events: none;
    }
    .reel-card__play:is(.t-home,.t-home *) {
      position: absolute;
      z-index: 1;
      left: 14px;
      bottom: 14px;
      display: flex;
      align-items: center;
      gap: 8px;
      font-family: var(--font-body);
      font-size: 12.5px;
      color: #fff;
    }
    .reel-card__play i:is(.t-home,.t-home *) {
      width: 30px;
      height: 30px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.22);
      -webkit-backdrop-filter: blur(6px);
      backdrop-filter: blur(6px);
      display: grid;
      place-items: center;
    }
    .reel-card__play i:is(.t-home,.t-home *)::before {
      content: '';
      margin-left: 2px;
      border-left: 9px solid #fff;
      border-top: 6px solid transparent;
      border-bottom: 6px solid transparent;
    }

    .ig-glyph:is(.t-home,.t-home *) { width: 18px; height: 18px; flex: none; display: block; }

    /* Footer */
    /* Instagram follow button */
    .latest__footer .btn--primary:is(.t-home,.t-home *),
    .latest__footer .btn--primary:visited:is(.t-home,.t-home *) { display: inline-flex; align-items: center; gap: 10px; background-color: #e8394a; border-color: #e8394a; color: #fff; }
    .latest__footer .btn--primary:is(.t-home,.t-home *)::after { content: none; }   /* the Instagram glyph leads instead of the arrow */
    .latest__footer .btn--primary:hover:is(.t-home,.t-home *) { background-color: transparent; color: #e8394a; border-color: #e8394a; }

    .latest__footer:is(.t-home,.t-home *) {
      display: flex;
      justify-content: center;
      margin-top: var(--space-md);
      padding: 0 var(--page-margin);
    }

    /* Responsive — Latest */
    @media (max-width: 767px) {
      .latest:is(.t-home,.t-home *) {
        padding: var(--space-3xl) 0;
      }

      .reel-card:is(.t-home,.t-home *) { width: clamp(150px, 42vw, 200px); }
      .reel-card:nth-child(even):is(.t-home,.t-home *) { margin-top: 20px; }
      .latest__glide:is(.t-home,.t-home *) { padding-bottom: 56px; }
    }

    @media (prefers-reduced-motion: reduce) {
      .latest__header:is(.t-home,.t-home *) {
        opacity: 1;
        transform: none;
        transition: none;
      }
      /* No auto-glide: let people scroll the strip themselves */
      .latest__glide:is(.t-home,.t-home *) { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
      .latest__track:is(.t-home,.t-home *) { animation: none; padding: 0 var(--page-margin); }
      .reel-card:is(.t-home,.t-home *), .reel-card img:is(.t-home,.t-home *) { transition: none; }
    }

    /* ========================================
       ABOUT — PHOTO WITH OVERLAPPING RED CARD
       ======================================== */
    .intro-natalie:is(.t-home,.t-home *) {
      position: relative;
      z-index: 2;                    /* slides up over the sticky hero */
      background-color: var(--color-bone);
      padding: clamp(64px, 10vw, 128px) 0;
    }
    .intro-natalie__inner:is(.t-home,.t-home *) {
      max-width: var(--max-width);
      margin: 0 auto;
      padding: 0 var(--page-margin);
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      align-items: center;
    }
    .intro-natalie__media:is(.t-home,.t-home *) {
      grid-column: 6 / span 7;   /* photo on the right */
      grid-row: 1;
      aspect-ratio: 4 / 5;
      overflow: hidden;
    }
    .intro-natalie__photo:is(.t-home,.t-home *) {
      display: block;
      transform: scaleX(-1);     /* mirrored so Natalie faces the text */
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 30%;
    }
    .intro-natalie__card:is(.t-home,.t-home *) {
      grid-column: 1 / span 7;   /* red card on the left, overlapping the photo */
      grid-row: 1;
      position: relative;
      z-index: 1;
      background: #9b0041;
      color: #fff;
      padding: clamp(32px, 4.5vw, 72px);
    }
    .intro-natalie__title:is(.t-home,.t-home *) {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: clamp(38px, 4.4vw, 62px);
      line-height: 1;
      color: #fff;
      text-wrap: balance;
      margin: 0 0 clamp(22px, 2.6vw, 34px);
    }
    .intro-natalie__text p:is(.t-home,.t-home *) {
      font-family: var(--font-body);
      font-size: clamp(15px, 1.15vw, 17px);
      line-height: 1.6;
      color: rgba(255, 255, 255, 0.9);
      margin: 0 0 1.1em;
    }
    /* First paragraph leads, slightly larger */
    .intro-natalie__text p:first-child:is(.t-home,.t-home *) {
      font-size: clamp(18px, 1.5vw, 22px);
      line-height: 1.4;
      color: #fff;
    }
    .intro-natalie__text p:last-child:is(.t-home,.t-home *) { margin-bottom: 0; }

    /* Photo rises in, then the card slides over it */
    .intro-natalie__media:is(.t-home,.t-home *),
    .intro-natalie__card:is(.t-home,.t-home *) {
      opacity: 0;
      transform: translateY(32px);
      transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .intro-natalie__card:is(.t-home,.t-home *) { transition-delay: 0.2s; }
    .intro-natalie.is-visible .intro-natalie__media:is(.t-home,.t-home *),
    .intro-natalie.is-visible .intro-natalie__card:is(.t-home,.t-home *) { opacity: 1; transform: none; }

    @media (max-width: 900px) {
      .intro-natalie__inner:is(.t-home,.t-home *) { grid-template-columns: 1fr; }
      .intro-natalie__media:is(.t-home,.t-home *),
      .intro-natalie__card:is(.t-home,.t-home *) { grid-column: 1; }
      .intro-natalie__media:is(.t-home,.t-home *) { grid-row: 1; aspect-ratio: 4 / 3; }
      .intro-natalie__photo:is(.t-home,.t-home *) { object-position: center 22%; }
      .intro-natalie__card:is(.t-home,.t-home *) { grid-row: 2; margin: -48px 16px 0; }
    }
    @media (prefers-reduced-motion: reduce) {
      .intro-natalie__media:is(.t-home,.t-home *),
      .intro-natalie__card:is(.t-home,.t-home *) { opacity: 1; transform: none; transition: none; }
    }

    /* Everything below the hero rides over it (hero is sticky behind) */
    .t-home { position: relative; z-index: 2; background-color: var(--color-bone); }

    /* ========================================
       WHAT I STAND FOR — FOLDER STACK
       ======================================== */
    /* The section pins; scrolling flicks through the folders one at a time.
       After the last folder the runway ends and the page scrolls on. */
    .stand:is(.t-home,.t-home *) {
      position: relative;
      z-index: 2;
      background-color: var(--color-bone);
      color: var(--color-statement);
    }

    .stand__scroll:is(.t-home,.t-home *) {
      position: relative;
      height: 360vh;              /* scroll runway (5 folders) */
    }

    .stand__pin:is(.t-home,.t-home *) {
      position: sticky;
      top: 118px;             /* sticks just below the fixed header so the tabs stay visible */
      height: calc(100vh - 118px);
      display: flex;
      align-items: flex-start;
      padding-top: clamp(24px, 4vh, 44px);
      overflow: hidden;
    }

    .stand__inner:is(.t-home,.t-home *) {
      width: 100%;
      max-width: var(--max-width);
      margin: 0 auto;
      padding: 0 var(--page-margin);
    }

    /* The folder card ignores the max-width cap and instead runs full-width
       to a generous site margin, so it expands out toward the edges. */
    .stand__pin .stand__inner:is(.t-home,.t-home *) {
      max-width: none;
      padding: 0 clamp(48px, 5vw, 104px);
    }

    .stand__title:is(.t-home,.t-home *) {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: clamp(40px, 5.2vw, 66px);
      line-height: 1.02;
      color: var(--color-plum);
      text-align: center;
      margin: 0;
    }

    /* Heading sits in normal flow above the pinned folders, so it scrolls
       away before the folder stickiness begins. */
    .stand__head:is(.t-home,.t-home *) {
      padding: clamp(32px, 5vw, 72px) var(--page-margin) clamp(48px, 6vw, 100px);
    }
    .stand__head.stand__inner:is(.t-home,.t-home *) { padding-left: var(--page-margin); padding-right: var(--page-margin); }

    .fstack:is(.t-home,.t-home *) {
      position: relative;
      height: min(840px, calc(100vh - 172px));
      touch-action: pan-y;
      container-type: inline-size;   /* lets the tab height scale with the folder width */
    }

    .fcard:is(.t-home,.t-home *) {
      position: absolute;
      inset: 0;
      pointer-events: none;
      --tabw: 14.6%;    /* tab width as a share of card width — scales, never overhangs */
      --tabh: 3.82cqw;  /* height tracks the folder width so the tab keeps its desktop shape at every size */
    }

    .fcard.is-active:is(.t-home,.t-home *) { z-index: 20; }

    /* Clicking a tab fades straight to that folder (no rapid cycling). The fade
       only applies while switching via a tab click — scrolling keeps its instant
       step-through. */
    @keyframes t-home-fcardBodyFade { from { opacity: 0; } to { opacity: 1; } }
    .fstack.is-tab-switching .fcard.is-active .fcard__body:is(.t-home,.t-home *) {
      animation: t-home-fcardBodyFade 0.4s ease;
    }

    .fcard__tab:is(.t-home,.t-home *) {
      position: absolute;
      top: 0;
      left: var(--tabx);
      width: var(--tabw);
      height: var(--tabh);
      border: 0;
      margin: 0;
      /* Transparent — the visible tab is cut from .fcard__body; this is just the
         click target, and it holds the small centred tab headline. */
      background: transparent;
      clip-path: none;   /* square tab, like the buttons */
      cursor: pointer;
      pointer-events: auto;
      z-index: 2;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0 10px;
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: clamp(9px, 0.9cqw, 14px);
      text-transform: uppercase;
      letter-spacing: 0.03em;
      line-height: 1;
      text-align: center;
      color: var(--tc, #fff);
    }

    .fcard:not(.is-active) .fcard__tab:hover ~ .fcard__body:is(.t-home,.t-home *) { filter: brightness(1.06); }

    .fcard__body:is(.t-home,.t-home *) {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      /* Whole folder cut from one piece — the tab is part of the shape, no seam */
      clip-path: polygon(
        0 var(--tabh),
        var(--tabx) var(--tabh),
        var(--tabx) 0,
        calc(var(--tabx) + var(--tabw)) 0,
        calc(var(--tabx) + var(--tabw)) var(--tabh),
        100% var(--tabh),
        100% 100%,
        0 100%
      );
      /* Card colour + subtle gradient rising from the bottom */
      background-color: var(--c);
      background-image: linear-gradient(to top, rgba(0,0,0,0.16) 0%, rgba(0,0,0,0) 58%);
      color: var(--tc, #fff);
      padding: calc(var(--tabh) + clamp(34px, 3.4vw, 54px)) clamp(34px, 3.4vw, 54px) clamp(34px, 3.4vw, 54px);
      display: flex;
      flex-direction: column;
      pointer-events: auto;
      transition: filter 0.25s ease;
    }

    .fcard__title:is(.t-home,.t-home *) {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: clamp(30px, 3.4vw, 50px);
      line-height: 1;
      color: inherit;
      grid-column: 2;          /* top of the right-hand column, above the body text */
      grid-row: 1;
      align-self: start;
      margin: 0;
    }

    /* Image full-height on the left; heading + body + link stacked on the right. */
    .fcard__row:is(.t-home,.t-home *) {
      display: grid;
      grid-template-columns: 46% 1fr;
      grid-template-rows: auto 1fr;
      column-gap: clamp(32px, 4vw, 64px);
      row-gap: clamp(20px, 2.2vw, 34px);
      flex: 1;
      min-height: 0;
    }

    .fcard__image:is(.t-home,.t-home *) {
      grid-column: 1;
      grid-row: 1 / 3;         /* spans both rows → full height of the folder body */
      align-self: stretch;
      width: 100%;
      height: 100%;
      min-height: 0;
      margin: 0;
      overflow: hidden;
      background: #fff;
    }

    .fcard__image img:is(.t-home,.t-home *) { width: 100%; height: 100%; object-fit: cover; display: block; }

    .fcard__col:is(.t-home,.t-home *) {
      grid-column: 2;
      grid-row: 2;
      min-width: 0;
      display: flex;
      flex-direction: column;
    }

    .fcard__text:is(.t-home,.t-home *) {
      font-family: var(--font-body);
      font-size: clamp(15px, 1.15vw, 17px);   /* matches the homepage intro & advocacy body copy */
      line-height: 1.5;
      color: inherit;
      opacity: 0.9;
      margin: 0;
      max-width: 48ch;
    }

    .fcard__link:is(.t-home,.t-home *) {
      margin-top: clamp(32px, 4vw, 64px);   /* same gap as text-to-image */
      align-self: flex-start;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: clamp(15px, 1.1vw, 18px);
      letter-spacing: 0.05em;
      color: inherit;
      text-decoration: none;
      border: 2px solid currentColor;
      border-radius: 0;
      padding: 13px 26px;
    }

    .fcard__link:hover .ui-arrow:is(.t-home,.t-home *) { transform: rotate(-45deg); }

    /* Contents animate in each time a card becomes active */
    .fcard__title:is(.t-home,.t-home *), .fcard__image:is(.t-home,.t-home *), .fcard__text:is(.t-home,.t-home *), .fcard__link:is(.t-home,.t-home *) {
      opacity: 0;
      transform: translateY(22px);
      transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .fcard__text:is(.t-home,.t-home *) { opacity: 0; }

    .stand.is-visible .fcard.is-active .fcard__title:is(.t-home,.t-home *) { opacity: 1; transform: none; transition-delay: 0.06s; }
    .stand.is-visible .fcard.is-active .fcard__image:is(.t-home,.t-home *) { opacity: 1; transform: none; transition-delay: 0.14s; }
    .stand.is-visible .fcard.is-active .fcard__text:is(.t-home,.t-home *)  { opacity: 0.9; transform: none; transition-delay: 0.22s; }
    .stand.is-visible .fcard.is-active .fcard__link:is(.t-home,.t-home *)  { opacity: 1; transform: none; transition-delay: 0.3s; }

    /* Progress dots */
    .fstack__dots:is(.t-home,.t-home *) { display: none; justify-content: center; gap: 10px; margin-top: 26px; }
    .fstack__dot:is(.t-home,.t-home *) { width: 9px; height: 9px; border-radius: 50%; border: 0; padding: 0; background: rgba(24, 6, 20, 0.18); cursor: pointer; transition: background 0.25s ease; }
    .fstack__dot.is-active:is(.t-home,.t-home *) { background: var(--color-plum); }

    /* Mobile — stack the card contents; scroll still flicks through folders */
    /* Tablet & mobile — no sticky flip. Folders become separate cards stacked
       in a normal vertical scroll. Above this width the pinned/scroll layout
       uses a fixed-height card, which leaves dead space on shorter/narrower
       screens — so the vertical stack kicks in for tablets too (≤1024px). */
    @media (max-width: 1024px) {
      .stand__scroll:is(.t-home,.t-home *) { height: auto; }
      .stand__pin:is(.t-home,.t-home *) { position: static; height: auto; padding-top: 0; overflow: visible; }
      .stand__pin .stand__inner:is(.t-home,.t-home *) { padding: 0 var(--page-margin); }

      .fstack:is(.t-home,.t-home *) {
        height: auto;
        display: flex;
        flex-direction: column;
        gap: 22px;
        touch-action: auto;
      }

      .fcard:is(.t-home,.t-home *) {
        position: relative;
        inset: auto;
        pointer-events: auto;
        /* Override the per-card inline --tabx (a desktop-only stagger) so every
           mobile tab sits at the same left position and never overhangs the
           right edge (--tabx + --tabw must stay ≤ 100%). */
        --tabx: 7% !important;
        --tabw: 42% !important;   /* one clear folder tab per card (override the inline desktop width) */
        --tabh: 26px;  /* shorter tab on mobile */
      }

      .fcard__tab:is(.t-home,.t-home *) { display: none; }   /* no click-to-switch on mobile */

      .fcard__body:is(.t-home,.t-home *) {
        position: relative;
        inset: auto;
        padding: calc(var(--tabh) + 26px) 26px 34px;   /* room for the tab */
      }

      /* Restore the mobile stack (heading → image → body); undo the desktop grid. */
      .fcard__row:is(.t-home,.t-home *) { display: flex; flex-direction: column; align-items: stretch; }
      .fcard__title:is(.t-home,.t-home *) { order: 1; grid-column: auto; grid-row: auto; margin: 0 0 clamp(24px, 2.6vw, 42px); }
      .fcard__image:is(.t-home,.t-home *) { order: 2; grid-column: auto; grid-row: auto; width: 100%; height: auto; flex: none; aspect-ratio: 4 / 3; }
      .fcard__col:is(.t-home,.t-home *) { order: 3; grid-column: auto; grid-row: auto; margin-top: 22px; }
      .fcard__link:is(.t-home,.t-home *) { align-self: flex-start; margin-top: 22px; }

      /* All folders are visible at once on mobile — no scroll-driven reveal */
      .fcard__title:is(.t-home,.t-home *), .fcard__image:is(.t-home,.t-home *), .fcard__text:is(.t-home,.t-home *), .fcard__link:is(.t-home,.t-home *) {
        opacity: 1 !important;
        transform: none !important;
        transition: none;
      }
      .fcard__text:is(.t-home,.t-home *) { opacity: 0.9 !important; }
    }

    @media (prefers-reduced-motion: reduce) {
      .fcard__title:is(.t-home,.t-home *), .fcard__image:is(.t-home,.t-home *), .fcard__text:is(.t-home,.t-home *), .fcard__link:is(.t-home,.t-home *) { opacity: 1; transform: none; transition: none; }
      .fcard__text:is(.t-home,.t-home *) { opacity: 0.9; }
    }

    /* ========================================
       THE NEWSROOM — homepage
       Matches the Newsroom page: a featured story (photo + overlapping red
       card) and the next three stories as photo cards.
       ======================================== */
    .newsroom:is(.t-home,.t-home *) {
      position: relative;
      z-index: 2;
      background: #fff;
      padding: clamp(72px, 9vw, 128px) 0;
    }
    .newsroom__inner:is(.t-home,.t-home *) {
      max-width: var(--max-width);
      margin: 0 auto;
      padding: 0 var(--page-margin);
    }
    .newsroom__header:is(.t-home,.t-home *) {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      gap: 20px 32px;
      flex-wrap: wrap;
      margin-bottom: clamp(40px, 5vw, 72px);
    }
    .newsroom__title:is(.t-home,.t-home *) {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: clamp(40px, 5.2vw, 66px);
      line-height: 1.02;
      color: #9b0041;
      margin: 0;
    }
    .newsroom__all:is(.t-home,.t-home *) {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-family: var(--font-body);
      font-size: 14px;
      padding: 13px 24px;
      color: #fff;
      background: #e8394a;
      border: 1px solid #e8394a;
      text-decoration: none;
      white-space: nowrap;
      transition: background-color 0.3s ease, color 0.3s ease;
    }
    .newsroom__all:hover:is(.t-home,.t-home *) { background: transparent; color: #e8394a; }

    .hn-arr:is(.t-home,.t-home *) { display: inline-block; transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
    .hn-dot:is(.t-home,.t-home *) { width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: 0.6; flex: none; }
    .newsroom__all:hover .hn-arr:is(.t-home,.t-home *) { transform: translateX(4px); }

    /* Featured story */
    .hn-featured:is(.t-home,.t-home *) {
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      align-items: center;
      margin-bottom: clamp(48px, 6vw, 88px);
      color: inherit;
      text-decoration: none;
    }
    .hn-featured__media:is(.t-home,.t-home *) { grid-column: 1 / span 8; grid-row: 1; aspect-ratio: 16 / 10; overflow: hidden; background: #f6f4f5; }
    .hn-featured__media img:is(.t-home,.t-home *) { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1); }
    .hn-featured:hover .hn-featured__media img:is(.t-home,.t-home *) { transform: scale(1.04); }
    .hn-featured__card:is(.t-home,.t-home *) {
      grid-column: 7 / span 6;
      grid-row: 1;
      position: relative;
      z-index: 1;
      background: #9b0041;
      color: #fff;
      padding: clamp(28px, 3.6vw, 56px);
    }
    .hn-badge:is(.t-home,.t-home *) { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-body); font-size: 12.5px; letter-spacing: 0.02em; }
    .hn-badge:is(.t-home,.t-home *)::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #f0a4c0; animation: t-home-hnPulse 2s infinite; }
    @keyframes t-home-hnPulse {
      0% { box-shadow: 0 0 0 0 rgba(240, 164, 192, 0.7); }
      70% { box-shadow: 0 0 0 10px rgba(240, 164, 192, 0); }
      100% { box-shadow: 0 0 0 0 rgba(240, 164, 192, 0); }
    }
    .hn-featured__meta:is(.t-home,.t-home *) { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-family: var(--font-body); font-size: 13px; color: #f0a4c0; margin-top: 18px; }
    .hn-featured__title:is(.t-home,.t-home *) { font-family: var(--font-heading); font-weight: 700; font-size: clamp(30px, 3.2vw, 48px); line-height: 1.02; margin: 12px 0 0; text-wrap: balance; }
    .hn-featured__blurb:is(.t-home,.t-home *) { font-family: var(--font-body); font-size: clamp(15px, 1.2vw, 17px); line-height: 1.55; color: rgba(255, 255, 255, 0.88); margin: 16px 0 0; max-width: 52ch; }
    .hn-featured__cta:is(.t-home,.t-home *) { display: inline-flex; align-items: center; gap: 10px; margin-top: clamp(22px, 2.6vw, 32px); font-family: var(--font-body); font-size: 14px; padding: 13px 24px; background: #fff; color: #9b0041; border: 1px solid #fff; transition: background-color 0.3s ease, color 0.3s ease; }
    .hn-featured:hover .hn-featured__cta:is(.t-home,.t-home *) { background: transparent; color: #fff; }
    .hn-featured:hover .hn-featured__cta .hn-arr:is(.t-home,.t-home *) { transform: translateX(4px); }
    /* No hero image: the magenta card spans the full width with a big quote mark */
    .hn-featured--text .hn-featured__card:is(.t-home,.t-home *) { grid-column: 1 / -1; position: relative; overflow: hidden; padding: clamp(36px, 4.5vw, 64px) clamp(28px, 3.6vw, 56px); min-height: clamp(300px, 30vw, 400px); display: flex; flex-direction: column; justify-content: center; }
    .hn-featured--text .hn-featured__title:is(.t-home,.t-home *) { font-size: clamp(34px, 4.2vw, 64px); max-width: 18ch; }
    .hn-featured--text .hn-featured__cta:is(.t-home,.t-home *) { align-self: flex-start; }

    /* Next three stories */
    .hn-grid:is(.t-home,.t-home *) { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 3vw, 40px) clamp(20px, 2.2vw, 32px); }
    .hn-card:is(.t-home,.t-home *) { display: flex; flex-direction: column; color: inherit; text-decoration: none; }
    .hn-card__media:is(.t-home,.t-home *) { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: #f6f4f5; }
    .hn-card__media img:is(.t-home,.t-home *) { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1); }
    .hn-card:hover .hn-card__media img:is(.t-home,.t-home *) { transform: scale(1.05); }
    .hn-card__type:is(.t-home,.t-home *) { position: absolute; left: 12px; top: 12px; font-family: var(--font-body); font-size: 12px; padding: 5px 10px; background: #fff; color: #9b0041; }
    .hn-card__meta:is(.t-home,.t-home *) { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-family: var(--font-body); font-size: 13px; color: rgba(13, 13, 18, 0.56); margin-top: 16px; }
    .hn-card__topic:is(.t-home,.t-home *) { color: #9b0041; }
    /* Text-only card (article without a hero image) */
    .hn-card--text:is(.t-home,.t-home *) { border-top: 2px solid #9b0041; padding-top: 16px; }
    .hn-card__type--inline:is(.t-home,.t-home *) { position: static; display: inline-block; align-self: flex-start; padding: 5px 10px; background: #fcecf2; color: #9b0041; font-family: var(--font-body); font-size: 12px; }
    .hn-card__blurb:is(.t-home,.t-home *) { font-family: var(--font-body); font-size: 14.5px; line-height: 1.55; color: rgba(13, 13, 18, 0.7); margin: 10px 0 0; }
    .hn-card__title:is(.t-home,.t-home *) { font-family: var(--font-heading); font-weight: 700; font-size: clamp(22px, 1.8vw, 27px); line-height: 1.06; color: #0d0d12; margin: 10px 0 0; text-wrap: balance; transition: color 0.3s ease; }
    .hn-card:hover .hn-card__title:is(.t-home,.t-home *) { color: #9b0041; }
    .hn-card__more:is(.t-home,.t-home *) { display: inline-flex; gap: 8px; margin-top: auto; padding-top: 14px; font-family: var(--font-body); font-size: 13.5px; color: #9b0041; }
    .hn-card:hover .hn-card__more .hn-arr:is(.t-home,.t-home *) { transform: translateX(4px); }

    /* Scroll-in */
    .newsroom__header:is(.t-home,.t-home *), .hn-featured:is(.t-home,.t-home *), .hn-card:is(.t-home,.t-home *) {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .newsroom.is-visible .newsroom__header:is(.t-home,.t-home *),
    .newsroom.is-visible .hn-featured:is(.t-home,.t-home *),
    .newsroom.is-visible .hn-card:is(.t-home,.t-home *) { opacity: 1; transform: none; }
    .newsroom.is-visible .hn-featured:is(.t-home,.t-home *) { transition-delay: 0.1s; }
    .newsroom.is-visible .hn-card:nth-child(1):is(.t-home,.t-home *) { transition-delay: 0.2s; }
    .newsroom.is-visible .hn-card:nth-child(2):is(.t-home,.t-home *) { transition-delay: 0.3s; }
    .newsroom.is-visible .hn-card:nth-child(3):is(.t-home,.t-home *) { transition-delay: 0.4s; }

    @media (max-width: 1000px) {
      .hn-grid:is(.t-home,.t-home *) { grid-template-columns: repeat(2, 1fr); }
      .hn-grid .hn-card:nth-child(3):is(.t-home,.t-home *) { display: none; }   /* keep the rows even: two cards on tablet */
    }
    @media (max-width: 900px) {
      .hn-featured:is(.t-home,.t-home *) { grid-template-columns: 1fr; }
      .hn-featured__media:is(.t-home,.t-home *), .hn-featured__card:is(.t-home,.t-home *) { grid-column: 1; }
      .hn-featured__card:is(.t-home,.t-home *) { grid-row: 2; margin: -56px 16px 0; }
      .hn-featured--text .hn-featured__card:is(.t-home,.t-home *) { grid-row: 1; margin: 0; }
    }
    @media (max-width: 640px) {
      .hn-grid:is(.t-home,.t-home *) { grid-template-columns: 1fr; }
      .hn-grid .hn-card:nth-child(3):is(.t-home,.t-home *) { display: flex; }
    }
    @media (prefers-reduced-motion: reduce) {
      .newsroom__header:is(.t-home,.t-home *), .hn-featured:is(.t-home,.t-home *), .hn-card:is(.t-home,.t-home *) { opacity: 1; transform: none; transition: none; }
      .hn-badge:is(.t-home,.t-home *)::before { animation: none; }
    }

    /* ========================================
       MINISTERIAL PORTFOLIOS — MASONRY GRID
       ======================================== */
    .portfolios:is(.t-home,.t-home *) {
      background: var(--color-bone);
      padding: clamp(64px, 8vw, 120px) 0;
    }
    .portfolios__inner:is(.t-home,.t-home *) {
      max-width: var(--max-width);
      margin: 0 auto;
      padding: 0 var(--page-margin);
    }
    .portfolios__title:is(.t-home,.t-home *) {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: clamp(40px, 5.2vw, 66px);
      line-height: 1.02;
      color: #9b0041;
      text-align: center;
      margin: 0 0 clamp(48px, 5.5vw, 80px);
    }
    /* Expanding panels: the hovered panel widens, the others make room. */
    .portfolio-panels:is(.t-home,.t-home *) {
      display: flex;
      gap: 12px;
      height: clamp(420px, 44vw, 620px);
    }
    .portfolio-panel:is(.t-home,.t-home *) {
      position: relative;
      flex: 1;
      min-width: 0;
      overflow: hidden;
      margin: 0;
      color: #fff;
      transition: flex 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .portfolio-panel__image:is(.t-home,.t-home *) {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .portfolio-panel:is(.t-home,.t-home *)::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(13, 13, 18, 0.78) 0%, rgba(13, 13, 18, 0.1) 55%, rgba(13, 13, 18, 0) 100%);
      pointer-events: none;
    }
    .portfolio-panel__text:is(.t-home,.t-home *) {
      position: absolute;
      z-index: 1;
      left: clamp(20px, 2.2vw, 32px);
      right: clamp(20px, 2.2vw, 32px);
      bottom: clamp(20px, 2.2vw, 32px);
    }
    .portfolio-panel__num:is(.t-home,.t-home *) {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: 15px;
      color: #f0a4c0;
    }
    .portfolio-panel__title:is(.t-home,.t-home *) {
      font-family: var(--font-heading);
      font-weight: 700;
      font-size: clamp(24px, 2.6vw, 38px);
      line-height: 1.02;
      max-width: 14ch;
      margin: 6px 0 0;
    }
    @media (hover: hover) {
      .portfolio-panels:hover .portfolio-panel:is(.t-home,.t-home *) { flex: 0.75; }
      .portfolio-panels .portfolio-panel:hover:is(.t-home,.t-home *) { flex: 2; }
      .portfolio-panel:hover .portfolio-panel__image:is(.t-home,.t-home *) { transform: scale(1.05); }
    }

    /* Panels rise in one after another when the section scrolls into view. */
    .portfolio-panel__text:is(.t-home,.t-home *) {
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .portfolios.is-visible .portfolio-panel__text:is(.t-home,.t-home *) { opacity: 1; transform: none; }
    .portfolios.is-visible .portfolio-panel:nth-child(2) .portfolio-panel__text:is(.t-home,.t-home *) { transition-delay: 0.15s; }
    .portfolios.is-visible .portfolio-panel:nth-child(3) .portfolio-panel__text:is(.t-home,.t-home *) { transition-delay: 0.3s; }

    @media (max-width: 767px) {
      .portfolio-panels:is(.t-home,.t-home *) { flex-direction: column; height: auto; }
      .portfolio-panel:is(.t-home,.t-home *) { flex: none; height: 300px; }
    }
    @media (prefers-reduced-motion: reduce) {
      .portfolio-panel:is(.t-home,.t-home *), .portfolio-panel__image:is(.t-home,.t-home *), .portfolio-panel__text:is(.t-home,.t-home *) { transition: none; }
      .portfolio-panel__text:is(.t-home,.t-home *) { opacity: 1; transform: none; }
    }

    /* ========================================
       WORKING HARD FOR A STRONGER WEST — SCROLL FILL
       Each word starts faint and lights up as the section scrolls through;
       the closing words land in pink. Progress is set in JS (strongerWestFill).
       ======================================== */
    .stronger-west:is(.t-home,.t-home *) {
      position: relative;
      z-index: 2;
      background: #9b0041;
      min-height: 100vh;
      display: flex;
      align-items: center;
      padding: clamp(72px, 8vw, 120px) 0;
    }
    .stronger-west__inner:is(.t-home,.t-home *) {
      width: 100%;
      max-width: var(--max-width);
      margin: 0 auto;
      padding: 0 var(--page-margin);
    }
    .stronger-west__title:is(.t-home,.t-home *) {
      font-family: var(--font-heading);
      font-weight: 700;
      text-transform: uppercase;
      color: #fff;
      font-size: clamp(56px, 12vw, 190px);
      line-height: 0.9;
      letter-spacing: 0.005em;
      text-align: center;
      text-wrap: balance;
      margin: 0;
    }
    .stronger-west__word:is(.t-home,.t-home *) {
      display: inline-block;
      color: rgba(255, 255, 255, 0.16);
      transform: translateY(0.08em);
      transition: color 0.3s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .stronger-west__word.is-lit:is(.t-home,.t-home *) { color: #fff; transform: none; }
    .stronger-west__word--pink.is-lit:is(.t-home,.t-home *) { color: #f0a4c0; }
    @media (max-width: 767px) {
      .stronger-west:is(.t-home,.t-home *) { min-height: 70vh; }
      .stronger-west__title:is(.t-home,.t-home *) { font-size: clamp(48px, 15vw, 80px); }
    }
    @media (prefers-reduced-motion: reduce) {
      .stronger-west__word:is(.t-home,.t-home *) { transition: none; transform: none; color: #fff; }
      .stronger-west__word--pink:is(.t-home,.t-home *) { color: #f0a4c0; }
    }

    /* ========================================
       FOOTER
       ======================================== */
    .site-footer:is(.t-home,.t-home *) {
      /* Sit above the sticky .hero (z-index:1); mirrors main/.intro-natalie
         (z-index:2). Without this the pinned, blurred hero paints over the
         footer and it reads as a "blurry background" with no footer. */
      position: relative;
      z-index: 2;
      background-color: #9b0041;
      color: #fff;
      padding: var(--space-4xl) 0 var(--space-xl);
    }

    .site-footer__inner:is(.t-home,.t-home *) {
      max-width: var(--max-width);
      margin: 0 auto;
      padding: 0 var(--page-margin);
    }

    .site-footer__brand:is(.t-home,.t-home *) {
      display: inline-block;
      margin-bottom: var(--space-3xl);
    }

    .site-footer__brand img:is(.t-home,.t-home *) {
      height: 13px;
      width: auto;
      display: block;
    }

    .site-footer__columns:is(.t-home,.t-home *) {
      display: grid;
      grid-template-columns: auto auto 1fr;
      gap: var(--space-2xl) var(--space-3xl);
      margin-bottom: var(--space-4xl);
    }

    .site-footer__col--newsletter:is(.t-home,.t-home *) {
      justify-self: end;
      width: 320px;
    }

    .site-footer__col-title:is(.t-home,.t-home *) {
      font-family: var(--font-body);
      font-weight: 400;
      font-size: 13px;
      text-transform: none;
      letter-spacing: 0;
      color: #fff;
      margin: 0 0 var(--space-lg) 0;
    }

    .site-footer__nav:is(.t-home,.t-home *) {
      display: flex;
      flex-direction: column;
      gap: var(--space-sm);
    }

    .site-footer__nav a:is(.t-home,.t-home *),
    .site-footer__nav a:visited:is(.t-home,.t-home *),
    .site-footer__contact a:visited:is(.t-home,.t-home *) {
      font-family: var(--font-body);
      font-size: 13px;
      color: #fff;
      text-decoration: none;
      transition: opacity var(--duration-fast) var(--ease-out);
    }

    .site-footer__nav a:hover:is(.t-home,.t-home *) {
      opacity: 0.7;
    }

    .site-footer__contact p:is(.t-home,.t-home *) {
      font-family: var(--font-body);
      font-size: 13px;
      line-height: 1.6;
      margin: 0 0 var(--space-sm) 0;
    }

    .site-footer__contact a:is(.t-home,.t-home *) {
      color: #fff;
      text-decoration: none;
      transition: opacity var(--duration-fast) var(--ease-out);
    }

    .site-footer__contact a:hover:is(.t-home,.t-home *) {
      opacity: 0.7;
    }

    /* Newsletter */
    .site-footer__newsletter p:is(.t-home,.t-home *) {
      font-family: var(--font-body);
      font-size: var(--text-body-sm);
      color: #fff;
      margin: 0 0 var(--space-md) 0;
    }

    .site-footer__newsletter-form:is(.t-home,.t-home *) {
      display: flex;
      flex-direction: column;
      gap: var(--space-sm);
    }

    .site-footer__input:is(.t-home,.t-home *) {
      font-family: var(--font-body);
      font-size: 14px;
      padding: 10px 0;
      background: transparent;
      border: none;
      border-bottom: 1px solid rgba(255, 255, 255, 0.35);
      color: #fff;
      outline: none;
      transition: border-color var(--duration-fast) var(--ease-out);
    }

    .site-footer__input:is(.t-home,.t-home *)::placeholder {
      color: rgba(255, 255, 255, 0.5);
    }

    .site-footer__input:focus:is(.t-home,.t-home *) {
      border-bottom-color: #fff;
    }

    /* White fill, plum text, Title Case; fills out to a white outline with white
       text on hover. */
    .site-footer__submit:is(.t-home,.t-home *) {
      display: inline-flex;
      align-items: center;
      font-family: var(--font-links);
      font-weight: 500;
      font-size: 14px;
      letter-spacing: 0.03em;
      text-transform: none;
      color: #9b0041;
      background-color: #fff;
      border: 2px solid #fff;
      border-radius: 0;
      cursor: pointer;
      padding: 13px 26px;
      align-self: flex-start;
      margin-top: var(--space-md);
      transition: background-color 0.28s ease, color 0.28s ease;
    }
    .site-footer__submit:is(.t-home,.t-home *)::after {
      content: '\2192';
      display: inline-block;
      margin-left: 0.6em;
      transition: transform 0.28s cubic-bezier(0.33, 1, 0.68, 1);
    }

    .site-footer__submit:hover:is(.t-home,.t-home *) {
      background-color: transparent;
      color: #fff;
    }
    .site-footer__submit:hover:is(.t-home,.t-home *)::after { transform: rotate(-45deg); }

    /* Footer bottom */
    .site-footer__bottom:is(.t-home,.t-home *) {
      border-top: 1px solid rgba(255, 255, 255, 0.2);
      padding-top: var(--space-xl);
      display: flex;
      gap: var(--space-2xl);
      align-items: flex-end;
    }

    .site-footer__legal:is(.t-home,.t-home *) {
      flex: 1;
      max-width: 640px;
    }

    .site-footer__legal p:is(.t-home,.t-home *) {
      font-family: var(--font-body);
      font-size: 12px;
      line-height: 1.65;
      color: rgba(255, 255, 255, 0.75);
      margin: 0 0 var(--space-md) 0;
    }

    .site-footer__legal a:is(.t-home,.t-home *) {
      color: #fff;
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .site-footer__legal a:hover:is(.t-home,.t-home *) {
      opacity: 0.7;
    }

    .site-footer__logo:is(.t-home,.t-home *) {
      flex-shrink: 0;
      margin-left: auto;
    }

    .site-footer__logo svg:is(.t-home,.t-home *) {
      width: 180px;
      height: auto;
      opacity: 0.9;
    }

    /* Footer responsive */
    @media (max-width: 767px) {
      .site-footer__columns:is(.t-home,.t-home *) {
        grid-template-columns: 1fr;
        gap: var(--space-xl);
      }

      .site-footer__col--newsletter:is(.t-home,.t-home *) {
        justify-self: start;
        width: 100%;
      }

      .site-footer__bottom:is(.t-home,.t-home *) {
        flex-direction: column-reverse;
        align-items: flex-start;
        gap: var(--space-xl);
      }

      .site-footer__logo:is(.t-home,.t-home *) {
        margin-left: 0;
      }

      .site-footer__logo svg:is(.t-home,.t-home *) {
        width: 140px;
      }
    }

  
    /* Brand: all links & buttons use American Grotesk Medium */
    a:is(.t-home,.t-home *),
    button:is(.t-home,.t-home *),
    .btn:is(.t-home,.t-home *),
    .nav__link:is(.t-home,.t-home *),
    .nav__dropdown-link:is(.t-home,.t-home *),
    .nav-overlay__link:is(.t-home,.t-home *),
    .nav-roll__i:is(.t-home,.t-home *),
    .hero__cta:is(.t-home,.t-home *),
    .fcard__link:is(.t-home,.t-home *),
    .newsroom__type-btn:is(.t-home,.t-home *),
    .newsroom__pill:is(.t-home,.t-home *),
    .newsroom__filter-toggle:is(.t-home,.t-home *),
    .site-footer a:is(.t-home,.t-home *),
    .site-footer__submit:is(.t-home,.t-home *),
    input[type="submit"]:is(.t-home,.t-home *) {
      font-family: var(--font-links) !important;
    }

    /* Optional link label under a panel title (added for the page builder) */
    .portfolio-panel__go:is(.t-home,.t-home *) { display: inline-block; font-size: 14px; margin-top: 12px; color: #f0a4c0; }
