/* Landing page styles - extracted from landing.html.
   Blocks appear in their original document order so the cascade is unchanged.
   @import rules are hoisted here because CSS requires them before any other rule. */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;600;700;800&family=Archivo+Black&family=Roboto+Mono:wght@400;500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@600&family=Archivo+Black&family=Public+Sans:wght@400;500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,400;0,700;0,900&family=Archivo+Black&family=Roboto+Mono:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;600&family=Archivo+Black&family=Public+Sans:wght@400&family=Roboto+Mono:wght@400&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;600;700;800&family=IBM+Plex+Mono:wght@400;500&family=Public+Sans:wght@400;500&display=swap');

/* ===== :root ===== */
  :root {
    color-scheme: light;
  }
  * {
    box-sizing: border-box;
  }
  html {
    scroll-behavior: smooth;
  }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
  }
  html, body {
    margin: 0;
    padding: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  /* The canvas colour, seen only past the top and bottom of the document when
     a rubber-band scroll overshoots. It matches the near-black of the hero and
     the footer so the overscroll gutter reads as an extension of them. */
  html {
    background: #15130f;
  }
  body {
    background: rgba(247, 244, 240, 1);
    overflow-x: hidden;
  }
  img {
    max-width: 100%;
  }
  /* 1px rule between adjacent top-level sections */
  body > section + section {
    border-top: 1px solid rgba(227, 220, 211, 1);
  }

/* ===== .hero ===== */
  /* Fonts used by this section (Archivo, Archivo Black, Roboto Mono) — safe to keep even if loaded elsewhere on the final page */

  .hero {
    --hero-white: #ffffff;
    --hero-cloud-gray: #d1d3d4;
    --hero-rust: #b4472a;
    --hero-card-rust: #b0472b;
    --hero-ink: #15130f;

    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0 auto;
    min-height: 987px;
    overflow: hidden;
    background: var(--hero-ink);
    font-family: 'Archivo', 'Inter', Arial, sans-serif;
    isolation: isolate;
  }

  /* ---------- Background image + gradient ---------- */
  .hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    z-index: 0;
  }

  .hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(
      to bottom,
      rgba(21, 19, 15, 0.45) 0%,
      rgba(21, 19, 15, 0.21) 40%,
      rgba(21, 19, 15, 0.55) 100%
    );
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }

  /* ---------- Header / nav ---------- */
  .site-header {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    width: 100%;
    padding: 16px clamp(20px, 4.9vw, 95px);
    background: rgba(0, 0, 0, 0.85);
    box-sizing: border-box;
  }

  .site-header__nav {
    display: flex;
    align-items: center;
    gap: 32px;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .site-header__link {
    font-family: 'Archivo', 'Inter', Arial, sans-serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 22px;
    letter-spacing: -0.32px;
    color: var(--hero-cloud-gray);
    text-decoration: none;
    white-space: nowrap;
  }

  .site-header__link:hover,
  .site-header__link:focus-visible {
    color: var(--hero-white);
  }

  .site-header__contact-btn {
    display: inline-flex;
    align-items: center;
    padding: 12px 26px;
    background: var(--hero-rust);
    color: var(--hero-white);
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 1.3px;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
  }

  .site-header__contact-btn:hover,
  .site-header__contact-btn:focus-visible {
    background: #9c3c22;
  }

  /* ---------- Headline + card row ---------- */
  /* Takes all the height left over below the header, so both children sit
     vertically centred in it rather than at a fixed offset from the top. */
  .hero__body {
    position: relative;
    z-index: 2;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    width: 100%;
  }

  /* ---------- Headline block ---------- */
  .hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
    max-width: 1133px;
    padding: clamp(40px, 5vw, 80px) clamp(20px, 4.9vw, 95px);
    box-sizing: border-box;
  }

  .hero__title {
    margin: 0;
    font-family: 'Archivo', 'Inter', Arial, sans-serif;
    font-weight: 800;
    font-size: clamp(40px, 6.25vw, 120px);
    line-height: 1;
    color: var(--hero-white);
    text-transform: uppercase;
  }

  .hero__lede {
    margin: 0;
    max-width: 52ch;
    font-family: 'Archivo', 'Inter', Arial, sans-serif;
    font-weight: 400;
    font-size: 17px;
    line-height: 26px;
    color: rgba(255, 255, 255, 0.9);
  }

  .hero__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }

  .hero__btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    height: 52px;
    padding: 0 26px;
    box-sizing: border-box;
    font-family: 'Archivo', 'Inter', Arial, sans-serif;
    font-weight: 600;
    font-size: 16px;
    letter-spacing: 1.3px;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
  }

  .hero__btn--primary {
    background: var(--hero-rust);
    color: var(--hero-white);
  }

  .hero__btn--primary:hover,
  .hero__btn--primary:focus-visible {
    background: #9c3c22;
  }

  .hero__btn--secondary {
    border: 1px solid var(--hero-white);
    color: var(--hero-white);
    background: transparent;
  }

  .hero__btn--secondary:hover,
  .hero__btn--secondary:focus-visible {
    background: rgba(255, 255, 255, 0.1);
  }

  .hero__btn-arrow {
    font-size: 14px;
    text-transform: none;
    letter-spacing: 0;
  }

  /* ---------- Info card ---------- */
  .hero__card {
    position: absolute;
    z-index: 2;
    top: 50%;
    transform: translateY(-50%);
    right: clamp(20px, 4.9vw, 95px);
    width: 460px;
    max-width: calc(100% - 40px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
    padding: 34px;
    background: var(--hero-card-rust);
    /* Per Figma data this card renders as a solid rust panel (no glass/blur applied to this
       particular instance), though a "Glass" effect token exists elsewhere in the file. */
  }

  .hero__card-eyebrow {
    margin: 0;
    padding-bottom: 8.9px;
    font-family: 'Roboto Mono', monospace;
    font-weight: 400;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--hero-white);
  }

  .hero__card-date-row {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
    width: 100%;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
  }

  .hero__card-date {
    margin: 0;
    font-family: 'Archivo Black', 'Archivo', sans-serif;
    font-size: 38px;
    letter-spacing: -0.76px;
    color: var(--hero-white);
  }

  .hero__card-followup {
    margin: 6px 0 4px;
    font-family: 'Archivo', 'Inter', Arial, sans-serif;
    font-size: 13px;
    line-height: 19px;
    font-style: italic;
    color: rgba(255, 255, 255, 0.82);
    width: 100%;
  }

  .hero__card-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
    margin-top: 4px;
    padding: 13px 18px;
    background: var(--hero-white);
    color: var(--hero-card-rust);
    font-family: 'Roboto Mono', monospace;
    font-size: 11px;
    letter-spacing: 1.54px;
    text-transform: uppercase;
    text-decoration: none;
    border: none;
    cursor: pointer;
  }

  .hero__card-cta:hover,
  .hero__card-cta:focus-visible {
    background: var(--hero-cloud-gray);
  }

  /* Video link: the still is the target, with the play label laid over its
     lower edge so the card keeps its flat, panel-like look. */
  .hero__card-video {
    position: relative;
    display: block;
    width: 100%;
    margin-top: 4px;
    line-height: 0;
    text-decoration: none;
  }

  .hero__card-video img {
    display: block;
    width: 100%;
    height: auto;
  }

  .hero__card-video-label {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 14px;
    background: rgba(0, 0, 0, 0.62);
    color: var(--hero-white);
    font-family: 'Roboto Mono', monospace;
    font-size: 10px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    line-height: 1.4;
  }

  .hero__card-video:hover .hero__card-video-label,
  .hero__card-video:focus-visible .hero__card-video-label {
    background: rgba(0, 0, 0, 0.8);
  }

  /* ---------- Responsive behavior ---------- */
  /* Below this width the card no longer fits alongside the headline,
     so it leaves its absolute slot and stacks underneath instead. Between
     1210px and 1260px the headline's "MAINTENANCE" line still runs under
     the card, so the cutoff carries a margin above that. */
  @media (max-width: 1280px) {
    .hero__body {
      flex-direction: column;
      align-items: stretch;
    }

    .hero__card {
      position: relative;
      top: auto;
      right: auto;
      transform: none;
      /* auto width so the left and right gutters stay equal; a fixed
         width plus a clamped left margin pushed it past the right edge */
      width: auto;
      max-width: none;
      margin: 0 clamp(20px, 4.9vw, 95px) 56px;
    }
  }

  @media (max-width: 1024px) {
    .hero {
      min-height: 0;
    }

    .site-header {
      justify-content: center;
      text-align: center;
    }

    .site-header__nav {
      justify-content: center;
    }

    .hero__content {
      max-width: 100%;
      padding-top: 56px;
      padding-bottom: 32px;
    }

  }

  @media (max-width: 560px) {
    .site-header__nav {
      gap: 16px 20px;
    }

    .hero__actions {
      width: 100%;
    }

    .hero__btn {
      width: 100%;
      justify-content: center;
      white-space: normal;
      text-align: center;
      height: auto;
      min-height: 52px;
      padding: 14px 20px;
    }
  }

  /* ---------- Mobile burger menu ---------- */
  .site-header__burger {
    display: none;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 5px;
    width: 42px;
    height: 42px;
    padding: 0;
    margin: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
  }

  /* rigid flex basis so bar heights never collapse */
  .site-header__burger-bar {
    display: block;
    width: 24px;
    flex: 0 0 2px;
    height: 2px;
    background: var(--hero-white);
    border-radius: 1px;
    transition: width 0.22s ease, transform 0.22s ease, opacity 0.22s ease;
  }

  /* third bar is deliberately short */
  .site-header__burger-bar:nth-child(3) {
    width: 15px;
  }

  .site-header__scrim {
    position: fixed;
    top: var(--header-h, 64px);
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.55);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.28s ease, visibility 0s linear 0.28s;
    z-index: 90;
  }

  @media (max-width: 1200px) {
    .site-header {
      justify-content: space-between;
      flex-wrap: nowrap;
      text-align: left;
      gap: 12px;
      z-index: 110;
    }

    .site-header__burger {
      display: inline-flex;
      order: -1;
      flex: 0 0 auto;
      z-index: 110;
    }

    /* bars collapse into an X while the drawer is open */
    .site-header__burger[aria-expanded="true"] .site-header__burger-bar:nth-child(1) {
      transform: translateY(7px) rotate(45deg);
    }
    .site-header__burger[aria-expanded="true"] .site-header__burger-bar:nth-child(2) {
      opacity: 0;
    }
    .site-header__burger[aria-expanded="true"] .site-header__burger-bar:nth-child(3) {
      width: 24px;
      transform: translateY(-7px) rotate(-45deg);
    }

    /* full-width panel below the header, filling the rest of the screen,
       sliding in from the left; the header bar stays visible above it */
    .site-header__nav {
      display: flex;
      position: fixed;
      top: var(--header-h, 64px);
      left: 0;
      right: 0;
      bottom: 0;
      width: auto;
      flex-direction: column;
      align-items: stretch;
      justify-content: flex-start;
      gap: 0;
      background: #000000;
      padding: 8px clamp(20px, 4.9vw, 95px) 32px;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      transform: translateX(-100%);
      visibility: hidden;
      transition: transform 0.28s ease, visibility 0s linear 0.28s;
      z-index: 100;
    }

    .site-header__nav[data-open="true"] {
      transform: translateX(0);
      visibility: visible;
      transition: transform 0.28s ease, visibility 0s linear 0s;
    }

    .site-header__link {
      width: 100%;
      padding: 16px 0;
      font-size: 17px;
      border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .site-header__link:last-child {
      border-bottom: 0;
    }

    .site-header__contact-btn {
      position: relative;
      z-index: 110;
      flex: 0 0 auto;
      padding: 10px 18px;
      font-size: 12px;
    }

    /* lock the page behind the drawer and lift the hero's stacking
       context so later sections cannot paint over the fixed drawer */
    body.nav-open {
      overflow: hidden;
    }

    body.nav-open .hero {
      z-index: 100;
    }

    /* header is translucent over the hero by default; while the panel is
       open both must read as one solid black surface */
    body.nav-open .site-header {
      background: #000000;
    }

    body.nav-open .site-header__scrim {
      opacity: 1;
      visibility: visible;
      transition: opacity 0.28s ease, visibility 0s linear 0s;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .site-header__burger-bar,
    .site-header__nav,
    .site-header__scrim {
      transition: none;
    }
  }

/* ===== .overview ===== */
  .overview {
    /* Background sampled from the Figma screenshot (warm off-white); not one of the two documented shared tokens */
    --overview-bg: #f7f4ee;
    --overview-rust: #b4472a;
    --overview-heading: #15130f;
    --overview-body: #3b362f;
    --overview-white: #ffffff;
    --overview-cloud-gray: #d1d3d4;

    background: var(--overview-bg);
    width: 100%;
  }

  .overview__container {
    max-width: 1920px;
    margin: 0 auto;
    padding: clamp(48px, 6vw, 96px) clamp(24px, 4.9vw, 95px);
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: clamp(32px, 4vw, 76px);
    box-sizing: border-box;
  }

  .overview__intro {
    flex: 0 0 clamp(240px, 19.2vw, 369px);
    max-width: 369px;
  }

  .overview__eyebrow {
    margin: 0 0 16px;
    font-family: 'Archivo', 'Inter', Helvetica, Arial, sans-serif;
    font-weight: 600;
    font-size: 11px;
    line-height: normal;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    color: var(--overview-rust);
  }

  .overview__heading {
    margin: 0;
    font-family: 'Archivo Black', 'Inter', Helvetica, Arial, sans-serif;
    font-weight: 400;
    font-size: clamp(32px, 2.5vw, 48px);
    line-height: 1.0625;
    letter-spacing: -1.05px;
    color: var(--overview-heading);
    word-break: break-word;
  }

  .overview__content {
    flex: 1 1 480px;
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
  }

  .overview__col {
    flex: 1 1 280px;
    min-width: 0;
  }

  .overview__col p {
    margin: 0 0 20px;
    font-family: 'Public Sans', 'Inter', Helvetica, Arial, sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 28px;
    color: var(--overview-body);
  }

  .overview__col p:last-child {
    margin-bottom: 0;
  }

  @media (max-width: 900px) {
    .overview__intro {
      flex-basis: 100%;
      max-width: 100%;
    }
  }

/* ===== .overlay-strip ===== */
  .overlay-strip {
    --overlay-white: #ffffff;
    --overlay-cloud-gray: #d1d3d4;
    --overlay-cream: #f7f2ee;
    --overlay-border-gray: #d9d9d9;
    --overlay-rust: #b0472b;
    --overlay-rust-band: #b4472a;
    --overlay-ink: #14110f;

    width: 100%;
    margin: 0 auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    box-sizing: border-box;
  }
  .overlay-strip *,
  .overlay-strip *::before,
  .overlay-strip *::after {
    box-sizing: border-box;
  }

  /* ---- Info strip (Status / Funding / Questions / Events) ---- */
  .overlay-strip__info {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    background: var(--overlay-cream);
    padding: 0 clamp(20px, 4.9vw, 95px);
  }

  .overlay-strip__col {
    border-top: 2px solid var(--overlay-border-gray);
    padding: 26px 28px 48px;
    display: flex;
    flex-direction: column;
    gap: 9px;
  }

  .overlay-strip__col--accent {
    border-top-color: var(--overlay-rust);
  }

  .overlay-strip__label {
    margin: 0;
    font-family: 'Inter', monospace;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: var(--overlay-rust);
  }

  .overlay-strip__text {
    color: var(--overlay-ink);
  }

  .overlay-strip__text p {
    margin: 0;
    font-size: 16px;
    line-height: 24.8px;
    font-weight: 400;
  }

  .overlay-strip__link {
    color: var(--overlay-rust);
    text-decoration: none;
    border-bottom: 1px solid rgba(176, 71, 43, 0.4);
  }

  .overlay-strip__link:hover,
  .overlay-strip__link:focus-visible {
    border-bottom-color: var(--overlay-rust);
  }

  /* ---- CTA band ---- */
  .overlay-strip__cta {
    background: var(--overlay-rust-band);
    padding: 0 80px;
  }

  .overlay-strip__cta-inner {
    max-width: 1004px;
    padding: 60px 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }

  .overlay-strip__heading {
    margin: 0;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.48px;
    color: var(--overlay-white);
  }

  .overlay-strip__button {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--overlay-white);
    padding: 17px 24px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.3px;
    text-transform: uppercase;
    color: var(--overlay-white);
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.15s ease, color 0.15s ease;
  }

  .overlay-strip__button:hover,
  .overlay-strip__button:focus-visible {
    background: var(--overlay-white);
    color: var(--overlay-rust-band);
  }

  /* ---- Responsive touches ---- */
  /* four columns get too narrow to read before the single-column
     breakpoint below, so drop to two on the way down */
  @media (max-width: 1240px) {
    .overlay-strip__info {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 900px) {
    .overlay-strip__info {
      grid-template-columns: 1fr;
    }
    .overlay-strip__col {
      padding-bottom: 26px;
    }
    .overlay-strip__cta {
      padding: 0 32px;
    }
    .overlay-strip__cta-inner {
      padding: 40px 0;
    }
    /* long label cannot stay on one line below this width without
       pushing the whole page into horizontal scroll */
    .overlay-strip__button {
      white-space: normal;
    }
  }

  @media (max-width: 480px) {
    .overlay-strip__info {
      padding: 0 20px;
    }
    .overlay-strip__button {
      white-space: normal;
    }
  }

/* ===== .section-4052 ===== */
  .section-4052 {
    --s4052-white: #ffffff;
    --s4052-cloud-gray: #d1d3d4;
    --s4052-ink: #1d1f20;
    --s4052-body: rgba(29, 31, 32, 0.88);
    --s4052-rule: rgba(29, 31, 32, 0.22);
    --s4052-rust: #b4472a;

    background: transparent;
    color: var(--s4052-ink);
    box-sizing: border-box;
    padding: clamp(40px, 5vw, 96px) 0;
  }

  .section-4052 *,
  .section-4052 *::before,
  .section-4052 *::after {
    box-sizing: border-box;
  }

  .section-4052 .s4052-inner {
    max-width: 1920px;
    margin: 0 auto;
    padding: 0 clamp(20px, 4.9vw, 95px);
  }

  /* ---------- Header ---------- */
  .section-4052 .s4052-header {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: clamp(24px, 3.5vw, 68px);
  }

  .section-4052 .s4052-eyebrow {
    margin: 0;
    font-family: "Roboto Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
    font-weight: 400;
    font-size: 11px;
    line-height: 1;
    letter-spacing: 1.54px;
    text-transform: uppercase;
    color: var(--s4052-rust);
  }

  .section-4052 .s4052-heading-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px 32px;
  }

  .section-4052 .s4052-heading {
    margin: 0;
    font-family: "Archivo Black", "Archivo", Arial, sans-serif;
    font-weight: 400;
    font-size: clamp(30px, 3.4vw, 48px);
    line-height: 1.08;
    letter-spacing: -1.45px;
    color: var(--s4052-ink);
  }

  .section-4052 .s4052-meta {
    margin: 0;
    font-family: "Roboto Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
    font-weight: 400;
    font-size: 11px;
    line-height: 1;
    letter-spacing: 1.54px;
    text-transform: uppercase;
    color: var(--s4052-rust);
    white-space: nowrap;
  }

  /* ---------- Timeline list ---------- */
  .section-4052 .s4052-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--s4052-rule);
  }

  .section-4052 .s4052-item {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    padding: 16px 0;
    border-bottom: 1px solid var(--s4052-rule);
  }

  .section-4052 .s4052-item--last {
    border-bottom: none;
  }

  .section-4052 .s4052-dot {
    flex: 0 0 auto;
    width: 11px;
    height: 11px;
    margin-top: 7px;
    border-radius: 50%;
    background: var(--s4052-rust);
    border: 2px solid transparent;
  }

  .section-4052 .s4052-content {
    flex: 1 1 0%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .section-4052 .s4052-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
  }

  .section-4052 .s4052-date {
    font-family: "Roboto Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
    font-weight: 700;
    font-size: 20px;
    line-height: 1;
    letter-spacing: 1.76px;
    text-transform: uppercase;
    color: var(--s4052-rust);
    white-space: nowrap;
  }

  .section-4052 .s4052-title {
    margin: 0;
    font-family: "Archivo", Arial, sans-serif;
    font-weight: 700;
    font-size: 20px;
    line-height: 1.3;
    letter-spacing: -0.2px;
    color: var(--s4052-ink);
  }

  .section-4052 .s4052-body {
    margin: 0;
    max-width: 90ch;
    font-family: "Archivo", Arial, sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 25.6px;
    color: var(--s4052-body);
  }

  .section-4052 .s4052-body a {
    color: var(--s4052-rust);
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  .section-4052 .s4052-body a:hover,
  .section-4052 .s4052-body a:focus-visible {
    color: var(--s4052-ink);
  }

  .section-4052 .s4052-badge {
    align-self: flex-start;
    padding: 6px 11px;
    border: 1px solid var(--s4052-rust);
    font-family: "Roboto Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
    font-weight: 400;
    font-size: 10px;
    line-height: 1;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--s4052-ink);
  }

  /* ---------- Responsive ---------- */
  @media (max-width: 640px) {
    .section-4052 .s4052-item {
      gap: 14px;
    }

    .section-4052 .s4052-row {
      flex-direction: column;
      align-items: flex-start;
      gap: 4px;
    }
  }

/* ===== .photo-feature ===== */
/* Tokens shared by the photo feature and its now-standalone intro band */
.photo-feature,
.photo-feature-intro {
  --pf-ink: #15130f;
  --pf-body: #3b362f;
  --pf-rust: #b4472a;
  --pf-rust-2: #b0472b;
  --pf-hairline: rgba(20, 17, 15, 0.14);
  --pf-border-top: #e3dcd3;
  --pf-dark: #14110f;
  --pf-dark-line: rgba(209, 211, 212, 0.16);
  --pf-dark-label: #cdcdcd;
  --pf-white: #ffffff;

  background: transparent;
  font-family: 'Public Sans', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color: var(--pf-body);
}



/* The intro carries its own top rule, and no divider belongs
   between it and the photo it introduces. */
body > section.photo-feature-intro,
body > section.photo-feature-intro + .photo-feature {
  border-top: 0;
}

/* ---------- Intro row ---------- */
.photo-feature__intro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  border-top: 1px solid var(--pf-border-top);
  padding: 32px clamp(20px, 4.9vw, 95px);
  flex-wrap: wrap;
}

.photo-feature__intro-copy {
  display: flex;
  flex-direction: column;
  gap: 32px;
  max-width: 1199px;
  flex: 1 1 560px;
}

.photo-feature__eyebrow {
  font-family: 'Archivo', 'Inter', sans-serif;
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  color: var(--pf-rust);
  margin-bottom: 12px;
}

.photo-feature__heading {
  margin: 0;
  font-family: 'Archivo Black', 'Archivo', 'Inter', sans-serif;
  font-weight: 400;
  font-size: clamp(28px, 3.2vw, 48px);
  line-height: 1.015;
  letter-spacing: -1.05px;
  color: var(--pf-ink);
}

.photo-feature__lede {
  margin: 20px 0 0;
  font-size: 17px;
  line-height: 27.54px;
  color: var(--pf-body);
  max-width: 62ch;
}

/* ---------- Photo ---------- */
.photo-feature__photo {
  margin: 0;
  width: 100%;
  line-height: 0;
}

.photo-feature__photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1920 / 711;
  object-fit: cover;
}

/* ---------- Stat bar ---------- */
.photo-feature__stats {
  background: var(--pf-dark);
  padding: 29px clamp(16px, 6.4vw, 123px);
}

.photo-feature__stats-row {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid var(--pf-dark-line);
  border-bottom: 1px solid var(--pf-dark-line);
  background: var(--pf-dark-line);
  gap: 1px;
}

.photo-feature__stat {
  flex: 1 1 0;
  min-width: 140px;
  background: var(--pf-dark);
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.photo-feature__stat-label {
  font-family: 'Archivo', 'Inter', sans-serif;
  font-size: 11px;
  line-height: 14.85px;
  color: var(--pf-dark-label);
}

.photo-feature__stat-value {
  font-family: 'Archivo', 'Inter', sans-serif;
  font-weight: 600;
  font-size: 26px;
  letter-spacing: -0.26px;
  color: var(--pf-white);
}

/* ---------- Responsive touches ---------- */
@media (max-width: 900px) {
  .photo-feature__intro {
    align-items: flex-start;
  }
  .photo-feature__stats-row {
    flex-wrap: wrap;
  }
  .photo-feature__stat {
    flex: 1 1 45%;
  }
}

@media (max-width: 520px) {
  .photo-feature__stat {
    flex: 1 1 100%;
  }
}

/* ===== .section-4181 ===== */
    .section-4181 {
      --s4181-white: #ffffff;
      --s4181-cloud-gray: #d1d3d4;
      --s4181-cream: #f7f2ee;
      --s4181-ink: #14110f;
      --s4181-rust: #b0472b;
      --s4181-rust-2: #b4472a;
      --s4181-divider: rgba(20, 17, 15, 0.16);

      max-width: 1920px;
      margin: 0 auto;
      background: rgba(247, 244, 240, 1);
      padding: 100px 95px;
      box-sizing: border-box;
      font-family: 'Archivo', 'Inter', sans-serif;
      color: var(--s4181-ink);
    }

    .section-4181 * {
      box-sizing: border-box;
    }

    .section-4181 .s4181-eyebrow {
      margin: 0 0 7px;
      font-family: 'Archivo', 'Inter', sans-serif;
      font-weight: 600;
      font-size: 11px;
      line-height: normal;
      letter-spacing: 2.2px;
      text-transform: uppercase;
      color: var(--s4181-rust);
    }

    .section-4181 .s4181-heading {
      margin: 0 0 34px;
      font-family: 'Archivo', 'Inter', sans-serif;
      font-weight: 800;
      font-size: 48px;
      line-height: 54px;
      letter-spacing: -1.35px;
      color: var(--s4181-ink);
    }

    .section-4181 .s4181-list {
      display: flex;
      flex-direction: column;
      gap: 1px;
      width: 100%;
      background: var(--s4181-divider);
      list-style: none;
      margin: 0;
      padding: 0;
    }

    .section-4181 .s4181-category {
      display: flex;
      align-items: center;
      width: 100%;
      background: rgba(247, 244, 240, 1);
      border-left: 3px solid var(--s4181-rust);
      padding: 12px 56px;
    }

    .section-4181 .s4181-category span {
      font-family: 'Archivo', 'Inter', sans-serif;
      font-weight: 700;
      font-size: 18px;
      line-height: 24.3px;
      letter-spacing: -0.18px;
      color: var(--s4181-rust-2);
    }

    .section-4181 .s4181-row {
      display: flex;
      align-items: center;
      gap: 18px;
      width: 100%;
      background: rgba(247, 244, 240, 1);
      border-left: 3px solid var(--s4181-rust);
      padding: 20px 24px;
      text-decoration: none;
      color: inherit;
      transition: background-color 0.15s ease;
    }

    .section-4181 a.s4181-row:hover,
    .section-4181 a.s4181-row:focus-visible {
      background: var(--s4181-cloud-gray);
      outline: none;
    }

    .section-4181 a.s4181-row .s4181-title {
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .section-4181 .s4181-row--static {
      cursor: default;
    }

    .section-4181 .s4181-num {
      flex-shrink: 0;
      font-family: 'Roboto Mono', monospace;
      font-weight: 400;
      font-size: 10px;
      letter-spacing: 1.8px;
      text-transform: uppercase;
      color: var(--s4181-rust);
      white-space: nowrap;
    }

    .section-4181 .s4181-title {
      flex: 1 0 0;
      min-width: 0;
      font-family: 'Archivo', 'Inter', sans-serif;
      font-weight: 700;
      font-size: 18px;
      line-height: 24.3px;
      letter-spacing: -0.18px;
      color: var(--s4181-ink);
    }

    .section-4181 .s4181-arrow {
      flex-shrink: 0;
      font-family: 'Roboto Mono', monospace;
      font-weight: 400;
      font-size: 14px;
      color: var(--s4181-ink);
    }

    @media (max-width: 900px) {
      .section-4181 {
        padding: 64px 24px;
      }

      .section-4181 .s4181-heading {
        font-size: 34px;
        line-height: 40px;
      }

      .section-4181 .s4181-category {
        padding: 12px 24px;
      }

      .section-4181 .s4181-row {
        padding: 16px;
        gap: 12px;
      }

      .section-4181 .s4181-title {
        font-size: 16px;
      }
    }

    @media (max-width: 480px) {
      .section-4181 {
        padding: 48px 16px;
      }

      .section-4181 .s4181-heading {
        font-size: 28px;
        line-height: 34px;
      }
    }
  

/* ===== .section-news-alt ===== */
    .section-news-alt {
      --n2-bg: rgba(247, 244, 240, 1);
      --n2-ink: #14110f;
      --n2-body: #3f3b37;
      --n2-muted: #6f6a65;
      --n2-rust: #b0472b;
      --n2-divider: rgba(20, 17, 15, 0.14);

      max-width: 1920px;
      margin: 0 auto;
      background: var(--n2-bg);
      padding: 100px 95px;
      box-sizing: border-box;
      font-family: 'Archivo', 'Inter', sans-serif;
      color: var(--n2-ink);
    }

    .section-news-alt * { box-sizing: border-box; }

    .section-news-alt .news2-eyebrow {
      margin: 0 0 7px;
      font-weight: 600;
      font-size: 11px;
      letter-spacing: 2.2px;
      text-transform: uppercase;
      color: var(--n2-rust);
    }

    .section-news-alt .news2-heading {
      margin: 0 0 34px;
      font-weight: 800;
      font-size: 48px;
      line-height: 54px;
      letter-spacing: -1.35px;
    }

    /* Two columns; each cell is separated from the one above by a hairline */
    .section-news-alt .news2-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: 64px;
    }

    .section-news-alt .news2-item {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      padding: 26px 0 32px;
      border-top: 1px solid var(--n2-divider);
    }

    /* first row of each column has no rule above it */
    .section-news-alt .news2-item:nth-child(1),
    .section-news-alt .news2-item:nth-child(2) {
      border-top: 0;
      padding-top: 0;
    }

    .section-news-alt .news2-meta {
      margin: 0 0 9px;
      font-family: 'Roboto Mono', monospace;
      font-size: 10px;
      letter-spacing: 1.8px;
      text-transform: uppercase;
      color: var(--n2-muted);
    }

    .section-news-alt .news2-date { color: var(--n2-rust); }
    .section-news-alt .news2-sep { padding: 0 6px; }

    .section-news-alt .news2-title {
      margin: 0 0 11px;
      font-weight: 700;
      font-size: 17px;
      line-height: 23px;
      letter-spacing: -0.17px;
      color: var(--n2-ink);
    }

    .section-news-alt .news2-excerpt {
      margin: 0 0 12px;
      font-weight: 400;
      font-size: 13.5px;
      line-height: 21px;
      color: var(--n2-body);
    }

    .section-news-alt .news2-byline {
      margin: 0 0 16px;
      font-family: 'Roboto Mono', monospace;
      font-size: 10px;
      letter-spacing: 1.8px;
      text-transform: uppercase;
      color: var(--n2-muted);
    }

    /* push the button to the bottom so buttons align across a row */
    .section-news-alt .news2-spacer { flex: 1 0 0; }

    .section-news-alt .news2-cta {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 9px 14px;
      border: 1px solid var(--n2-rust);
      font-family: 'Roboto Mono', monospace;
      font-size: 10px;
      letter-spacing: 1.8px;
      text-transform: uppercase;
      text-decoration: none;
      color: var(--n2-ink);
      white-space: nowrap;
      transition: background-color 0.15s ease, color 0.15s ease;
    }

    .section-news-alt .news2-cta:hover,
    .section-news-alt .news2-cta:focus-visible {
      background: var(--n2-rust);
      color: #ffffff;
      outline: none;
    }

    @media (max-width: 900px) {
      .section-news-alt { padding: 64px 24px; }
      .section-news-alt .news2-heading { font-size: 34px; line-height: 40px; }
      .section-news-alt .news2-grid { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
      .section-news-alt .news2-item:nth-child(2) {
        border-top: 1px solid var(--n2-divider);
        padding-top: 26px;
      }
    }

    @media (max-width: 480px) {
      .section-news-alt { padding: 48px 16px; }
      .section-news-alt .news2-heading { font-size: 28px; line-height: 34px; }
    }
  

/* ===== .section-4019 ===== */
  .section-4019 {
    --s4019-bg: #14110f;
    --s4019-border: rgba(247, 242, 238, 0.12);
    --s4019-accent: #e0663f;
    --s4019-title: #f7f2ee;
    --s4019-body: rgba(247, 242, 238, 0.72);

    box-sizing: border-box;
    width: 100%;
    margin: 0 auto;
    background: var(--s4019-bg);
    border-top: 1px solid var(--s4019-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 32px;
    padding: 96px 95px;
    font-family: "Archivo", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }

  .section-4019 *,
  .section-4019 *::before,
  .section-4019 *::after {
    box-sizing: border-box;
  }

  .section-4019__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
  }

  .section-4019__eyebrow {
    margin: 0;
    font-family: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    font-weight: 400;
    font-size: 11px;
    line-height: normal;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    color: var(--s4019-accent);
  }

  .section-4019__title {
    margin: 0;
    font-family: "Archivo", "Inter", sans-serif;
    font-weight: 800;
    font-size: 42px;
    line-height: normal;
    letter-spacing: -1.35px;
    text-transform: uppercase;
    color: var(--s4019-title);
    font-stretch: 100%;
  }

  .section-4019__grid {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1px;
  }

  .section-4019__card {
    background: var(--s4019-bg);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 22px;
    padding: 38px 32px;
  }

  .section-4019__logo {
    position: relative;
    height: 55px;
    max-width: 100%;
    display: flex;
    align-items: center;
  }

  .section-4019__logo--amtrak { width: 133px; }
  .section-4019__logo--canaledge { width: auto; }
  .section-4019__logo--fhp { width: 165px; }
  .section-4019__logo--wsp { width: 116px; }

  .section-4019__logo--amtrak img,
  .section-4019__logo--fhp img,
  .section-4019__logo--wsp img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
    display: block;
  }

  /* Canal Edge has no logo artwork yet - set as a wordmark in its place */
  .section-4019__wordmark {
    font-family: "Archivo", "Inter", sans-serif;
    font-weight: 900;
    /* two lines at this size clear the 55px logo row the other marks sit in */
    font-size: 28px;
    line-height: 1.08;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #ffffff;
  }

  /* BFW asset is exported pre-cropped/oversized in the source design;
     reproduce the designed crop rather than the full source bitmap. */
  .section-4019__logo--bfw {
    width: 102px;
  }

  /* The offsets this rule used to carry trimmed the white margin off the
     source artwork; assets/logo-bfw.png is already trimmed, so it just fits. */
  .section-4019__logo--bfw img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
    display: block;
  }

  .section-4019__card-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7.34px;
    width: 100%;
  }

  .section-4019__role {
    margin: 0;
    font-family: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    font-weight: 400;
    font-size: 14px;
    line-height: normal;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: var(--s4019-accent);
  }

  .section-4019__desc {
    margin: 0;
    font-family: "Archivo", "Inter", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 21.7px;
    color: var(--s4019-body);
  }

  @media (max-width: 1200px) {
    .section-4019__grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 32px 1px;
    }
  }

  @media (max-width: 640px) {
    .section-4019 {
      padding: 64px 24px;
    }

    .section-4019__title {
      font-size: 32px;
    }

    .section-4019__grid {
      grid-template-columns: 1fr;
      gap: 32px;
    }
  }

/* ===== .section-3723 ===== */
  .section-3723 {
    --s3723-bg: #f7f4f0;
    --s3723-border: #e3dcd3;
    --s3723-rule: #dbd3c9;
    --s3723-divider: #cfc6bb;
    --s3723-ink: #15130f;
    --s3723-ink-soft: #3b362f;
    --s3723-muted: #7a7168;
    --s3723-accent: #b4472a;
    --s3723-white: #ffffff;

    box-sizing: border-box;
    width: 100%;
    background: var(--s3723-bg);
    border-top: 1px solid var(--s3723-border);
    border-bottom: 1px solid var(--s3723-border);
    padding: 100px 95px;
    font-family: 'Public Sans', Inter, Arial, sans-serif;
    color: var(--s3723-ink-soft);
  }
  .section-3723 *,
  .section-3723 *::before,
  .section-3723 *::after { box-sizing: border-box; }

  .section-3723 .s3723-container {
    max-width: 1730px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 48px;
    width: 100%;
  }

  /* ---- Header ---- */
  .section-3723 .s3723-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    width: 100%;
  }

  .section-3723 .s3723-heading-group {
    display: flex;
    flex-direction: column;
    gap: 19px;
    min-width: 280px;
    max-width: 480px;
  }

  .section-3723 .s3723-eyebrow {
    margin: 0;
    font-family: 'Archivo', sans-serif;
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    color: var(--s3723-accent);
  }

  .section-3723 .s3723-heading {
    margin: 0;
    font-family: 'Archivo', sans-serif;
    font-weight: 800;
    font-size: 48px;
    line-height: 51px;
    letter-spacing: -1.44px;
    color: var(--s3723-ink);
  }

  .section-3723 .s3723-cta {
    display: inline-flex;
    align-items: center;
    height: 52px;
    padding: 0 26px;
    background: var(--s3723-ink);
    color: var(--s3723-white);
    text-decoration: none;
    font-family: 'Archivo', sans-serif;
    font-weight: 600;
    font-size: 16px;
    letter-spacing: 1.3px;
    text-transform: uppercase;
    white-space: normal;
    line-height: 1.3;
  }
  .section-3723 .s3723-cta:hover { background: #2a2620; }

  /* ---- Accordion ---- */
  .section-3723 .s3723-accordion {
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: var(--s3723-rule);
    width: 100%;
  }

  .section-3723 .s3723-item {
    background: var(--s3723-bg);
    width: 100%;
  }

  .section-3723 .s3723-item-header {
    list-style: none;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 20px;
    padding: 26px 4px;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .section-3723 .s3723-item-header::-webkit-details-marker { display: none; }
  .section-3723 .s3723-item-header::marker { content: ''; }

  .section-3723 .s3723-item-title {
    display: flex;
    align-items: baseline;
    gap: 20px;
    flex-wrap: wrap;
  }

  .section-3723 .s3723-item-num {
    font-family: 'Archivo', sans-serif;
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 1.92px;
    color: var(--s3723-accent);
  }

  .section-3723 .s3723-item-name {
    font-family: 'Archivo', sans-serif;
    font-weight: 700;
    font-size: 26px;
    letter-spacing: -0.52px;
    color: var(--s3723-ink);
  }

  .section-3723 .s3723-item-meta {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-shrink: 0;
  }

  .section-3723 .s3723-scopes {
    font-family: 'Archivo', sans-serif;
    font-weight: 500;
    font-size: 12px;
    letter-spacing: 1.44px;
    text-transform: uppercase;
    color: var(--s3723-muted);
    white-space: nowrap;
  }

  .section-3723 .s3723-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    font-family: 'Archivo', sans-serif;
    font-weight: 400;
    font-size: 22px;
    color: var(--s3723-ink);
  }

  .section-3723 .s3723-list {
    list-style: none;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 40px;
    row-gap: 10px;
    padding: 0 4px 32px;
  }

  .section-3723 .s3723-list li {
    border-left: 2px solid var(--s3723-divider);
    padding-left: 16px;
    font-family: 'Public Sans', Inter, Arial, sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 24px;
    color: var(--s3723-ink-soft);
  }

  /* ---- Responsive ---- */
  @media (max-width: 1100px) {
    .section-3723 { padding: 72px 48px; }
    .section-3723 .s3723-list { grid-template-columns: repeat(2, 1fr); }
  }

  @media (max-width: 700px) {
    .section-3723 { padding: 56px 20px; }
    .section-3723 .s3723-heading { font-size: 34px; line-height: 38px; }
    .section-3723 .s3723-header { align-items: flex-start; }
    .section-3723 .s3723-cta { height: auto; padding: 14px 20px; }
    .section-3723 .s3723-item-header { flex-wrap: wrap; gap: 12px; }
    .section-3723 .s3723-list { grid-template-columns: 1fr; }
    .section-3723 .s3723-item-name { font-size: 21px; }
  }

/* ===== .faq ===== */
  .faq {
    --faq-bg: #f7f4f0;
    --faq-white: #ffffff;
    --faq-cloud: #d1d3d4;
    --faq-ink: #15130f;
    --faq-ink-70: rgba(21, 19, 15, 0.7);
    --faq-ink-50: rgba(21, 19, 15, 0.5);
    --faq-ink-42: rgba(21, 19, 15, 0.42);
    --faq-ink-38: rgba(21, 19, 15, 0.38);
    --faq-ink-14: rgba(21, 19, 15, 0.14);
    --faq-accent: #b4472a;
    --faq-body: #5b5853;
    --faq-font-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
    --faq-font-mono: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    --faq-font-body: 'Public Sans', -apple-system, 'Segoe UI', Roboto, sans-serif;

    background: var(--faq-bg);
    color: var(--faq-ink);
    box-sizing: border-box;
  }

  .faq *,
  .faq *::before,
  .faq *::after {
    box-sizing: border-box;
  }

  .faq__container {
    max-width: 1920px;
    margin: 0 auto;
    padding: 66px 95px 96px;
    display: flex;
    flex-direction: column;
    gap: 38px;
  }

  /* ---------- Head ---------- */

  .faq__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px 32px;
  }

  .faq__head-left {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .faq__eyebrow {
    margin: 0;
    font-family: var(--faq-font-mono);
    font-weight: 400;
    font-size: 11px;
    line-height: normal;
    letter-spacing: 3.74px;
    text-transform: uppercase;
    color: var(--faq-accent);
  }

  .faq__title {
    margin: 0;
    max-width: 837px;
    font-family: var(--faq-font-display);
    font-weight: 800;
    font-size: 50px;
    line-height: 51px;
    letter-spacing: -1.25px;
    color: var(--faq-ink);
  }

  .faq__note {
    margin: 0 0 6px;
    font-family: var(--faq-font-mono);
    font-weight: 400;
    font-size: 10px;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    color: var(--faq-ink-42);
    white-space: nowrap;
  }

  /* ---------- List ---------- */

  .faq__list {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 2px 0;
  }

  .faq__group {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px 24px;
    padding: 28px 0 10px;
    font-family: var(--faq-font-mono);
    font-size: 10px;
    text-transform: uppercase;
  }

  .faq__group:first-child {
    padding-top: 20px;
  }

  .faq__group-name {
    color: var(--faq-accent);
    letter-spacing: 3.4px;
  }

  .faq__group-count {
    color: var(--faq-ink-38);
    letter-spacing: 2.4px;
  }

  /* ---------- Accordion item ---------- */

  .faq__item {
    width: 100%;
  }

  .faq__item + .faq__item {
    border-top: 1px solid var(--faq-ink-14);
  }

  .faq__summary {
    display: flex;
    align-items: flex-start;
    gap: 22px;
    padding: 19px 0;
    cursor: pointer;
    list-style: none;
  }

  .faq__summary::-webkit-details-marker {
    display: none;
  }

  .faq__num {
    flex: 0 0 44px;
    padding-top: 3px;
    font-family: var(--faq-font-mono);
    font-weight: 400;
    font-size: 11px;
    letter-spacing: 1.1px;
    color: var(--faq-accent);
  }

  .faq__q {
    flex: 1 1 auto;
    padding-right: 44px;
    font-family: var(--faq-font-display);
    font-weight: 700;
    font-size: 18px;
    line-height: 25.2px;
    letter-spacing: -0.216px;
    color: var(--faq-ink);
    transition: color 0.15s ease;
  }

  .faq__item[open] .faq__q {
    color: var(--faq-accent);
  }

  .faq__toggle {
    position: relative;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    margin-left: auto;
    color: var(--faq-ink-50);
    transition: color 0.15s ease;
  }

  .faq__toggle::before,
  .faq__toggle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    background: currentColor;
    transform: translate(-50%, -50%);
  }

  .faq__toggle::before {
    width: 13px;
    height: 1.5px;
  }

  .faq__toggle::after {
    width: 1.5px;
    height: 13px;
  }

  .faq__item[open] .faq__toggle {
    color: var(--faq-accent);
  }

  .faq__item[open] .faq__toggle::after {
    display: none;
  }

  .faq__answer {
    margin: 0 0 24px 66px;
    max-width: 815px;
    padding-left: 20px;
    border-left: 1px solid var(--faq-accent);
  }

  .faq__answer p {
    margin: 0;
    font-family: var(--faq-font-body);
    font-weight: 500;
    font-size: 17px;
    line-height: 24px;
    color: var(--faq-body);
  }

  .faq__answer p + p {
    margin-top: 14px;
  }

  .faq__answer a {
    color: var(--faq-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
    word-break: break-word;
  }

  /* ---------- Responsive ---------- */

  @media (max-width: 900px) {
    .faq__container {
      padding: 48px 40px 64px;
      gap: 28px;
    }

    .faq__title {
      font-size: 34px;
      line-height: 38px;
      letter-spacing: -0.6px;
    }

    .faq__q {
      font-size: 16px;
      line-height: 22px;
      padding-right: 16px;
    }

    .faq__answer {
      margin-left: 44px;
    }
  }

  @media (max-width: 600px) {
    .faq__container {
      padding: 40px 20px 56px;
      gap: 22px;
    }

    .faq__head {
      align-items: flex-start;
    }

    .faq__note {
      padding-bottom: 0;
    }

    .faq__title {
      font-size: 28px;
      line-height: 32px;
    }

    .faq__summary {
      gap: 14px;
      padding: 16px 0;
    }

    .faq__num {
      flex-basis: 28px;
    }

    .faq__q {
      font-size: 15px;
      line-height: 20px;
      padding-right: 8px;
    }

    .faq__answer {
      margin-left: 0;
      max-width: 100%;
    }
  }

/* ===== .site-footer ===== */
    /* .site-footer — scoped styles for the "Contact" section (Figma node 5284:3689) */
    .site-footer {
      --footer-bg: #15130f;
      --footer-panel-bg: rgba(14, 13, 11, 0.86);
      --footer-eyebrow: #e1a08b;
      --footer-heading: #ffffff;
      --footer-label: #b7aea3;
      --footer-border: rgba(255, 255, 255, 0.35);
      --footer-accent: #b4472a;
      --footer-white: #ffffff;
      --footer-cloud-gray: #d1d3d4;
      --footer-error: #ff9c8a;
      --footer-success: #9fd6a0;

      position: relative;
      display: block;
      width: 100%;
      margin: 0 auto;
      background-color: var(--footer-bg);
      overflow: hidden;
      font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
      box-sizing: border-box;
    }

    .site-footer *,
    .site-footer *::before,
    .site-footer *::after {
      box-sizing: border-box;
    }

    /* Zoomed, dimmed background photograph. assets/contact-bg.png ships with
       the zoom and the dimming already composited in, so this layer is opaque;
       the 0.14 that used to live here dimmed the undimmed source artwork. */
    .site-footer__bg {
      position: absolute;
      inset: 0;
      overflow: hidden;
      pointer-events: none;
    }

    /* The over-height offset this rule used to carry cropped the source
       photograph down to this band; assets/contact-bg.png is already that
       crop, so it fills the footer directly. */
    .site-footer__bg-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      max-width: none;
      object-fit: cover;
    }

    .site-footer__container {
      position: relative;
      z-index: 1;
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      justify-content: center;
      gap: 80px;
      width: 100%;
      padding: 104px 120px;
    }

    /* Left column: eyebrow + heading */
    .site-footer__intro {
      display: flex;
      flex: 1 1 320px;
      flex-direction: column;
      align-items: flex-start;
      gap: 19px;
      min-width: 280px;
      max-width: 520px;
    }

    .site-footer__eyebrow {
      margin: 0;
      font-size: 11px;
      font-weight: 600;
      line-height: normal;
      letter-spacing: 2.2px;
      text-transform: uppercase;
      color: var(--footer-eyebrow);
    }

    .site-footer__heading {
      margin: 0;
      font-size: 51.8px;
      font-weight: 800;
      line-height: 52.88px;
      letter-spacing: -1.555px;
      color: var(--footer-heading);
    }

    .site-footer__intro-text {
      margin: 0;
      font-size: 17px;
      font-weight: 400;
      line-height: 1.55;
      color: var(--footer-cloud-gray);
    }

    /* Right column: contact form panel */
    .site-footer__panel {
      display: flex;
      flex: 1 1 480px;
      flex-direction: column;
      align-items: stretch;
      gap: 24px;
      min-width: 300px;
      max-width: 700px;
      padding: 36px;
      background-color: var(--footer-panel-bg);
    }

    .site-footer__form {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 20px;
      width: 100%;
      margin: 0;
    }

    .site-footer__field {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 8px;
    }

    .site-footer__field--full {
      grid-column: 1 / -1;
    }

    .site-footer__label {
      font-size: 11px;
      font-weight: 600;
      line-height: normal;
      letter-spacing: 1.76px;
      text-transform: uppercase;
      color: var(--footer-label);
    }

    .site-footer__input {
      width: 100%;
      height: 38px;
      padding: 0 0 8px;
      background: transparent;
      border: none;
      border-bottom: 1px solid var(--footer-border);
      color: var(--footer-white);
      font-family: inherit;
      font-size: 14px;
      border-radius: 0;
    }

    .site-footer__input:focus,
    .site-footer__textarea:focus {
      outline: none;
      border-color: var(--footer-accent);
    }

    .site-footer__textarea {
      width: 100%;
      height: 102px;
      padding: 10px 12px;
      background: transparent;
      border: 1px solid var(--footer-border);
      color: var(--footer-white);
      font-family: inherit;
      font-size: 14px;
      resize: vertical;
    }

    .site-footer__input::placeholder,
    .site-footer__textarea::placeholder {
      color: var(--footer-cloud-gray);
    }

    .site-footer__submit {
      grid-column: 1 / -1;
      height: 52px;
      padding: 1px 0;
      background-color: var(--footer-accent);
      border: none;
      color: var(--footer-white);
      font-family: inherit;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 1.56px;
      text-transform: uppercase;
      text-align: center;
      cursor: pointer;
      transition: background-color 0.15s ease;
    }

    .site-footer__submit:hover,
    .site-footer__submit:focus-visible {
      background-color: #9c3c22;
    }

    /* Off-screen rather than hidden, so bots still see it. */
    .site-footer__hp {
      position: absolute;
      left: -9999px;
      width: 1px;
      height: 1px;
      overflow: hidden;
    }

    .site-footer__turnstile {
      grid-column: 1 / -1;
      min-height: 65px;
    }

    .site-footer__submit[disabled] {
      opacity: 0.6;
      cursor: progress;
    }

    .site-footer__input[aria-invalid="true"],
    .site-footer__textarea[aria-invalid="true"] {
      border-color: var(--footer-error);
    }

    .site-footer__field-error {
      font-size: 12px;
      line-height: 1.4;
      color: var(--footer-error);
    }

    .site-footer__status {
      grid-column: 1 / -1;
      margin: 0;
      font-size: 13px;
      line-height: 1.5;
      color: var(--footer-cloud-gray);
    }

    .site-footer__status[data-state="error"] {
      color: var(--footer-error);
    }

    .site-footer__status[data-state="ok"] {
      color: var(--footer-success);
    }

    .site-footer__email-line {
      margin: 0;
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 1.76px;
      text-transform: uppercase;
      text-align: center;
      color: var(--footer-label);
    }

    .site-footer__email-link {
      color: var(--footer-accent);
      font-weight: 400;
      text-decoration: underline;
    }

    /* Light responsive touches */
    @media (max-width: 960px) {
      .site-footer__container {
        padding: 72px 40px;
        gap: 48px;
      }

      .site-footer__heading {
        font-size: 40px;
        line-height: 1.15;
      }
    }

    @media (max-width: 600px) {
      .site-footer__container {
        padding: 56px 20px;
      }

      .site-footer__panel {
        padding: 24px;
        min-width: 0;
      }

      .site-footer__form {
        grid-template-columns: 1fr;
      }

      .site-footer__field--full {
        grid-column: 1;
      }

      .site-footer__submit {
        grid-column: 1;
      }
    }
  

