/* Anshu Printing public site: "Future Print Lab" (V8). Admin + login use style.css.
   Design tokens and rules: docs/05-DESIGN-SYSTEM.md. Mobile-first: base = phone, min-width queries up.
   Contrast (on --bg): text 17.5, text-2 11.6, muted 6.3, orange 6.8, blue 6.5, cyan 8.6. */

/* ================================================================ Tokens */
:root{
  --bg:#0B0C0F;
  --surface:rgba(16,18,24,.74); /* V11: glass over the shared background */
  --surface-2:rgba(28,31,38,.82);
  --line:#2A2E37;
  --line-strong:#3A3F4A;
  --text:#F4F2EE;
  --text-2:#C4C7CE;
  --muted:#8D929C;
  --orange:#FF6A1A;
  --orange-hi:#FF8A47;
  --blue:#4D94FF;
  --blue-hi:#7AB0FF;
  --cyan:#2BB8F2;
  --amber:#FFB23F;
  --c:#2BB8F2;--m:#FF3D8B;--y:#FFD60A;--k:#0B0C0F;
  --paper:#F3EFE6;
  --paper-2:#E8E2D6;
  --paper-ink:#16181D;
  --paper-muted:#5A5E66;
  --wa:#25D366;
  --danger:#FF8C9A;
  --danger-paper:#B3261E;

  --f-display:"Clash Display","Arial Narrow",system-ui,sans-serif;
  --f-body:"General Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-brand:"Tanker","Clash Display",Impact,sans-serif;
  --f-mono:ui-monospace,"SF Mono","Cascadia Mono","Segoe UI Mono",Consolas,monospace;

  --fs-mega:clamp(2.55rem,5.5vw,6.4rem);
  --fs-h1:clamp(2.7rem,7.5vw,6.2rem);
  --fs-h2:clamp(2.05rem,4.4vw,3.9rem);
  --fs-h3:clamp(1.25rem,1.7vw,1.5rem);
  --fs-lead:clamp(1.06rem,1.25vw,1.25rem);

  --r-xs:2px;--r-s:6px;--r-m:14px;--r-l:24px;
  --gut:16px;
  --wrap:1320px;
  --head-h:64px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --t-fast:.18s;--t-med:.35s;--t-slow:.8s;
  --paper-shadow:0 1px 0 rgba(0,0,0,.35),0 22px 40px -18px rgba(0,0,0,.75);
  --glass:rgba(20,22,27,.64);
}
@media (min-width:600px){:root{--gut:28px;--head-h:68px}}
@media (min-width:900px){:root{--gut:40px;--head-h:76px}}
@media (min-width:1200px){:root{--gut:56px}}

/* ================================================================ Base */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--head-h) + 16px);background:#07080B}
body{margin:0;min-height:100vh;background:transparent;color:var(--text);font-family:var(--f-body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img,svg{max-width:100%}
img{display:block;height:auto}
a{color:inherit}
p{margin:0}
h1,h2,h3{font-family:var(--f-display);font-weight:600;line-height:1;letter-spacing:-.02em;margin:0;text-wrap:balance}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:2px}
::selection{background:var(--blue);color:var(--bg)}
.wrap{width:100%;max-width:calc(var(--wrap) + var(--gut) * 2);margin-inline:auto;padding-inline:var(--gut)}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.muted{color:var(--muted)}
.i{flex:none;display:block}
.skip{position:absolute;left:var(--gut);top:-100px;z-index:100;background:var(--text);color:var(--bg);padding:.6rem 1rem;border-radius:var(--r-s);font-weight:600}
.skip:focus{top:8px}

/* Registration mark + CMYK bar (printed once as <symbol id="i-reg">) */
.reg{display:inline-block;width:18px;height:18px;flex:none;color:var(--line-strong)}
.cmyk{display:inline-flex;gap:3px;flex:none}
.cmyk i{display:block;width:12px;height:12px}
.cmyk i:nth-child(1){background:var(--c)}.cmyk i:nth-child(2){background:var(--m)}.cmyk i:nth-child(3){background:var(--y)}.cmyk i:nth-child(4){background:#000;box-shadow:inset 0 0 0 1px var(--line-strong)}

/* ================================================================ Background field */
.site-bg{position:fixed;top:0;left:0;right:0;height:100vh;height:100lvh;z-index:-1;overflow:hidden;pointer-events:none;background:#07080B}
.site-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.05;filter:grayscale(1)}
.site-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 85% 75% at 50% 38%,transparent 35%,rgba(7,8,11,.7) 100%)}
/* Colour auroras: one per tone. Only opacity and transform animate (cheap for the browser). */
.site-bg__aurora{position:absolute;inset:-20%;opacity:0}
.site-bg__aurora.is-first{opacity:1}
.site-bg__aurora--0{background:radial-gradient(38% 42% at 74% 22%,rgba(255,122,46,.5),transparent 70%),radial-gradient(44% 48% at 14% 74%,rgba(138,50,8,.6),transparent 70%)}
.site-bg__aurora--1{background:radial-gradient(38% 42% at 74% 22%,rgba(91,134,255,.46),transparent 70%),radial-gradient(44% 48% at 14% 74%,rgba(26,62,158,.6),transparent 70%)}
.site-bg__aurora--2{background:radial-gradient(38% 42% at 74% 22%,rgba(242,92,159,.44),transparent 70%),radial-gradient(44% 48% at 14% 74%,rgba(142,29,87,.6),transparent 70%)}
.site-bg__aurora--3{background:radial-gradient(38% 42% at 74% 22%,rgba(142,112,255,.46),transparent 70%),radial-gradient(44% 48% at 14% 74%,rgba(67,48,158,.62),transparent 70%)}
/* Colours cross-fade in turn, 12 s each; the delays (inline, from site_background()) set each layer's turn. */
.js:not(.motion-none) .site-bg__aurora{animation:bg-tone4 48s linear infinite,bg-drift 26s ease-in-out infinite alternate}
.js:not(.motion-none) .site-bg[data-count="3"] .site-bg__aurora{animation-name:bg-tone3,bg-drift;animation-duration:36s,26s}
.js:not(.motion-none) .site-bg[data-count="2"] .site-bg__aurora{animation-name:bg-tone2,bg-drift;animation-duration:24s,26s}
.js:not(.motion-none) .site-bg[data-count="1"] .site-bg__aurora{animation:bg-drift 26s ease-in-out infinite alternate}
@keyframes bg-tone4{0%,20%{opacity:1}25%,95%{opacity:0}100%{opacity:1}}
@keyframes bg-tone3{0%,26.6%{opacity:1}33.3%,93.3%{opacity:0}100%{opacity:1}}
@keyframes bg-tone2{0%,40%{opacity:1}50%,90%{opacity:0}100%{opacity:1}}
@keyframes bg-drift{from{transform:translate3d(-3%,-2%,0) scale(1)}to{transform:translate3d(3%,2%,0) scale(1.08)}}
/* Home: the showcase chooses the colour (site.js sets data-tone), with a soft cross-fade. */
.site-bg[data-tone] .site-bg__aurora{opacity:0;transition:opacity 1.2s var(--ease-io)}
.js:not(.motion-none) .site-bg[data-tone] .site-bg__aurora{animation:bg-drift 26s ease-in-out infinite alternate}
.site-bg[data-tone="0"] .site-bg__aurora--0,.site-bg[data-tone="1"] .site-bg__aurora--1,.site-bg[data-tone="2"] .site-bg__aurora--2,.site-bg[data-tone="3"] .site-bg__aurora--3{opacity:1}
/* Grid floor in perspective, moving towards the viewer. */
.site-bg__floor{position:absolute;left:0;right:0;bottom:0;height:46%;overflow:hidden;perspective:520px;perspective-origin:50% 0%;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 70%);mask-image:linear-gradient(to bottom,transparent 0,#000 70%)}
/* The plane is tilted with `rotate`, so `transform` can slide it along its own surface (towards the viewer). */
.site-bg__floor i{position:absolute;left:-60%;right:-60%;bottom:0;height:260%;rotate:x 76deg;transform-origin:50% 100%;background:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px) 0 0/72px 72px,linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px) 0 0/72px 72px}
.site-bg__floor::after{content:"";position:absolute;left:10%;right:10%;top:0;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);filter:blur(1px)}
.js:not(.motion-none) .site-bg__floor i{animation:bg-floor 3.2s linear infinite}
@keyframes bg-floor{to{transform:translateY(72px)}}
.site-bg__dots{position:absolute;inset:0;background:radial-gradient(circle,rgba(255,255,255,.06) 1px,transparent 1.4px) 0 0/9px 9px;-webkit-mask-image:radial-gradient(circle at 85% 8%,#000,transparent 38%),radial-gradient(circle at 5% 95%,#000,transparent 30%);mask-image:radial-gradient(circle at 85% 8%,#000,transparent 38%),radial-gradient(circle at 5% 95%,#000,transparent 30%)}

/* ---------------------------------------------------------------- Nature background (V13, default)
   The same colour layers become a sky at four times of day: orange sunset, blue moonlit night, pink dawn,
   purple dusk, each with its sun/moon low over the horizon. Three ridges drift slowly (parallax); birds,
   stars and fireflies are drawn on a canvas by site.js. Text stays readable: the sky is darkest at the top
   where most copy sits, the bright horizon is half hidden behind the far mountains, and the near hills are
   almost black. */
.site-bg--nature .site-bg__aurora{inset:-6%}
.site-bg--nature .site-bg__aurora--0{background:radial-gradient(circle 9vmax at 78% 62%,rgba(255,230,190,.95) 0,rgba(255,200,140,.92) 31%,rgba(255,140,60,.5) 35%,rgba(255,122,46,.16) 60%,transparent 100%),radial-gradient(70% 40% at 72% 68%,rgba(255,122,46,.48),transparent 70%),linear-gradient(180deg,#050608 0%,#0D0710 26%,#2A0D03 52%,#6A2809 68%,#2A0D03 100%)}
.site-bg--nature .site-bg__aurora--1{background:radial-gradient(circle 6vmax at 80% 22%,rgba(244,247,255,.95) 0,rgba(224,231,255,.92) 27%,rgba(170,190,255,.32) 31%,rgba(120,150,255,.1) 55%,transparent 100%),radial-gradient(70% 40% at 72% 70%,rgba(91,134,255,.3),transparent 70%),linear-gradient(180deg,#03050D 0%,#060B1F 30%,#0C1A44 56%,#1E46AE 74%,#081638 100%)}
.site-bg--nature .site-bg__aurora--2{background:radial-gradient(circle 8.5vmax at 78% 62%,rgba(255,232,242,.95) 0,rgba(255,196,222,.9) 31%,rgba(242,92,159,.45) 35%,rgba(242,92,159,.15) 60%,transparent 100%),radial-gradient(70% 40% at 72% 68%,rgba(242,92,159,.4),transparent 70%),linear-gradient(180deg,#060509 0%,#12060F 26%,#2B061B 52%,#6A1440 68%,#2B061B 100%)}
.site-bg--nature .site-bg__aurora--3{background:radial-gradient(circle 8.5vmax at 78% 62%,rgba(236,228,255,.95) 0,rgba(210,196,255,.9) 31%,rgba(142,112,255,.45) 35%,rgba(142,112,255,.15) 60%,transparent 100%),radial-gradient(70% 40% at 72% 68%,rgba(142,112,255,.4),transparent 70%),linear-gradient(180deg,#05050B 0%,#0B0818 26%,#140B38 52%,#33257E 68%,#140B38 100%)}
.js:not(.motion-none) .site-bg--nature .site-bg__aurora{animation-name:bg-tone4,bg-sky}
.js:not(.motion-none) .site-bg--nature[data-count="3"] .site-bg__aurora{animation-name:bg-tone3,bg-sky}
.js:not(.motion-none) .site-bg--nature[data-count="2"] .site-bg__aurora{animation-name:bg-tone2,bg-sky}
.js:not(.motion-none) .site-bg--nature[data-count="1"] .site-bg__aurora,.js:not(.motion-none) .site-bg--nature[data-tone] .site-bg__aurora{animation:bg-sky 30s ease-in-out infinite alternate}
@keyframes bg-sky{from{transform:translate3d(0,0,0)}to{transform:translate3d(-2%,1.5%,0)}}
.site-bg__hill{position:absolute;left:0;bottom:0;display:block;width:max(200vw,2400px);max-width:none;will-change:transform}
.site-bg__hill--back{height:40vh;fill:rgba(16,12,26,.62)}
.site-bg__hill--mid{height:29vh;fill:rgba(10,9,16,.86)}
.site-bg__hill--front{height:19vh;fill:#06070A}
.js:not(.motion-none) .site-bg__hill--back{animation:bg-ridge 420s linear infinite}
.js:not(.motion-none) .site-bg__hill--mid{animation:bg-ridge 260s linear infinite}
.js:not(.motion-none) .site-bg__hill--front{animation:bg-ridge 160s linear infinite}
@keyframes bg-ridge{to{transform:translate3d(-50%,0,0)}}
.site-bg__sky{position:absolute;inset:0;width:100%;height:100%;display:block}
.site-bg--nature::after{background:radial-gradient(ellipse 90% 70% at 50% 35%,transparent 40%,rgba(5,6,8,.55) 100%),linear-gradient(180deg,rgba(5,6,8,.35),transparent 30%)}

/* ================================================================ Buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:.7rem 1.35rem;border:1.5px solid transparent;border-radius:999px;font:600 1rem/1.1 var(--f-body);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast),transform var(--t-fast) var(--ease)}
.btn:active{transform:scale(.98)}
.btn-sm{min-height:42px;padding:.5rem 1.05rem;font-size:.93rem}
.btn-lg{min-height:56px;padding:.9rem 1.6rem;font-size:1.05rem}
.btn-block{width:100%}
.btn-ink{background:var(--orange);color:var(--bg)}
.btn-ink:hover{background:var(--orange-hi)}
.btn-blue{background:var(--blue);color:var(--bg)}
.btn-blue:hover{background:var(--blue-hi)}
.btn-line{border-color:var(--line-strong);color:var(--text);background:rgba(11,12,15,.4)}
.btn-line:hover{border-color:var(--blue);color:var(--text)}
.btn-dark{background:var(--bg);color:var(--text)}
.btn-dark:hover{background:#23262E}
.btn-line-dark{border-color:rgba(11,12,15,.55);color:var(--bg);background:transparent}
.btn-line-dark:hover{border-color:var(--bg)}
.btn-paper-line{border-color:#9C978C;color:var(--paper-ink);background:transparent}
.btn-paper-line:hover{border-color:var(--paper-ink)}
.btn-white{background:#fff;color:#0B0C0F}
.btn-white:hover{background:#E6E8EC}
.btn-glass{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.42);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.btn-glass:hover{background:rgba(255,255,255,.2);border-color:#fff}
[data-magnetic]{will-change:transform}

.link-u{font-weight:600;text-decoration:underline;text-decoration-color:var(--blue);text-decoration-thickness:2px;text-underline-offset:.35em;transition:color var(--t-fast)}
.link-u:hover{color:var(--blue-hi)}

/* Star buttons (V15, main WhatsApp buttons): a pill of deep space with drifting stars (canvas added by site.js),
   a holographic rim that turns slowly, and warp streaks + a light sweep on hover. Without JS: the dark pill and rim. */
@property --star-a{syntax:'<angle>';inherits:false;initial-value:0deg}
.btn-star{isolation:isolate;overflow:hidden;color:#fff;border:1.5px solid transparent;background:linear-gradient(180deg,#16142b,#07070f) padding-box,conic-gradient(from var(--star-a),#ff7a2e,#f25c9f,#8e70ff,#5b86ff,#25c2d4,#ffd36a,#ff7a2e) border-box;box-shadow:0 12px 32px -12px rgba(142,112,255,.6),inset 0 1px 0 rgba(255,255,255,.08);transition:box-shadow var(--t-med),transform var(--t-fast) var(--ease)}
.js:not(.motion-none) .btn-star{animation:star-rim 7s linear infinite}
@keyframes star-rim{to{--star-a:360deg}}
.btn-star:hover{color:#fff;box-shadow:0 16px 44px -12px rgba(242,92,159,.7),inset 0 1px 0 rgba(255,255,255,.12)}
.btn-star:focus-visible{outline-color:#fff}
.btn-star__sky{position:absolute;inset:0;z-index:-1;display:block;width:100%;height:100%;border-radius:inherit;pointer-events:none}
.btn-star::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.2) 45%,rgba(190,150,255,.14) 53%,transparent 66%);transform:translateX(-120%);transition:transform .9s var(--ease);pointer-events:none}
.btn-star:hover::after,.btn-star:focus-visible::after{transform:translateX(120%)}
.btn-star .i{filter:drop-shadow(0 0 6px rgba(255,255,255,.55))}

/* Machine label: "01  Services" */
.label{display:flex;align-items:center;gap:.7rem;margin:0 0 1.1rem;font:500 .78rem/1.2 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.label__n{display:inline-grid;place-items:center;min-width:2.2rem;height:1.6rem;padding:0 .4rem;border:1px solid var(--blue);border-radius:var(--r-xs);color:var(--blue);letter-spacing:.06em}

/* ================================================================ Announcement + header */
.announce{position:relative;z-index:51;background:var(--orange);color:var(--bg);font-weight:500;font-size:.95rem;padding:.55rem 0;text-align:center}
.announce :focus-visible{outline-color:var(--bg)}
.site-head{position:sticky;top:0;z-index:50;background:transparent;border-bottom:1px solid transparent;transition:background-color var(--t-med),border-color var(--t-med)}
.site-head[data-scrolled]{border-bottom-color:var(--line);background:rgba(7,8,11,.92)}
body.nav-open .site-head{background:var(--bg)}
.site-head__row{display:flex;align-items:center;gap:.75rem;min-height:var(--head-h)}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;margin-right:auto;min-width:0}
.brand img{height:40px;width:auto}
.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--orange);color:var(--bg);font:700 1.05rem/1 var(--f-display);border-radius:var(--r-s);flex:none}
.brand-name{font:400 1.45rem/1 var(--f-brand);letter-spacing:.03em;white-space:nowrap;padding-top:.08em}
.brand-name__accent{color:var(--orange)}
.site-head__end{display:flex;align-items:center;gap:.5rem}
.lang-switch{display:inline-flex;align-items:center;min-height:40px;padding:.3rem .9rem;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.06);border-radius:999px;color:var(--text-2);text-decoration:none;font-size:.9rem;font-weight:500;white-space:nowrap;transition:border-color var(--t-fast),color var(--t-fast)}
.lang-switch:hover{border-color:#fff;color:#fff}
.lang-switch[lang="mr"]{font-family:"Anek Devanagari","Mukta","Nirmala UI",var(--f-body);font-size:1rem}
.nav-toggle{display:none;place-items:center;width:44px;height:44px;margin-right:-8px;background:none;border:0;border-radius:var(--r-s);cursor:pointer}
.nav-toggle__close{display:none}
.nav-toggle[aria-expanded="true"] .nav-toggle__open{display:none}
.nav-toggle[aria-expanded="true"] .nav-toggle__close{display:block}
.nav-cta{display:none}
.nav{display:flex;flex-wrap:wrap;gap:.25rem 1rem}
.nav a{text-decoration:none}
.nav__n{font:500 .72rem/1 var(--f-mono);color:var(--blue);margin-right:.45rem;letter-spacing:.06em}

/* Phone/tablet: menu is a full panel under the header */
@media (max-width:899px){
  .js .nav-toggle{display:grid}
  .js .nav{position:fixed;left:0;right:0;top:var(--nav-top,var(--head-h));bottom:0;z-index:49;flex-direction:column;flex-wrap:nowrap;gap:0;padding:1rem var(--gut) calc(2rem + 76px);background:var(--bg);overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility 0s .25s}
  .js .nav.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .25s var(--ease),transform .25s var(--ease)}
  .js .nav a{display:flex;align-items:baseline;padding:1.05rem 0;font:500 1.75rem/1.15 var(--f-display);color:var(--text);border-bottom:1px solid var(--line)}
  .js .nav a[aria-current="page"]{color:var(--orange)}
  .js .nav .nav__n{font-size:.8rem;min-width:2.4rem}
  .no-js .site-head__row{flex-wrap:wrap;padding-block:.5rem}
  .no-js .nav{width:100%;padding-bottom:.6rem}
  .no-js .nav a{padding:.4rem 0}
  body.nav-open{overflow:hidden}
}
@media (min-width:600px){
  .brand img{height:46px}
  .brand-mark{width:46px;height:46px}
  .brand-name{font-size:1.7rem}
}
@media (min-width:900px){
  .site-head{background:transparent}
  .site-head[data-scrolled]{background:var(--glass);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3)}
  .brand img{height:52px}
  .brand-mark{width:52px;height:52px;font-size:1.3rem}
  .brand-name{font-size:1.95rem}
  .nav{order:2;gap:.1rem;flex-wrap:nowrap}
  .nav a{position:relative;display:flex;align-items:baseline;padding:.55rem .75rem;color:var(--text-2);font-weight:500;transition:color var(--t-fast)}
  .nav a:hover{color:var(--text)}
  .nav a[aria-current="page"]{color:var(--text)}
  .nav a[aria-current="page"]::after{content:"";position:absolute;left:.75rem;right:.75rem;bottom:.1rem;height:2px;background:linear-gradient(90deg,var(--orange) 50%,var(--blue) 50%)}
  /* Genesis-style bar: brand left, menu in a centred glass pill (current page = white pill), actions right */
  .brand{flex:1 1 0;margin-right:0}
  .nav{padding:5px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.07);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
  .nav a{align-items:center;padding:.5rem 1.05rem;border-radius:999px;color:rgba(255,255,255,.8);transition:color var(--t-fast),background-color var(--t-fast)}
  .nav a:hover{color:#fff;background:rgba(255,255,255,.08)}
  .nav a[aria-current="page"]{background:#fff;color:#0B0C0F}
  .nav a[aria-current="page"]::after{display:none}
  .nav__n{display:none}
  .site-head__end{order:3;flex:1 1 0;justify-content:flex-end}
  .nav-cta{display:inline-flex}
}
@media (min-width:900px) and (max-width:1099px){.nav a{padding-inline:.7rem}.brand-name{display:none}}

/* ================================================================ Sections */
.section{position:relative;padding-block:clamp(4rem,8vw,6.75rem)}
.section--tight{padding-block:clamp(2.5rem,5vw,4.5rem)}
.section--flush{padding-top:clamp(2rem,4vw,3rem)}
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 2rem;margin-bottom:clamp(2rem,4vw,3.25rem)}
.section-head h2,.why-grid h2,.visit-grid h2{font-size:var(--fs-h2)}
.section-head p{color:var(--text-2);max-width:36em;margin-top:.9rem;font-size:var(--fs-lead)}

/* ================================================================ Home intro scene (V14, nature background)
   Firewatch-style depth: far mountains → giant brand name → middle hills over the bottom of the letters →
   near hills with trees. site.js moves the layers at different speeds on scroll; birds fly behind the title
   (page background canvas) and in front of everything (.birds-front). The scene has its own ridges, so the
   page background's ridges are hidden on Home. */
.page-home .site-bg__hill{display:none}
.scene{position:relative;isolation:isolate;overflow:hidden;height:100vh;height:100svh;min-height:560px;margin-top:calc(var(--head-h) * -1)}
.scene__layer{position:absolute;left:0;right:0;bottom:0;will-change:transform}
.scene__ridge{display:block;width:max(200vw,2400px);max-width:none;height:100%} /* max-width:none: the base svg rule would squeeze it to the screen width */
.scene__layer--far{height:62%}
.scene__layer--far .scene__ridge{fill:rgba(16,12,26,.66)}
.scene__layer--mid{height:66%}
.scene__layer--mid .scene__ridge{fill:rgba(10,9,16,.93)}
.scene__layer--near{height:30%;bottom:-2px}
.scene__layer--near .scene__ridge{fill:#06070A}
.scene__layer--near::after{content:"";position:absolute;left:0;right:0;top:calc(100% - 2px);height:70vh;background:#06070A}
.js:not(.motion-none) .scene__layer--far .scene__ridge{animation:bg-ridge 380s linear infinite}
.js:not(.motion-none) .scene__layer--mid .scene__ridge{animation:bg-ridge 240s linear infinite}
.js:not(.motion-none) .scene__layer--near .scene__ridge{animation:bg-ridge 150s linear infinite}
/* V16 hero layout inside the scene */
.scene__content{position:absolute;inset:0;z-index:2;pointer-events:none}
.scene__inner{position:relative;height:100%;max-width:calc(var(--wrap) + var(--gut) * 2);margin-inline:auto;padding:calc(var(--head-h) + 11vh) var(--gut) 0}
.scene__inner a,.scene__inner button{pointer-events:auto}
.scene__copy{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(1.4rem,2.4vh,2rem);max-width:44%}
.scene__h1{flex:0 1 auto;max-width:14ch;margin:0;font:300 clamp(2.4rem,3.9vw,4.2rem)/1.08 "Lexend",var(--f-display);letter-spacing:-.012em;color:#fff;text-wrap:balance;text-shadow:0 2px 30px rgba(10,20,10,.35)}
.scene__side{display:flex;flex-direction:column;align-items:flex-start;gap:1.4rem;max-width:min(26rem,100%)}
.scene__lead{font:300 .98rem/1.5 "Lexend",var(--f-body);color:rgba(255,255,255,.92);text-shadow:0 1px 14px rgba(10,20,10,.45)}
.scene__btn{min-height:52px;padding-inline:1.35rem;font-size:.98rem}
.scene__cards{position:absolute;right:var(--gut);top:calc(var(--head-h) + 7vh);width:min(40vw,580px);height:min(68vh,620px)}
.scene-card{position:absolute;display:flex;flex-direction:column;gap:.9rem;padding:12px 12px 22px;border-radius:30px;background:rgba(246,245,240,.96);color:#1C2318;text-decoration:none;box-shadow:0 30px 60px -28px rgba(10,20,8,.55),inset 0 0 0 1px rgba(255,255,255,.6);will-change:transform;transition:box-shadow var(--t-med)}
.scene-card:hover{box-shadow:0 36px 70px -26px rgba(10,20,8,.65),inset 0 0 0 1px #fff}
.scene-card:focus-visible{outline:2px solid #fff;outline-offset:4px}
.scene-card--a{left:0;top:4%;width:clamp(220px,19vw,290px)}
.scene-card--b{right:0;bottom:4%;width:clamp(220px,19vw,290px);padding:20px 12px 12px}
.scene-card__img{display:block;overflow:hidden;border-radius:20px;background:#E3E1D8}
.scene-card__img img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .7s var(--ease)}
.scene-card--b .scene-card__img img{aspect-ratio:4/3}
.scene-card:hover .scene-card__img img{transform:scale(1.04)}
.scene-card__words{display:flex;flex-direction:column;gap:.3rem;padding-inline:12px}
.scene-card__cat{font:400 .82rem/1.2 "Lexend",var(--f-body);color:#5E6658}
.scene-card__title{font:400 clamp(1.25rem,1.6vw,1.55rem)/1.15 "Lexend",var(--f-display);letter-spacing:-.01em}
.scene-card__go{position:absolute;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#fff;color:#1C2318;box-shadow:0 8px 20px -8px rgba(0,0,0,.35)}
.scene-card--a .scene-card__go{right:-14px;bottom:-14px}
.scene-card--b .scene-card__go{right:22px;bottom:22px}
.scene__stats{position:absolute;inset:0;margin:0;padding:0;list-style:none;pointer-events:none}
.scene-stat{position:absolute;display:flex;align-items:center;gap:.6rem;color:#fff;font:300 .82rem/1.25 "Lexend",var(--f-body);text-shadow:0 1px 10px rgba(10,20,10,.5)}
.scene-stat .i{color:rgba(255,255,255,.85)}
.scene-stat b{display:block;font-weight:500}
.scene-stat__label{display:block;color:rgba(255,255,255,.88)}
.scene-stat--a{right:4%;top:5%}
.scene-stat--b{right:10%;top:24%}
.scene__scroll{position:absolute;left:50%;bottom:clamp(1rem,3vh,2rem);z-index:4;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.7rem;color:rgba(255,255,255,.9);text-decoration:none;font:500 .7rem/1 var(--f-mono);letter-spacing:.3em;text-transform:uppercase}
.scene__scroll span{writing-mode:vertical-rl}
.scene__scroll i{display:block;width:1px;height:46px;background:linear-gradient(currentColor,transparent)}
/* Entrance: the title rises and the hills slide up into place (individual `translate`, so the scroll transform is untouched). */
.js:not(.motion-none) .scene__copy,.js:not(.motion-none) .scene__cards>*{animation:scene-title 1.3s var(--ease) both} /* on the children: an animation on .scene__content would override the scroll fade */
.js:not(.motion-none) .scene-card--a{animation-delay:.25s}
.js:not(.motion-none) .scene-card--b{animation-delay:.4s}
.js:not(.motion-none) .scene__stats{animation-delay:.55s}
.js:not(.motion-none) .scene__layer--mid{animation:scene-rise 1.6s var(--ease) .1s both}
.js:not(.motion-none) .scene__layer--near{animation:scene-rise 1.6s var(--ease) both}
@keyframes scene-title{from{opacity:0;translate:0 50px}to{opacity:1;translate:0 0}}
@keyframes scene-rise{from{translate:0 35%}to{translate:0 0}}
.show.show--after-scene{min-height:0;margin-top:0;padding-top:clamp(3.5rem,8vw,6rem)}
.show--after-scene::before{content:"";position:absolute;left:0;right:0;top:0;z-index:-1;height:45%;background:linear-gradient(#06070A,transparent);pointer-events:none}
html[lang="mr"] .scene__scroll{text-transform:none;letter-spacing:0}
html[lang="mr"] .scene__h1,html[lang="mr"] .scene__lead,html[lang="mr"] .scene-card__title,html[lang="mr"] .scene-card__cat,html[lang="mr"] .scene-stat{font-family:"Anek Devanagari","Mukta",var(--f-body)}
html[lang="mr"] .scene__h1{font-weight:500;line-height:1.3}
@media (max-width:599px){
  .scene{min-height:520px}
  .scene__layer--far{height:58%}
  .scene__layer--mid{height:78%}
  .scene__ridge,.site-bg__hill{width:max(200vw,3600px)} /* wider on phones, so the ridges keep their shape */
  .scene__layer--near{height:26%}
}
/* Phones/tablets: the hero stacks — headline, text + button, then the cards side by side. */
@media (max-width:899px){
  .scene{height:auto;min-height:100svh}
  .scene__content{position:relative;inset:auto}
  .scene__inner{height:auto;padding:calc(var(--head-h) + 6vh) var(--gut) 5.5rem}
  .scene__copy{flex-direction:column;max-width:none;gap:1.2rem}
  .scene__h1{font-size:clamp(2.3rem,9.5vw,3.4rem)}
  .scene__side{flex-basis:auto;max-width:34em}
  .scene__cards{position:relative;right:auto;top:auto;width:auto;height:auto;margin-top:2.2rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .scene-card{position:relative;inset:auto;width:auto;border-radius:22px;padding:8px 8px 16px}
  .scene-card--b{padding:14px 8px 8px}
  .scene-card__img{border-radius:15px}
  .scene-card__words{padding-inline:6px}
  .scene-card__title{font-size:1.02rem}
  .scene-card__go{display:none}
  .scene__stats{position:static;grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.8rem 1.6rem;margin-top:.6rem}
  .scene-stat{position:static}
  .scene3d--front{z-index:1!important} /* never over the stacked content on phones */
  .scene__scroll{display:none}
}
/* 3D print studio (print3d.js) covers the layered scene once its first frame is drawn. */
.scene3d{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;transition:opacity 1.4s var(--ease)}
.scene--3d .scene3d{opacity:1}
.scene--3d .scene__layer{opacity:0;visibility:hidden;transition:opacity 1.2s var(--ease),visibility 0s 1.2s}
.scene--3d::after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:1;height:32%;background:linear-gradient(transparent,#06070A);pointer-events:none}
.scene--3d .scene__content{z-index:2}
.scene3d--front{z-index:3;pointer-events:none} /* prints, drops and confetti gliding over the hero */
.studio-on .birds-front{display:none} /* the print studio replaces the nature birds on Home */
.scene--3d .scene__scroll{z-index:4}
/* Birds in front of the page (nature background): above content, below the header, menu and buttons. */
.birds-front{position:fixed;inset:0;z-index:44;display:block;width:100%;height:100%;pointer-events:none}
@media print{.birds-front,.scene__scroll,.scene__cards{display:none!important}.scene{height:auto;min-height:0;margin:0}.scene__layer{display:none}.scene__content{position:static}.scene__h1,.scene__lead{color:#000;text-shadow:none}}

/* ================================================================ Home showcase (V10, "Genesis" style)
   One service photo at a time floats as a print over a colour field; the field changes colour with each
   service. Tones come from show_tones() (components.php) as --tone-deep / --tone-mid / --tone-glow;
   they are registered colours, so the browser fades from one field to the next. */
@property --tone-deep{syntax:'<color>';inherits:true;initial-value:#2A0D03}
@property --tone-mid{syntax:'<color>';inherits:true;initial-value:#8A3208}
@property --tone-glow{syntax:'<color>';inherits:true;initial-value:#FF7A2E}
.show{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;min-height:100vh;min-height:100svh;margin-top:calc(var(--head-h) * -1);padding-top:calc(var(--head-h) + clamp(1.25rem,4vw,3rem));color:#fff;transition:--tone-deep 1.1s var(--ease-io),--tone-mid 1.1s var(--ease-io),--tone-glow 1.1s var(--ease-io)}
.show__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1.5rem,4vw,2.5rem);align-items:center;flex:1;padding-bottom:1.75rem}

.show__kicker{display:inline-flex;align-items:center;gap:.6rem;max-width:100%;margin-bottom:1.35rem;padding:.42rem .95rem .42rem .65rem;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(255,255,255,.08);font-size:.8rem;font-weight:500;line-height:1.35;letter-spacing:.05em;color:rgba(255,255,255,.92)}
.show__dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--tone-glow);box-shadow:0 0 0 4px rgba(255,255,255,.14)}
.show__title{font-size:clamp(2.4rem,3.4vw,4.3rem);font-weight:600;line-height:.98;letter-spacing:-.035em}
.show__text{max-width:32em;margin-top:1.25rem;font-size:var(--fs-lead);color:rgba(255,255,255,.84)}
.show__cta{display:grid;gap:.65rem;margin-top:1.9rem}
.show__alt{margin-top:1rem;font-size:.95rem}
.show__alt a{color:#fff;font-weight:600;text-decoration:underline;text-decoration-color:rgba(255,255,255,.5);text-decoration-thickness:2px;text-underline-offset:.3em}
.show__alt a:hover{text-decoration-color:#fff}
.show__facts{list-style:none;display:flex;gap:.5rem;margin:1.6rem calc(var(--gut) * -1) 0;padding:0 var(--gut);overflow-x:auto;scrollbar-width:none}
.show__facts::-webkit-scrollbar{display:none}
.show__facts li{display:inline-flex;align-items:center;gap:.45rem;flex:none;padding:.4rem .85rem;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(0,0,0,.18);font-size:.86rem;color:rgba(255,255,255,.9)}
.show :focus-visible{outline-color:#fff}

/* Product spot. The glow follows the stage, so it sits behind the print at every screen size. */
.show__stage{position:relative;display:grid;place-items:center;padding-block:clamp(1.75rem,4vw,3.5rem);perspective:1400px}
.show__stage::before{content:"";position:absolute;inset:-14%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,var(--tone-glow),transparent);opacity:.62;pointer-events:none}
/* The print is a 3D stack: front sheet with the photo, paper edges on the right and bottom, two loose
   sheets behind. Sizes are custom properties so the edges line up with the front at every width. */
.show__item{--bp:10px;--bd:26px;--bw:clamp(260px,34vw,470px);--bh:calc((var(--bw) - var(--bp) * 2) * 2 / 3 + var(--bp) * 2);position:relative;width:var(--bw);height:var(--bh);margin:0;transform-style:preserve-3d;transition:transform .55s var(--ease),opacity .45s var(--ease)}
.show__item[data-state="out"]{opacity:0;transform:translateY(46px) scale(.92)}
.show__item[data-state="pre"]{opacity:0;transform:translateY(-46px) scale(.96);transition:none}
.show__block{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(var(--ry,-14deg)) rotateX(var(--rx,8deg)) rotateZ(-3deg);transition:transform .7s var(--ease)}
.show__print{position:absolute;inset:0;display:block;padding:var(--bp);border-radius:14px;background:#fff;transform:translateZ(calc(var(--bd) / 2));box-shadow:0 60px 80px -40px rgba(0,0,0,.6)}
.show__print::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,rgba(255,255,255,.38),transparent 32%,transparent 72%,rgba(255,255,255,.14));pointer-events:none}
.show__print img{width:100%;height:100%;object-fit:cover;border-radius:8px;background:#E9E6E0}
.show__edge{position:absolute;pointer-events:none}
.show__edge--r{top:6px;bottom:6px;left:calc(var(--bw) / 2 - var(--bd) / 2);width:var(--bd);transform:rotateY(90deg) translateZ(calc(var(--bw) / 2 - 2px));background:repeating-linear-gradient(90deg,#fff 0 2px,#D8D2C6 2px 4px)}
.show__edge--b{left:6px;right:6px;top:calc(var(--bh) / 2 - var(--bd) / 2);height:var(--bd);transform:rotateX(-90deg) translateZ(calc(var(--bh) / 2 - 2px));background:repeating-linear-gradient(180deg,#fff 0 2px,#D0CABE 2px 4px)}
.show__sheet{position:absolute;inset:0;border-radius:14px;box-shadow:0 30px 50px -24px rgba(0,0,0,.55)}
.show__sheet--a{background:#F4F1EA;transform:translateZ(calc(var(--bd) / -2 - 22px)) translate(-5%,4%) rotate(-4deg)}
.show__sheet--b{background:#E6E0D5;transform:translateZ(calc(var(--bd) / -2 - 50px)) translate(6%,7%) rotate(5deg)}
.show__shadow{position:absolute;left:50%;bottom:2%;width:min(58%,360px);height:26px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.5),transparent);pointer-events:none}
.js:not(.motion-none) .show__item{animation:show-float 6s ease-in-out infinite}
.js:not(.motion-none) .show__block{animation:show-sway 9s ease-in-out infinite}
.js:not(.motion-none) .show__shadow{animation:show-shadow 6s ease-in-out infinite}
@keyframes show-float{0%,100%{translate:0 -10px}50%{translate:0 10px}}
@keyframes show-sway{0%,100%{rotate:y -7deg}50%{rotate:y 7deg}}
@keyframes show-shadow{0%,100%{scale:.8;opacity:.6}50%{scale:1;opacity:1}}

/* Spinning badge (top right of the stage) */
.show__badge{position:absolute;right:0;top:2%;z-index:2;display:grid;place-items:center;width:clamp(80px,7vw,104px);aspect-ratio:1;pointer-events:none}
.show__badge svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.js:not(.motion-none) .show__badge svg{animation:show-spin 22s linear infinite}
.show__badge text{font:600 9.6px/1 var(--f-body);letter-spacing:.1em;fill:rgba(255,255,255,.88)}
.show__badge-mark{display:grid;place-items:center;width:46%;aspect-ratio:1;border-radius:50%;background:#fff;color:var(--tone-deep);font:700 1.05rem/1 var(--f-display)}
@keyframes show-spin{to{rotate:360deg}}

/* The shop's visiting card (bottom left of the stage): click/tap flips it to the phone + address side. */
.show__card{position:absolute;left:0;bottom:3%;z-index:3;width:clamp(204px,17vw,240px);aspect-ratio:7/4;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;perspective:900px;-webkit-tap-highlight-color:transparent}
.js:not(.motion-none) .show__card{animation:show-card 6s ease-in-out infinite}
@keyframes show-card{0%,100%{translate:0 -6px;rotate:-8deg}50%{translate:0 6px;rotate:-5deg}}
.show__card:focus-visible{outline:2px solid #fff;outline-offset:6px;border-radius:14px}
.show__card-face{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;gap:.3rem;padding:14px 16px;border-radius:12px;text-align:left;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:0 26px 36px -20px rgba(0,0,0,.7);transition:transform .9s var(--ease)}
.show__card-face--front{background:#16181D;border:1px solid rgba(255,255,255,.14);color:#fff}
.show__card-face--back{justify-content:center;background:var(--orange);color:#0B0C0F;font-size:.76rem;line-height:1.35;transform:rotateY(180deg)}
.show__card[aria-pressed="true"] .show__card-face--front{transform:rotateY(-180deg)}
.show__card[aria-pressed="true"] .show__card-face--back{transform:rotateY(0)}
.show__card-brand{display:flex;align-items:center;gap:.6rem;min-width:0}
.show__card-brand img{width:auto;height:34px;border-radius:6px;background:#fff}
.show__card-brand .brand-mark{width:34px;height:34px;font-size:.85rem}
.show__card-name{font:400 1.05rem/1 var(--f-brand);letter-spacing:.03em;white-space:nowrap}
.show__card-tag{font:500 .62rem/1.3 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:#C9CBD1}
.show__card-face--back b{font:600 1.15rem/1.1 var(--f-display)}
.show__card-hint{font-size:.7rem;font-weight:600}

/* Bottom bar: number, one button per service (current = white, with a progress line), WhatsApp link */
.show__bar{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.25rem}
.show__count{display:flex;align-items:baseline;gap:.45rem;margin:0;white-space:nowrap;font-weight:500;color:rgba(255,255,255,.75)}
.show__count b{font:600 2.4rem/1 var(--f-display);letter-spacing:-.03em;color:#fff}
.show__chips{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 520px;min-width:0}
.show__chip{position:relative;flex:none;min-height:44px;padding:0 1rem;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;font:600 .9rem/1 var(--f-body);cursor:pointer;transition:background-color var(--t-fast),color var(--t-fast),border-color var(--t-fast)}
.show__chip:hover{border-color:#fff}
.show__chip[aria-pressed="true"]{background:#fff;border-color:#fff;color:#0B0C0F}
.show__chip span{position:absolute;left:14px;right:14px;bottom:6px;height:2px;border-radius:1px;background:var(--tone-mid);transform:scaleX(0);transform-origin:left}
.show[data-auto] .show__chip[aria-pressed="true"] span{animation:show-progress var(--show-ms,5500ms) linear forwards}
.show[data-auto][data-paused] .show__chip[aria-pressed="true"] span{animation-play-state:paused}
@keyframes show-progress{from{transform:scaleX(0)}to{transform:none}}
.show__ask{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.55rem 1.05rem;border:1px solid rgba(255,255,255,.4);border-radius:1.4rem;line-height:1.25;color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;transition:background-color var(--t-fast),color var(--t-fast),opacity .35s var(--ease)}
.show__ask:hover{background:#fff;color:#0B0C0F}
.show__ask[data-state="out"]{opacity:0}

@media (min-width:600px){
  .show__cta{display:flex;flex-wrap:wrap}
  .show__facts{flex-wrap:wrap;overflow:visible;margin-inline:0;padding-inline:0}
}
/* Phones/tablets: the print comes straight after the headline, like a product page. */
@media (max-width:899px){
  .show__grid{gap:0}
  .show__copy{display:contents}
  .show__kicker{order:1;justify-self:start}
  .show__title{order:2}
  .show__stage{order:3;margin-block:.5rem}
  .show__bar{order:4;padding-block:.5rem .75rem}
  .show__text{order:5;margin-top:1.75rem}
  .show__cta{order:6}
  .show__alt{order:7}
  .show__facts{order:8}
}
@media (min-width:600px) and (max-width:899px){.show__item{--bw:min(56vw,440px)}.show__stage{padding-block:2.5rem}}
/* Phones: smaller stack, no badge/card over the photo, service buttons scroll sideways. */
@media (max-width:599px){
  .show__item{--bp:7px;--bd:18px;--bw:min(calc(100vw - var(--gut) * 2 - 36px),380px)}
  .show__badge,.show__card{display:none}
  .show__chips{order:3;flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scrollbar-width:none}
  .show__chips::-webkit-scrollbar{display:none}
  .show__bar{justify-content:space-between}
}
@media (min-width:900px){
  .show__grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
  .show__stage{min-height:min(60vh,560px)}
  .show__bar{grid-column:1/-1;padding-right:76px} /* clear of the floating WhatsApp button */
}
@media (max-height:520px) and (orientation:landscape){.show{min-height:0}}

/* ================================================================ Ticker */
.ticker{overflow:hidden;border-block:1px solid rgba(0,0,0,.25);background:var(--orange);color:var(--bg);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ticker__track{display:flex;width:max-content;animation:ticker 48s linear infinite}
.ticker:hover .ticker__track{animation-play-state:paused}
.ticker__list{display:flex;flex:none;margin:0;padding:0;list-style:none}
.ticker__list li{display:flex;align-items:center;gap:1.4rem;padding:1.05rem 0 1.05rem 1.4rem;font:600 1.15rem/1 var(--f-display);letter-spacing:.01em;text-transform:uppercase;color:var(--bg);white-space:nowrap}
.ticker__list li::after{content:"";width:9px;height:9px;background:var(--bg);transform:rotate(45deg)}
@keyframes ticker{to{transform:translateX(-50%)}}

/* ================================================================ Sample cards (services) */
.deck{display:grid;gap:14px;grid-template-columns:1fr}
.sample{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);overflow:hidden;transition:border-color var(--t-med),transform var(--t-med) var(--ease);--mx:50%;--my:0%}
.sample::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(320px circle at var(--mx) var(--my),rgba(77,148,255,.12),transparent 60%);transition:opacity var(--t-med)}
.sample:hover{border-color:rgba(77,148,255,.55)}
.sample:hover::before{opacity:1}
.sample__paper{position:relative;z-index:1;margin:12px 12px 0;padding:8px;background:var(--paper);border-radius:var(--r-xs);box-shadow:var(--paper-shadow)}
.sample__paper img{width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--paper-2)}
.sample__paper--art{display:grid;place-items:center;aspect-ratio:3/2;padding:0;color:var(--orange);background:radial-gradient(circle,rgba(22,24,29,.13) 1px,transparent 1.5px) 0 0/9px 9px,var(--paper)}
.crop{position:absolute;width:14px;height:14px;opacity:0;transition:opacity var(--t-med),transform var(--t-med) var(--ease);pointer-events:none}
.crop::before,.crop::after{content:"";position:absolute;background:var(--cyan)}
.crop::before{width:100%;height:1px}.crop::after{width:1px;height:100%}
.crop--tl{left:-10px;top:-10px;transform:translate(-4px,-4px)}.crop--tl::before{top:0}.crop--tl::after{left:0}
.crop--tr{right:-10px;top:-10px;transform:translate(4px,-4px)}.crop--tr::before{top:0}.crop--tr::after{right:0}
.crop--bl{left:-10px;bottom:-10px;transform:translate(-4px,4px)}.crop--bl::before{bottom:0}.crop--bl::after{left:0}
.crop--br{right:-10px;bottom:-10px;transform:translate(4px,4px)}.crop--br::before{bottom:0}.crop--br::after{right:0}
.sample:hover .crop,.sample:focus-within .crop{opacity:1;transform:none}
.sample__body{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;flex:1;padding:1.2rem 1.25rem 1.35rem}
.sample__cat{font:500 .72rem/1.3 var(--f-mono);letter-spacing:.13em;text-transform:uppercase;color:var(--blue)}
.sample__title{font-size:var(--fs-h3);line-height:1.1}
.sample__link{text-decoration:none}
.sample__link::after{content:"";position:absolute;inset:0;z-index:0}
.sample__link:focus-visible{outline:none}
.sample:has(.sample__link:focus-visible){outline:2px solid var(--cyan);outline-offset:3px}
.sample__desc{color:var(--text-2);font-size:.97rem}
.spec{display:flex;flex-wrap:wrap;gap:.4rem;margin:.2rem 0 0}
.spec div{display:flex;align-items:baseline;gap:.4rem;padding:.3rem .6rem;border:1px solid var(--line-strong);border-radius:var(--r-xs);font-size:.85rem}
.spec dt{font:500 .66rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.spec dd{margin:0;font-weight:600;color:var(--text)}
.spec div:first-child dd{color:var(--orange-hi)}
.sample__actions{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto;padding-top:.7rem}
.sample__wa{position:relative;z-index:2;display:inline-flex;align-items:center;gap:.45rem;margin-top:auto;padding-top:.5rem;font-weight:600;font-size:.95rem;color:var(--orange-hi);text-decoration:none}
.sample__wa:hover{text-decoration:underline;text-underline-offset:.25em}
.more-card{position:relative;display:flex;flex-direction:column;gap:.7rem;padding:1.6rem;border-radius:var(--r-m);background:var(--orange);color:var(--bg);text-decoration:none;overflow:hidden;transition:background-color var(--t-med)}
.more-card:hover{background:var(--orange-hi)}
.more-card:focus-visible{outline-color:var(--blue)}
.more-card__count{font:600 clamp(3.4rem,7vw,5.5rem)/.85 var(--f-display);letter-spacing:-.04em}
.more-card__label{font:600 1.3rem/1.2 var(--f-display)}
.more-card__names{font-size:.95rem;color:#2B1203}
.more-card__go{display:grid;place-items:center;width:52px;height:52px;margin-top:auto;border-radius:50%;background:var(--bg);color:var(--orange)}
.more-card::after{content:"";position:absolute;right:-50px;top:-50px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(11,12,15,.18) 1.2px,transparent 1.8px) 0 0/10px 10px}

/* Phones: home deck is a swipeable row of samples */
@media (max-width:639px){
  #services .deck{display:flex;gap:12px;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);scrollbar-width:none;padding-bottom:4px}
  #services .deck::-webkit-scrollbar{display:none}
  #services .deck>*{flex:0 0 84%;scroll-snap-align:start}
}
@media (min-width:640px){.deck{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.deck{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1500px){.deck--full{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* V10: every sample shows its photo as a print on a colour field (the showcase tones, in turn). */
.sample__paper{margin:10px 10px 0;padding:clamp(18px,2.4vw,28px);border-radius:calc(var(--r-m) - 4px);overflow:hidden;background:radial-gradient(90% 95% at 50% 42%,var(--tone-glow),var(--tone-mid) 58%,var(--tone-deep));box-shadow:none}
.sample__paper img{border:6px solid #fff;border-radius:8px;background:#fff;box-shadow:0 26px 30px -18px rgba(0,0,0,.6);transform:rotate(-2.5deg);transition:transform .5s var(--ease)}
.sample:hover .sample__paper img,.sample:focus-within .sample__paper img{transform:rotate(0) translateY(-4px) scale(1.02)}
.sample__paper--art{padding:0;color:#fff;background:radial-gradient(90% 95% at 50% 42%,var(--tone-glow),var(--tone-mid) 58%,var(--tone-deep))}
.sample .crop{display:none}
.deck>:nth-child(4n+2){--tone-deep:#081638;--tone-mid:#1A3E9E;--tone-glow:#5B86FF}
.deck>:nth-child(4n+3){--tone-deep:#2B061B;--tone-mid:#8E1D57;--tone-glow:#F25C9F}
.deck>:nth-child(4n+4){--tone-deep:#140B38;--tone-mid:#43309E;--tone-glow:#8E70FF}


/* ================================================================ Work (gallery strip) + samples band */
.gstrip{display:grid;gap:10px;grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}
.gstrip__item{display:block;overflow:hidden;border-radius:var(--r-s);background:var(--surface);padding:6px;background:var(--paper)}
.gstrip__item img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.gstrip__item:hover img{transform:scale(1.04)}
.gstrip--n5 .gstrip__item:first-child,.gstrip--n3 .gstrip__item:first-child{grid-column:span 2}
.gstrip--n1{grid-template-columns:1fr;grid-auto-rows:240px}
@media (min-width:600px){
  .gstrip{grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(140px,16vw,220px)}
  .gstrip--n5 .gstrip__item:first-child{grid-row:span 2}
  .gstrip--n4,.gstrip--n2{grid-template-columns:repeat(2,1fr)}
  .gstrip--n3{grid-template-columns:repeat(3,1fr)}
  .gstrip--n3 .gstrip__item:first-child{grid-row:span 2}
  .gstrip--n2{grid-auto-rows:clamp(200px,26vw,360px)}
  .gstrip--n1{grid-auto-rows:clamp(220px,34vw,440px)}
}
.band{position:relative;display:grid;gap:1.25rem;align-items:center;padding:clamp(1.5rem,4vw,2.5rem);border:1px solid var(--line);border-radius:var(--r-l);background:linear-gradient(120deg,rgba(77,148,255,.1),transparent 55%),var(--surface);overflow:hidden}
.band .label{margin:0}
.band h2{font-size:clamp(1.6rem,3vw,2.4rem)}
.band p{color:var(--text-2);margin-top:.5rem}
.band::after{content:"";position:absolute;right:-30px;bottom:-40px;width:220px;height:160px;background:var(--paper);border-radius:var(--r-xs);transform:rotate(-8deg);box-shadow:var(--paper-shadow);opacity:.08}
@media (min-width:900px){.band{grid-template-columns:auto 1fr auto;gap:2.5rem}}

/* ================================================================ Process steps */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:step}
.step{position:relative;padding:1.5rem 1.4rem 1.6rem;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
.step__n{display:block;font:600 .8rem/1 var(--f-mono);letter-spacing:.12em;color:var(--blue)}
.step:nth-child(odd) .step__n{color:var(--orange)}
.step__sheet{position:absolute;right:1.2rem;top:1.2rem;width:34px;height:44px;border-radius:var(--r-xs);background:var(--paper);box-shadow:var(--paper-shadow);transform:rotate(6deg)}
.step__sheet::before{content:"";position:absolute;left:6px;right:6px;top:8px;height:12px;background:linear-gradient(90deg,var(--c) 25%,var(--m) 25% 50%,var(--y) 50% 75%,#111 75%)}
.step__sheet::after{content:"";position:absolute;left:6px;right:10px;top:26px;height:2px;background:#B8B2A6;box-shadow:0 5px 0 #B8B2A6}
.step h3{margin-top:1.4rem;font-size:var(--fs-h3);padding-right:3rem}
.step p{margin-top:.6rem;color:var(--text-2);font-size:.98rem}
@media (min-width:640px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){
  .steps{grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
  .step{border:0;border-radius:0;background:transparent;padding:2rem 1.6rem 2.2rem}
  .step+.step{border-left:1px dashed var(--line-strong)}
  .step+.step::before{content:"";position:absolute;left:-7px;top:2.05rem;width:12px;height:12px;border-radius:50%;background:var(--bg);border:1px solid var(--blue)}
}

/* V10.2: animated colour line above the steps, big coloured step numbers (Option A) */
.steps-line{position:relative;height:4px;margin-bottom:22px;border-radius:2px;background:var(--surface-2);overflow:hidden}
.steps-line span{position:absolute;inset:0;background:linear-gradient(90deg,#FF7A2E,#5B86FF,#F25C9F,#8E70FF);transform-origin:left}
.js:not(.motion-none) .steps-line span{animation:steps-draw 3.2s var(--ease-io) infinite}
@keyframes steps-draw{0%{transform:scaleX(0)}60%,100%{transform:scaleX(1)}}
#process .step__n{font:600 clamp(2.2rem,3vw,2.8rem)/1 var(--f-display);letter-spacing:-.02em}
#process .step:nth-child(4n+1) .step__n{color:#FF8A47}
#process .step:nth-child(4n+2) .step__n{color:#7AA0FF}
#process .step:nth-child(4n+3) .step__n{color:#F57BB0}
#process .step:nth-child(4n+4) .step__n{color:#A991FF}

/* ================================================================ Why */
.why-grid{display:grid;gap:2rem;align-items:start}
.why{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.why li{display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding:1.2rem 0;border-bottom:1px solid var(--line);font-size:1.12rem;color:var(--text-2)}
.why__n{font:600 .85rem/1.9 var(--f-mono);color:var(--blue);letter-spacing:.08em}
.why li:nth-child(odd) .why__n{color:var(--orange)}
@media (min-width:900px){.why-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,6vw,6rem)}.why-grid>div{position:sticky;top:calc(var(--head-h) + 2rem)}}

/* ================================================================ Trust: rating + reviews */
.trust{display:grid;gap:14px}
.rating{display:flex;align-items:center;gap:1.4rem;padding:1.6rem 1.5rem;border:1px solid var(--line);border-radius:var(--r-m);background:linear-gradient(135deg,rgba(255,106,26,.14),transparent 60%),var(--surface)}
.rating__score{font:600 clamp(3.6rem,8vw,5.6rem)/.85 var(--f-display);letter-spacing:-.04em}
.rating__label{color:var(--text-2);margin-top:.35rem;font-size:.95rem}
.stars{color:var(--amber);letter-spacing:.14em;font-size:1.05rem}
.reviews{display:grid;gap:14px}
.review{margin:0;display:flex;flex-direction:column;gap:.7rem;padding:1.5rem;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
.review blockquote{margin:0;font:500 clamp(1.15rem,1.7vw,1.4rem)/1.35 var(--f-display);letter-spacing:-.01em}
.review blockquote::before{content:"\201C";display:block;color:var(--blue);font-size:2.4em;line-height:.6;margin-bottom:.15em}
.review figcaption{margin-top:auto;font:500 .78rem/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
@media (min-width:700px){.reviews{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.trust{grid-template-columns:minmax(0,.8fr) minmax(0,2.2fr)}.rating{flex-direction:column;align-items:flex-start;justify-content:space-between}.reviews{grid-template-columns:repeat(3,1fr)}}

/* ================================================================ Visit */
.visit-grid{display:grid;gap:2rem;align-items:stretch}
.visit-grid__lead{color:var(--text-2);margin:1rem 0 1.25rem;font-size:var(--fs-lead);max-width:32em}
.info-list{list-style:none;margin:0 0 1.25rem;padding:0}
.info-list li{display:grid;grid-template-columns:24px 1fr;gap:.9rem;padding:1.05rem 0;border-bottom:1px solid var(--line);color:var(--text-2)}
.info-list li:nth-child(odd) .i{color:var(--orange)}
.info-list li:nth-child(even) .i{color:var(--blue)}
.info-list b{display:block;color:var(--text);font-weight:600;margin-bottom:.15rem}
.info-list a{text-decoration:none}
.info-list a:hover{color:var(--blue-hi)}
.row-btns{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}
.visit-grid__map{min-height:280px}
.locator{position:relative;height:100%;min-height:280px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);display:grid;place-items:center}
.locator__grid{position:absolute;inset:0;background:linear-gradient(var(--line) 1px,transparent 1px) 0 0/34px 34px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/34px 34px;opacity:.55;-webkit-mask-image:radial-gradient(circle,#000 20%,transparent 75%);mask-image:radial-gradient(circle,#000 20%,transparent 75%)}
.locator__ring{position:absolute;width:140px;height:140px;border-radius:50%;border:1px solid var(--blue);opacity:.5}
.locator__ring--2{width:260px;height:260px;border-color:var(--orange);opacity:.25}
.locator__pin{position:relative;display:grid;place-items:center;width:70px;height:70px;border-radius:50%;background:var(--orange);color:var(--bg);box-shadow:0 0 0 10px rgba(255,106,26,.15)}
.map{position:relative;height:100%;min-height:280px;border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);background:linear-gradient(var(--line) 1px,transparent 1px) 0 0/34px 34px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/34px 34px,var(--surface);display:grid;place-items:center}
.map iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0}
.map.is-loaded .map__load{display:none}
@media (min-width:900px){.visit-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem)}}

/* ================================================================ FAQ */
.faq-wrap{max-width:calc(960px + var(--gut) * 2)}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{position:relative;list-style:none;cursor:pointer;padding:1.35rem 3rem 1.35rem 0;font:500 clamp(1.15rem,2vw,1.4rem)/1.3 var(--f-display)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:.35rem;top:50%;width:16px;height:16px;transform:translateY(-50%);background:linear-gradient(var(--blue),var(--blue)) center/100% 2px no-repeat,linear-gradient(var(--orange),var(--orange)) center/2px 100% no-repeat;transition:transform var(--t-med) var(--ease)}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{color:var(--text-2);max-width:62ch;padding:0 0 1.4rem}

/* ================================================================ CTA band */
.section--cta{padding-top:0}
.cta-band{position:relative;overflow:hidden;background:var(--orange);color:var(--bg);border-radius:var(--r-l);padding:clamp(2rem,6vw,4.75rem)}
.cta-band::before{content:"";position:absolute;right:-8%;top:-40%;width:55%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(11,12,15,.16) 1.3px,transparent 2px) 0 0/12px 12px;-webkit-mask-image:radial-gradient(closest-side,#000,transparent);mask-image:radial-gradient(closest-side,#000,transparent);pointer-events:none}
.cta-band h2{position:relative;font-size:clamp(2.2rem,5.4vw,4.6rem);max-width:13ch}
.cta-band p{position:relative;max-width:34em;font-size:1.12rem;margin-top:1rem;color:#2B1203}
.cta-band__actions{position:relative;display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.cta-band__alt{position:relative;display:inline-block;margin-top:1.4rem;font-weight:500;text-decoration:underline;text-underline-offset:.25em}
.cta-band__reg{position:absolute;right:clamp(1.2rem,4vw,3rem);bottom:clamp(1.2rem,4vw,3rem);width:clamp(64px,10vw,120px);height:auto;aspect-ratio:1;color:var(--bg);opacity:.35}
.cta-band :focus-visible{outline-color:var(--bg)}
.cta-band--blue{background:var(--blue)}
.cta-band--blue p{color:#08203F}
@media (max-width:599px){.cta-band__actions .btn{flex:1 1 100%}.cta-band__reg{display:none}}

/* V10.2: Google rating as a solid orange block; home call-to-action on the brand-orange colour field */
.rating{background:var(--orange);border-color:var(--orange);color:var(--bg)}
.rating .stars{color:var(--bg)}
.rating__label{color:#2B1203}
.cta-band--tone{background:#8A3208;color:#fff;isolation:isolate}
.cta-band--tone::before{right:-10%;top:-45%;width:60%;background:#FF7A2E;opacity:.75;filter:blur(70px);-webkit-mask-image:none;mask-image:none;z-index:-1}
.cta-band--tone p,.cta-band--tone .cta-band__alt{color:rgba(255,255,255,.9)}
.cta-band--tone .cta-band__reg{display:none}
.cta-band--tone :focus-visible{outline-color:#fff}

/* ================================================================ Inner page header */
.page-hero{position:relative;overflow:hidden;padding-block:clamp(2.75rem,7vw,5.5rem) 0}
.page-hero__inner{position:relative}
.page-hero__reg{position:absolute;right:var(--gut);top:0;width:28px;height:28px;color:var(--blue);opacity:.7}
.page-hero__title{font-size:var(--fs-h1);letter-spacing:-.035em;line-height:.95;max-width:14ch}
.page-hero__lead{color:var(--text-2);max-width:36em;font-size:var(--fs-lead);margin-top:1.2rem}
.ruler{height:14px;margin-top:clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line-strong);background:repeating-linear-gradient(90deg,var(--line-strong) 0 1px,transparent 1px 12px) bottom/100% 6px no-repeat,repeating-linear-gradient(90deg,var(--blue) 0 1px,transparent 1px 120px) bottom/100% 14px no-repeat}
.page-hero::after,.page-hero::before{display:none}
.page-hero::after{content:"";position:absolute;right:-140px;top:-160px;width:420px;height:420px;border-radius:50%;background:radial-gradient(closest-side,rgba(77,148,255,.14),transparent);pointer-events:none}
.page-hero::before{content:"";position:absolute;left:-160px;bottom:-200px;width:380px;height:380px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,106,26,.12),transparent);pointer-events:none}

/* ================================================================ Services page */
.toolbar{display:flex;flex-direction:column;gap:.8rem;margin-bottom:.9rem}
.search{position:relative;width:100%}
.search .i{position:absolute;left:1.05rem;top:50%;transform:translateY(-50%);color:var(--blue);pointer-events:none}
.search input{width:100%;height:52px;padding:0 1.1rem 0 3rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:999px;color:var(--text);font-size:1rem}
.search input::placeholder{color:var(--muted)}
.search input:focus-visible{outline:2px solid var(--cyan);outline-offset:1px;border-color:var(--cyan)}
.chips{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut)}
.chips::-webkit-scrollbar{display:none}
.chips--tabs{margin-bottom:1.75rem}
.chip{flex:none;min-height:44px;padding:.35rem 1rem;border:1px solid var(--line-strong);background:transparent;color:var(--text-2);border-radius:999px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color var(--t-fast),color var(--t-fast),border-color var(--t-fast)}
.chip:hover{border-color:var(--blue);color:var(--text)}
.chip[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
.svc-count{font:500 .78rem/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:1.25rem}
@media (max-width:899px){
  /* The search/filter bar stays reachable while scrolling a long list on phones */
  .toolbar{position:sticky;top:var(--head-h);z-index:5;margin-inline:calc(var(--gut) * -1);padding:.7rem var(--gut);background:var(--bg);border-bottom:1px solid var(--line)}
}
@media (min-width:900px){
  .toolbar{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.5rem}
  .search{flex:1 1 320px;max-width:480px}
  .chips{flex-wrap:wrap;overflow:visible;margin:0;padding:0}
  .chip{min-height:40px}
}

/* ================================================================ Empty states */
.empty{position:relative;max-width:760px;margin:1rem auto;padding:clamp(2rem,6vw,3.75rem);border:1px dashed var(--line-strong);border-radius:var(--r-m);text-align:center;background:var(--surface)}
.empty h2{font-size:clamp(1.6rem,3vw,2.3rem)}
.empty p{color:var(--text-2);margin:.9rem auto 1.6rem;max-width:34em}
.empty--inline{margin-top:2rem}
.empty q{color:var(--orange)}
.empty--paper{border:0;background:var(--paper);color:var(--paper-ink);box-shadow:var(--paper-shadow);border-radius:var(--r-xs)}
.empty--paper p{color:var(--paper-muted)}
.empty__reg{position:absolute;left:14px;top:14px;color:var(--paper-ink);opacity:.5}
.empty--paper :focus-visible{outline-color:var(--paper-ink)}

/* ================================================================ Gallery */
.masonry{columns:1;column-gap:14px}
.m-item{break-inside:avoid;margin:0 0 14px;padding:8px 8px 0;background:var(--paper);border-radius:var(--r-xs);box-shadow:var(--paper-shadow)}
.m-item[hidden]{display:none}
.m-item a{display:block;overflow:hidden;background:var(--paper-2);cursor:zoom-in}
.m-item img{width:100%;transition:transform .6s var(--ease)}
.m-item a:hover img{transform:scale(1.03)}
.m-item figcaption{color:var(--paper-ink);font-size:.93rem;padding:.6rem .15rem .75rem}
.m-item__cat{display:block;font:500 .66rem/1.3 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-muted);margin-bottom:.2rem}
.m-item :focus-visible{outline-color:#0B5CAD}
.m-item:not(:has(figcaption)){padding-bottom:8px}
@media (min-width:600px){.masonry{columns:2}}
@media (min-width:1100px){.masonry{columns:3}}

.lb{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(8,9,11,.97);color:var(--text)}
.lb::backdrop{background:rgba(8,9,11,.9)}
.lb[open]{display:grid;grid-template-rows:auto 1fr}
.lb__bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem var(--gut)}
.lb__count{font:500 .8rem/1 var(--f-mono);letter-spacing:.12em;color:var(--muted)}
.lb__stage{margin:0;display:grid;place-items:center;align-content:center;gap:.9rem;padding:0 clamp(16px,8vw,96px) 1.5rem;min-height:0}
.lb__stage img{max-width:100%;max-height:calc(100dvh - 150px);width:auto;object-fit:contain;border:8px solid var(--paper);border-radius:var(--r-xs)}
.lb__stage figcaption{color:var(--text-2);text-align:center;max-width:60ch}
.lb__btn{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line-strong);border-radius:50%;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);cursor:pointer}
.lb__btn:hover{border-color:var(--blue)}
.lb__nav{position:absolute;top:50%;transform:translateY(-50%)}
.lb__nav--prev{left:clamp(8px,2vw,24px)}
.lb__nav--next{right:clamp(8px,2vw,24px)}
@media (max-width:599px){.lb__nav{top:auto;bottom:16px;transform:none}.lb__stage{padding-bottom:84px}}

/* ================================================================ About */
.about-grid{display:grid;gap:2.5rem;align-items:start}
.story p{font-size:1.14rem;line-height:1.75;color:var(--text-2);margin-bottom:1.3rem;max-width:62ch}
.story p:first-child{font:500 clamp(1.5rem,2.8vw,2.2rem)/1.28 var(--f-display);color:var(--text);letter-spacing:-.01em}
.visit{position:relative;padding:1.75rem;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
.visit__cmyk{position:absolute;right:1.25rem;top:1.25rem}
.visit h2{font-size:1.5rem;margin-bottom:.5rem}
.facts{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.fact{padding:1.6rem;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
.fact b{display:block;font:600 clamp(2.2rem,4.5vw,3.4rem)/1 var(--f-display);color:var(--orange);letter-spacing:-.02em}
.fact:nth-child(even) b{color:var(--blue)}
.fact--note b{font-size:clamp(1.3rem,2.2vw,1.7rem);line-height:1.2;color:var(--text)}
.fact span{display:block;color:var(--muted);margin-top:.5rem}
@media (min-width:900px){.about-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);gap:clamp(2.5rem,6vw,6rem)}}

/* ================================================================ Contact: job ticket on paper */
.contact-grid{display:grid;gap:2rem;align-items:start}
.ticket{position:relative;padding:clamp(1.25rem,4vw,2.4rem);padding-top:0;background:var(--paper);color:var(--paper-ink);border-radius:var(--r-xs);box-shadow:var(--paper-shadow)}
.ticket::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px;background:radial-gradient(circle at 8px 0,transparent 5px,var(--paper) 5.5px) 0 0/16px 8px repeat-x}
.ticket__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 calc(clamp(1.25rem,4vw,2.4rem) * -1) 1.5rem;padding:.9rem clamp(1.25rem,4vw,2.4rem);border-bottom:1px dashed #BDB6A8;font:500 .72rem/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--paper-muted)}
.ticket__marks{display:flex;align-items:center;gap:.7rem}
.ticket__marks .cmyk i{width:10px;height:10px}
.ticket__marks .reg{color:var(--paper-ink);width:16px;height:16px}
.ticket>h2{font-size:clamp(1.7rem,3vw,2.3rem)}
.ticket__note{color:var(--paper-muted);margin-top:.5rem}
.ticket :focus-visible{outline-color:#0B5CAD}
.field{display:grid;gap:.45rem;margin-top:1.2rem}
.field label{font-weight:600}
.field__opt{font-weight:400;color:var(--paper-muted)}
.field input,.field select,.field textarea{width:100%;min-height:52px;padding:.8rem 1rem;background:#FFFDF8;border:1.5px solid #9C978C;border-radius:8px;color:var(--paper-ink);font-size:1rem}
.field input::placeholder,.field textarea::placeholder{color:#6E6A62}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--paper-ink) 50%),linear-gradient(135deg,var(--paper-ink) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:2.6rem}
.field select option{background:#FFFDF8;color:var(--paper-ink)}
.field textarea{min-height:140px;resize:vertical}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid #0B5CAD;outline-offset:1px;border-color:#0B5CAD}
.field [aria-invalid="true"]{border-color:var(--danger-paper);background:#FFF6F5}
.field-error{color:var(--danger-paper);font-size:.92rem;font-weight:500}
.form-note{color:var(--paper-muted);font-size:.9rem;margin:1.3rem 0}
.alert{margin-top:1.1rem;padding:.9rem 1.1rem;border-radius:8px;background:#FFE9E6;border:1px solid #E7A69E;color:#7A1A12}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.success{outline:none;padding-top:.5rem}
.success__icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--wa);color:#04140A;margin-bottom:1.3rem}
.success h2{font-size:clamp(1.6rem,3vw,2.2rem)}
.success p{color:var(--paper-muted);margin:1rem 0 1.6rem}
.contact-info{padding:clamp(1.25rem,3vw,1.75rem);border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}
.contact-quick{display:grid;gap:.65rem;margin-bottom:1rem}
.contact-map{margin-top:clamp(2.5rem,5vw,4rem)}
.contact-map .map{min-height:0;aspect-ratio:4/3}
@media (min-width:900px){.contact-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,5vw,4.5rem)}.contact-map .map{aspect-ratio:16/7}}

/* V11: the enquiry ticket and "paper" empty states become glass panels on the shared background.
   Same markup and fields; dark inputs keep 4.5:1 contrast (text #F4F2EE, placeholder #9AA0AA). */
.ticket{border:1px solid rgba(255,255,255,.12);border-radius:var(--r-l);background:rgba(16,18,24,.82);color:var(--text);box-shadow:0 40px 80px -40px rgba(0,0,0,.8);overflow:hidden}
.ticket::before{top:0;height:3px;background:linear-gradient(90deg,#FF7A2E,#5B86FF,#F25C9F,#8E70FF)}
.ticket__head{border-bottom:1px dashed rgba(255,255,255,.16);color:var(--text-2)}
.ticket__marks .reg{color:var(--text-2)}
.ticket__note,.field__opt,.form-note,.success p{color:var(--text-2)}
.ticket :focus-visible{outline-color:var(--cyan)}
.field input,.field select,.field textarea{background:rgba(7,8,11,.6);border-color:rgba(255,255,255,.24);color:var(--text)}
.field input::placeholder,.field textarea::placeholder{color:#9AA0AA}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--text) 50%),linear-gradient(135deg,var(--text) 50%,transparent 50%)}
.field select option{background:#14161B;color:var(--text)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline-color:var(--cyan);border-color:var(--cyan)}
.field [aria-invalid="true"]{border-color:var(--danger);background:rgba(255,140,154,.08)}
.field-error{color:var(--danger)}
.alert{background:rgba(255,140,154,.12);border-color:rgba(255,140,154,.45);color:#FFD3D8}
.empty--paper{border:1px solid rgba(255,255,255,.12);border-radius:var(--r-l);background:rgba(16,18,24,.82);color:var(--text);box-shadow:0 40px 80px -40px rgba(0,0,0,.8)}
.empty--paper p,.empty--paper .label{color:var(--text-2)}
.empty--paper .label__n{color:var(--blue);border-color:var(--blue)}
.empty__reg{color:var(--text-2)}
.empty--paper :focus-visible{outline-color:var(--cyan)}
.btn-paper-line{border-color:rgba(255,255,255,.4);color:var(--text)}
.btn-paper-line:hover{border-color:#fff}

/* ================================================================ Visiting card builder (V12, card-builder.php)
   Real radio buttons (work without JS) styled as pills; the 3D card is driven by data-* on .cb-stage. */
.cb-section{padding-top:clamp(2rem,5vw,3.5rem)}
.cb-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2rem,4vw,3.5rem);align-items:start}
.cb__kicker{margin-bottom:1.2rem}
.cb__title{font-size:clamp(2.4rem,5vw,4.2rem);line-height:.98;letter-spacing:-.035em}
.cb__lead{margin-top:1rem;max-width:34em;color:var(--text-2);font-size:var(--fs-lead)}
.cb__group{min-width:0;margin:2rem 0 0;padding:0;border:0}
.cb__group legend{margin-bottom:.8rem;padding:0;font:600 1.15rem/1.2 var(--f-display)}
.cb__opts{display:flex;flex-wrap:wrap;gap:8px}
.cb__group--finish .cb__opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.cb__radio{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.cb__opt{display:flex;flex-direction:column;justify-content:center;gap:.15rem;min-height:48px;padding:.55rem 1.25rem;border:1.5px solid rgba(255,255,255,.22);border-radius:999px;background:var(--surface);color:var(--text);font-weight:600;cursor:pointer;transition:background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast)}
.cb__group--finish .cb__opt{min-height:72px;padding:.8rem 1rem;border-radius:16px}
.cb__opt small{font-size:.82rem;font-weight:500;color:var(--text-2)}
.cb__opt:hover{border-color:#fff}
.cb__radio:checked+.cb__opt{background:#fff;border-color:#fff;color:#0B0C0F}
.cb__radio:checked+.cb__opt small{color:#3B3F47}
.cb__radio:focus-visible+.cb__opt{outline:2px solid var(--cyan);outline-offset:3px}
.cb__update{margin-top:2rem}
.js .cb__update{display:none}
.cb-panel{--cb-glow:#FF7A2E;position:relative;isolation:isolate;overflow:hidden;padding:clamp(1.25rem,3vw,2.25rem);border:1px solid rgba(255,255,255,.12);border-radius:28px;background:var(--surface)}
.cb-panel:has([data-finish="matte"]){--cb-glow:#8E70FF}
.cb-panel:has([data-finish="glossy"]){--cb-glow:#5B86FF}
.cb-panel:has([data-finish="uv"]){--cb-glow:#F25C9F}
.cb-panel::before{content:"";position:absolute;right:-25%;top:-25%;z-index:-1;width:75%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,var(--cb-glow),transparent);opacity:.5;transition:background .8s}
.cb-panel__label{font:500 .76rem/1.2 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.cb-stage{--cb-r:4px;display:grid;place-items:center;height:clamp(240px,30vw,320px);perspective:1200px}
.cb-stage[data-corners="round"]{--cb-r:18px}
.cb-card{position:relative;width:min(100%,360px);aspect-ratio:7/4;transform-style:preserve-3d;transform:rotateY(-14deg) rotateX(8deg);transition:transform .9s var(--ease)}
.js:not(.motion-none) .cb-card{animation:cb-sway 6s ease-in-out infinite}
@keyframes cb-sway{0%,100%{rotate:y -10deg}50%{rotate:y 10deg}}
.cb-stage[data-flipped] .cb-card{transform:rotateY(166deg) rotateX(8deg)}
.cb-card__face{position:absolute;inset:0;overflow:hidden;border-radius:var(--cb-r);-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:0 40px 60px -28px rgba(0,0,0,.75);transition:border-radius .4s var(--ease)}
.cb-card__face--front{display:flex;flex-direction:column;justify-content:space-between;padding:22px;border:1px solid rgba(255,255,255,.1);background:linear-gradient(135deg,#1C1F26,#121418);color:#fff}
.cb-card__face--back{display:grid;place-items:center;padding:1rem;background:var(--orange);color:#0B0C0F;font:600 1.3rem/1.2 var(--f-display);text-align:center;transform:rotateY(180deg)}
.cb-stage[data-sides="single"] .cb-card__face--back{background:#F4F1EA}
.cb-stage[data-sides="single"] .cb-card__face--back span{display:none}
.cb-card__brand{display:flex;align-items:center;gap:12px}
.cb-card__mark{position:relative;overflow:hidden;display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:12px;background:var(--orange);color:#0B0C0F;font:700 1rem/1 var(--f-display)}
.cb-card__name{display:block;font:600 1.3rem/1.1 var(--f-display)}
.cb-card__biz,.cb-card__contact{display:block;font-size:.8rem;color:var(--text-2)}
.cb-card__sheen{position:absolute;top:0;bottom:0;left:0;display:none;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);pointer-events:none}
.cb-stage[data-finish="glossy"] .cb-card__sheen{display:block}
.js:not(.motion-none) .cb-card__sheen{animation:cb-sheen 3s ease-in-out infinite}
@keyframes cb-sheen{0%{transform:translateX(-120%) skewX(-20deg)}60%,100%{transform:translateX(260%) skewX(-20deg)}}
.cb-stage[data-finish="matte"] .cb-card__face--front{background:#1A1C21}
.cb-stage[data-finish="uv"] .cb-card__mark{box-shadow:0 0 0 2px rgba(255,255,255,.55),0 0 22px rgba(255,255,255,.4)}
.cb-stage[data-finish="uv"] .cb-card__mark::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.7) 50%,transparent 70%);background-size:250% 100%}
.js:not(.motion-none) .cb-stage[data-finish="uv"] .cb-card__mark::after{animation:cb-foil 2.4s ease-in-out infinite}
.cb-stage[data-finish="gold"] .cb-card__name{background:linear-gradient(100deg,#9C7420,#F5D27A,#B8892E,#FBE6A6,#9C7420);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}
.js:not(.motion-none) .cb-stage[data-finish="gold"] .cb-card__name{animation:cb-foil 4s ease-in-out infinite}
@keyframes cb-foil{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.cb-flip{display:flex;margin:-.5rem auto 1rem}
.cb-flip[hidden]{display:none}
.cb-sum{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.cb-sum div{padding:.8rem 1rem;border-radius:14px;background:rgba(255,255,255,.07)}
.cb-sum dt{font:500 .7rem/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}
.cb-sum dd{margin:.3rem 0 0;font:600 1.05rem/1.2 var(--f-display)}
.cb-panel__price{margin:1.1rem 0;color:var(--text-2);font-size:.95rem}
.cb-panel__alt{display:inline-block;margin-top:1rem;font-weight:600;font-size:.95rem;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:.3em}
@media (min-width:1000px){.cb-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.cb-panel{position:sticky;top:calc(var(--head-h) + 1.5rem)}}
html[lang="mr"] .cb__title{font-size:clamp(2rem,4vw,3.4rem);line-height:1.25}
html[lang="mr"] .cb-panel__label,html[lang="mr"] .cb-sum dt{text-transform:none;font-family:var(--f-body);font-size:.85rem}

/* Link panel to the builder (Services page, Home) */
.cb-band{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin:0 0 2rem;padding:clamp(1.1rem,3vw,1.6rem) clamp(1.1rem,3vw,1.8rem);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-l);background:var(--surface);text-decoration:none;transition:border-color var(--t-med)}
.cb-band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(255,122,46,.28),rgba(91,134,255,.18) 45%,rgba(242,92,159,.16) 75%,rgba(142,112,255,.22))}
.cb-band:hover{border-color:rgba(255,255,255,.4)}
.cb-band__label{padding:.3rem .7rem;border-radius:999px;background:var(--orange);color:#0B0C0F;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.cb-band__body{display:flex;flex-direction:column;gap:.2rem;flex:1 1 300px;min-width:0}
.cb-band__body b{font:600 clamp(1.25rem,2vw,1.6rem)/1.15 var(--f-display)}
.cb-band__body span{color:var(--text-2)}
.cb-band__btn{pointer-events:none}
#services .cb-band{margin:2rem 0 0}
html[lang="mr"] .cb-band__label{text-transform:none}

/* ================================================================ Footer */
.site-foot{position:relative;border-top:1px solid var(--line);padding-block:clamp(3rem,6vw,5rem) 2rem;margin-top:clamp(2rem,5vw,4rem);color:var(--text-2);background:linear-gradient(180deg,rgba(20,22,27,.6),rgba(11,12,15,.95))}
.foot-top{display:grid;gap:1.25rem;padding-bottom:2.25rem;margin-bottom:2.25rem;border-bottom:1px solid var(--line)}
.foot-mark{font:400 clamp(3rem,11vw,8.5rem)/.9 var(--f-brand);letter-spacing:.02em;color:var(--text);white-space:nowrap}
.foot-top__side{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.foot-tag{font:500 .8rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.foot-grid{display:grid;gap:2rem}
.site-foot h2{font:500 .75rem/1.2 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:.9rem}
.site-foot p{margin-bottom:.5rem}
.site-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.site-foot a{text-decoration:none}
.site-foot a:hover{color:var(--orange-hi)}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}
@media (min-width:600px){.foot-grid{grid-template-columns:repeat(3,1fr)}}
@media (min-width:900px){.foot-top{grid-template-columns:1fr auto;align-items:end}.foot-top__side{align-items:flex-end;text-align:right}.foot-grid{grid-template-columns:1.4fr 1fr 1fr}}

/* ================================================================ Floating WhatsApp + phone bar */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:45;display:none;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--wa);color:#04140A;box-shadow:0 12px 28px rgba(0,0,0,.45);transition:transform var(--t-med) var(--ease)}
.wa-float:hover{transform:scale(1.06)}
.mbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:46;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:rgba(11,12,15,.97);border-top:1px solid var(--line)}
.mbar .btn{min-height:50px}
body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
@media (min-width:900px){.mbar{display:none}body{padding-bottom:0}.wa-float{display:grid}}

/* ================================================================ Reveal (enhanced by site.js) */
.motion [data-reveal],.motion [data-reveal-group]>*{opacity:0}

/* ================================================================ Marathi (Devanagari) */
html[lang="mr"]{--f-display:"Clash Display","Anek Devanagari","Nirmala UI",system-ui,sans-serif;--f-body:"General Sans","Mukta","Nirmala UI",system-ui,sans-serif}
/* Letter-spacing breaks Devanagari conjuncts in Chromium, so it is zero everywhere in Marathi. */
html[lang="mr"] *{letter-spacing:0!important}
html[lang="mr"] body{line-height:1.75}
html[lang="mr"] h1,html[lang="mr"] h2,html[lang="mr"] h3{line-height:1.3}
html[lang="mr"] .show__title{font-size:clamp(2.1rem,3.2vw,3.8rem);line-height:1.25}
html[lang="mr"] .show__chip{line-height:1.3}
html[lang="mr"] .show__card-tag{text-transform:none;font-family:var(--f-body);font-size:.72rem}
html[lang="mr"] .page-hero__title{font-size:calc(var(--fs-h1) * .82);line-height:1.2}
html[lang="mr"] .section-head h2,html[lang="mr"] .why-grid h2,html[lang="mr"] .visit-grid h2{font-size:calc(var(--fs-h2) * .88)}
html[lang="mr"] .cta-band h2{font-size:clamp(2rem,4.6vw,3.8rem);max-width:16ch}
html[lang="mr"] .review blockquote{line-height:1.5}
html[lang="mr"] .btn{line-height:1.3}
html[lang="mr"] .js .nav a{line-height:1.4}
html[lang="mr"] .label,html[lang="mr"] .sample__cat,html[lang="mr"] .ticker__list li{text-transform:none;font-family:var(--f-body);font-size:.9rem}

/* ================================================================ Reduced motion / transparency, print */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .ticker__track{animation:none;width:auto;flex-wrap:wrap}
  .ticker__list+.ticker__list{display:none}
  .ticker__list{flex-wrap:wrap}
}
@media (prefers-reduced-transparency:reduce){
  :root{--glass:rgba(20,22,27,.98)}
  .site-bg img{display:none}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){:root{--glass:rgba(20,22,27,.97)}}
@media print{
  .site-bg,.site-head,.mbar,.wa-float,.ticker,.show__stage,.show__bar{display:none!important}
  .show{min-height:0;margin:0;padding:0;color:#000;background:none}
  .show__text{color:#000}
  body{background:#fff;color:#000;padding:0}
}

/* One-column grids on phones: size to the screen, not to wide content inside (e.g. the scrolling fact row). */
.why-grid,.visit-grid,.about-grid,.contact-grid,.trust,.band,.deck{grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.deck{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.deck{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1500px){.deck--full{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:900px){
  .why-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
  .visit-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .about-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr)}
  .contact-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
  .band{grid-template-columns:auto minmax(0,1fr) auto}
}
@media (min-width:1100px){.trust{grid-template-columns:minmax(0,.8fr) minmax(0,2.2fr)}}
/* An uploaded background photo only tints the edges of the screen, never the reading area. */
.site-bg img{-webkit-mask-image:radial-gradient(ellipse 75% 70% at 50% 45%,transparent 35%,#000 100%);mask-image:radial-gradient(ellipse 75% 70% at 50% 45%,transparent 35%,#000 100%)}
/* Labels and buttons on paper (empty states, 404) */
.empty .label,.empty .row-btns{justify-content:center}
.nf__title{font-size:clamp(2rem,5vw,3.4rem)}

/* ================================================================ 3D world (V9, assets/world.js)
   A fixed WebGL canvas behind the page; the scrim keeps text contrast where copy sits over the scene
   (left on wide screens, everywhere on phones). Without the world, none of this applies. */
.world{position:fixed;inset:0;z-index:0;display:block;width:100%;height:100%;opacity:0;pointer-events:none;transition:opacity 1.2s var(--ease)}
.world.is-ready{opacity:1}
.world-scrim{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity 1.2s var(--ease);background:linear-gradient(90deg,rgba(11,12,15,.92) 0%,rgba(11,12,15,.8) 34%,rgba(11,12,15,.25) 60%,rgba(11,12,15,0) 78%)}
.world-on .world-scrim{opacity:1}
@media (max-aspect-ratio:9/10){
  .world-scrim{background:linear-gradient(180deg,rgba(11,12,15,.66) 0%,rgba(11,12,15,.45) 55%,rgba(11,12,15,.2) 100%)}
}
.world-on main,.world-on .site-foot{position:relative;z-index:1}
.world-on .site-bg{display:none}
.world-on .locator{visibility:hidden}
.world-on .site-foot{background:linear-gradient(180deg,rgba(11,12,15,.86),rgba(11,12,15,.97))}
.world-on .chip:not([aria-pressed="true"]){background:rgba(11,12,15,.88)}
.world-on .page-hero::before,.world-on .page-hero::after{display:none}
/* Text that sits over the scene gets a dark "readout" panel, like a display on the machine. */
.world-on .section-head>div,.world-on .why,.world-on .visit-grid>div:first-child,.world-on .why-grid>div:first-child,
.world-on .page-hero__inner,.world-on .story,.world-on .faq,.world-on .svc-count{
  background:rgba(11,12,15,.84);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid var(--line);border-radius:var(--r-m);padding:clamp(1rem,2.5vw,1.6rem)}
.world-on .why{border-top:1px solid var(--line)}
.world-on .why li:last-child{border-bottom:0}
.world-on .svc-count{display:inline-block;padding:.5rem .8rem}
.world-on .page-hero__inner{padding-bottom:0}
@media (max-width:899px){.world-on .toolbar{background:var(--bg)}}
