/* =========================================================
   Aurea Legal — site styles
   Design tokens → base → components → responsive
   ========================================================= */

/* ===================== Design tokens ===================== */
:root{
  --paper:        #F1F3F7;
  --paper-raised: #FFFFFF;
  --ink:          #0B1428;
  --muted:        #4A5470;
  --royal:        #263F7D;
  --royal-deep:   #0F1E4A;
  --royal-soft:   #E7EAF4;
  --gold:         #96700A;
  --gold-bright:  #DB9F09;
  --gold-on-dark: #D8AE64;
  --line:         #DBE0EA;
  --card:         #FFFFFF;
  --shadow: 0 1px 2px rgba(11,20,40,0.04), 0 12px 32px -16px rgba(11,20,40,0.18);

  --font-display: 'Fraunces', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
  --font-body: 'IBM Plex Sans', 'Segoe UI', Helvetica, Arial, sans-serif;
  --font-logo-sans: 'Jost', 'Century Gothic', 'Futura', sans-serif;

  --container: 1180px;
  --edge: clamp(1.25rem, 4vw, 3.25rem);
  /* The nav overlays the hero, so its height is a layout constant rather than
     something the content decides — the hero offsets by exactly this value. */
  --nav-h: 4.75rem;
  --nav-h-solid: 4rem;

  color-scheme: light dark;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:        #0B1224;
    --paper-raised: #101A33;
    --ink:          #EDEFF5;
    --muted:        #A6AFC4;
    --royal:        #7C93E0;
    --royal-deep:   #142352;
    --royal-soft:   #16204A;
    --gold:         #D8AE64;
    --gold-bright:  #E4C179;
    --gold-on-dark: #E4C179;
    --line:         #263252;
    --card:         #101A33;
    --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 20px 40px -20px rgba(0,0,0,0.6);
  }
}
:root[data-theme="dark"]{
  --paper:        #0B1224;
  --paper-raised: #101A33;
  --ink:          #EDEFF5;
  --muted:        #A6AFC4;
  --royal:        #7C93E0;
  --royal-deep:   #142352;
  --royal-soft:   #16204A;
  --gold:         #D8AE64;
  --gold-bright:  #E4C179;
  --gold-on-dark: #E4C179;
  --line:         #263252;
  --card:         #101A33;
  --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 20px 40px -20px rgba(0,0,0,0.6);
}

/* ===================== Base ===================== */
*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3{ font-family:var(--font-display); font-weight:500; margin:0; text-wrap:balance; color:var(--ink); }
p{ margin:0; }
a{ color:inherit; }
img{ max-width:100%; display:block; }
::selection{ background:var(--gold-bright); color:var(--royal-deep); }
:focus-visible{ outline:2px solid var(--gold-bright); outline-offset:3px; }

.wrap{ max-width:var(--container); margin:0 auto; padding-left:var(--edge); padding-right:var(--edge); }
.eyebrow{
  font-family:var(--font-body); font-weight:600; font-size:0.72rem;
  letter-spacing:0.16em; text-transform:uppercase; color:var(--gold);
}
.section{ padding:clamp(3.5rem,8vw,6.5rem) 0; scroll-margin-top:calc(var(--nav-h-solid) + 0.5rem); }
.section-head{ max-width:640px; margin-bottom:clamp(2rem,5vw,3.25rem); }
.section-head h2{ font-size:clamp(1.9rem,3.4vw,2.6rem); margin-top:0.6rem; }
.section-head .lede{ margin-top:0.9rem; color:var(--muted); font-size:1.05rem; line-height:1.7; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}

/* Skip link — keyboard users jump past the sticky nav */
.skip-link{
  position:absolute; left:var(--edge); top:-100px; z-index:100;
  background:var(--ink); color:var(--paper); padding:0.7rem 1.1rem;
  font-size:0.85rem; text-decoration:none; transition:top .2s ease;
}
.skip-link:focus{ top:0.75rem; }

/* ===================== Nav ===================== */
.site-nav{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; justify-content:space-between;
  min-height:var(--nav-h);
  padding:0 var(--edge);
  background:transparent;
  transition:background-color .35s ease, box-shadow .35s ease, min-height .35s ease, border-color .35s ease;
  border-bottom:1px solid transparent;
}
.site-nav.is-solid,
.no-js .site-nav{
  background:color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  min-height:var(--nav-h-solid);
}
/* Brand mark — the supplied logo artwork. Two colour versions: the original
   gold/navy for light surfaces, a gold/cream recolour for dark ones. Only one
   is ever displayed, so the hidden one is not announced by screen readers. */
.brand-mark{ display:inline-flex; align-items:center; text-decoration:none; }
.brand-logo{ display:block; width:auto; height:20px; }
.brand-logo--light{ display:none; }

/* Dark surfaces: over the hero, and anywhere in the dark theme. */
.site-nav:not(.is-solid):not(.is-static) .brand-logo--color{ display:none; }
.site-nav:not(.is-solid):not(.is-static) .brand-logo--light{ display:block; }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .site-nav .brand-logo--color{ display:none; }
  :root:not([data-theme="light"]) .site-nav .brand-logo--light{ display:block; }
}
:root[data-theme="dark"] .site-nav .brand-logo--color{ display:none; }
:root[data-theme="dark"] .site-nav .brand-logo--light{ display:block; }
@media (min-width:921px){ .brand-logo{ height:24px; } }
.nav-links{ display:flex; align-items:center; gap:clamp(1.1rem,2.4vw,2.4rem); list-style:none; margin:0; padding:0; }
.nav-links a{
  text-decoration:none; font-size:0.86rem; letter-spacing:0.03em; color:#F4F1E8;
  position:relative; padding:0.2rem 0; transition:color .35s ease;
}
.nav-links a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px; background:var(--gold-bright);
  transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.nav-links a:hover::after, .nav-links a:focus-visible::after{ transform:scaleX(1); }
.nav-cta{
  border:1px solid var(--gold-bright); color:#F4F1E8; text-decoration:none;
  padding:0.5rem 1.05rem; font-size:0.8rem; letter-spacing:0.03em; white-space:nowrap;
  transition:color .35s ease, border-color .35s ease;
}
.nav-toggle{ display:none; }
.nav-cta-mobile{ display:none; }
/* The nav is cream-on-photo over the hero and inverts once it sits on paper.
   `.is-solid` is added on scroll, `.is-static` is shipped by subpages that have
   no hero, and `.no-js` keeps the nav readable when the script never runs. */
:is(.site-nav.is-solid, .no-js .site-nav) .nav-links a,
:is(.site-nav.is-solid, .no-js .site-nav) .nav-cta,
:is(.site-nav.is-solid, .no-js .site-nav) .lang-switch{ color:var(--ink); }
:is(.site-nav.is-solid, .no-js .site-nav) .nav-cta{ border-color:var(--gold); }
:is(.site-nav.is-solid, .no-js .site-nav) .nav-links a::after{ background:var(--gold); }

/* Language switch */
.lang-switch{
  display:inline-flex; align-items:center; gap:0.45rem;
  font-size:0.74rem; letter-spacing:0.1em; text-transform:uppercase;
}
.lang-switch a{
  text-decoration:none; color:inherit; opacity:0.62; transition:opacity .25s ease, color .25s ease;
}
.lang-switch a:hover{ opacity:1; color:var(--gold-bright); }
.lang-switch [aria-current="true"]{ opacity:1; font-weight:600; color:var(--gold-bright); }
.lang-switch .sep{ opacity:0.4; }
.site-nav.is-solid .lang-switch [aria-current="true"],
.site-nav.is-solid .lang-switch a:hover{ color:var(--gold); }

/* Subpages have no hero, so the nav is solid from the first pixel */
.site-nav.is-static{
  background:var(--paper); border-bottom:1px solid var(--line);
}
.site-nav.is-static .nav-links a,
.site-nav.is-static .nav-cta,
.site-nav.is-static .lang-switch{ color:var(--ink); }
.site-nav.is-static .nav-cta{ border-color:var(--gold); }
.site-nav.is-static .nav-links a::after{ background:var(--gold); }
.site-nav.is-static .lang-switch [aria-current="true"]{ color:var(--gold); }

/* ===================== Hero ===================== */
.hero{
  position:relative; isolation:isolate; overflow:hidden;
  min-height:min(92vh, 820px);
  display:flex; align-items:flex-end;
  margin-top:calc(-1 * var(--nav-h));
  padding-top:var(--nav-h);
  color:#F4F1E8;
}
.hero-frames{ position:absolute; inset:0; z-index:-2; background:#0B1428; }
.hero-frame{
  position:absolute; inset:0;
  opacity:0; animation:heroCrossfade 13s infinite;
}
.hero-frame img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center var(--bg-pos, 28%);
}
/* Scrim keeps the headline readable over any photo */
.hero-frame::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(8,13,30,0.28) 0%, rgba(8,13,30,0.5) 55%, rgba(5,9,22,0.94) 100%);
}
.hero-frame.is-color{ --bg-pos:30%; animation-delay:0s; filter:brightness(0.96) saturate(1.04); }
.hero-frame.is-bw{ --bg-pos:18%; animation-delay:6.5s; filter:brightness(0.85) contrast(1.08) sepia(0.4) hue-rotate(178deg) saturate(1.9); }
@keyframes heroCrossfade{
  0%{opacity:0;} 4%{opacity:1;} 46%{opacity:1;} 50%{opacity:0;} 100%{opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .hero-frame{ animation:none; opacity:0; }
  .hero-frame.is-color{ opacity:1; }
}
.hero-path{ position:absolute; inset:0; z-index:-1; pointer-events:none; }
.hero-path svg{ width:100%; height:100%; }
.hero-path path{
  fill:none; stroke:var(--gold-bright); stroke-width:1.1; opacity:0.5;
  stroke-dasharray:2400; stroke-dashoffset:2400; animation:drawPath 2.8s ease-out 0.3s forwards;
}
@keyframes drawPath{ to{ stroke-dashoffset:0; } }
@media (prefers-reduced-motion: reduce){ .hero-path path{ animation:none; stroke-dasharray:none; } }

.hero-inner{ position:relative; width:100%; padding:0 var(--edge) clamp(3rem,7vw,5.5rem); }
.hero-eyebrow{
  font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-bright);
  font-weight:600; margin-bottom:1.1rem;
}
.hero h1{ margin:0; }
.hero-wordmark{ margin:0; }
.hero-wordmark img{ width:clamp(255px, 52vw, 560px); height:auto; }
/* Brand descriptor set in the logo's sans, matching the business cards. */
.hero-tagline{
  font-family:var(--font-logo-sans); font-weight:300;
  font-size:clamp(0.82rem,1.5vw,1.08rem);
  letter-spacing:0.26em; text-transform:uppercase;
  color:#E9E4D5; margin-top:1.15rem; padding-left:0.14em;
}
.hero-foot{
  display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; flex-wrap:wrap;
  margin-top:clamp(2.4rem,6vw,3.75rem);
  border-top:1px solid rgba(244,241,232,0.22); padding-top:1.5rem;
}
.hero-desc{ max-width:34ch; color:#D9D6C8; font-size:0.95rem; line-height:1.7; }
.hero-actions{ display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; }
.btn{
  display:inline-flex; align-items:center; gap:0.6rem;
  font-family:var(--font-body); font-weight:600; font-size:0.85rem; letter-spacing:0.03em;
  text-decoration:none; padding:0.85rem 1.5rem; border:1px solid var(--gold-bright); color:#FBF9F2;
  transition:background-color .25s ease, color .25s ease;
}
.btn:hover{ background:var(--gold-bright); color:var(--royal-deep); }
.btn-ghost{
  color:#F4F1E8; text-decoration:none; font-size:0.85rem; letter-spacing:0.02em;
  border-bottom:1px solid rgba(244,241,232,0.4); padding-bottom:0.2rem;
}
.btn-ghost:hover{ border-color:var(--gold-bright); color:var(--gold-bright); }

/* ===================== About ===================== */
.about{ background:var(--paper); }
.about-grid{
  display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(2.5rem,6vw,5rem); align-items:start;
}
.about h2{ font-size:clamp(1.9rem,3.4vw,2.7rem); }
.about-text{ margin-top:1.4rem; color:var(--muted); font-size:1.08rem; line-height:1.8; max-width:60ch; }
.principles{ display:flex; flex-direction:column; }
.principle{
  display:flex; gap:1.1rem; padding:1.35rem 0; border-top:1px solid var(--line);
}
.principle:last-child{ border-bottom:1px solid var(--line); }
.principle svg{ flex:none; width:26px; height:26px; margin-top:0.15rem; color:var(--gold); }
.principle h3{ font-size:1.05rem; font-weight:600; font-family:var(--font-body); letter-spacing:0.01em; }
.principle p{ margin-top:0.35rem; color:var(--muted); font-size:0.92rem; line-height:1.6; }

.about-figure{ margin:2.25rem 0 0; max-width:260px; border-top:2px solid var(--gold); }
/* height:auto is required — the width/height attributes would otherwise resolve
   both dimensions and `aspect-ratio` would be ignored, cropping the photo. */
.about-figure img{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; display:block; }
.about-figure figcaption{
  margin-top:0.7rem; font-family:var(--font-display); font-style:italic;
  font-size:0.85rem; color:var(--muted); line-height:1.4;
}

/* ===================== Clients rail ===================== */
.clients{
  background:var(--royal-deep); color:#F4F1E8; padding:clamp(2.5rem,5vw,3.5rem) 0;
}
.clients .wrap{ display:flex; flex-wrap:wrap; align-items:baseline; gap:0.6rem 0; }
.clients .eyebrow{ color:var(--gold-bright); width:100%; margin-bottom:1.1rem; }
.client-list{ display:flex; flex-wrap:wrap; gap:0; font-family:var(--font-display); font-size:clamp(1.05rem,2.1vw,1.5rem); list-style:none; margin:0; padding:0; }
.client-list li{ display:flex; align-items:center; color:#EDEAE0; }
.client-list li:not(:last-child)::after{
  content:"·"; color:var(--gold-bright); margin:0 0.65em; font-size:0.9em;
}

/* ===================== Services ===================== */
.services{ background:var(--paper); }
.service-index{ border-top:1px solid var(--line); }
.service-row{
  display:grid; grid-template-columns:minmax(200px,320px) 1fr; gap:1.5rem 3rem;
  padding:1.6rem 0; border-bottom:1px solid var(--line);
}
.service-row h3{
  font-size:1.18rem; font-weight:500; line-height:1.3;
}
.service-row p{ color:var(--muted); font-size:0.96rem; line-height:1.7; }

/* ===================== Team ===================== */
.team{ background:var(--paper); }
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.75rem,3vw,2.5rem); }
.team-card{
  background:var(--card); box-shadow:var(--shadow); display:flex; flex-direction:column;
}
.portrait{
  position:relative; aspect-ratio:4/5; width:100%;
  background:linear-gradient(155deg, var(--royal-deep) 0%, #1B2C63 55%, var(--royal-deep) 100%);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.portrait img{ width:100%; height:100%; object-fit:cover; display:block; }
.portrait::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,20,40,0) 70%, rgba(11,20,40,0.28) 100%);
  pointer-events:none;
}
.team-body{ padding:1.6rem 1.6rem 1.9rem; border-top:2px solid var(--gold); }
.team-body h3{ font-size:1.3rem; }
.team-role{ font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold); margin-top:0.4rem; font-weight:600; }
.team-bio{ margin-top:1rem; color:var(--muted); font-size:0.9rem; line-height:1.72; }
.team-bio p + p{ margin-top:0.85rem; }
.team-quote{
  margin:1.2rem 0 0; padding-top:1.1rem; border-top:1px solid var(--line);
  font-family:var(--font-display); font-style:italic; color:var(--ink); font-size:0.98rem; line-height:1.55;
}
.team-contact{ margin-top:1.1rem; font-size:0.86rem; display:flex; flex-direction:column; gap:0.25rem; }
.team-contact a{ color:var(--royal); text-decoration:none; border-bottom:1px solid var(--line); width:fit-content; }
.team-contact a:hover{ color:var(--gold); border-color:var(--gold); }

/* ===================== Contact ===================== */
.contact{
  background:var(--royal-deep); color:#F4F1E8; position:relative; overflow:hidden;
}
.contact-grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:clamp(2.5rem,6vw,5rem); align-items:end; }
.contact h2{ color:#FBF9F2; font-size:clamp(1.9rem,3.6vw,2.8rem); }
.contact .eyebrow{ color:var(--gold-bright); }
.contact .lede{ color:#C9C6BA; margin-top:1rem; max-width:44ch; font-size:1.02rem; line-height:1.75; }
.contact-details{ display:flex; flex-direction:column; gap:1.4rem; }
.contact-item{ border-top:1px solid rgba(244,241,232,0.18); padding-top:1.1rem; }
.contact-item .k{ font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-bright); font-weight:600; }
.contact-item .v{ margin-top:0.4rem; font-size:1.05rem; }
.contact-item a{ text-decoration:none; color:#F4F1E8; border-bottom:1px solid rgba(244,241,232,0.3); }
.contact-item a:hover{ color:var(--gold-bright); border-color:var(--gold-bright); }
.contact-people{ display:flex; flex-direction:column; gap:1.4rem; }
.contact-person{ border-top:1px solid rgba(244,241,232,0.18); padding-top:1.1rem; }
.contact-person .name{ font-family:var(--font-display); font-size:1.08rem; color:#FBF9F2; }
.contact-person .role{ font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-bright); font-weight:600; margin-top:0.3rem; }
.contact-person .line{ margin-top:0.55rem; font-size:0.97rem; }
.contact-person a{ text-decoration:none; color:#F4F1E8; border-bottom:1px solid rgba(244,241,232,0.3); }
.contact-person a:hover{ color:var(--gold-bright); border-color:var(--gold-bright); }
.map-link{ display:inline-block; margin-top:0.6rem; font-size:0.85rem; }

/* ===================== Footer ===================== */
.site-footer{
  background:var(--royal-deep); color:#B8B4A6; border-top:1px solid rgba(244,241,232,0.14);
  padding:clamp(2.25rem,5vw,3rem) 0 1.5rem;
  font-size:0.82rem; line-height:1.7;
}
.footer-grid{
  display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:clamp(1.75rem,4vw,3rem);
  padding-bottom:1.75rem; border-bottom:1px solid rgba(244,241,232,0.14);
}
.site-footer .fbrand{ display:block; width:168px; height:auto; }
.site-footer .ftag{
  font-family:var(--font-logo-sans); font-weight:300; font-size:0.72rem;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--gold-on-dark); margin-top:0.5rem;
}
.footer-col h2{
  font-family:var(--font-body); font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--gold-bright); font-weight:600; margin-bottom:0.7rem;
}
.footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.35rem; }
.footer-col a{ color:#D6D3C8; text-decoration:none; border-bottom:1px solid transparent; }
.footer-col a:hover{ color:var(--gold-bright); border-color:var(--gold-bright); }
.footer-note{ margin-top:0.8rem; color:#9C998E; font-size:0.78rem; }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap;
  padding-top:1.25rem; font-size:0.76rem; color:#9C998E;
}
.footer-bottom a{ color:#9C998E; }

/* ===================== Text subpages (legal) ===================== */
.page-head{
  background:var(--royal-deep); color:#F4F1E8;
  padding:clamp(3rem,7vw,4.5rem) 0 clamp(2.25rem,5vw,3rem);
}
.page-head h1{ color:#FBF9F2; font-size:clamp(1.9rem,4vw,2.8rem); margin-top:0.6rem; }
.page-head .eyebrow{ color:var(--gold-bright); }
.page-head .lede{ color:#C9C6BA; margin-top:0.9rem; max-width:56ch; }

.prose{ max-width:52rem; padding-top:clamp(2.5rem,6vw,4rem); padding-bottom:clamp(3rem,7vw,5rem); }
.prose h2{
  font-size:1.35rem; margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--line);
}
.prose h2:first-of-type{ margin-top:0; padding-top:0; border-top:0; }
.prose h3{ font-size:1.05rem; font-family:var(--font-body); font-weight:600; margin-top:1.6rem; }
.prose p, .prose li{ color:var(--muted); line-height:1.8; }
.prose p{ margin-top:0.9rem; }
.prose ul, .prose ol{ margin:0.9rem 0 0; padding-left:1.25rem; }
.prose li{ margin-top:0.4rem; }
.prose a{ color:var(--royal); text-decoration:none; border-bottom:1px solid var(--line); }
.prose a:hover{ color:var(--gold); border-color:var(--gold); }
.prose .meta{ font-size:0.85rem; color:var(--muted); margin-top:2.5rem; padding-top:1.25rem; border-top:1px solid var(--line); }
.prose dl{ margin:0.9rem 0 0; }
.prose dt{ font-weight:600; color:var(--ink); margin-top:0.9rem; font-size:0.95rem; }
.prose dd{ margin:0.2rem 0 0; color:var(--muted); }

/* ===================== Responsive ===================== */
@media (max-width:920px){
  :root{ --nav-h: 4rem; --nav-h-solid: 3.5rem; }
  .about-grid{ grid-template-columns:1fr; }
  .team-grid{ grid-template-columns:1fr; max-width:420px; margin:0 auto; }
  .service-row{ grid-template-columns:1fr; gap:0.5rem; }
  .contact-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .nav-links{
    position:fixed; inset:0 0 0 auto; height:100vh; width:min(78vw,320px);
    background:var(--ink); color:#F4F1E8; flex-direction:column; align-items:flex-start;
    justify-content:flex-start; padding:5.5rem 2rem 2rem; gap:1.6rem;
    transform:translateX(100%); transition:transform .35s ease; z-index:60;
    overflow-y:auto;
  }
  .site-nav.is-solid .nav-links a,
  .site-nav.is-static .nav-links a,
  .nav-links a{ color:#F4F1E8 !important; font-size:1.05rem; }
  .nav-toggle:checked ~ .nav-links{ transform:translateX(0); }
  .nav-toggle-label{
    display:flex; flex-direction:column; gap:5px; width:26px; cursor:pointer; z-index:61;
  }
  .nav-toggle-label span{ height:1.5px; background:var(--ink); display:block; transition:transform .3s ease, opacity .3s ease; }
  .nav-toggle:checked ~ .nav-toggle-label span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  .nav-toggle:checked ~ .nav-toggle-label span:nth-child(2){ opacity:0; }
  .nav-toggle:checked ~ .nav-toggle-label span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }
  .nav-cta{ display:none; }
  .lang-desktop{ display:none; }
  .nav-cta-mobile{ display:block; margin-top:0.5rem; }
  .nav-cta-mobile .nav-cta{ display:inline-flex; }
  .nav-links .lang-switch{ color:#F4F1E8 !important; margin-top:0.5rem; font-size:0.85rem; }
  .nav-links .lang-switch a{ font-size:0.85rem !important; }
}
@media (min-width:921px){
  .nav-toggle, .nav-toggle-label{ display:none; }
  .nav-links .lang-item{ display:none; }
}
@media (max-width:640px){
  .hero{ align-items:flex-end; min-height:100svh; }
  .hero-foot{ flex-direction:column; align-items:flex-start; }
  .client-list{ font-size:1.05rem; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; gap:0.4rem; }
}
