/* ---------- Tokens: peacock teal + marigold ---------- */
:root{
  --bg:#F2F7F5; --bg-2:#FFFFFF; --bg-3:#E5EFEB;
  --ink:#062A35; --ink-2:#45646B;
  --line:rgba(6,42,53,.15);
  --teal:#0A7A6E; --teal-fill:#12A594;
  --gold:#8F5400; --gold-fill:#FFB627;
  --on-gold:#2A1A00; --on-teal:#03231F;
  --shadow:0 1px 0 rgba(6,42,53,.04), 0 18px 40px -22px rgba(6,42,53,.35);
  --display:"Bricolage Grotesque", "Trebuchet MS", system-ui, sans-serif;
  --body:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --deva:"Noto Sans Devanagari", "Nirmala UI", system-ui, sans-serif;
  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#061F27; --bg-2:#0A2E3A; --bg-3:#08272F;
    --ink:#EAF6F3; --ink-2:#9FBFB9;
    --line:rgba(198,240,232,.16);
    --teal:#2DD4BF; --teal-fill:#2DD4BF;
    --gold:#FFB627; --gold-fill:#FFB627;
    --shadow:0 24px 50px -30px rgba(0,0,0,.7);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#061F27; --bg-2:#0A2E3A; --bg-3:#08272F;
  --ink:#EAF6F3; --ink-2:#9FBFB9;
  --line:rgba(198,240,232,.16);
  --teal:#2DD4BF; --teal-fill:#2DD4BF;
  --gold:#FFB627; --gold-fill:#FFB627;
  --shadow:0 24px 50px -30px rgba(0,0,0,.7);
  color-scheme:dark;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 76px);background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,canvas{display:block;max-width:100%}
h1,h2,h3,h4{font-family:var(--display);margin:0;letter-spacing:-.02em;text-wrap:balance}
p{margin:0}
a{color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
.wrap{width:min(1180px,100% - 2*clamp(20px,4vw,40px));margin-inline:auto}
:focus-visible{outline:3px solid var(--teal-fill);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:12px;top:-60px;background:var(--gold-fill);color:var(--on-gold);padding:10px 16px;border-radius:10px;font-weight:600;z-index:100;text-decoration:none}
.skip:focus{top:calc(env(safe-area-inset-top,0px) + 10px)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:600 1rem/1 var(--body);padding:.95rem 1.4rem;border-radius:12px;border:1.5px solid transparent;text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s}
.btn-primary{background:var(--gold-fill);color:var(--on-gold)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px -10px color-mix(in srgb,var(--gold-fill) 70%,transparent)}
.btn-ghost{border-color:var(--line);color:var(--ink);background:transparent}
.btn-ghost:hover{border-color:var(--teal-fill);background:color-mix(in srgb,var(--teal-fill) 10%,transparent)}
.btn-sm{padding:.7rem 1.05rem;font-size:.95rem}

/* ---------- Header ---------- */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--bg) 84%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font:700 1.4rem/1 var(--display);letter-spacing:-.02em}
.logo svg{width:30px;height:30px}
.nav{display:flex;gap:6px}
.nav a{text-decoration:none;font-weight:500;color:var(--ink-2);padding:.55rem .85rem;border-radius:10px;transition:color .2s,background .2s}
.nav a:hover{color:var(--ink);background:color-mix(in srgb,var(--teal-fill) 12%,transparent)}
.actions{display:flex;align-items:center;gap:10px}
.icon-btn{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;border:1.5px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;transition:border-color .2s,background .2s}
.icon-btn:hover{border-color:var(--teal-fill);background:color-mix(in srgb,var(--teal-fill) 10%,transparent)}
.icon-btn svg{width:20px;height:20px}
.menu-btn{display:none}
@media (max-width:860px){
  .menu-btn{display:grid}
  .actions .btn{display:none}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;background:var(--bg);border-bottom:1px solid var(--line);padding:10px clamp(20px,4vw,40px) 18px}
  .nav.open{display:flex}
  .nav a{padding:.85rem .5rem;font-size:1.05rem}
}

/* ---------- Hero ---------- */
.hero{padding-block:clamp(28px,5vw,64px) clamp(36px,6vw,80px)}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(28px,5vw,64px);align-items:center}
h1{font-size:clamp(2.45rem,5.6vw,4.5rem);font-weight:700;line-height:1.02;letter-spacing:-.03em;font-variation-settings:"opsz" 96}
.lead{color:var(--ink-2);font-size:clamp(1.05rem,1.6vw,1.2rem);max-width:52ch;margin-top:1.4rem}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:2rem}
.fine{margin-top:1.6rem;font-size:.95rem;color:var(--ink-2);display:flex;align-items:center;gap:10px}
.fine::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--teal-fill);box-shadow:0 0 0 0 color-mix(in srgb,var(--teal-fill) 60%,transparent);animation:live 2.4s infinite}
@keyframes live{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--teal-fill) 55%,transparent)}70%,100%{box-shadow:0 0 0 12px transparent}}
.stage{position:relative;width:100%;max-width:600px;aspect-ratio:1/1;justify-self:center}
.stage canvas{position:absolute;inset:0;width:100%;height:100%}
.rise{opacity:0;transform:translateY(16px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i,0)*110ms + 80ms)}
@keyframes rise{to{opacity:1;transform:none}}
.fade-in{opacity:0;animation:fadeIn 1.4s ease .35s forwards}
@keyframes fadeIn{to{opacity:1}}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .stage{max-width:520px}
}

/* ---------- Marquee ---------- */
.marquee{border-block:1px solid var(--line);overflow:hidden;padding-block:clamp(14px,2vw,22px);background:var(--bg-3)}
.track{display:flex;width:max-content;animation:scroll 38s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.track ul{display:flex;flex:none}
.track li{font:600 clamp(1.6rem,4vw,3rem)/1.1 var(--display);letter-spacing:-.02em;white-space:nowrap;color:transparent;-webkit-text-stroke:1.2px var(--ink-2);display:flex;align-items:center}
.track li:nth-child(odd){color:var(--ink);-webkit-text-stroke:0}
.track li::after{content:"";width:.28em;height:.28em;border-radius:50%;background:var(--gold-fill);margin-inline:.7em;flex:none}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- Sections ---------- */
section{padding-block:clamp(64px,9vw,120px)}
.sec-head{max-width:760px;margin-bottom:clamp(32px,5vw,56px)}
h2{font-size:clamp(1.95rem,4.2vw,3.1rem);font-weight:700;line-height:1.06}
.sec-head p{color:var(--ink-2);margin-top:1rem;max-width:58ch;font-size:1.1rem}

/* Services */
.groups{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,28px);align-items:start}
.panel{--accent:var(--teal);--accent-fill:var(--teal-fill);background:var(--bg-2);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
.panel.grow{--accent:var(--gold);--accent-fill:var(--gold-fill)}
.panel-head{padding:28px 28px 22px;border-top:5px solid var(--accent-fill)}
.panel-head h3{font-size:1.65rem;font-weight:700}
.panel-head p{color:var(--ink-2);margin-top:.35rem}
.svc{position:relative;display:grid;grid-template-columns:56px 1fr;gap:20px;padding:26px 28px;border-top:1px solid var(--line);overflow:hidden}
.svc>*{position:relative}
.svc::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--accent-fill) 16%,transparent),transparent 72%)}
.svc:hover::before{opacity:1}
.svc h4{font-size:1.28rem;font-weight:650}
.svc p{color:var(--ink-2);margin-top:.4rem;font-size:1rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:1rem}
.chips li{font-size:.86rem;line-height:1.2;padding:.35rem .7rem;border:1px solid var(--line);border-radius:999px;color:var(--ink-2)}
@media (max-width:900px){.groups{grid-template-columns:1fr}.svc{padding:22px 20px;gap:16px}.panel-head{padding:24px 20px 18px}}

/* Icons */
.ico{width:56px;height:56px;color:var(--accent)}
.ico *{transform-box:fill-box;transform-origin:center}
.ico .draw{stroke-dasharray:1 2;stroke-dashoffset:1;animation:draw 4.8s ease-in-out infinite}
.ico .l2{animation-delay:.45s}.ico .l3{animation-delay:.9s}
.ico .pulse{animation:pulse 2.4s ease-out infinite}
.ico .gear{animation:spin 14s linear infinite}
.ico .ringspin{animation:spin 16s linear infinite}
.ico .bar{transform-origin:50% 100%;animation:bar 3.2s ease-in-out infinite}
.ico .b2{animation-delay:.35s}.ico .b3{animation-delay:.7s}
.ico .rip{animation:ripple 3.2s ease-out infinite}
.ico .r2{animation-delay:1.05s}.ico .r3{animation-delay:2.1s}
@keyframes draw{0%{stroke-dashoffset:1}30%,75%{stroke-dashoffset:0}100%{stroke-dashoffset:1}}
@keyframes pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(2.8);opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bar{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
@keyframes ripple{0%{transform:scale(.2);opacity:0}25%{opacity:.9}100%{transform:scale(1);opacity:0}}

/* Process */
.process{background:var(--bg-3);border-block:1px solid var(--line)}
.steps{--p:0;position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.steps::before,.steps::after{content:"";position:absolute;left:20px;right:20px;top:19px;height:3px;border-radius:3px}
.steps::before{background:var(--line)}
.steps::after{background:linear-gradient(90deg,var(--teal-fill),var(--gold-fill));transform-origin:left;transform:scaleX(var(--p))}
.step{position:relative;display:grid;grid-template-columns:1fr;row-gap:16px;align-content:start}
.num{position:relative;z-index:1;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font:700 1rem/1 var(--display);background:var(--bg-3);border:2px solid var(--line);color:var(--ink-2);transition:background .4s,border-color .4s,color .4s,transform .4s}
.step.on .num{background:var(--teal-fill);border-color:var(--teal-fill);color:var(--on-teal);transform:scale(1.08)}
.step h3{font-size:1.3rem;font-weight:650}
.step p{color:var(--ink-2);margin-top:.4rem;font-size:1rem}
@media (max-width:860px){
  .steps{grid-template-columns:1fr;gap:34px}
  .steps::before,.steps::after{left:19px;right:auto;top:20px;bottom:20px;width:3px;height:auto}
  .steps::after{transform-origin:top;transform:scaleY(var(--p))}
  .step{grid-template-columns:40px 1fr;column-gap:18px}
  .step .txt{grid-column:2}
  .num{grid-row:1}
}

/* About */
.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,72px);align-items:start}
.about-copy p{color:var(--ink-2);margin-top:1.1rem;max-width:58ch}
.about-copy .deva{font-family:var(--deva);font-weight:600;color:var(--teal);font-size:1.15rem;margin-top:1.4rem}
.points{margin-top:1.8rem;display:grid;gap:14px}
.points li{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start}
.points svg{width:26px;height:26px;color:var(--teal);margin-top:2px}
.points strong{display:block;font-weight:600}
.points span{color:var(--ink-2);font-size:.98rem}
.details{background:var(--bg-2);border:1px solid var(--line);border-radius:22px;padding:8px 28px;box-shadow:var(--shadow)}
.details dl{margin:0}
.row{padding:20px 0;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0}
.row dt{font-size:.9rem;color:var(--ink-2);margin-bottom:.25rem}
.row dd{margin:0;font-weight:600;font-size:1.08rem;overflow-wrap:anywhere}
.row .mono{font-variant-numeric:tabular-nums;letter-spacing:.06em}
.copy-line{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.copy-btn{font:600 .88rem/1 var(--body);padding:.55rem .85rem;border-radius:9px;border:1.5px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;transition:border-color .2s,background .2s}
.copy-btn:hover{border-color:var(--teal-fill);background:color-mix(in srgb,var(--teal-fill) 10%,transparent)}
@media (max-width:900px){.about-grid{grid-template-columns:1fr}}

/* Contact */
.contact{background:var(--bg-3);border-top:1px solid var(--line)}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,72px);align-items:start}
.contact-info address{font-style:normal;margin-top:1.4rem;font-size:1.12rem;line-height:1.65}
.contact-info .gst{margin-top:1rem;color:var(--ink-2);font-size:.98rem}
.quick{display:flex;flex-wrap:wrap;gap:10px;margin-top:1.6rem}
.form{background:var(--bg-2);border:1px solid var(--line);border-radius:22px;padding:clamp(22px,3vw,34px);box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:grid;gap:7px}
.field.full{grid-column:1/-1}
label{font-weight:600;font-size:.95rem}
input,select,textarea{width:100%;font:400 1rem/1.4 var(--body);color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:.85rem .95rem;transition:border-color .2s,box-shadow .2s}
textarea{min-height:130px;resize:vertical}
input::placeholder,textarea::placeholder{color:var(--ink-2);opacity:.75}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal-fill);box-shadow:0 0 0 4px color-mix(in srgb,var(--teal-fill) 22%,transparent)}
.form .btn{justify-self:start}
.status{grid-column:1/-1;font-size:.98rem;padding:.8rem 1rem;border-radius:12px;border:1px solid var(--line);display:none}
.status.show{display:block}
.status.ok{border-color:var(--teal-fill);background:color-mix(in srgb,var(--teal-fill) 12%,transparent)}
.status.warn{border-color:var(--gold-fill);background:color-mix(in srgb,var(--gold-fill) 14%,transparent)}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:560px){.form{grid-template-columns:1fr}}

/* Footer */
footer{padding-block:48px 36px;border-top:1px solid var(--line);background:var(--bg)}
.foot{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:32px}
.foot p,.foot li,.foot address{color:var(--ink-2);font-size:.96rem;font-style:normal}
.foot h4{font-size:1rem;margin-bottom:.8rem}
.foot a{text-decoration:none}
.foot a:hover{color:var(--ink);text-decoration:underline}
.foot li+li{margin-top:.4rem}
.foot .deva{font-family:var(--deva);font-weight:600;color:var(--teal);margin-top:.6rem}
.copy{margin-top:36px;padding-top:20px;border-top:1px solid var(--line);color:var(--ink-2);font-size:.9rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}
@media (max-width:760px){.foot{grid-template-columns:1fr}}


/* ---------- Multi-page additions ---------- */
.nav a[aria-current="page"]{color:var(--ink);background:color-mix(in srgb,var(--teal-fill) 14%,transparent)}
.page[hidden]{display:none}
.page-head{padding-block:clamp(40px,7vw,88px) clamp(28px,4vw,48px);background:var(--bg-3);border-bottom:1px solid var(--line)}
.page-head h1{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.05}
.page-head .lead{margin-top:1rem}
.crumbs{font-size:.92rem;color:var(--ink-2);margin-bottom:1.1rem}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline;color:var(--ink)}
.crumbs span{margin-inline:.4rem;opacity:.6}
.updated{color:var(--ink-2);margin-top:1rem;font-size:.98rem}
.body-sec{padding-top:clamp(40px,6vw,72px)}
.cta-sec{padding-block:clamp(48px,7vw,96px)}
.cta{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:clamp(28px,4vw,48px);border:1px solid var(--line);border-radius:24px;background:var(--bg-2);box-shadow:var(--shadow)}
.cta::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--teal-fill),var(--gold-fill))}
.cta h2{font-size:clamp(1.6rem,3.2vw,2.2rem)}
.cta p{color:var(--ink-2);margin-top:.6rem;max-width:52ch}
.svc .more{display:inline-block;margin-top:.9rem;font-weight:600;color:var(--accent);text-decoration:none}
.svc .more:hover{text-decoration:underline}
.svc.compact p{margin-top:.35rem}
.legal{display:grid;grid-template-columns:250px 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.toc{position:sticky;top:calc(env(safe-area-inset-top,0px) + 92px);font-size:.95rem}
.toc-title{font-weight:600;margin-bottom:.6rem}
.toc ol{list-style:decimal;padding-left:1.3rem}
.toc li{padding:.22rem 0;color:var(--ink-2)}
.toc a{text-decoration:none;color:var(--ink-2)}
.toc a:hover{color:var(--ink);text-decoration:underline}
.prose{counter-reset:clause;max-width:74ch}
.prose h2{font-size:1.5rem;margin:2.6rem 0 .5rem;counter-increment:clause}
.prose h2:first-of-type{margin-top:0}
.prose h2::before{content:counter(clause) ". ";color:var(--teal)}
.prose p{margin-top:.85rem}
.prose ul{list-style:disc;padding-left:1.3rem;margin-top:.85rem}
.prose li{margin-top:.45rem}
.prose li::marker{color:var(--teal)}
.prose a{color:var(--teal);text-underline-offset:3px}
.prose .intro{margin-top:0;font-size:1.12rem}
@media (max-width:900px){.legal{grid-template-columns:1fr}.toc{position:static}}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rise,.fade-in{opacity:1;transform:none}
  .ico .draw{stroke-dashoffset:0}
  .track{width:auto;flex-wrap:wrap}
  .track ul[aria-hidden="true"]{display:none}
  .track ul{flex-wrap:wrap}
}
