:root{
    --charcoal:#2D2C2C;
    --near-black:#2B271D;
    --panel:#242322;
    --gold:#D5B062;
    --deep-gold:#AB853C;
    --cream:#F6F1E7;
    --paper:#FBF8F2;
    --mist:rgba(246,241,231,.62);
    --ink:rgba(43,39,29,.66);
    --line-dark:rgba(213,176,98,.18);
    --line-dark-strong:rgba(213,176,98,.36);
    --line-light:rgba(43,39,29,.12);
    --line-light-strong:rgba(43,39,29,.24);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--charcoal);
    color:var(--cream);
    font-family:'Source Sans 3',-apple-system,BlinkMacSystemFont,sans-serif;
    line-height:1.6;
    overflow-x:hidden;
  }
  ::selection{background:var(--gold); color:var(--near-black);}
  a{color:inherit; text-decoration:none;}
  img,svg{max-width:100%; display:block;}
  :where(img[width][height]){ height:auto; }
  h1,h2,h3{font-family:'Poppins',ui-sans-serif,sans-serif; font-weight:700; margin:0; text-wrap:balance;}
  p{margin:0;}
  button{font-family:inherit; cursor:pointer; border:none; background:none; margin:0;}

  .grain{
    position:fixed; inset:0; z-index:60; pointer-events:none;
    opacity:.045; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  .eyebrow{
    font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace;
    font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold);
    display:inline-flex; align-items:center; gap:.7em;
  }
  .eyebrow::before{ content:""; width:6px; height:6px; background:currentColor; transform:rotate(45deg); display:inline-block; flex:none; }

  .wrap{max-width:1180px; margin:0 auto; padding:0 clamp(20px,4vw,56px);}

  :focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

  .reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
    .reveal{opacity:1; transform:none;}
  }

  /* ---------- brand mark ---------- */
  .seal{ display:block; filter:drop-shadow(0 10px 24px rgba(0,0,0,.45)); }
  .seal img{ width:100%; height:100%; display:block; }

  /* ---------- nav ---------- */
  .nav{
    position:sticky; top:0; z-index:50;
    display:flex; align-items:center; justify-content:space-between;
    padding:16px clamp(20px,4vw,56px);
    background:rgba(45,44,44,0);
    border-bottom:1px solid transparent;
    transition:background .35s ease, border-color .35s ease, box-shadow .35s ease;
  }
  .nav.solid{ background:rgba(37,36,35,.86); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--line-dark); box-shadow:0 12px 30px -18px rgba(0,0,0,.6); }
  .logo{display:flex; align-items:center; gap:.7em;}
  .logo .seal{width:38px; height:38px;}
  .logo-word{font-family:'Poppins',sans-serif; font-weight:700; font-size:1.06rem; letter-spacing:.06em; text-transform:uppercase; color:var(--cream);}
  .logo-word em{ font-style:normal; color:var(--gold); }
  .nav-links{display:flex; align-items:center; gap:2.1rem;}
  .nav-links a{font-size:.88rem; font-weight:600; color:var(--mist); transition:color .2s ease;}
  .nav-links a:hover{color:var(--gold);}
  .nav-cta{
    font-size:.85rem; font-weight:700; padding:.68em 1.4em;
    border-radius:2px; color:var(--near-black);
    background:linear-gradient(135deg,var(--gold),var(--deep-gold));
    transition:transform .2s ease, box-shadow .2s ease;
    box-shadow:0 10px 22px -12px rgba(213,176,98,.6);
  }
  .nav-cta:hover{transform:translateY(-1px); box-shadow:0 14px 26px -10px rgba(213,176,98,.75);}
  .nav-toggle{display:none;}

  @media (max-width:860px){
    .nav-links{
      position:fixed; inset:64px 0 auto 0; flex-direction:column; align-items:flex-start; gap:0;
      background:var(--panel); border-bottom:1px solid var(--line-dark);
      padding:8px clamp(20px,4vw,56px) 22px; transform:translateY(-8px); opacity:0; pointer-events:none;
      transition:opacity .2s ease, transform .2s ease;
    }
    .nav-links.open{opacity:1; transform:translateY(0); pointer-events:auto;}
    .nav-links a{padding:.9em 0; width:100%; border-bottom:1px solid var(--line-dark);}
    .nav-cta{display:none;}
    .nav-links .nav-cta-mobile{display:inline-flex; margin-top:1em;}
    .nav-toggle{display:flex; flex-direction:column; gap:5px; background:none; border:none; padding:6px;}
    .nav-toggle span{width:22px; height:2px; background:var(--cream); display:block;}
  }

  /* ---------- hero ---------- */
  .hero{position:relative; min-height:min(90vh,800px); display:flex; align-items:flex-end; overflow:hidden;}
  .hero-video-wrap{position:absolute; inset:0; overflow:hidden;}
  .hero-video{
    position:absolute; inset:-6% -6%; width:112%; height:112%;
    object-fit:cover; object-position:60% center;
    filter:grayscale(.15) contrast(1.1) saturate(.85) brightness(.9);
    will-change:transform;
  }
  .hero-scrim{
    position:absolute; inset:0; pointer-events:none;
    background:
      linear-gradient(105deg, rgba(43,39,29,.94) 0%, rgba(43,39,29,.6) 34%, rgba(43,39,29,.12) 58%, rgba(43,39,29,.4) 100%),
      linear-gradient(to top, rgba(43,39,29,.95) 0%, rgba(43,39,29,.12) 46%, rgba(43,39,29,.05) 100%);
  }
  .hero-inner{position:relative; z-index:2; padding:clamp(28px,6vw,56px) 0 clamp(56px,7vw,84px); width:100%;}
  .hero-grid{display:grid; grid-template-columns:1fr auto; gap:2rem; align-items:end;}
  .hero-copy{max-width:600px;}
  .hero h1{
    margin:.6em 0 .55em;
    font-size:clamp(2.2rem, 3.6vw + 1rem, 3.6rem);
    line-height:1.08;
    color:var(--cream);
  }
  .hero-sub{ max-width:46ch; color:var(--mist); font-size:clamp(1rem,.35vw+.95rem,1.08rem); }
  .hero-actions{display:flex; flex-wrap:wrap; gap:1.1rem; margin-top:2.1rem;}
  .btn{
    display:inline-flex; align-items:center; gap:.5em;
    padding:.95em 1.8em; border-radius:2px; font-weight:700; font-size:.92rem;
    transition:box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
  }
  .btn-primary{ color:var(--near-black); background:linear-gradient(135deg,var(--gold),var(--deep-gold)); box-shadow:0 12px 28px -12px rgba(213,176,98,.65); }
  .btn-primary:hover{ box-shadow:0 16px 32px -10px rgba(213,176,98,.8); }
  .btn-ghost{color:var(--cream); border:1px solid var(--line-dark-strong); background:rgba(246,241,231,.03);}
  .btn-ghost:hover{border-color:var(--gold); color:var(--gold);}

  .hero-seal-slot{ width:clamp(84px,10vw,128px); height:clamp(84px,10vw,128px); }
  .hero-seal-slot .seal{
    opacity:0; transform:scale(2.3) rotate(-14deg);
    animation:stamp-in .85s cubic-bezier(.2,1.5,.4,1) .5s forwards;
  }
  .hero-seal-slot{ position:relative; }
  .hero-seal-slot::before{
    content:""; position:absolute; inset:-32%; border-radius:50%; z-index:-1;
    background:radial-gradient(circle, rgba(43,39,29,.65) 0%, rgba(43,39,29,.28) 55%, rgba(43,39,29,0) 78%);
  }
  .hero-seal-slot::after{
    content:""; position:absolute; inset:-14%; border-radius:50%;
    border:1px solid var(--gold); opacity:0; transform:scale(.6);
    animation:stamp-ring 1s ease-out 1.15s forwards;
  }
  @keyframes stamp-in{
    0%{ opacity:0; transform:scale(2.3) rotate(-14deg); }
    60%{ opacity:1; transform:scale(.92) rotate(2deg); }
    100%{ opacity:1; transform:scale(1) rotate(0); }
  }
  @keyframes stamp-ring{
    0%{ opacity:.9; transform:scale(.6); }
    100%{ opacity:0; transform:scale(1.5); }
  }
  @media (prefers-reduced-motion: reduce){
    .hero-seal-slot .seal{ opacity:1; transform:none; animation:none; }
    .hero-seal-slot::after{ display:none; }
  }
  @media (max-width:760px){ .hero-grid{grid-template-columns:1fr;} .hero-seal-slot{display:none;} }

  .hero-strip{
    display:flex; flex-wrap:wrap; align-items:center; gap:.85em;
    margin-top:clamp(40px,6vw,64px);
    font-family:'IBM Plex Mono',monospace; font-size:.76rem; letter-spacing:.13em; text-transform:uppercase; color:var(--mist);
  }
  .hero-strip span:not(:last-child)::after{ content:"·"; margin-left:.85em; color:var(--line-dark-strong); }

  /* ---------- shared section chrome ---------- */
  section{padding:clamp(72px,9vw,112px) 0;}
  .section-head{max-width:640px; margin-bottom:clamp(44px,5vw,60px);}
  .section-head h2{font-size:clamp(1.8rem,2.4vw+1rem,2.5rem); margin-top:.5em; color:var(--cream);}

  /* ---------- capabilities: an index, not a card grid ---------- */
  .cap-list{border-top:1px solid var(--line-light);}
  .cap-row{
    position:relative; overflow:hidden;
    display:grid; grid-template-columns:5rem 1fr; gap:1.6rem;
    padding:clamp(1.7rem,3vw,2.4rem) 0; border-bottom:1px solid var(--line-light);
  }
  .cap-row::after{
    content:""; position:absolute; inset:0; left:-120%;
    background:linear-gradient(100deg, transparent 30%, rgba(213,176,98,.16) 48%, rgba(213,176,98,.28) 52%, transparent 70%);
    transition:left .7s ease;
    pointer-events:none;
  }
  .cap-row:hover::after{ left:0; }
  .cap-num{ font-family:'Poppins',sans-serif; font-weight:800; font-size:1.9rem; color:var(--gold); line-height:1; }
  .cap-body h3{ font-size:1.28rem; color:var(--near-black); font-weight:700; margin-bottom:.4em; }
  .cap-body p{ color:var(--ink); font-size:.98rem; max-width:56ch; }
  @media (max-width:600px){ .cap-row{grid-template-columns:1fr;} }

  /* ---------- shuddhi line (a second product line, equal weight to capabilities) ---------- */
  .shuddhi-line-grid{display:grid; grid-template-columns:5fr 7fr; gap:clamp(32px,5vw,72px); align-items:center;}
  .shuddhi-line-copy h2{font-size:clamp(1.8rem,2.4vw+1rem,2.4rem); color:var(--near-black); margin:.5em 0 .6em;}
  .shuddhi-line-copy p{color:var(--ink); font-size:1rem; max-width:48ch;}
  .shuddhi-line-points{list-style:none; margin:1.4rem 0 0; padding:0; display:flex; flex-direction:column; gap:.7em;}
  .shuddhi-line-points li{
    position:relative; padding-left:1.5em; color:var(--ink); font-size:.94rem; max-width:52ch;
  }
  .shuddhi-line-points li::before{
    content:""; position:absolute; left:0; top:.55em; width:.5em; height:.5em;
    background:var(--gold); border-radius:1px; transform:rotate(45deg);
  }
  .shuddhi-line-copy .hero-actions{margin-top:1.8rem;}
  .shuddhi-line-shot{
    display:block; border-radius:6px; overflow:hidden;
    border:1px solid var(--line-light-strong);
    box-shadow:0 26px 54px -26px rgba(43,39,29,.35);
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .shuddhi-line-shot:hover{ transform:translateY(-4px); box-shadow:0 32px 60px -24px rgba(43,39,29,.45); }
  .shuddhi-line-shot img{width:100%; display:block;}
  @media (max-width:860px){ .shuddhi-line-grid{grid-template-columns:1fr; gap:2.2rem;} }

  /* ---------- workflow ---------- */
  .flow{display:grid; grid-template-columns:repeat(4,1fr); gap:1.8rem; position:relative;}
  .flow::before{
    content:""; position:absolute; top:1.55rem; left:5%; right:5%; height:1px;
    background:repeating-linear-gradient(90deg, var(--line-dark-strong) 0 8px, transparent 8px 16px);
    display:none;
  }
  @media (min-width:820px){ .flow::before{display:block;} }
  .flow-step{position:relative; padding-top:3.4rem;}
  .flow-badge{ position:absolute; top:0; left:0; width:3.1rem; height:3.1rem; }
  .flow-badge .ring{
    position:absolute; inset:0; border-radius:50%;
    background:repeating-conic-gradient(from 0deg, var(--near-black) 0deg 7deg, var(--gold) 7deg 14deg);
  }
  .flow-badge .num{
    position:absolute; inset:5px; border-radius:50%; background:var(--panel);
    display:flex; align-items:center; justify-content:center;
    font-family:'Poppins',sans-serif; font-weight:700; font-size:1.06rem; color:var(--gold);
  }
  .flow-step h3{font-size:1.05rem; color:var(--cream); font-weight:700; margin-bottom:.45em;}
  .flow-step p{color:var(--mist); font-size:.92rem;}
  @media (max-width:820px){ .flow{grid-template-columns:1fr 1fr; row-gap:2.4rem;} }
  @media (max-width:560px){ .flow{grid-template-columns:1fr;} }

  /* ---------- why: asymmetric editorial split ---------- */
  .why-grid{display:grid; grid-template-columns:5fr 7fr; gap:clamp(32px,5vw,72px);}
  .why-lead h2{font-size:clamp(1.8rem,2.4vw+1rem,2.4rem); color:var(--near-black); margin-bottom:.6em;}
  .why-lead p{color:var(--ink); font-size:1rem; max-width:38ch;}
  .why-item{padding:1.7rem 0; border-top:1px solid var(--line-light);}
  .why-item:last-child{border-bottom:1px solid var(--line-light);}
  .why-item h3{font-family:'Poppins',sans-serif; font-weight:700; font-size:1.04rem; color:var(--near-black); margin-bottom:.5em;}
  .why-item p{color:var(--ink); font-size:.96rem; max-width:60ch;}
  @media (max-width:860px){ .why-grid{grid-template-columns:1fr; gap:2.2rem;} }

  /* ---------- contact ---------- */
  .contact-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,5vw,64px); align-items:start;}
  @media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} }

  .field{display:flex; flex-direction:column; gap:.55em; margin-bottom:1.4rem;}
  .field label{font-size:.78rem; color:var(--mist); letter-spacing:.05em; text-transform:uppercase; font-family:'IBM Plex Mono',monospace;}
  .field input, .field select, .field textarea{
    background:rgba(246,241,231,.04); border:1px solid var(--line-dark-strong); color:var(--cream);
    padding:.8em 1em; font-family:'Source Sans 3',sans-serif; font-size:1rem; border-radius:2px;
  }
  .field input::placeholder, .field textarea::placeholder{ color:rgba(246,241,231,.35); }
  .field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--gold); }
  .field select{ appearance:none; background-image:linear-gradient(45deg, transparent 50%, var(--mist) 50%), linear-gradient(135deg, var(--mist) 50%, transparent 50%); background-position:calc(100% - 10px) 1.2em, calc(100% - 5px) 1.2em; background-size:5px 5px; background-repeat:no-repeat; }
  .field textarea{resize:vertical; min-height:88px;}
  .form-note{font-size:.82rem; color:var(--mist); margin-top:.6rem;}

  .info-card{ border:1px solid var(--line-dark); padding:2.2rem; background:rgba(246,241,231,.02); }
  .info-card .eyebrow{ margin-bottom:1.6rem; }
  .info-row{display:flex; justify-content:space-between; gap:1rem; padding:1.05rem 0; border-bottom:1px solid var(--line-dark);}
  .info-row:last-child{border-bottom:none;}
  .info-row span:first-child{color:var(--mist); font-size:.85rem;}
  .info-row span:last-child{color:var(--cream); font-family:'IBM Plex Mono',monospace; font-size:.9rem; text-align:right;}

  /* ---------- footer ---------- */
  footer{background:var(--near-black); padding:clamp(40px,6vw,60px) 0 clamp(28px,4vw,40px);}
  .footer-row{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1.4rem;}
  .footer-logo{display:flex; align-items:center; gap:.8em;}
  .footer-logo .seal{width:44px; height:44px;}
  .footer-tagline{ font-family:'IBM Plex Mono',monospace; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-top:.3em; }
  .footer-links{display:flex; flex-wrap:wrap; gap:2rem;}
  .footer-links a{color:var(--mist); font-size:.85rem; font-weight:600;}
  .footer-links a:hover{color:var(--gold);}
  .footer-fine{margin-top:1.8rem; padding-top:1.4rem; border-top:1px solid var(--line-dark); display:flex; flex-wrap:wrap; justify-content:space-between; gap:.7rem; font-size:.78rem; color:var(--mist); font-family:'IBM Plex Mono',monospace;}

  /* magnetic buttons: JS toggles this via inline transform, this just eases it */
  .magnetic{ transition:transform .15s ease-out, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }


/* =============================================================
   Shared components (homepage + Shuddhi pages)
   ============================================================= */
.wa-card{ display:flex; align-items:center; gap:1rem; padding:1.1rem 1.2rem; margin-bottom:2rem; border-radius:4px; background:#1f8f55; color:#fff; transition:transform .2s, box-shadow .2s; }
.wa-card:hover{ transform:translateY(-2px); box-shadow:0 16px 30px -16px rgba(31,143,85,.8); }
.wa-card b{ display:block; font-family:'Poppins',sans-serif; }
.wa-card small{ opacity:.85; font-size:.82rem; }
.wa-icon{ display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.16); flex:none; }
.info-row a{ color:var(--cream); font-family:'IBM Plex Mono',monospace; font-size:.9rem; text-align:right; }
.info-row a:hover{ color:var(--gold); }
.info-row span:last-child{ max-width:60%; }
.skip-link{ position:fixed; left:12px; top:-60px; z-index:200; padding:.7em 1.1em; background:var(--gold); color:var(--near-black); font-weight:700; border-radius:2px; transition:top .2s; }
.skip-link:focus{ top:12px; }
.skip-link:not(:focus){ clip-path:inset(50%); width:1px; height:1px; padding:0; overflow:hidden; white-space:nowrap; }
.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; }
.info-row a .ext{ color:var(--gold); }
.btn-wa{ color:#fff; background:#1f8f55; box-shadow:0 12px 28px -14px rgba(31,143,85,.9); }
.btn-wa:hover{ background:#23a061; }
.wa-fab{ position:fixed; right:clamp(14px,2.5vw,28px); bottom:clamp(14px,2.5vw,28px); z-index:90; width:58px; height:58px; padding:0; border-radius:50%; display:grid; place-items:center; background:#1f8f55; color:#fff; box-shadow:0 14px 30px -12px rgba(0,0,0,.55), 0 0 0 0 rgba(31,143,85,.45); transform:translateY(120%) scale(.9); opacity:0; pointer-events:none; transition:transform .45s cubic-bezier(.2,.8,.2,1), opacity .3s, background .2s; }
.wa-fab.show{ transform:none; opacity:1; pointer-events:auto; }
.wa-fab:hover{ background:#23a061; }
.wa-fab svg{ width:28px; height:28px; }
.wa-fab span{ position:absolute; right:calc(100% + 12px); top:50%; transform:translate(6px,-50%); white-space:nowrap; padding:.5em .85em; border-radius:6px; background:var(--near-black); color:var(--cream); font-size:.82rem; font-weight:600; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; box-shadow:0 10px 24px -12px rgba(0,0,0,.6); }
.wa-fab:hover span, .wa-fab:focus-visible span{ opacity:1; transform:translate(0,-50%); }
@media (hover:none){ .wa-fab span{ display:none; } }

/* ---------- light & dark mode ----------
   Light mode (default): a light site with one dark "stage" (the 3D hero) and a dark footer.
   Dark mode (device setting): every section turns deep warm charcoal with the same gold accents.
   Sections marked .on-light draw every colour from these --ls-* tokens, so they switch automatically. */
:root{
  color-scheme:light dark;
  --ls-bg:var(--cream); --ls-bg-alt:#FDFBF7; --ls-card:#fff; --ls-field:#fff;
  --ls-head:var(--near-black); --ls-text:var(--ink);
  --ls-line:var(--line-light); --ls-line-strong:var(--line-light-strong);
  --ls-eyebrow:#7a5c1f; --ls-accent:#7a5c1f; --ls-gold:var(--deep-gold);
  --ls-chrome:#ebe5d8; --ls-shadow:rgba(43,39,29,.28);
  --nav-solid:rgba(251,248,242,.9);
}
@media (prefers-color-scheme: dark){
  :root{
    --ls-bg:#1f1d1a; --ls-bg-alt:#252320; --ls-card:#292724; --ls-field:rgba(246,241,231,.04);
    --ls-head:var(--cream); --ls-text:var(--mist);
    --ls-line:rgba(213,176,98,.14); --ls-line-strong:rgba(213,176,98,.3);
    --ls-eyebrow:var(--gold); --ls-accent:var(--gold); --ls-gold:var(--gold);
    --ls-chrome:#1b1a19; --ls-shadow:rgba(0,0,0,.75);
    --nav-solid:rgba(37,36,35,.88);
  }
  section.on-light{ color-scheme:dark; }
}
@media (prefers-color-scheme: light){ section.on-light{ color-scheme:light; } }

section.on-light{ --sec-bg:var(--ls-bg); background:var(--sec-bg); color:var(--ls-text); }
section.on-light.alt{ --sec-bg:var(--ls-bg-alt); }
section.on-light .section-head h2, .cap-body h3, .why-lead h2, .why-item h3, .shuddhi-line-copy h2{ color:var(--ls-head); }
.cap-body p, .why-lead p, .why-item p, .shuddhi-line-copy p{ color:var(--ls-text); }
.cap-list, .cap-row, .why-item, .why-item:last-child{ border-color:var(--ls-line); }
.on-light .eyebrow{ color:var(--ls-eyebrow); }
.on-light .btn-ghost{ color:var(--ls-head); border-color:var(--ls-line-strong); background:transparent; }
.on-light .btn-ghost:hover{ color:var(--ls-accent); border-color:var(--ls-gold); }

/* nav: transparent over a dark hero, light glass once scrolled (dark glass in dark mode) */
.nav.solid{ background:var(--nav-solid); border-bottom-color:var(--ls-line); box-shadow:0 10px 30px -22px var(--ls-shadow); }
.nav.solid .logo-word, .nav-over-light .logo-word{ color:var(--ls-head); }
.nav.solid .logo-word em, .nav-over-light .logo-word em{ color:var(--ls-gold); }
.nav.solid .nav-links a:not(.btn), .nav-over-light .nav-links a:not(.btn){ color:var(--ls-text); }
.nav.solid .nav-links a:not(.btn):hover, .nav.solid .nav-links a.active, .nav-over-light .nav-links a:not(.btn):hover, .nav-over-light .nav-links a.active{ color:var(--ls-head); }
.nav.solid .nav-toggle span, .nav-over-light .nav-toggle span{ background:var(--ls-head); }
@media (max-width:860px){
  .nav-links{ background:var(--ls-bg-alt); border-bottom-color:var(--ls-line); box-shadow:0 20px 40px -24px var(--ls-shadow); }
  .nav .nav-links a:not(.btn), .nav.solid .nav-links a:not(.btn){ color:var(--ls-text); border-bottom-color:var(--ls-line); }
  .nav .nav-links a.active, .nav.solid .nav-links a.active{ color:var(--ls-head); }
}

/* forms and info cards (contact sections are light in light mode) */
.field label{ color:var(--ls-text); }
.field input, .field select, .field textarea{ background-color:var(--ls-field); border-color:var(--ls-line-strong); color:var(--ls-head); }
.field input::placeholder, .field textarea::placeholder{ color:var(--ls-text); opacity:.7; }
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--ls-gold); outline-color:var(--ls-gold); }
.field select{ background-image:linear-gradient(45deg, transparent 50%, var(--ls-text) 50%), linear-gradient(135deg, var(--ls-text) 50%, transparent 50%); }
.form-note{ color:var(--ls-text); }
.info-card{ border-color:var(--ls-line); background:var(--ls-card); }
.info-row{ border-bottom-color:var(--ls-line); }
.info-row span:first-child{ color:var(--ls-text); }
.info-row span:last-child, .info-row a{ color:var(--ls-head); }
.info-row a:hover{ color:var(--ls-accent); }
.info-row a .ext{ color:var(--ls-gold); }

/* browser autofill: keep the field styling instead of a bright yellow/blue box */
input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill{
  -webkit-text-fill-color:var(--ls-head); caret-color:var(--ls-head);
  box-shadow:0 0 0 1000px var(--ls-card) inset; transition:background-color 9999s ease 0s;
}

/* Windows high-contrast / forced colours: keep buttons and cards outlined */
@media (forced-colors: active){
  .btn, .nav-cta, .chip, .wa-fab, .wa-card, .info-card, .faq-item{ border:1px solid CanvasText; }
  .molten{ color:CanvasText; background:none; }
}
.nav.solid .seal{ filter:drop-shadow(0 4px 10px var(--ls-shadow)); }
