
/* ═══════════════════════════════════════════════════════════════════════════
   SILK MERIDIAN — GLOBAL DESIGN SYSTEM
   Fonts: Cormorant Garamond (display) + DM Sans (body)
   Colors: Deep forest #03120d + Gold #C9A84C + Paper #FAF8F5
   ═══════════════════════════════════════════════════════════════════════════ */



/* ── CSS VARIABLES ─────────────────────────────────────────────────────────── */
:root {
  --deep:        #03120d;
  --deep-mid:    #071f16;
  --gold:        #C9A84C;
  --gold-light:  #E8C96A;
  --gold-dim:    rgba(201,168,76,0.18);
  --paper:       #FAF8F5;
  --paper-mid:   #F2EFE9;
  --ink:         #1C1A17;
  --ink-mid:     rgba(28,26,23,0.55);
  --ink-faint:   rgba(28,26,23,0.12);
  --white:       #ffffff;
  --serif:       'Cormorant Garamond', Georgia, serif;
  --sans:        'DM Sans', system-ui, sans-serif;
  --mono:        'DM Mono', monospace;
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.87, 0, 0.13, 1);
  --nav-h:       88px;
}

/* ── RESET ─────────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: auto; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
body {
  font-family: var(--sans);
  background: var(--paper);
  color: var(--ink);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
input, textarea, select { font-family: inherit; }

/* ── PAGE CURTAIN TRANSITION ────────────────────────────────────────────────── */
#page-curtain {
  position: fixed; inset: 0;
  background: var(--deep);
  z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  transform: translateY(100%);
  pointer-events: none;
}
.curtain-logo { height: 36px; width: auto; opacity: 0; }

/* ── NAVBAR ─────────────────────────────────────────────────────────────────── */
#navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: var(--nav-h);
  transition: background 0.5s var(--ease-out), border-color 0.5s ease, box-shadow 0.5s ease;
  border-bottom: 1px solid var(--ink-faint);
  background: rgba(250,248,245,0.82);
  backdrop-filter: blur(18px);
  box-shadow: 0 8px 30px rgba(28,26,23,0.05);
}
#navbar.scrolled-white {
  background: rgba(250,248,245,0.92);
  backdrop-filter: blur(20px);
  border-bottom-color: var(--ink-faint);
}
#navbar.scrolled-dark {
  background: rgba(3,18,13,0.88);
  backdrop-filter: blur(20px);
  border-bottom-color: rgba(255,255,255,0.06);
}
.nav-inner {
  max-width: 1320px; margin: 0 auto;
  height: 100%; padding: 0 2.5rem;
  display: flex; align-items: center; justify-content: space-between;
}
.nav-logo-wrap { position: relative; height: 44px; width: 220px; display: block; }
.nav-logo { position: absolute; top: 0; left: 0; height: 100%; width: auto; object-fit: contain; transition: opacity 0.5s ease; }
.nav-logo-white { opacity: 0; }
#navbar.scrolled-dark .nav-logo { opacity: 0; }
#navbar.scrolled-dark .nav-logo-white { opacity: 1; }

.nav-links { display: flex; align-items: center; gap: 3rem; }
.nav-link {
  font-size: 10px; font-weight: 500; letter-spacing: 0.35em; text-transform: uppercase;
  color: var(--ink-mid); transition: color 0.3s ease;
  position: relative;
}
.nav-link::after {
  content: ''; position: absolute; bottom: -3px; left: 0; right: 0;
  height: 1px; background: var(--gold);
  transform: scaleX(0); transition: transform 0.3s var(--ease-out);
  transform-origin: left;
}
.nav-link:hover, .nav-link.nav-active { color: var(--ink); }
.nav-link:hover::after, .nav-link.nav-active::after { transform: scaleX(1); }
#navbar.scrolled-dark .nav-link { color: rgba(255,255,255,0.45); }
#navbar.scrolled-dark .nav-link:hover,
#navbar.scrolled-dark .nav-link.nav-active { color: #fff; }

.nav-cta {
  font-size: 9px; font-weight: 700; letter-spacing: 0.45em; text-transform: uppercase;
  padding: 0.75rem 2rem;
  border: 1.5px solid var(--ink);
  color: var(--ink);
  transition: all 0.35s var(--ease-out);
  position: relative; overflow: hidden;
}
.nav-cta::before {
  content: ''; position: absolute; inset: 0;
  background: var(--ink);
  transform: scaleX(0); transform-origin: right;
  transition: transform 0.35s var(--ease-out); z-index: -1;
}
.nav-cta:hover { color: var(--white); border-color: var(--ink); }
.nav-cta:hover::before { transform: scaleX(1); transform-origin: left; }
#navbar.scrolled-dark .nav-cta { border-color: var(--gold); color: var(--gold); }
#navbar.scrolled-dark .nav-cta::before { background: var(--gold); }
#navbar.scrolled-dark .nav-cta:hover { color: var(--deep); }

.nav-hamburger {
  display: none; flex-direction: column; gap: 6px;
  width: 28px; background: none; border: none; cursor: pointer;
}
.nav-hamburger span {
  display: block; height: 1.5px; background: var(--ink);
  transition: all 0.4s var(--ease-out);
}
#navbar.scrolled-dark .nav-hamburger span { background: #fff; }
.nav-hamburger.open span:first-child { transform: translateY(7.5px) rotate(45deg); }
.nav-hamburger.open span:last-child { transform: translateY(-7.5px) rotate(-45deg); }

/* ── MOBILE MENU ─────────────────────────────────────────────────────────────── */
#mobileMenu {
  position: fixed; inset: 0; z-index: 999;
  background: var(--deep);
  display: flex; align-items: center; justify-content: center;
  transform: translateY(-100%);
  transition: transform 0.6s var(--ease-in-out);
}
#mobileMenu.open { transform: translateY(0); }
.mobile-menu-inner { text-align: center; }
.mobile-link {
  display: block; font-family: var(--serif);
  font-size: clamp(2.5rem, 8vw, 5rem); font-weight: 300; font-style: italic;
  color: rgba(255,255,255,0.5); line-height: 1.3;
  transition: color 0.3s ease;
  transform: translateY(30px); opacity: 0;
}
#mobileMenu.open .mobile-link {
  animation: mobileItemIn 0.6s var(--ease-out) forwards;
}
#mobileMenu.open .mobile-link:nth-child(1) { animation-delay: 0.1s; }
#mobileMenu.open .mobile-link:nth-child(2) { animation-delay: 0.18s; }
#mobileMenu.open .mobile-link:nth-child(3) { animation-delay: 0.26s; }
#mobileMenu.open .mobile-link:nth-child(4) { animation-delay: 0.34s; }
@keyframes mobileItemIn { to { transform: translateY(0); opacity: 1; } }
.mobile-link:hover { color: var(--gold); }
.mobile-link-cta { font-family: var(--sans); font-size: 11px !important; letter-spacing: 0.4em; text-transform: uppercase; font-style: normal !important; color: var(--gold) !important; margin-top: 2rem; }

/* ── REVEAL ANIMATIONS ────────────────────────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(48px);
  transition: opacity 0.9s var(--ease-out), transform 0.9s var(--ease-out);
}
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.12s; }
.reveal-delay-2 { transition-delay: 0.24s; }
.reveal-delay-3 { transition-delay: 0.36s; }
.reveal-delay-4 { transition-delay: 0.48s; }

/* ── TYPOGRAPHY ─────────────────────────────────────────────────────────────── */
.display-xl {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(4rem, 9vw, 10rem);
  line-height: 0.88; letter-spacing: -0.01em;
}
.display-lg {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(2.8rem, 5.5vw, 6.5rem);
  line-height: 0.92; letter-spacing: -0.01em;
}
.display-md {
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(2rem, 3.5vw, 4rem);
  line-height: 1.05;
}
.serif-italic { font-style: italic; }
.gold { color: var(--gold); }
.eyebrow {
  font-size: 9px; font-weight: 700; letter-spacing: 0.55em;
  text-transform: uppercase; color: var(--ink-mid);
}
.eyebrow-gold { color: var(--gold); }
.body-lg { font-size: clamp(1rem, 1.4vw, 1.15rem); font-weight: 300; line-height: 1.85; color: var(--ink-mid); }
.body-sm { font-size: 13px; font-weight: 400; line-height: 1.8; color: var(--ink-mid); }
.mono { font-family: var(--mono); font-size: 11px; letter-spacing: 0.05em; }

/* ── LAYOUT ─────────────────────────────────────────────────────────────────── */
.container { max-width: 1320px; margin: 0 auto; padding: 0 2.5rem; }
.section { padding: 8rem 0; }
.section-sm { padding: 5rem 0; }

/* ── BUTTONS ─────────────────────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; gap: 0.75rem;
  font-size: 10px; font-weight: 700; letter-spacing: 0.4em; text-transform: uppercase;
  padding: 1.1rem 2.5rem;
  transition: all 0.35s var(--ease-out);
  position: relative; overflow: hidden;
}
.btn-dark {
  background: var(--deep); color: var(--white);
  border: 1.5px solid var(--deep);
}
.btn-dark:hover { background: #000; transform: translateY(-2px); box-shadow: 0 12px 40px rgba(3,18,13,0.25); }
.btn-gold {
  background: var(--gold); color: var(--deep);
  border: 1.5px solid var(--gold);
}
.btn-gold:hover { background: var(--gold-light); transform: translateY(-2px); box-shadow: 0 12px 40px rgba(201,168,76,0.35); }
.btn-outline-dark {
  background: transparent; color: var(--deep);
  border: 1.5px solid var(--deep);
}
.btn-outline-dark:hover { background: var(--deep); color: var(--white); }
.btn-outline-white {
  background: transparent; color: var(--white);
  border: 1.5px solid rgba(255,255,255,0.35);
}
.btn-outline-white:hover { background: var(--white); color: var(--deep); border-color: var(--white); }
.btn-ghost-gold {
  background: transparent; color: var(--gold);
  border: 1.5px solid var(--gold-dim);
}
.btn-ghost-gold:hover { background: var(--gold-dim); }
.btn-arrow::after { content: '→'; display: inline-block; transition: transform 0.3s var(--ease-out); }
.btn-arrow:hover::after { transform: translateX(4px); }
.btn-lg { padding: 1.35rem 3.25rem; font-size: 10px; }

/* ── CARDS ─────────────────────────────────────────────────────────────────── */
.card {
  background: var(--white);
  border: 1px solid var(--ink-faint);
  transition: box-shadow 0.4s var(--ease-out), transform 0.4s var(--ease-out);
}
.card:hover { box-shadow: 0 20px 60px rgba(28,26,23,0.08); transform: translateY(-3px); }
.card-dark { background: var(--deep-mid); border-color: rgba(255,255,255,0.06); }
.card-gold-border { border-color: var(--gold-dim); }

/* ── FORM ELEMENTS ─────────────────────────────────────────────────────────── */
.form-field {
  width: 100%; padding: 1rem 1.25rem;
  background: var(--paper-mid); border: 1px solid var(--ink-faint);
  font-size: 14px; font-family: var(--sans); color: var(--ink);
  outline: none; transition: all 0.35s var(--ease-out);
  -webkit-appearance: none;
}
.form-field:focus {
  background: var(--white); border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.1);
}
.form-field::placeholder { color: var(--ink-mid); font-weight: 300; }
.form-field.is-error { border-color: #c0392b; background: #fff5f5; }
.form-label {
  display: block; font-size: 9px; font-weight: 700;
  letter-spacing: 0.45em; text-transform: uppercase;
  color: var(--ink-mid); margin-bottom: 0.6rem;
}
textarea.form-field { resize: vertical; min-height: 120px; }
select.form-field { cursor: pointer; }

/* ── DIVIDERS & ACCENTS ─────────────────────────────────────────────────────── */
.hr-gold { height: 1px; background: linear-gradient(90deg, var(--gold), transparent); border: none; margin: 0; }
.hr-ink  { height: 1px; background: var(--ink-faint); border: none; margin: 0; }
.dot-gold { display: inline-block; width: 6px; height: 6px; background: var(--gold); border-radius: 50%; }
.line-gold { display: inline-block; height: 1px; background: var(--gold); vertical-align: middle; }

/* ── BADGE / STATUS ─────────────────────────────────────────────────────────── */
.badge {
  display: inline-block; padding: 0.25rem 0.7rem;
  font-size: 9px; font-weight: 700; letter-spacing: 0.25em; text-transform: uppercase;
}
.badge-green  { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.badge-amber  { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.badge-red    { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.badge-blue   { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }
.badge-gray   { background: #f9fafb; color: #4b5563; border: 1px solid #e5e7eb; }
.badge-gold   { background: rgba(201,168,76,0.1); color: var(--gold); border: 1px solid var(--gold-dim); }

/* ── PAGE HERO OFFSET ───────────────────────────────────────────────────────── */
.page-top { padding-top: calc(var(--nav-h) + 6rem); }
.page-top-lg { padding-top: calc(var(--nav-h) + 10rem); }

/* ── NOISE TEXTURE OVERLAY ──────────────────────────────────────────────────── */
.noise::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  opacity: 0.025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-repeat: repeat; background-size: 200px 200px;
}

/* ── FOOTER ─────────────────────────────────────────────────────────────────── */
#site-footer {
  background: var(--deep); color: rgba(255,255,255,0.4);
  padding: 5rem 0 3rem;
}
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:4rem; margin-bottom:4rem; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.footer-logo { height: 36px; width: auto; opacity: 0.6; margin-bottom: 2rem; filter: brightness(0) invert(1); }
.footer-link { font-size: 10px; font-weight: 500; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(255,255,255,0.3); transition: color 0.3s; }
.footer-link:hover { color: var(--gold); }
.footer-divider { border: none; border-top: 1px solid rgba(255,255,255,0.06); margin: 2.5rem 0; }
.footer-copy { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.18); }

/* ── RESPONSIVE ─────────────────────────────────────────────────────────────── */
@media (max-width: 1200px) {
  .nav-inner, .container { padding-left: 2rem; padding-right: 2rem; }
}
@media (max-width: 900px) {
  .nav-links { display: none; }
  .nav-hamburger { display: flex; }
  .nav-inner, .container { padding-left: 1.25rem; padding-right: 1.25rem; }
  .nav-logo-wrap { width: 170px; height: 36px; }
  .section { padding: 5rem 0; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:2rem; }
  :root { --nav-h: 72px; }
}
@media (max-width: 768px) {
  .btn, .nav-cta { width: 100%; justify-content: center; }
  .page-top { padding-top: calc(var(--nav-h) + 4rem); }
  .page-top-lg { padding-top: calc(var(--nav-h) + 6rem); }
  .footer-copy { letter-spacing: 0.12em; }
}
@media (max-width: 600px) {
  .display-xl { font-size: clamp(3rem, 12vw, 5rem); }
  .display-lg { font-size: clamp(2.2rem, 9vw, 3.5rem); }
  .display-md { font-size: clamp(1.7rem, 8vw, 2.6rem); }
  .mobile-link { font-size: clamp(2rem, 12vw, 3.2rem); }
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { align-items:flex-start; }
}
  



/* Silk Meridian Website v3 polish — keeps the original editorial/container identity */
:root{--paper:#fff;--paper-mid:#f7f7f4}
html{scroll-behavior:smooth;scroll-padding-top:92px}
body{background:#fff}
.skip-link{position:fixed;left:1rem;top:1rem;z-index:10000;padding:.8rem 1rem;background:var(--deep,#03120d);color:#fff;font:500 11px/1 var(--mono,monospace);letter-spacing:.16em;text-transform:uppercase;transform:translateY(-180%);transition:transform .2s ease}
.skip-link:focus{transform:translateY(0)}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--gold,#C9A84C);outline-offset:4px}
.nav-link[aria-current="page"],.mobile-link[aria-current="page"]{color:var(--gold,#C9A84C)}
.nav-hamburger{touch-action:manipulation}
.form-field[aria-invalid="true"]{border-color:#a82d2d!important;background:#fff7f7!important}
.field-error{display:block;margin-top:.45rem;color:#8f2020;font-size:11px;line-height:1.45}
.form-status{margin-top:1rem;padding:.9rem 1rem;border-left:2px solid var(--gold,#C9A84C);background:#f7f7f4;font-size:12px;line-height:1.6}
.form-status a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.v2-section{padding:clamp(5rem,9vw,9rem) clamp(1.5rem,5vw,5rem);background:var(--paper,#fff);color:var(--ink,#1C1A17);border-top:1px solid rgba(28,26,23,.08)}
.v2-section.dark{background:var(--deep,#03120d);color:#fff;border-top:1px solid rgba(255,255,255,.08)}
.v2-wrap{max-width:1180px;margin:0 auto}.v2-eyebrow{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.45em;text-transform:uppercase;color:var(--gold,#C9A84C);margin-bottom:1.2rem}.v2-title{font-family:var(--serif,serif);font-weight:300;font-size:clamp(2.5rem,6vw,5.5rem);line-height:.94;letter-spacing:-.04em;max-width:850px}.v2-title em{font-style:italic;color:var(--gold,#C9A84C)}.v2-lead{font-size:clamp(1rem,1.4vw,1.25rem);font-weight:300;line-height:1.8;color:rgba(28,26,23,.62);max-width:650px;margin-top:1.4rem}.dark .v2-lead{color:rgba(255,255,255,.54)}
.v2-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(28,26,23,.1);border:1px solid rgba(28,26,23,.08);margin-top:3.5rem}.v2-card{background:#fff;padding:2.2rem;min-height:260px;display:flex;flex-direction:column;justify-content:space-between}.dark .v2-card{background:#071f16;border-color:rgba(255,255,255,.08)}.v2-kicker{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.35em;text-transform:uppercase;color:rgba(28,26,23,.38);margin-bottom:1rem}.dark .v2-kicker{color:rgba(255,255,255,.32)}.v2-card h3{font-family:var(--serif,serif);font-size:2rem;font-weight:300;line-height:1.05;margin-bottom:1rem}.v2-card p{font-size:13.5px;line-height:1.75;color:rgba(28,26,23,.58)}.dark .v2-card p{color:rgba(255,255,255,.48)}.v2-link{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold,#C9A84C);margin-top:1.6rem;display:inline-block}.v2-link:hover{letter-spacing:.32em}
.v2-process{margin-top:3.5rem;border-top:1px solid rgba(28,26,23,.12)}.v2-row{display:grid;grid-template-columns:140px 1fr 1fr;gap:2rem;padding:1.6rem 0;border-bottom:1px solid rgba(28,26,23,.1);align-items:start}.v2-row-num{font-family:var(--serif,serif);font-size:2.8rem;font-weight:300;color:var(--gold,#C9A84C);line-height:1}.v2-row h3{font-size:1rem;letter-spacing:-.02em}.v2-row p{font-size:13px;line-height:1.75;color:rgba(28,26,23,.55)}
.v2-proof{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:center}.v2-proof-list{display:grid;gap:1px;background:rgba(28,26,23,.1);border:1px solid rgba(28,26,23,.08)}.v2-proof-item{background:#fff;padding:1.4rem 1.6rem}.v2-proof-item strong{display:block;font-family:var(--serif,serif);font-size:1.55rem;font-weight:300}.v2-proof-item span{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:rgba(28,26,23,.38)}
.v2-contact-enhance{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.2rem 0}.v2-mini-field label{display:block;font-family:var(--mono,monospace);font-size:8.5px;letter-spacing:.35em;text-transform:uppercase;color:rgba(28,26,23,.42);margin-bottom:.45rem}.v2-mini-field select,.v2-mini-field input{width:100%;border:1px solid rgba(28,26,23,.12);background:#fafafa;padding:.85rem 1rem;font-family:var(--sans,sans-serif);font-size:13px;color:var(--ink,#1C1A17);outline:none}.v2-mini-field select:focus,.v2-mini-field input:focus{border-color:var(--gold,#C9A84C);background:#fff;box-shadow:0 0 0 3px rgba(201,168,76,.08)}
.v2-cta{margin-top:4rem;padding:3rem;background:var(--deep,#03120d);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:2rem}.v2-cta h3{font-family:var(--serif,serif);font-size:clamp(2rem,4vw,3.8rem);font-weight:300;line-height:1}.v2-cta p{max-width:430px;color:rgba(255,255,255,.5);line-height:1.7}.v2-cta a{white-space:nowrap;border:1px solid rgba(201,168,76,.45);color:var(--gold,#C9A84C);padding:1rem 1.4rem;font-family:var(--mono,monospace);font-size:10px;letter-spacing:.28em;text-transform:uppercase}.v2-cta a:hover{background:var(--gold,#C9A84C);color:var(--deep,#03120d)}
@media(max-width:900px){.v2-grid,.v2-proof{grid-template-columns:1fr}.v2-row{grid-template-columns:1fr;gap:.5rem}.v2-contact-enhance{grid-template-columns:1fr}.v2-cta{display:block}.v2-cta a{display:inline-block;margin-top:1.5rem}}
@media(max-width:600px){.v2-section{padding-left:1.25rem;padding-right:1.25rem}.v2-card{padding:1.6rem;min-height:auto}.v2-cta{padding:2rem}.v2-title{font-size:clamp(2.4rem,13vw,4rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1!important;transform:none!important}}
@media print{#navbar,.mobile-menu,#page-curtain,.skip-link{display:none!important}body{background:#fff!important;color:#111!important}a{color:inherit!important}}

/* V4 UX/UI system */
:root{--ui-radius:2px;--ui-shadow:0 24px 70px rgba(3,18,13,.09);--ui-border:rgba(28,26,23,.11)}
body{font-size:16px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.container,.v2-wrap{width:min(100% - clamp(2.5rem,8vw,8rem),1240px);max-width:1240px;margin-inline:auto}
#navbar{transition:background .35s ease,border-color .35s ease,box-shadow .35s ease,transform .35s ease}
#navbar.scrolled-white{background:rgba(255,255,255,.88)!important;border-bottom:1px solid rgba(28,26,23,.08);box-shadow:0 8px 32px rgba(3,18,13,.045);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.nav-inner{max-width:1320px!important;margin-inline:auto}.nav-link{position:relative;padding-block:.65rem}.nav-link::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--gold,#C9A84C);transition:right .3s ease}.nav-link:hover::after,.nav-link[aria-current="page"]::after{right:0}
.nav-cta,.btn,.cap-link,.v2-cta a{min-height:44px;display:inline-flex;align-items:center;justify-content:center;transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease}.nav-cta:hover,.btn:hover,.v2-cta a:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(3,18,13,.12)}
.display-xl,.display-lg,.display-md,.v2-title{text-wrap:balance}.body-lg,.v2-lead,.hero-desc,.form-sub{max-width:64ch}
.overview-card,.cap-item,.v2-card,.hub-panel,.briefing-row,.topic-card,.service-v3-block{transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s ease,border-color .35s ease,background .35s ease}.overview-card:hover,.v2-card:hover,.hub-panel:hover,.topic-card:hover{transform:translateY(-6px);box-shadow:var(--ui-shadow);border-color:rgba(201,168,76,.42)!important;position:relative;z-index:2}
.site-progress{position:fixed;top:0;left:0;width:0;height:2px;background:linear-gradient(90deg,#9f7b27,#f0d987);z-index:10001;pointer-events:none;box-shadow:0 0 14px rgba(201,168,76,.55)}
.v2-section{padding-block:clamp(5.5rem,9vw,9rem)}.v2-grid{box-shadow:0 25px 65px rgba(3,18,13,.055)}
.form-field,.v2-mini-field select,.v2-mini-field input{min-height:48px;border-radius:0;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.form-field:focus,.v2-mini-field select:focus,.v2-mini-field input:focus{border-color:var(--gold,#C9A84C)!important;box-shadow:0 0 0 4px rgba(201,168,76,.1)}

/* Interactive corridor map */
.meridian-map-section{overflow:hidden}.meridian-map-head{align-items:end}.route-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.journey-control{border:1px solid rgba(201,168,76,.45);background:rgba(255,255,255,.03);color:#fff!important;min-height:46px;padding:.75rem 1.1rem;display:inline-flex;align-items:center;gap:.7rem;font:500 9px/1 var(--mono,monospace);letter-spacing:.24em;text-transform:uppercase;transition:.25s ease}.journey-control:hover{background:var(--gold,#C9A84C);color:var(--deep,#03120d)!important;transform:translateY(-2px)}
.map-ui{position:absolute;inset:0;z-index:6;pointer-events:none}.map-status{position:absolute;top:1.25rem;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:.6rem;padding:.55rem .8rem;border:1px solid rgba(255,255,255,.12);background:rgba(3,18,13,.72);backdrop-filter:blur(14px);color:rgba(255,255,255,.72);font:500 8px/1 var(--mono,monospace);letter-spacing:.24em;text-transform:uppercase;white-space:nowrap}.map-status-dot{width:6px;height:6px;border-radius:50%;background:var(--gold,#C9A84C);box-shadow:0 0 0 5px rgba(201,168,76,.12);animation:statusPulse 2s ease-in-out infinite}
.map-hub-strip{position:absolute;left:50%;bottom:1.25rem;transform:translateX(-50%);width:min(94%,1040px);display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(201,168,76,.2);border:1px solid rgba(201,168,76,.22);pointer-events:auto;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.map-hub-button{border:0;background:rgba(3,18,13,.88);color:#fff;text-align:left;padding:1rem 1.1rem;display:grid;grid-template-columns:auto 1fr;column-gap:.8rem;align-items:center;cursor:pointer;backdrop-filter:blur(16px);transition:background .25s ease,color .25s ease}.map-hub-button:hover,.map-hub-button.is-active{background:rgba(201,168,76,.94);color:var(--deep,#03120d)}.map-hub-index{font:500 9px/1 var(--mono,monospace);opacity:.55}.map-hub-name{font:400 1.25rem/1 var(--serif,serif)}.map-hub-role{grid-column:2;font:400 8px/1.4 var(--mono,monospace);letter-spacing:.18em;text-transform:uppercase;opacity:.58;margin-top:.25rem}
.realistic-map [data-map-hub]{transition:opacity .3s ease}.realistic-map.has-hub-focus [data-map-hub]:not(.is-active){opacity:.28}.realistic-map [data-map-hub].is-active .hub-marker{fill:#fff;stroke-width:4}.realistic-map [data-map-hub].is-active .hub-pin{fill:rgba(201,168,76,.55)}
@keyframes statusPulse{50%{opacity:.45;transform:scale(.8)}}
@media(max-width:760px){.container,.v2-wrap{width:min(100% - 2.5rem,1240px)}.meridian-map-wrap.realistic-map{height:680px!important;min-height:680px!important}.meridian-map-svg{transform:scale(1.34);transform-origin:72% 48%}.map-status{top:.9rem}.map-hub-strip{bottom:.85rem;width:calc(100% - 1.5rem);display:flex;overflow-x:auto;scroll-snap-type:x mandatory;background:transparent;border:0;box-shadow:none;gap:.5rem}.map-hub-button{min-width:78%;scroll-snap-align:center;border:1px solid rgba(201,168,76,.25);box-shadow:0 12px 35px rgba(0,0,0,.3)}.route-caption{display:none}.overview-card:hover,.v2-card:hover,.hub-panel:hover,.topic-card:hover{transform:none}.nav-cta,.btn{min-height:48px}.display-xl{font-size:clamp(3.2rem,17vw,5rem)!important}}

  
/* ── selettore lingua: voce del menu, non elemento fluttuante ─────────────── */
.lang-switch{display:inline-flex;align-items:center;gap:.28rem;margin-right:.4rem;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;}
.lang-switch .lang-opt{color:rgba(255,255,255,.42);text-decoration:none;padding:.3rem .15rem;
  border-bottom:1px solid transparent;transition:color .25s ease,border-color .25s ease;}
.lang-switch .lang-opt:hover{color:var(--gold-light);border-bottom-color:var(--gold);}
.lang-switch .lang-opt.is-active{color:var(--gold);}
.lang-switch .lang-sep{color:rgba(255,255,255,.16);font-size:9px;}
/* Barra chiara. Le classi giuste sono quelle che mette davvero il JS:
   scrolled-white = fondo chiaro, scrolled-dark = fondo scuro. Prima qui
   c'erano .nav-light e .nav-on-light, che nessuno applica: l'override non
   entrava mai in funzione e la lingua non attiva restava bianca al 42% su
   fondo bianco, cioe' invisibile. */
#navbar.scrolled-white .lang-switch .lang-opt{color:rgba(28,26,23,.55);}
#navbar.scrolled-white .lang-switch .lang-opt:hover{color:var(--deep);border-bottom-color:var(--gold);}
#navbar.scrolled-white .lang-switch .lang-opt.is-active{color:#8a6d1f;}
#navbar.scrolled-white .lang-switch .lang-sep{color:rgba(28,26,23,.25);}
@media(max-width:900px){.lang-switch{margin:1.2rem 0 0;font-size:12px;letter-spacing:.22em;}}
/* Selettore lingua nel menu mobile: staccato dalle voci, con un filetto
   sopra, e con l'area toccabile larga abbastanza per un dito. */
.lang-switch-mobile{display:none;}
@media(max-width:900px){
  .lang-switch-mobile{display:inline-flex;margin-top:2.4rem;padding-top:1.6rem;
    gap:.5rem;font-size:13px;letter-spacing:.26em;
    border-top:1px solid rgba(250,248,245,.12);}
  /* 44x44 e' la misura minima che Apple e Google indicano per un bersaglio
     da toccare col pollice: sotto, si sbaglia voce. */
  .lang-switch-mobile .lang-opt{display:inline-flex;align-items:center;
    justify-content:center;min-width:44px;min-height:44px;padding:0 .4rem;}
  .lang-switch-mobile .lang-sep{font-size:11px;}
}
.hero-sub-line{display:block;margin-top:.55rem;font-style:italic;opacity:.72;font-size:.92em;}

/* ── riga legale nel footer ───────────────────────────────────────────────── */
.footer-legal{margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid rgba(250,248,245,.09);display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:300;color:rgba(250,248,245,.42);}
.footer-legal a{color:rgba(250,248,245,.42);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s;}
.footer-legal a:hover{color:var(--gold);border-bottom-color:var(--gold-dim);}
.footer-legal-sep{opacity:.4;}

/* ── esito invio modulo ───────────────────────────────────────────────────── */
.form-status.is-ok{color:#1e7a4c;}
.form-status.is-error{color:#a33;}

