
  :root {
    --ivory: #faf9f6;
    --paper: #f3f0e9;
    --card: #ffffff;
    --ink: #201d19;
    --ink-soft: #3a362f;
    --stone: #6d675e;
    --bronze: #9a825a;
    --bronze-dark: #7e6a47;
    --bronze-light: #d9c9a8;
    --hairline: #e6e1d6;
    --dark: #1b1916;
    --serif: "Cormorant Garamond", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
    --sans: "Jost", "Segoe UI", system-ui, -apple-system, sans-serif;
    --maxw: 1160px;
    --pad: clamp(1.25rem, 4vw, 3rem);
  }

  html { scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
  body {
    font-family: var(--sans);
    font-weight: 300;
    color: var(--ink);
    background: var(--ivory);
    line-height: 1.7;
    margin: 0;
    -webkit-font-smoothing: antialiased;
  }
  h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: 1.15; margin: 0; text-wrap: balance; }
  p { margin: 0; }
  a { color: inherit; text-decoration: none; }
  img { max-width: 100%; }
  .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

  .wrap { max-width: var(--maxw); margin: 0 auto; padding-left: var(--pad); padding-right: var(--pad); }

  .kicker {
    display: inline-block; font-size: 0.72rem; font-weight: 500;
    letter-spacing: 0.32em; text-transform: uppercase; color: var(--bronze-dark);
    margin-bottom: 1.1rem;
  }
  .kicker::after {
    content: ""; display: inline-block; width: 2.4rem; height: 1px;
    background: var(--bronze); margin-left: 0.9rem; vertical-align: middle; opacity: 0.6;
  }
  .section--dark .kicker, .hero .kicker { color: var(--bronze-light); }
  .section-title { font-size: clamp(1.9rem, 3.6vw, 2.8rem); margin-bottom: 1.2rem; }
  .lede { font-size: 1.06rem; color: var(--stone); max-width: 46rem; }

  .btn {
    display: inline-block; font-size: 0.78rem; font-weight: 500; letter-spacing: 0.22em;
    text-transform: uppercase; padding: 0.95rem 2.2rem; border: 1px solid var(--ink);
    color: var(--ink); background: transparent; cursor: pointer; font-family: var(--sans);
    transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  }
  .btn:hover { background: var(--ink); color: var(--ivory); }
  .btn:focus-visible { outline: 2px solid var(--bronze); outline-offset: 3px; }
  .btn--solid { background: var(--ink); color: var(--ivory); }
  .btn--solid:hover { background: var(--bronze-dark); border-color: var(--bronze-dark); }
  .btn--light { border-color: var(--ivory); color: var(--ivory); }
  .btn--light:hover { background: var(--ivory); color: var(--ink); }
  .btn--bronze { border-color: var(--bronze); color: var(--bronze-light); }
  .btn--bronze:hover { background: var(--bronze); color: #fff; }

  /* Header */
  .site-header { position: fixed; inset: 0 0 auto 0; z-index: 100; transition: background 0.35s ease, box-shadow 0.35s ease; }
  .site-header .bar {
    width: calc(100% - 2rem); max-width: 1480px; box-sizing: border-box;
    margin: 0 auto; padding: 0.9rem clamp(0.9rem, 1.8vw, 1.6rem);
    display: flex; align-items: center; justify-content: space-between;
    gap: clamp(1.5rem, 3vw, 3.5rem);
    transition: padding 0.35s ease;
  }
  .site-header.is-solid { background: rgba(250,249,246,0.96); box-shadow: 0 1px 0 var(--hairline); backdrop-filter: blur(8px); }
  .site-header.is-solid .bar { padding-top: 0.58rem; padding-bottom: 0.58rem; }
  .brand { font-family: var(--serif); font-size: 1.4rem; font-weight: 600; letter-spacing: 0.06em; color: var(--ivory); line-height: 1.1; }
  .brand small { display: block; font-family: var(--sans); font-size: 0.55rem; font-weight: 400; letter-spacing: 0.32em; text-transform: uppercase; color: rgba(250,249,246,0.65); margin-top: 0.18rem; }
  .site-header .brand {
    flex: 0 0 auto; font-size: clamp(1.35rem, 1.7vw, 1.7rem);
    letter-spacing: 0.035em; line-height: 1.05;
  }
  .site-header .brand small {
    font-size: 0.52rem; letter-spacing: 0.27em; white-space: nowrap; margin-top: 0.28rem;
  }
  .site-header.is-solid .brand { color: var(--ink); }
  .site-header.is-solid .brand small { color: var(--stone); }
  .nav { display: flex; align-items: center; justify-content: flex-end; gap: clamp(0.82rem, 1.35vw, 1.45rem); min-width: 0; margin-left: auto; }
  .nav a {
    font-size: 0.69rem; letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap;
    color: rgba(250,249,246,0.85); padding: 0.3rem 0; border-bottom: 1px solid transparent;
    transition: border-color 0.25s ease, color 0.25s ease;
  }
  .nav-group { position: relative; }
  .nav-group__toggle {
    border: 0; border-bottom: 1px solid transparent; background: transparent; cursor: pointer;
    color: rgba(250,249,246,0.85); font: inherit; font-size: 0.69rem; font-weight: 300;
    letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap;
    padding: 0.3rem 0; font-family: var(--sans);
  }
  .nav-group__toggle::after {
    content: ""; display: inline-block; width: 0.34rem; height: 0.34rem;
    margin-left: 0.55rem; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor;
    color: var(--bronze-light); transform: translateY(-0.14rem) rotate(45deg); transition: transform 0.2s ease;
  }
  .nav-group.is-open .nav-group__toggle::after { transform: translateY(0.05rem) rotate(-135deg); }
  .site-header.is-solid .nav-group__toggle { color: var(--ink-soft); }
  .nav-group__toggle:focus-visible { outline: 2px solid var(--bronze); outline-offset: 4px; }
  .nav-group__menu {
    position: absolute; top: calc(100% + .65rem); left: 50%; min-width: 16rem; padding: .75rem 1rem;
    background: rgba(250,249,246,.98); border: 1px solid var(--hairline); box-shadow: 0 16px 40px rgba(27,25,22,.15);
    transform: translate(-50%,-.35rem); opacity: 0; visibility: hidden; pointer-events: none;
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  }
  .nav-group__menu a, .site-header .nav-group__menu a {
    display: block; color: var(--ink-soft); border: 0; padding: .55rem .25rem; letter-spacing: .12em;
  }
  .nav-group__menu a:hover, .nav-group__menu a[aria-current="page"] { color: var(--bronze-dark); }
  .nav-group:hover .nav-group__menu, .nav-group:focus-within .nav-group__menu, .nav-group.is-open .nav-group__menu {
    opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%,0);
  }
  .site-header.is-solid .nav a { color: var(--ink-soft); }
  .nav a:hover, .nav a.active, .nav a[aria-current="page"] { border-bottom-color: var(--bronze); color: var(--bronze); }
  .nav a.nav-cta { border: 1px solid rgba(250,249,246,0.6); color: var(--ivory); padding: 0.62rem 0.95rem; transition: background 0.25s ease, color 0.25s ease; }
  .nav a.nav-cta:hover { background: var(--ivory); color: var(--ink); border-bottom-color: transparent; }
  .site-header.is-solid .nav a.nav-cta { border-color: var(--bronze); color: var(--bronze); }
  .site-header.is-solid .nav a.nav-cta:hover { background: var(--bronze); color: #fff; }
  .nav-toggle { display: none; background: none; border: none; cursor: pointer; width: 2.2rem; height: 2.2rem; position: relative; z-index: 120; color: var(--ivory); }
  .site-header.is-solid .nav-toggle { color: var(--ink); }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after {
    content: ""; position: absolute; left: 0.3rem; right: 0.3rem; height: 2px;
    background: currentColor; transition: transform 0.3s ease, opacity 0.3s ease;
  }
  .nav-toggle span { top: 50%; }
  .nav-toggle span::before { top: -7px; } .nav-toggle span::after { top: 7px; }
  body.menu-open .nav-toggle { color: var(--ink); }
  body.menu-open .nav-toggle span { background: transparent; }
  body.menu-open .nav-toggle span::before { transform: translateY(7px) rotate(45deg); }
  body.menu-open .nav-toggle span::after { transform: translateY(-7px) rotate(-45deg); }
  @media (max-width: 1180px) {
    .site-header .bar { width: 100%; padding: 0.82rem var(--pad); gap: 1rem; }
    .site-header .brand { min-width: 0; font-size: clamp(1.12rem, 4.5vw, 1.4rem); }
    .site-header .brand small { font-size: 0.48rem; letter-spacing: 0.21em; white-space: normal; }
    .nav-toggle { display: block; }
    body.menu-open .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; }
    .nav {
      position: fixed; inset: 0 0 auto; width: 100%; height: 100vh; height: 100dvh;
      box-sizing: border-box; padding: calc(5rem + env(safe-area-inset-top)) var(--pad) calc(2rem + env(safe-area-inset-bottom));
      overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
      flex-direction: column; justify-content: flex-start; gap: 1.55rem; margin-left: 0;
      background: var(--ivory); transform: translateX(100%); visibility: hidden; pointer-events: none;
      transition: transform 0.4s ease, visibility 0s linear 0.4s; z-index: 110;
    }
    body.menu-open .nav { transform: translateX(0); visibility: visible; pointer-events: auto; transition-delay: 0s; }
    body.menu-open { overflow: hidden; }
    .nav a, .site-header .nav a { font-size: 1rem; color: var(--ink); }
    .nav-group { width: min(18rem, 80vw); text-align: center; }
    .nav-group__toggle { color: var(--ink); font-size: 1rem; }
    .nav-group__menu { position: static; min-width: 0; padding: .35rem 0 0; border: 0; box-shadow: none; background: transparent; transform: none; display: none; opacity: 1; visibility: visible; pointer-events: auto; }
    .nav-group:hover .nav-group__menu, .nav-group:focus-within .nav-group__menu { transform: none; }
    .nav-group.is-open .nav-group__menu { display: block; transform: none; }
    .nav-group__menu a, .site-header .nav-group__menu a { font-size: .82rem; padding: .35rem 0; }
  }
  @media (max-width: 420px) {
    .site-header .brand { font-size: 1.05rem; letter-spacing: 0.02em; }
    .site-header .brand small { font-size: 0.44rem; letter-spacing: 0.16em; }
  }

  /* Textures */
  .tex { display: block; width: 100%; height: 100%; }

  /* Hero */
  .hero { position: relative; min-height: 68vh; display: flex; align-items: center; color: var(--ivory); background: var(--dark); overflow: hidden; }
  .hero .bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.52; }
  .hero .shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(27,25,22,0.92) 0%, rgba(27,25,22,0.72) 47%, rgba(27,25,22,0.36) 100%), linear-gradient(to bottom, rgba(27,25,22,0.12), var(--dark)); }
  .hero .wrap { position: relative; z-index: 2; padding-top: 8rem; padding-bottom: 6rem; }
  .hero h1 { font-size: clamp(2.5rem, 5.8vw, 4.5rem); margin-bottom: 1.4rem; max-width: 18em; }
  .hero-title-line { display: block; }
  .hero-title-line + .hero-title-line { margin-top: 0.08em; font-size: clamp(2rem, 4vw, 3.4rem); }
  .hero .lede { color: rgba(250,249,246,0.75); margin-bottom: 2.6rem; }
  .hero .actions { display: flex; flex-wrap: wrap; gap: 1rem; }

  /* Sections */
  .strategy-band {
    padding: clamp(1.4rem, 3vw, 2.2rem) 0;
    text-align: center;
    background: var(--ivory);
    border-bottom: 1px solid var(--hairline);
  }
  .strategy-band p {
    max-width: 58rem;
    margin: 0 auto;
    font-family: var(--serif);
    font-size: clamp(1.2rem, 2.2vw, 1.55rem);
    line-height: 1.4;
    color: var(--ink-soft);
    text-wrap: balance;
  }
  .strategy-band strong { color: var(--ink); font-weight: 600; }
  .section { padding: clamp(4rem, 9vw, 7rem) 0; }
  .section--paper { background: var(--paper); }
  .section--dark { background: var(--dark); color: var(--ivory); }
  .section--dark .lede { color: rgba(250,249,246,0.7); }
  .section--tight { padding: clamp(2.5rem, 5vw, 4rem) 0; }
  .center { text-align: center; }
  .center .lede { margin-left: auto; margin-right: auto; }
  .mt-1 { margin-top: 1rem; } .mt-2 { margin-top: 2rem; } .mt-3 { margin-top: 3rem; }

  .positioning-strip { padding: 0; background: var(--paper); border-bottom: 1px solid var(--hairline); }
  .positioning-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .positioning-item {
    min-width: 0; padding: clamp(1.8rem, 3.8vw, 2.8rem) clamp(1rem, 2.4vw, 1.8rem);
    border-left: 1px solid var(--hairline); transition: background 0.25s ease;
  }
  .positioning-item:first-child { border-left: 0; }
  .positioning-item:hover, .positioning-item:focus-visible { background: rgba(255,255,255,0.58); }
  .positioning-item:focus-visible { outline: 2px solid var(--bronze); outline-offset: -2px; }
  .positioning-kicker {
    display: block; margin-bottom: 0.55rem; font-size: 0.56rem; font-weight: 500;
    letter-spacing: 0.24em; line-height: 1.4; text-transform: uppercase; color: var(--stone);
  }
  .positioning-title {
    display: block; font-family: var(--serif); font-size: clamp(1.55rem, 2.35vw, 2.1rem);
    font-weight: 500; line-height: 1.05; color: var(--bronze-dark); text-wrap: balance;
  }
  .positioning-copy { display: block; margin-top: 0.65rem; font-size: 0.78rem; line-height: 1.5; color: var(--stone); }
  @media (max-width: 860px) {
    .positioning-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .positioning-item:nth-child(odd) { border-left: 0; }
    .positioning-item:nth-child(n+3) { border-top: 1px solid var(--hairline); }
  }
  @media (max-width: 520px) {
    .positioning-grid { grid-template-columns: 1fr; }
    .positioning-item { border-left: 0; border-top: 1px solid var(--hairline); }
    .positioning-item:first-child { border-top: 0; }
  }

  .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.8rem; }
  .grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.8rem; }
  @media (max-width: 980px) { .grid-3 { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 641px) { .grid-3, .grid-2 { grid-template-columns: 1fr; } }
  .card { background: var(--card); border: 1px solid var(--hairline); display: flex; flex-direction: column; transition: transform 0.35s ease, box-shadow 0.35s ease; }
  .card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px -24px rgba(32,29,25,0.28); }
  .card-media { aspect-ratio: 4/3; overflow: hidden; }
  .card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
  .card:hover .card-media img { transform: scale(1.025); }
  .card-body { padding: 1.6rem 1.6rem 1.9rem; flex: 1; }
  .card-body h3 { font-size: 1.4rem; margin-bottom: 0.5rem; }
  .card-body p { font-size: 0.94rem; color: var(--stone); }
  .card-tag { font-size: 0.62rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--bronze-dark); margin-bottom: 0.6rem; display: block; }
  .card-link {
    display: inline-block; margin-top: 0.9rem; font-size: 0.68rem; letter-spacing: 0.22em;
    text-transform: uppercase; color: var(--bronze-dark); border-bottom: 1px solid transparent;
    transition: border-color 0.25s ease;
  }
  .card-link:hover { border-bottom-color: var(--bronze-dark); }
  .section--dark .card-link, .section--dark .card-tag { color: var(--bronze-light); }
  .section--dark .card { background: rgba(250,249,246,0.05); border-color: rgba(250,249,246,0.15); }
  .section--dark .card-body h3 { color: var(--ivory); }
  .section--dark .card-body p { color: rgba(250,249,246,0.65); }

  .role-card { position: relative; overflow: hidden; }
  .role-card::before { content: ""; display: block; width: 3rem; height: 1px; background: var(--bronze); margin: 1.6rem 1.6rem 0; }
  .role-card .card-body { padding-top: 1.2rem; }
  .role-card .card-link, .sample-link { cursor: pointer; }

  .project-card .card-body { display: flex; flex-direction: column; }
  .project-card .card-link { margin-top: auto; padding-top: 1rem; align-self: flex-start; }
  .project-mark { aspect-ratio: 4/3; display: grid; place-items: center; background: linear-gradient(135deg, rgba(154,130,90,0.18), rgba(250,249,246,0.03)); border-bottom: 1px solid rgba(250,249,246,0.12); }
  .project-mark span { font-family: var(--serif); font-size: clamp(2.4rem, 5vw, 4rem); color: rgba(217,201,168,0.7); letter-spacing: 0.08em; }
  .project-meta { margin: 1.2rem 0 0; border-top: 1px solid rgba(250,249,246,0.14); }
  .project-meta div { display: grid; grid-template-columns: 5.5rem 1fr; gap: 0.7rem; padding: 0.65rem 0; border-bottom: 1px solid rgba(250,249,246,0.1); }
  .project-meta dt { font-size: 0.58rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bronze-light); }
  .project-meta dd { margin: 0; font-size: 0.82rem; color: rgba(250,249,246,0.72); }

  .sourcing-lead { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
  .sourcing-image { position: relative; min-height: 23rem; }
  .sourcing-image img { display: block; width: 100%; min-height: 23rem; height: 100%; object-fit: cover; }
  .sourcing-image::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(154,130,90,0.5); transform: translate(-0.7rem, 0.7rem); pointer-events: none; }
  @media (max-width: 800px) { .sourcing-lead { grid-template-columns: 1fr; } .sourcing-image, .sourcing-image img { min-height: 18rem; } }

  .form-grid fieldset { border: 0; padding: 0; margin: 0; min-inline-size: 0; }
  .choice-title { display: block; width: 100%; font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--stone); margin-bottom: 0.65rem; padding: 0; }
  .inquiry-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.8rem; }
  @media (max-width: 720px) { .inquiry-grid { grid-template-columns: 1fr; } }
  .shipping-fields { padding: 1.2rem; border: 1px solid var(--hairline); background: var(--paper); }
  .shipping-fields[hidden] { display: none; }
  .inline-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
  .text-link { font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--bronze-dark); border-bottom: 1px solid currentColor; }

  .spec-table { width: 100%; border-collapse: collapse; max-width: 720px; margin: 0 auto; }
  .spec-table th, .spec-table td { text-align: left; padding: 1rem 0.5rem; border-bottom: 1px solid var(--hairline); }
  .spec-table th { font-family: var(--sans); font-size: 0.7rem; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: var(--stone); }
  .spec-table td { font-family: var(--serif); font-size: 1.3rem; font-variant-numeric: tabular-nums; }

  .service-list { border-top: 1px solid var(--hairline); }
  .service { display: grid; grid-template-columns: 4rem 1fr 2fr; gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--hairline); align-items: baseline; }
  .service .idx { font-family: var(--serif); font-size: 1.4rem; color: var(--bronze); }
  .service h3 { font-size: 1.45rem; }
  .service p { color: var(--stone); font-size: 0.96rem; }
  @media (max-width: 780px) { .service { grid-template-columns: 3rem 1fr; } .service p { grid-column: 2; } }

  .form-grid { display: grid; gap: 1.2rem; }
  .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
  @media (max-width: 560px) { .form-row { grid-template-columns: 1fr; } }
  .field label { display: block; font-size: 0.68rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--stone); margin-bottom: 0.45rem; }
  .field input, .field textarea, .field select {
    width: 100%; box-sizing: border-box; padding: 0.85rem 1rem; border: 1px solid var(--hairline);
    background: var(--card); font-family: var(--sans); font-size: 0.95rem; color: var(--ink);
    transition: border-color 0.25s ease;
  }
  .field input:focus, .field textarea:focus, .field select:focus { outline: none; border-color: var(--bronze); }
  .field textarea { min-height: 8.5rem; resize: vertical; }
  .form-note { font-size: 0.84rem; color: var(--stone); }
  .form-note a { color: var(--bronze-dark); text-decoration: underline; }

  .check-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.8rem; }
  @media (max-width: 560px) { .check-grid { grid-template-columns: 1fr; } }
  .check {
    display: flex; align-items: center; gap: 0.7rem; border: 1px solid var(--hairline);
    background: var(--card); padding: 0.85rem 1rem; cursor: pointer; font-size: 0.92rem;
    transition: border-color 0.25s ease;
  }
  .check:hover { border-color: var(--bronze); }
  .check input { accent-color: var(--bronze); width: 1.05rem; height: 1.05rem; flex-shrink: 0; }
  .check:has(input:checked) { border-color: var(--bronze); background: #faf6ee; }

  .faq { border-top: 1px solid var(--hairline); }
  .faq details { border-bottom: 1px solid var(--hairline); }
  .faq summary {
    cursor: pointer; list-style: none; display: flex; justify-content: space-between;
    align-items: baseline; gap: 1.5rem; padding: 1.4rem 0;
    font-family: var(--serif); font-size: 1.35rem; font-weight: 500;
  }
  .faq summary::-webkit-details-marker { display: none; }
  .faq summary::after { content: "+"; font-family: var(--sans); font-weight: 300; color: var(--bronze); font-size: 1.3rem; line-height: 1; }
  .faq details[open] summary::after { content: "\2013"; }
  .faq details p { padding: 0 0 1.5rem; color: var(--stone); font-size: 0.98rem; max-width: 46rem; }

  .site-footer { background: var(--dark); color: rgba(250,249,246,0.72); padding: 4rem 0 2rem; font-size: 0.9rem; }
  .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1.4fr; gap: 2.5rem; padding-bottom: 2.8rem; border-bottom: 1px solid rgba(250,249,246,0.14); }
  @media (max-width: 700px) { .footer-grid { grid-template-columns: 1fr; } }
  .site-footer .brand, .site-footer .brand small { color: var(--ivory); }
  .site-footer h4 { font-family: var(--sans); font-size: 0.68rem; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase; color: var(--bronze); margin: 0 0 1rem; }
  .site-footer ul { list-style: none; margin: 0; padding: 0; }
  .site-footer li { margin-bottom: 0.5rem; }
  .site-footer a:hover { color: var(--ivory); }
  .footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; font-size: 0.76rem; color: rgba(250,249,246,0.45); }

  .js .reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.8s ease, transform 0.8s ease; }
  .js .reveal.is-visible { opacity: 1; transform: none; }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .js .reveal { opacity: 1; transform: none; transition: none; }
    .card, .card:hover { transform: none; }
  }


/* Multi-page SEO site extensions */
.page-hero { position: relative; min-height: 34rem; display: flex; align-items: end; overflow: hidden; background: var(--dark); color: var(--ivory); }
.page-hero__picture { position: absolute; inset: 0; width: 100%; height: 100%; }
.page-hero__picture img { width: 100%; height: 100%; object-fit: cover; opacity: .5; }
.page-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(27,25,22,.94), rgba(27,25,22,.68) 55%, rgba(27,25,22,.3)), linear-gradient(to top, rgba(27,25,22,.7), transparent 55%); }
.page-hero__content { position: relative; z-index: 1; padding-top: 10rem; padding-bottom: 4.5rem; }
.page-hero h1 { font-size: clamp(2.5rem, 5.5vw, 4.5rem); max-width: 15em; margin-bottom: 1.2rem; }
.page-hero .lede { color: rgba(250,249,246,.8); max-width: 48rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; padding-top: 1rem; padding-bottom: 1rem; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--stone); }
.breadcrumbs a:hover { color: var(--bronze-dark); }
.split { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(280px,.92fr); gap: clamp(2.5rem,6vw,6rem); align-items: center; }
.split--top { align-items: start; }
.split-media picture, .split-media img { display: block; width: 100%; }
.split-media img { aspect-ratio: 4/3; object-fit: cover; }
.prose { max-width: 48rem; }
.prose p + p { margin-top: 1.1rem; }
.prose h2 { font-size: clamp(1.8rem,3vw,2.45rem); margin: 2.6rem 0 1rem; }
.prose h3 { font-size: 1.45rem; margin: 2rem 0 .7rem; }
.prose ul, .prose ol { padding-left: 1.2rem; color: var(--stone); }
.prose li + li { margin-top: .45rem; }
.facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.page-fis .facts, .page-saban .facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
.fact { padding: 1.4rem; border: 1px solid var(--hairline); background: var(--card); }
.fact dt { font-size: .62rem; letter-spacing: .2em; text-transform: uppercase; color: var(--bronze-dark); }
.fact dd { margin: .45rem 0 0; font-family: var(--serif); font-size: 1.25rem; line-height: 1.25; }
.notice { border-left: 2px solid var(--bronze); padding: 1rem 1.2rem; background: rgba(154,130,90,.08); color: var(--stone); }
.doc-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.2rem; }
.doc-card { padding: 1.4rem; border: 1px solid var(--hairline); background: var(--card); }
.doc-card h3 { font-size: 1.35rem; margin-bottom: .5rem; }
.doc-card p { color: var(--stone); font-size: .93rem; }
.table-scroll { overflow-x: auto; }
.spec-table caption { text-align: left; font-family: var(--serif); font-size: 1.35rem; margin-bottom: 1rem; }
.spec-table th:nth-child(2), .spec-table td:nth-child(2) { white-space: nowrap; }
.cta-band { background: var(--dark); color: var(--ivory); padding: clamp(3rem,7vw,5.5rem) 0; }
.cta-band .lede { color: rgba(250,249,246,.72); }
.material-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 1rem; }
.material-tile { position: relative; min-height: 21rem; overflow: hidden; color: #fff; background: var(--dark); }
.material-tile picture, .material-tile img { position: absolute; inset: 0; width: 100%; height: 100%; }
.material-tile img { object-fit: cover; opacity: .72; transition: transform .5s ease; }
.material-tile:hover img { transform: scale(1.03); }
.material-tile__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(27,25,22,.9), rgba(27,25,22,.12) 70%); }
.material-tile__body { position: absolute; z-index: 1; inset: auto 1.2rem 1.2rem; }
.material-tile h3 { font-size: 1.55rem; }
.material-tile p { font-size: .83rem; color: rgba(255,255,255,.75); }
.project-feature { display: grid; grid-template-columns: 1.1fr .9fr; background: var(--card); border: 1px solid var(--hairline); }
.project-feature picture, .project-feature img { display: block; width: 100%; height: 100%; }
.project-feature img { object-fit: cover; min-height: 28rem; }
.project-feature__body { padding: clamp(2rem,5vw,4rem); align-self: center; }
.image-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.image-pair picture, .image-pair img { display: block; width: 100%; height: 100%; }
.image-pair img { object-fit: cover; aspect-ratio: 4/3; }
.fis-evidence { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(18rem,.9fr); gap: 1rem; align-items: start; }
.fis-evidence__process { display: grid; gap: 1rem; }
.project-photo { margin: 0; }
.project-photo picture, .project-photo img { display: block; width: 100%; }
.project-photo img { height: auto; background: #25231f; }
.project-photo figcaption { padding-top: .8rem; color: rgba(250,249,246,.7); font-size: .8rem; line-height: 1.55; }
.project-photo figcaption strong { color: var(--bronze-light); font-weight: 500; letter-spacing: .04em; }
.fis-evidence__note { border: 1px solid rgba(250,249,246,.14); padding: clamp(1.4rem,3vw,2.2rem); background: rgba(250,249,246,.045); }
.fis-evidence__note h3 { margin-bottom: .75rem; color: var(--ivory); }
.fis-evidence__note p { color: rgba(250,249,246,.7); }
.photo-source { margin-top: 1rem; color: rgba(250,249,246,.54); font-size: .72rem; line-height: 1.5; }
.saban-photo-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.saban-photo-grid .project-photo:first-child { grid-column: 1 / -1; }
.eyebrow { display: block; color: var(--bronze-dark); font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; margin-bottom: .65rem; }
.inline-links { display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; margin-top: 1.5rem; }
.inline-links a { color: var(--bronze-dark); text-decoration: underline; text-underline-offset: .22em; }
.site-footer .footer-grid { grid-template-columns: 1.6fr 1fr 1fr 1.1fr; }
.site-footer .brand { display: inline-block; }
.footer-note { max-width: 28rem; margin-top: 1rem; }
.legal { font-size: .88rem; color: var(--stone); }
.form-intro { max-width: 46rem; }
@media (max-width: 1050px) { .material-grid { grid-template-columns: repeat(3,1fr); } .site-footer .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; } }
@media (max-width: 800px) { .split, .project-feature, .fis-evidence { grid-template-columns: 1fr; } .facts { grid-template-columns: 1fr 1fr; } .site-footer .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .page-hero { min-height: 30rem; } .material-grid, .doc-grid, .image-pair, .facts, .page-fis .facts, .page-saban .facts, .saban-photo-grid { grid-template-columns: 1fr; } .saban-photo-grid .project-photo:first-child { grid-column: auto; } .site-footer .footer-grid { grid-template-columns: 1fr; } }
.hero-picture { position:absolute; inset:0; width:100%; height:100%; }
.hero-picture img { width:100%; height:100%; object-fit:cover; opacity:.52; }

.inquiry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.inquiry-grid label { display: flex; align-items: center; gap: .65rem; cursor: pointer; min-height: 3.2rem; }
.inquiry-grid input { accent-color: var(--bronze-dark); }
.inquiry-option--wide { grid-column: 1 / -1; display: block; }
.inquiry-option--wide label { min-height: 0; }
.inquiry-option__note { margin: .55rem 0 0 1.7rem; line-height: 1.5; }
.js-only { display: none; }
.js .js-only { display: inline-block; }
.copy-panel { margin-top: 1.5rem; padding: 1.25rem; border: 1px solid var(--hairline); background: var(--ivory); }
.copy-panel p + p { margin-top: .45rem; }
.copy-panel .btn { margin-top: 1rem; padding: .7rem 1.15rem; }
.copy-status { display: inline-block; margin-left: .8rem; color: var(--bronze-dark); font-size: .82rem; }
.support-line { margin-top: 1.15rem; color: var(--stone); }
.support-line a { color: var(--bronze-dark); text-decoration: underline; text-underline-offset: .2em; }
.context-optional .project-required-mark { display: none; }
.check-list { padding: 0; margin: 1.5rem 0 0; list-style: none; }
.check-list li { position: relative; padding: .7rem 0 .7rem 1.5rem; border-bottom: 1px solid rgba(250,249,246,.12); }
.check-list li::before { content: "—"; position: absolute; left: 0; color: var(--bronze-light); }
@media (max-width: 720px) { .inquiry-grid { grid-template-columns: 1fr; } }
