/* ═══════════════════════════════════════════════════
   SORNIONE — SHARED STYLES
   All pages import this via <link>
═══════════════════════════════════════════════════ */
:root {
  --gold:        #b8922a;
  --gold-mid:    rgba(184,146,42,0.15);
  --gold-dim:    rgba(184,146,42,0.06);
  --black:       #080808;
  --near-black:  #111111;
  --white:       #ffffff;
  --off-white:   #f8f8f6;
  --grey:        #f2f2f0;
  --border:      rgba(0,0,0,0.07);
  --border-dark: rgba(255,255,255,0.07);
  --text:        #1a1a1a;
  --muted:       #666666;
  --light-text:  #999999;
  --nav-h:       76px;
  --font-serif:  'Cormorant Garamond', Georgia, serif;
  --font-sans:   'Montserrat', system-ui, sans-serif;
  --font-mono:   'Space Mono', monospace;
  --ease:        cubic-bezier(0.4, 0, 0.2, 1);
}

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:var(--font-sans); font-weight:300; color:var(--text); background:var(--white); overflow-x:hidden; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
a { text-decoration:none; color:inherit; }

/* ── TYPOGRAPHY ── */
.t-label {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: var(--gold);
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.t-label::before {
  content: '';
  display: block;
  width: 22px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}
.t-heading {
  font-family: var(--font-serif);
  font-weight: 300;
  line-height: 1.05;
  letter-spacing: -0.01em;
}
.t-sub {
  font-size: 0.9rem;
  line-height: 2;
  color: var(--muted);
  font-weight: 300;
}

/* ── BUTTONS ── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  padding: 1.1rem 2.6rem;
  transition: all 0.3s var(--ease);
  cursor: pointer;
  border: none;
}
.btn-primary { background:var(--gold); color:var(--white); }
.btn-primary:hover { background:#a07828; }
.btn-dark { background:var(--black); color:var(--white); }
.btn-dark:hover { background:var(--gold); }
.btn-outline { border:1.5px solid var(--black); color:var(--black); background:transparent; }
.btn-outline:hover { background:var(--black); color:var(--white); }
.btn-outline-white { border:1.5px solid rgba(255,255,255,0.3); color:rgba(255,255,255,0.8); background:transparent; }
.btn-outline-white:hover { border-color:var(--gold); color:var(--gold); }

/* ── NAV ── */
.site-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--nav-h);
  z-index: 10000;
  background: rgba(255,255,255,0.97);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 3rem;
  transition: box-shadow 0.3s;
  box-sizing: border-box;
  width: 100%;
}
.site-nav.scrolled { box-shadow: 0 4px 40px rgba(0,0,0,0.08); }

.nav-logo {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--black);
  font-weight: 400;
  flex-shrink: 0;
  text-decoration: none;
}

.nav-menu {
  display: flex;
  list-style: none;
  gap: 0;
  flex: 1;
  justify-content: center;
}

.nav-item { position: relative; }

.nav-link {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0 0.85rem;
  height: var(--nav-h);
  font-size: 0.63rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  transition: color 0.3s;
  white-space: nowrap;
  text-decoration: none;
}
.nav-link:hover, .nav-link.active { color: var(--black); }
.nav-link svg { width:9px; height:9px; stroke:currentColor; fill:none; stroke-width:2; flex-shrink:0; }

/* Dropdown */
.nav-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: var(--white);
  border: 1px solid var(--border);
  border-top: 2px solid var(--gold);
  box-shadow: 0 20px 60px rgba(0,0,0,0.1);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: all 0.25s var(--ease);
  pointer-events: none;
  z-index: 10001;
}
.nav-item:hover .nav-dropdown,
.nav-item:focus-within .nav-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: all;
}
.nav-dropdown-section {
  padding: 1rem 1.2rem 0.3rem;
  font-size: 0.56rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gold);
  font-family: var(--font-mono);
}
.nav-dropdown a {
  display: block;
  padding: 0.65rem 1.2rem;
  font-size: 0.76rem;
  color: var(--muted);
  font-weight: 400;
  transition: all 0.2s;
  border-left: 2px solid transparent;
  text-decoration: none;
}
.nav-dropdown a:hover {
  color: var(--black);
  border-left-color: var(--gold);
  background: var(--off-white);
  padding-left: 1.5rem;
}
.nav-dropdown-divider { height:1px; background:var(--border); margin:0.3rem 1.2rem; }

.nav-actions { display:flex; align-items:center; flex-shrink:0; }
/* Mobile-only CTA: hidden on desktop so it does not duplicate the desktop button. */
.nav-mobile-cta { display:none; }
.nav-actions .btn {
  padding: 0.8rem 1.4rem;
  font-size: 0.62rem;
  white-space: nowrap;
}

/* Hamburger */
.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 8px;
  background: none;
  border: none;
  flex-shrink: 0;
}
.nav-toggle span {
  display: block;
  width: 24px; height: 1.5px;
  background: var(--black);
  transition: transform 0.3s, opacity 0.3s;
}

/* ── FOOTER ── */
/* ── FOOTER ── */
.site-footer {
  background: #050505;
  padding: 5rem 4rem 3rem;
}
.footer-top {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr 1fr;
  gap: 4rem;
  padding-bottom: 4rem;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  margin-bottom: 2.5rem;
}
.footer-brand { }
.footer-logo {
  font-family: var(--font-serif);
  font-size: 1.6rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--white);
  font-weight: 300;
  margin-bottom: 0.8rem;
}
.footer-tagline {
  font-family: var(--font-serif);
  font-size: 0.9rem;
  font-style: italic;
  color: rgba(255,255,255,0.25);
  margin-bottom: 1.5rem;
}
.footer-desc {
  font-size: 0.8rem;
  color: rgba(255,255,255,0.3);
  line-height: 1.9;
  max-width: 280px;
}
.footer-social {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
}
.footer-social a {
  width: 36px; height: 36px;
  border: 1px solid rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.3);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  transition: all 0.3s;
}
.footer-social a:hover { border-color:var(--gold); color:var(--gold); }
.footer-col-title {
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.5rem;
}
.footer-links { list-style:none; display:flex; flex-direction:column; gap:0.7rem; }
.footer-links a {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.3);
  transition: color 0.3s;
}
.footer-links a:hover { color:rgba(255,255,255,0.8); }
.footer-contact-line {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.3);
  margin-bottom: 0.7rem;
  line-height: 1.5;
}
.footer-contact-line a { transition:color 0.3s; }
.footer-contact-line a:hover { color:var(--gold); }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}
.footer-legal { font-size:0.72rem; color:rgba(255,255,255,0.18); }
.footer-legal a { color:rgba(255,255,255,0.25); margin-left:1.2rem; transition:color 0.3s; }
.footer-legal a:hover { color:var(--gold); }
.footer-reg { font-size:0.65rem; color:rgba(255,255,255,0.12); font-family:var(--font-mono); }

/* ── SECTION WRAPPER ── */
.section { padding: 8rem 4rem; }
.section-sm { padding: 5rem 4rem; }
.section-dark { background:var(--black); color:var(--white); }
.section-off { background:var(--off-white); }
.section-gold { background:var(--gold); color:var(--white); }
.container { max-width:1280px; margin:0 auto; }

/* ── SECTION HEADER ── */
.section-head { margin-bottom:4rem; }
.section-head .t-label { margin-bottom:1.2rem; }
.section-head .t-heading { font-size:clamp(2.2rem,4vw,3.8rem); }

/* ── DIVIDER ── */
.gold-divider { height:2px; background:var(--gold); width:48px; display:block; }

/* ── CARDS ── */
.card-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.card-grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; }

/* ── PAGE HERO ── */
.page-hero {
  min-height: 55vh;
  background: var(--black);
  display: flex;
  align-items: flex-end;
  padding: calc(var(--nav-h) + 5rem) 4rem 5rem;
  position: relative;
  overflow: hidden;
}
.page-hero-bg {
  position: absolute;
  inset: 0;
  object-fit: cover;
  width: 100%;
  height: 100%;
  opacity: 0.3;
  filter: brightness(0.6) saturate(0.7);
}
.page-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(8,8,8,0.95) 40%, rgba(8,8,8,0.5) 100%);
}
.page-hero-content { position:relative; z-index:2; max-width:700px; }
.page-hero-content .t-label { margin-bottom:1.5rem; }
.page-hero-content .t-heading { font-size:clamp(3rem,7vw,6rem); color:var(--white); margin-bottom:1.5rem; }
.page-hero-content .t-sub { color:rgba(255,255,255,0.5); max-width:520px; }

/* ── REVEAL ANIMATION ── */
.reveal { opacity:1; transform:none; } /* no-JS fallback */
.js-ready .reveal { opacity:0; transform:translateY(28px); transition:opacity 0.75s var(--ease), transform 0.75s var(--ease); }
.js-ready .reveal.in { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:0.1s; }
.reveal-delay-2 { transition-delay:0.2s; }
.reveal-delay-3 { transition-delay:0.3s; }

/* ── BREADCRUMB ── */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  color: var(--light-text);
  padding: calc(var(--nav-h) + 1.5rem) 4rem 1.5rem;
  background: var(--off-white);
  border-bottom: 1px solid var(--border);
}
.breadcrumb a { color:var(--muted); transition:color 0.3s; }
.breadcrumb a:hover { color:var(--gold); }
.breadcrumb span { color:var(--black); font-weight:500; }
.breadcrumb-sep { color:rgba(0,0,0,0.2); font-size:0.6rem; }

/* ── RESPONSIVE ── */

/* ═══════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════ */

@media(max-width:1100px){
  .site-nav { padding: 0 1.5rem; }
  .nav-link { padding: 0 0.6rem; font-size: 0.6rem; letter-spacing: 0.1em; }
  .nav-actions .btn { padding: 0.7rem 1rem; font-size: 0.58rem; }
}

@media(max-width:1024px){
  .site-nav { padding: 0 1.5rem; }
  .section { padding:6rem 2rem; }
  .section-sm { padding:4rem 2rem; }
  .site-footer { padding:4rem 2rem 2rem; }
  .footer-top { grid-template-columns:1fr 1fr; gap:3rem; }
  .page-hero { padding:calc(var(--nav-h) + 3rem) 2rem 3rem; }
  .breadcrumb { padding:calc(var(--nav-h) + 1rem) 2rem 1rem; }
  .card-grid-3 { grid-template-columns:repeat(2,1fr); }
  .card-grid-2 { grid-template-columns:1fr; }
}

@media(max-width:768px){
  /* Hide desktop nav, show hamburger */
  .nav-menu { display:none; }
  .nav-menu.is-open {
    display:flex;
    flex-direction:column;
    position:fixed;
    top:var(--nav-h);
    left:0;
    right:0;
    bottom:0;
    max-height:calc(100dvh - var(--nav-h));
    background:#ffffff;
    z-index:9999;
    overflow-y:auto;
    overscroll-behavior:contain;
    box-shadow:0 8px 40px rgba(0,0,0,0.16);
    justify-content:flex-start;
  }
  .nav-toggle { display:flex; }
  .nav-actions { display:none; }
  .site-nav { padding:0 1.25rem; }
  body.nav-menu-open { overflow:hidden; }

  /* Mobile drawer */
  .nav-item { border-bottom:1px solid rgba(0,0,0,0.06); width:100%; }
  .nav-link {
    padding: 1rem 1.25rem;
    height: auto;
    font-size: 0.76rem;
    color: #333;
    justify-content: space-between;
    width: 100%;
  }
  .nav-dropdown {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border: none;
    border-top: 1px solid rgba(0,0,0,0.05);
    background: #f8f8f6;
    display: none;
    min-width: 0;
    padding: 0.3rem 0;
    pointer-events: none;
  }
  .nav-dropdown.mobile-dropdown-open {
    display: block;
    pointer-events: all;
  }
  .nav-dropdown-section { padding: 0.7rem 1.25rem 0.2rem; font-size: 0.56rem; }
  .nav-dropdown a { padding: 0.7rem 1.8rem; font-size: 0.75rem; border-left: none; }
  .nav-dropdown a:hover { padding-left: 1.8rem; }
  .nav-dropdown-divider { margin: 0.2rem 1.25rem; }
  .nav-mobile-cta {
    display:block !important;
    margin:1.2rem 1.25rem;
    text-align: center;
    background: var(--gold);
    color: #fff;
    padding: 0.95rem;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none;
    border: none;
  }

  /* Page layout */
  .section { padding: 4rem 1.25rem; }
  .section-sm { padding: 3rem 1.25rem; }
  .site-footer { padding: 3rem 1.25rem 2rem; }
  .footer-top { grid-template-columns: 1fr; gap: 2.5rem; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 0.8rem; }
  .card-grid-3 { grid-template-columns: 1fr; }
  .card-grid-2 { grid-template-columns: 1fr; }
  .page-hero { min-height: 45vh; }
  .breadcrumb { padding: calc(var(--nav-h) + 0.8rem) 1.25rem 0.8rem; font-size: 0.68rem; }
  .hero-title { line-height: 1.05; }
  .hero-buttons .btn { width: 100%; justify-content: center; }
  .hero-scroll { display: none; }
  .why-card { padding: 2rem 1.25rem; }
  .service-body { padding: 3rem 1.25rem; }
  .faq-item { padding: 1.5rem 1.25rem; }
  .guide-body { padding: 1.5rem; }
  .footer-reg { font-size: 0.62rem; line-height: 1.7; }
}

/* ── CONTRAST FIXES ── */
.t-sub { color: #444444; font-size: 0.95rem; line-height: 2.1; }

/* Hero sub text — needs to be readable on dark background */
.hero-sub {
  color: rgba(255,255,255,0.75) !important;
  font-size: 1rem !important;
  line-height: 1.9 !important;
}

/* Footer — readable but still dark */
.footer-desc { color: rgba(255,255,255,0.65); }
.footer-links a { color: rgba(255,255,255,0.65); }
.footer-links a:hover { color: rgba(255,255,255,0.95); }
.footer-contact-line { color: rgba(255,255,255,0.65); }
.footer-legal { color: rgba(255,255,255,0.5); }
.footer-reg { color: rgba(255,255,255,0.5); font-size: 0.68rem; }
.footer-tagline { color: rgba(255,255,255,0.35) !important; }

/* Dark section body text */
.why-desc { color: rgba(255,255,255,0.65); }
.demo-content .t-sub,
.intro-left .t-sub { color: rgba(255,255,255,0.65); }
.page-hero-content .t-sub { color: rgba(255,255,255,0.65); }

/* Muted text on white — keep readable */
.t-sub { color: #444444; }
.service-p { color: #555555; }
.process-desc { color: #555555; }
.faq-a { color: #555555; }
.article-body p { color: #555555; }

/* ── GOLD CONTRAST FIX — small labels on white backgrounds ── */
.t-label { color: #7a6018; }
.t-label::before { background: #7a6018; }
.service-tile-num, .process-num, .timeline-year,
.guide-tag, .project-tag, .value-num,
.footer-col-title { color: #907220; }
.sidebar-card-title { color: #7a6018; }
.nav-dropdown-section { color: #7a6018; }
/* Gold on dark backgrounds — keep bright */
.live-badge, .demo-stat-l, .system-live-badge,
.scenario-time, .hero-eyebrow,
.hero-stat-label { color: var(--gold); }

/* ── REDUCED MOTION ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
}

/* ── HAMBURGER ANIMATION ── */
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.nav-toggle span { transition: transform 0.3s, opacity 0.3s; }

/* ── FOCUS STYLES ── */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
  outline: 2px solid #907220;
  outline-offset: 3px;
}

/* Build 28: hardened responsive navigation interaction */
.nav-toggle {
  position: relative;
  z-index: 10004;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

@media(max-width:768px){
  .site-nav { z-index: 20000; }
  .nav-menu.is-open {
    z-index: 20001;
    pointer-events: auto;
  }
  .nav-toggle {
    z-index: 20002;
    pointer-events: auto;
  }
}


/* ══ BUILD 29 — RESPONSIVE NAV HARD FIX ══
   The desktop .nav-menu uses flex:1. On some Chromium layouts that flex-basis
   carried into the fixed mobile drawer and collapsed its height to zero.
   Explicit dimensions and flex:none make the drawer deterministic. */
@media (max-width:768px){
  .nav-menu.is-open{
    display:flex !important;
    flex:none !important;
    position:fixed !important;
    top:var(--nav-h) !important;
    right:0 !important;
    bottom:auto !important;
    left:0 !important;
    width:100vw !important;
    height:calc(100dvh - var(--nav-h)) !important;
    max-height:calc(100dvh - var(--nav-h)) !important;
    min-height:220px;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:#fff !important;
    z-index:20001 !important;
    pointer-events:auto !important;
  }
  .nav-menu.is-open > li{flex:0 0 auto;}
  .nav-toggle{min-width:44px;min-height:44px;align-items:center;justify-content:center;}
}
@supports not (height:100dvh){
  @media (max-width:768px){.nav-menu.is-open{height:calc(100vh - var(--nav-h)) !important;max-height:calc(100vh - var(--nav-h)) !important;}}
}


/* ═══════════════════════════════════════════════════════════════
   BUILD 34 — NATIVE MOBILE NAV + FIXED ANCHOR OFFSET
   ═══════════════════════════════════════════════════════════════ */
html { scroll-padding-top: calc(var(--nav-h) + 22px); }
body { scroll-padding-top: calc(var(--nav-h) + 22px); }
[id] { scroll-margin-top: calc(var(--nav-h) + 22px); }

/* Native <details> mobile navigation: works even when JavaScript is unavailable. */
.mobile-nav-native { display:none; margin:0; padding:0; }
.mobile-nav-native > summary { list-style:none; }
.mobile-nav-native > summary::-webkit-details-marker,
.mobile-nav-group > summary::-webkit-details-marker { display:none; }

@media (max-width:768px){
  .site-nav { z-index:30000 !important; }
  .nav-menu { display:none !important; }
  .nav-toggle { display:none !important; }
  .nav-actions { display:none !important; }

  .mobile-nav-native {
    display:block;
    position:relative;
    z-index:30002;
    flex:0 0 auto;
  }
  .mobile-nav-summary {
    width:46px;
    height:46px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    cursor:pointer;
    user-select:none;
    -webkit-user-select:none;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-nav-summary span {
    display:block;
    width:24px;
    height:1.5px;
    background:var(--black);
    transition:transform .28s var(--ease), opacity .2s ease;
    transform-origin:center;
  }
  .mobile-nav-native[open] .mobile-nav-summary span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  .mobile-nav-native[open] .mobile-nav-summary span:nth-child(2){ opacity:0; }
  .mobile-nav-native[open] .mobile-nav-summary span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

  .mobile-nav-native-drawer {
    position:fixed;
    top:var(--nav-h);
    left:0;
    right:0;
    width:100%;
    height:calc(100dvh - var(--nav-h));
    max-height:calc(100dvh - var(--nav-h));
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:#fff;
    border-top:1px solid rgba(0,0,0,.06);
    box-shadow:0 22px 60px rgba(0,0,0,.14);
    padding:.45rem 0 1.5rem;
    z-index:30001;
  }
  .mobile-nav-native-drawer > a,
  .mobile-nav-group > summary {
    min-height:56px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:0 1.35rem;
    border-bottom:1px solid rgba(0,0,0,.065);
    color:#1c1c1c;
    text-decoration:none;
    font:500 .73rem var(--font-sans);
    letter-spacing:.15em;
    text-transform:uppercase;
  }
  .mobile-nav-group { border:0; }
  .mobile-nav-group > summary { cursor:pointer; list-style:none; }
  .mobile-nav-group > summary::after {
    content:'+';
    color:#8a6c1d;
    font:400 1.05rem var(--font-sans);
    transition:transform .22s ease;
  }
  .mobile-nav-group[open] > summary::after { transform:rotate(45deg); }
  .mobile-nav-sub {
    background:#f7f6f2;
    border-bottom:1px solid rgba(0,0,0,.07);
    padding:.35rem 0 .65rem;
  }
  .mobile-nav-sub-label {
    display:block;
    padding:.8rem 1.7rem .35rem;
    font:400 .52rem var(--font-mono);
    letter-spacing:.22em;
    text-transform:uppercase;
    color:#80641d;
  }
  .mobile-nav-sub a {
    display:block;
    padding:.68rem 1.7rem;
    color:#4a4a4a;
    text-decoration:none;
    font-size:.77rem;
    line-height:1.35;
  }
  .mobile-nav-sub a:active { background:rgba(184,146,42,.08); }
  .mobile-nav-book {
    margin:1rem 1.25rem 0;
    min-height:52px !important;
    justify-content:center !important;
    border-bottom:0 !important;
    background:var(--gold);
    color:#fff !important;
  }
  body.mobile-nav-native-open { overflow:hidden; }
}
@supports not (height:100dvh){
  @media (max-width:768px){
    .mobile-nav-native-drawer{height:calc(100vh - var(--nav-h));max-height:calc(100vh - var(--nav-h));}
  }
}

/* Build 34 global polish */
.site-progress-v34{position:fixed;top:var(--nav-h);left:0;height:2px;width:100%;z-index:29998;pointer-events:none;transform-origin:left center;transform:scaleX(0);background:linear-gradient(90deg,#7e6118,var(--gold),#e4c66f);box-shadow:0 0 14px rgba(184,146,42,.28);}
body.site-v34-ready .site-nav{transition:box-shadow .3s,background .3s;}
.btn{position:relative;overflow:hidden;isolation:isolate;}
.btn::after{content:'';position:absolute;top:-120%;bottom:-120%;width:34%;left:-50%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.25),transparent);transform:skewX(-20deg);transition:left .75s var(--ease);pointer-events:none;z-index:-0;}
.btn:hover::after{left:125%;}
@media(prefers-reduced-motion:reduce){.site-progress-v34{transition:none}.btn::after{display:none}}

/* ═══════════════════════════════════════════════════════════════
   BUILD 35 — EDITORIAL LUXURY / READABILITY OVERHAUL
   Original Sornione direction: warmer, brighter, calmer, human-first.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --gold:#ad842b;
  --gold-deep:#7f611e;
  --black:#121212;
  --near-black:#1b1a18;
  --white:#fff;
  --off-white:#f7f4ed;
  --grey:#eee9df;
  --paper:#fbfaf7;
  --text:#1b1b1a;
  --muted:#5c5953;
  --light-text:#716d65;
  --border:rgba(18,18,18,.10);
  --border-dark:rgba(255,255,255,.14);
  --nav-h:84px;
  --font-serif:'Cormorant Garamond',Georgia,serif;
  --font-sans:'Manrope',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'Space Mono',monospace;
  --ease:cubic-bezier(.22,1,.36,1);
}
html{font-size:17px;scroll-padding-top:calc(var(--nav-h) + 18px);background:var(--paper)}
body{font-family:var(--font-sans);font-weight:400;color:var(--text);background:var(--paper);line-height:1.65;letter-spacing:-.005em}
p,li{font-size:1rem;line-height:1.75}
::selection{background:#d8c08a;color:#111}

/* Legacy nav is no longer used. */
.site-nav,.mobile-nav-native,.site-progress-v34{display:none!important}

/* New navigation — CSS checkbox means mobile menu still works without JS. */
.nav35{
  position:fixed;inset:0 0 auto;height:var(--nav-h);z-index:50000;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:0 clamp(22px,3.3vw,58px);background:rgba(251,250,247,.92);
  backdrop-filter:blur(20px) saturate(1.15);-webkit-backdrop-filter:blur(20px) saturate(1.15);
  border-bottom:1px solid rgba(18,18,18,.08);transition:box-shadow .35s var(--ease),background .35s var(--ease)
}
.nav35.scrolled{box-shadow:0 12px 38px rgba(0,0,0,.07);background:rgba(251,250,247,.98)}
.nav35-logo{font-family:var(--font-serif);font-weight:500;letter-spacing:.32em;font-size:1.26rem;color:#111;justify-self:start}
.nav35-links{display:flex;align-items:center;gap:1.9rem;justify-self:center;height:100%}
.nav35-links>a,.nav35-drop>a{font-size:.77rem;font-weight:600;color:#4a4742;letter-spacing:.06em;display:flex;align-items:center;height:100%;transition:color .2s ease}
.nav35-links>a:hover,.nav35-drop>a:hover{color:#111}
.nav35-drop{height:100%;display:flex;align-items:center;position:relative}
.nav35-dropmenu{position:absolute;top:calc(100% - 1px);left:50%;transform:translate(-50%,12px);width:360px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:0 0 18px 18px;padding:.8rem;box-shadow:0 26px 70px rgba(0,0,0,.13);opacity:0;visibility:hidden;pointer-events:none;transition:.28s var(--ease)}
.nav35-drop:hover .nav35-dropmenu,.nav35-drop:focus-within .nav35-dropmenu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.nav35-dropmenu a{display:grid;grid-template-columns:1fr;gap:.08rem;padding:.76rem .85rem;border-radius:10px;transition:background .2s ease}
.nav35-dropmenu a:hover{background:#f5f1e8}
.nav35-dropmenu strong{font-size:.88rem;color:#171717;font-weight:650}
.nav35-dropmenu span{font-size:.72rem;color:#777167}
.nav35-guide-menu{width:320px}
.nav35-cta{justify-self:end;background:#171717;color:#fff;border-radius:999px;padding:.78rem 1.35rem;font-size:.74rem;font-weight:650;letter-spacing:.025em;transition:transform .25s var(--ease),background .25s ease}
.nav35-cta:hover{transform:translateY(-1px);background:#ad842b}
.nav35-check{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.nav35-menu,.nav35-drawer{display:none}

/* Global layout / type scale */
.section{padding:clamp(6rem,9vw,10rem) clamp(1.4rem,5vw,5rem)}
.section-sm{padding:clamp(4rem,6vw,7rem) clamp(1.4rem,5vw,5rem)}
.container{max-width:1380px}
.t-label{font-family:var(--font-sans);font-size:.74rem;font-weight:700;letter-spacing:.12em;color:var(--gold-deep);gap:.65rem}
.t-label::before{width:28px;background:var(--gold-deep)}
.t-heading{font-family:var(--font-serif);font-size:clamp(3rem,5.3vw,5.6rem);font-weight:500;line-height:.98;letter-spacing:-.035em}
.t-sub{font-size:1.08rem!important;line-height:1.75!important;color:#57534c!important;font-weight:400!important;max-width:62ch}
.section-head{margin-bottom:clamp(2.5rem,5vw,5rem)}
.section-head .t-heading{font-size:clamp(3rem,5vw,5.3rem)}
.btn{font-size:.79rem;font-weight:650;letter-spacing:.035em;text-transform:none;padding:1rem 1.6rem;border-radius:999px}
.btn-primary{background:#171717;color:#fff}
.btn-primary:hover{background:var(--gold)}
.btn-outline{border:1px solid rgba(0,0,0,.22);border-radius:999px}
.btn-outline-white{border-color:rgba(255,255,255,.35);border-radius:999px;color:#fff}

/* Consistent page heroes: bright, editorial, image-led. */
.page-hero{
  min-height:68vh;background:#eee8dd;color:#171717;align-items:center;
  padding:calc(var(--nav-h) + clamp(4rem,8vw,8rem)) clamp(1.4rem,6vw,6rem) clamp(4rem,7vw,7rem);
}
.page-hero-bg{left:46%;width:54%;opacity:.95;filter:saturate(.8) contrast(.95);object-position:center}
.page-hero-overlay{background:linear-gradient(90deg,#eee8dd 0%,#eee8dd 41%,rgba(238,232,221,.92) 48%,rgba(238,232,221,.28) 72%,rgba(238,232,221,.06) 100%)}
.page-hero-content{max-width:750px}
.page-hero-content .t-heading{color:#161616!important;font-size:clamp(3.6rem,7vw,7.1rem)!important;line-height:.94!important;margin-bottom:1.6rem!important;text-wrap:balance}
.page-hero-content .t-label{color:#765b1b!important;margin-bottom:1.25rem!important}
.page-hero-content .t-sub{color:#45413b!important;font-size:1.16rem!important;line-height:1.7!important;max-width:600px!important}
.breadcrumb{padding:calc(var(--nav-h) + 1.1rem) clamp(1.4rem,5vw,5rem) 1.1rem;background:#f8f5ef;border-color:rgba(0,0,0,.07);font-size:.76rem}

/* Existing dark sections: keep the drama, remove the murk. */
.section-dark{background:#171715!important;color:#fff}
.section-dark p,.section-dark li,.section-dark .t-sub{color:rgba(255,255,255,.78)!important;font-size:1.02rem!important;line-height:1.75!important}
.section-dark .t-heading{color:#fff!important}
.section-dark .t-label{color:#d2ad55!important}
.section-off{background:#f2ede4!important}

/* Common article/card readability */
.service-p,.process-desc,.faq-a,.article-body p,.guide-body p,.content-body p,.why-desc{font-size:1rem!important;line-height:1.78!important;color:#55514b!important}
.article-body,.guide-body,.service-body{font-size:1rem;line-height:1.78}
.faq-q{font-size:1.05rem!important;line-height:1.45}
.card-grid-3,.card-grid-2{gap:clamp(1.2rem,2vw,2rem)}
[class*="card"],.service-tile{border-radius:18px}

/* Footer: intentionally light and readable. */
.footer35{background:#e9e2d6;color:#171717;padding:clamp(5rem,8vw,8rem) clamp(1.4rem,5vw,5rem) 2.5rem;border-top:1px solid rgba(0,0,0,.08)}
.footer35-lead{max-width:1100px;margin:0 auto clamp(5rem,8vw,8rem);text-align:left}
.footer35-lead>p{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:#75623b;font-weight:700;margin-bottom:1rem}
.footer35-lead h2{font-family:var(--font-serif);font-size:clamp(3.6rem,7vw,7.5rem);font-weight:500;line-height:.92;letter-spacing:-.04em;max-width:950px;margin-bottom:2rem}
.footer35-lead>a{display:inline-flex;gap:.75rem;align-items:center;font-size:1.05rem;font-weight:650;border-bottom:1px solid #171717;padding-bottom:.35rem}
.footer35-lead>a span{transition:transform .25s var(--ease)}.footer35-lead>a:hover span{transform:translateX(5px)}
.footer35-grid{max-width:1380px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:clamp(2rem,5vw,6rem);padding:3rem 0;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1)}
.footer35-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:.72rem}.footer35-grid h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:#716859;margin-bottom:.4rem}.footer35-grid a,.footer35-grid p{font-size:.88rem;line-height:1.55;color:#4e4942}.footer35-grid a:hover{color:#000}.footer35-brand>a{font-family:var(--font-serif);font-size:1.7rem;letter-spacing:.28em;color:#151515!important;margin-bottom:.6rem}.footer35-brand p{max-width:360px;font-size:.96rem}
.footer35-bottom{max-width:1380px;margin:0 auto;padding-top:2rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:#6d675e}.footer35-bottom span{font-size:.73rem;line-height:1.5}

/* No micro-copy smaller than 12px in public-facing areas. */
body :where(.hero-eyebrow,.guide-tag,.project-tag,.timeline-year,.scenario-time,.demo-stat-l,.service-tile-num,.process-num,.value-num){font-size:max(.72rem,12px)}

/* Old reveal animation, gentler and more Apple-like. */
.reveal{opacity:1;transform:none}.js-ready .reveal{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.js-ready .reveal.in{opacity:1;transform:none}

@media(max-width:980px){
  .nav35{grid-template-columns:1fr auto auto;padding:0 22px;--nav-h:72px}
  .nav35-links,.nav35-cta{display:none}.nav35-menu{display:flex;width:48px;height:48px;align-items:center;justify-content:center;flex-direction:column;gap:8px;cursor:pointer;z-index:50003}.nav35-menu span{display:block;width:26px;height:1.5px;background:#161616;transition:transform .28s var(--ease)}
  .nav35-drawer{display:flex;position:fixed;left:0;right:0;top:var(--nav-h);height:calc(100dvh - var(--nav-h));background:#fbfaf7;z-index:50001;flex-direction:column;padding:1.2rem 1.35rem 2rem;overflow-y:auto;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px);transition:opacity .22s ease,transform .28s var(--ease),visibility .22s}
  .nav35-drawer>a{font-family:var(--font-serif);font-size:clamp(2.4rem,9vw,4.5rem);font-weight:500;line-height:1.02;letter-spacing:-.03em;padding:.36rem 0;border-bottom:1px solid rgba(0,0,0,.07)}
  .nav35-drawer-cta{color:#8a671f!important;margin-top:.4rem}
  .nav35-mobile-small{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem 1.2rem;margin-top:1.6rem}.nav35-mobile-small a{font-size:.9rem;color:#68625b;padding:.2rem 0}
  .nav35-check:checked~.nav35-drawer{opacity:1;visibility:visible;pointer-events:auto;transform:none}.nav35-check:checked~.nav35-menu span:first-child{transform:translateY(4.75px) rotate(45deg)}.nav35-check:checked~.nav35-menu span:last-child{transform:translateY(-4.75px) rotate(-45deg)}
  body.nav35-open{overflow:hidden}
  .page-hero{min-height:72vh;padding-top:calc(var(--nav-h) + 4rem);align-items:flex-end}.page-hero-bg{left:0;width:100%;height:48%;top:0;opacity:.72}.page-hero-overlay{background:linear-gradient(180deg,rgba(238,232,221,.05) 0%,#eee8dd 47%,#eee8dd 100%)}.page-hero-content{padding-top:40vh}.page-hero-content .t-heading{font-size:clamp(3.2rem,12vw,5.5rem)!important}.page-hero-content .t-sub{font-size:1.02rem!important}
  .footer35-grid{grid-template-columns:1fr 1fr}.footer35-brand{grid-column:1/-1}.footer35-bottom{flex-direction:column}.footer35-lead h2{font-size:clamp(3.5rem,12vw,6rem)}
}
@media(max-width:620px){
  html{font-size:16px}.section{padding:5rem 1.25rem}.section-sm{padding:3.5rem 1.25rem}.t-heading{font-size:clamp(2.9rem,13vw,4.6rem)}.t-sub{font-size:1rem!important}.footer35{padding-left:1.25rem;padding-right:1.25rem}.footer35-grid{grid-template-columns:1fr;gap:2.3rem}.footer35-brand{grid-column:auto}.footer35-lead{margin-bottom:4rem}.footer35-lead h2{font-size:clamp(3.5rem,15vw,5.2rem)}
}
@media(prefers-reduced-motion:reduce){.nav35-dropmenu,.nav35-drawer,.nav35-menu span,.footer35-lead>a span{transition:none!important}}

/* Legal pages */
body>.content{max-width:860px!important;margin:0 auto!important;padding:calc(var(--nav-h) + 5rem) 1.5rem 7rem!important}
body>.content h1{font-family:var(--font-serif)!important;font-size:clamp(3.8rem,7vw,6.4rem)!important;font-weight:500!important;line-height:.94!important;letter-spacing:-.04em!important;margin-bottom:1rem!important}
body>.content .updated{font-size:.78rem!important;color:#777067!important;margin-bottom:3.5rem!important;letter-spacing:.04em!important}
body>.content h2{font-family:var(--font-serif)!important;font-size:2rem!important;font-weight:500!important;line-height:1.1!important;margin:3rem 0 1rem!important}
body>.content p,body>.content li{font-size:1rem!important;line-height:1.8!important;color:#514d47!important}
body>.content a{color:#7d5f1f!important;text-decoration:underline;text-underline-offset:3px}
@media(max-width:980px){:root{--nav-h:72px}}

/* Build 35 readability floor — legacy page components */
:where(.principle-num,.process-step-num,.faq-category,.arch-label,.sidebar-card-title,.guide-tag,.ideas-card-sys,.prop-suited-title,.check-q-num,.expect-label,.service-num,.contact-detail-label,.form-label,.timeline-period,.scenario-time,.live-system-label,.legal-hero-meta){font-family:var(--font-sans)!important;font-size:.74rem!important;font-weight:700!important;letter-spacing:.08em!important;line-height:1.4!important}
:where(.system-chip,.gloss-letter-btn,.ideas-tab,.prop-tab,.check-restart){font-family:var(--font-sans)!important;font-size:.76rem!important;font-weight:650!important;letter-spacing:.04em!important;line-height:1.4!important}
:where(.day-state-grid b,.check-score-label,.demo-run-step,.demo-run-note){font-family:var(--font-sans)!important;font-size:.76rem!important;line-height:1.5!important}
:where(.contact-detail-value,.form-input,.form-textarea,.form-select){font-size:1rem!important;line-height:1.5!important}
:where(.ideas-card p,.prop-panel p,.arch-card p,.expect-card p,.principle-item p,.process-card p){font-size:1rem!important;line-height:1.75!important;color:#57534c!important}
:where(.ideas-card h3,.prop-panel h3,.arch-card h3,.expect-card h3,.principle-item h3,.process-card h3){font-family:var(--font-serif)!important;font-size:1.6rem!important;font-weight:500!important;letter-spacing:-.02em!important}
