/* Well Clean · styles. Light showroom canvas, navy ink, one blue accent. */
:root{
  --canvas:#EEF2F6;
  --panel:#F8FAFC;
  --panel-deep:#E3E9F0;
  --accent:#1673D6;
  --accent-hover:#0F5FB5;
  --accent-muted:#C6DDF5;
  --text-secondary:#4A5B70;
  --text-primary:#10243D;
  --line:#D3DAE3;
  --line-strong:#6F8299;
  --steel:#AEB8C4;
  --display:"Outfit",system-ui,sans-serif;
  --body:"DM Sans",system-ui,sans-serif;
  --mono:"DM Mono",ui-monospace,Menlo,monospace;
  --ease-out:cubic-bezier(.22,.8,.26,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
  --tglow:0 1px 2px rgba(238,242,246,.95),0 3px 12px rgba(238,242,246,.85),0 10px 44px rgba(238,242,246,.9);
  --festive:#B45309;       /* the one warm note, used only on festive offer elements (5.0:1 with white text) */
  --navy:#10243D;
  --ice:#C6DDF5;
  --nav-h:100px;           /* ribbon 32px + nav row 68px */
  --gutter:clamp(20px,5vw,72px);
}
@media (max-height:700px){:root{--nav-h:68px}}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--canvas);color:var(--text-primary);font:500 17px/1.6 var(--body);overflow-x:hidden;overflow-x:clip;min-height:100vh;animation:page-in 1.1s var(--ease-soft) both}
@keyframes page-in{from{opacity:0}to{opacity:1}}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,p,ul,ol,figure,blockquote,fieldset{margin:0;padding:0}
ul,ol{list-style:none}
fieldset{border:0;min-width:0}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--text-primary);color:#fff;padding:10px 16px;border-radius:8px;font-weight:500;transition:top .25s var(--ease-out)}
.skip:focus-visible{top:12px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.mono{font-family:var(--mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-weight:500}
.kicker{margin-bottom:14px;color:var(--accent-hover)}
.h2{font:800 clamp(30px,4.2vw,54px)/1.06 var(--display);letter-spacing:-.015em;max-width:18ch;color:var(--text-primary)}
.lede{font-size:clamp(17px,1.35vw,20px);line-height:1.55;font-weight:500;color:var(--text-secondary);max-width:46ch;margin-top:18px}
.note{margin-top:22px;text-transform:none;letter-spacing:.04em;font-size:13px;color:var(--text-secondary)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:999px;background:var(--accent);color:#fff;font:600 16px/1 var(--body);text-decoration:none;border:0;cursor:pointer;position:relative;isolation:isolate;transition:transform .35s var(--ease-out),background .3s var(--ease-soft),box-shadow .35s var(--ease-out);box-shadow:0 6px 18px rgba(22,115,214,.22);text-shadow:none}
.btn:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 10px 26px rgba(22,115,214,.3)}
.btn:active{transform:translateY(0)}
.btn svg{width:20px;height:20px;fill:currentColor;flex:none}
.btn.ghost{background:transparent;color:var(--text-primary);border:1.5px solid var(--line-strong);box-shadow:none}
.btn.ghost:hover{background:rgba(255,255,255,.6);border-color:var(--text-primary);box-shadow:none}
.btn.wa{background:#15803d;box-shadow:0 6px 18px rgba(21,128,61,.22)}
.btn.wa:hover{background:#166534;box-shadow:0 10px 26px rgba(21,128,61,.3)}
.btn.wa::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 10px 30px rgba(21,128,61,.45);opacity:0;z-index:-1}
.btn.btn-nav{min-height:42px;padding:10px 18px;font-size:15px}
@media (pointer:coarse){.btn,.btn.btn-nav{min-height:48px}.foot-links a,.links a{min-height:44px;display:inline-flex;align-items:center}}

/* ---------- fixed environment layer ---------- */
.env{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:
  radial-gradient(ellipse 70% 60% at 20% 10%,rgba(198,221,245,.55) 0%,rgba(198,221,245,0) 60%),
  radial-gradient(ellipse 60% 50% at 85% 90%,rgba(174,184,196,.35) 0%,rgba(174,184,196,0) 60%),var(--canvas)}
.env::before{content:"";position:absolute;inset:-20%;background:radial-gradient(ellipse 45% 40% at 50% 50%,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 70%);animation:env-drift 80s var(--ease-soft) infinite alternate -30s}
.env::after{content:"";position:absolute;inset:0;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes env-drift{from{transform:translate(-6%,-4%) scale(1)}to{transform:translate(6%,5%) scale(1.08)}}
.mist{position:absolute;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.75) 0%,rgba(255,255,255,0) 70%);filter:blur(6px);opacity:.5;animation:mist-fall 75s linear infinite}
.m1{left:8%;animation-delay:-12s}.m2{left:28%;animation-delay:-40s;width:160px;height:160px}.m3{left:47%;animation-delay:-25s}.m4{left:63%;animation-delay:-60s;width:280px;height:280px}.m5{left:80%;animation-delay:-5s}.m6{left:92%;animation-delay:-48s;width:140px;height:140px}
@keyframes mist-fall{from{transform:translateY(-30vh)}to{transform:translateY(110vh)}}
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}
main,footer,.nav{position:relative;z-index:1}

/* ---------- top: festive ribbon + nav ---------- */
.top{position:fixed;top:0;left:0;right:0;z-index:50}
.ribbon{height:32px;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 16px;background:var(--festive);color:#fff;font-size:13.5px;font-weight:600;line-height:1;white-space:nowrap;overflow:hidden}
.ribbon .short{display:none}
.ribbon a{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:3px;min-height:32px;display:inline-flex;align-items:center;padding:0 4px}
.ribbon a:hover{text-decoration:none}
.ribbon-spark{width:12px;height:12px;flex:none;background:#fff;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);animation:spark 5s var(--ease-soft) infinite -1s}
@media (max-width:960px){.ribbon .long{display:none}.ribbon .short{display:inline}}
@media (max-width:720px){.ribbon{font-size:12.5px;gap:8px}}
@media (max-height:700px){.ribbon{display:none}}
.nav{position:relative;height:68px;display:flex;align-items:center;gap:28px;padding:0 var(--gutter);background:rgba(238,242,246,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(211,218,227,0);transition:background .4s var(--ease-soft),border-color .4s var(--ease-soft)}
.nav.scrolled{background:rgba(238,242,246,.86);border-bottom-color:var(--line)}
.tag{display:inline-flex;align-items:center;gap:6px;background:var(--festive);color:#fff;border-radius:999px;padding:6px 12px;font-size:12px;letter-spacing:.12em;text-shadow:none}
.tag::before{content:"";width:9px;height:9px;background:#fff;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%)}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font:800 23px/1 var(--display);letter-spacing:-.01em}
.brand .mark{width:34px;height:34px;color:var(--text-primary)}
.brand .wave{stroke:var(--accent)}
.brand .spark{fill:var(--accent);transform-origin:40px 11.5px;animation:spark 5s var(--ease-soft) infinite -1.5s}
@keyframes spark{0%,100%{transform:scale(.85);opacity:.7}50%{transform:scale(1.1);opacity:1}}
.brand .w1{color:var(--text-primary)}.brand .w2{color:var(--accent)}
.links{display:flex;gap:26px;margin-left:auto}
.links a{text-decoration:none;font-weight:600;font-size:15px;color:var(--text-secondary);position:relative;padding:6px 0}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out)}
.links a:hover{color:var(--text-primary)}
.links a:hover::after{transform:scaleX(1)}
@media (max-width:960px){.links{display:none}.btn-nav{margin-left:auto;white-space:nowrap}}
@media (max-width:480px){.brand{font-size:20px;gap:8px}.brand .mark{width:30px;height:30px}.brand .word{white-space:nowrap}.btn.btn-nav{font-size:14px;padding:10px 12px}.nav{gap:8px}}

/* ---------- hero ---------- */
.hero{height:500vh;position:relative;padding:0}
.stage{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--canvas)}
.poster{position:absolute;inset:0;background:var(--canvas) center/cover no-repeat}
#hero{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s var(--ease-soft);will-change:transform;transform:translateZ(0)}
.stage.video-ready #hero{opacity:1}
.stage.video-failed #hero{display:none}
.scrim{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 120% 90% at 50% 45%,rgba(238,242,246,0) 38%,rgba(238,242,246,.5) 100%)}
.stage::after{content:"";position:absolute;left:0;right:0;bottom:0;height:12%;pointer-events:none;background:linear-gradient(to bottom,rgba(238,242,246,0),var(--canvas))}
.band{position:absolute;top:calc(50% + var(--nav-h)/2);transform:translateY(-50%);width:min(26vw,420px);z-index:3;opacity:0;visibility:hidden;text-shadow:var(--tglow);pointer-events:none}
.band.on{visibility:visible}
.band.on .btn{pointer-events:auto}
.band.l{left:clamp(24px,5vw,96px)}
.band.r{right:clamp(24px,5vw,96px)}
.band::before{content:"";position:absolute;inset:-16% -14%;z-index:-1;pointer-events:none;opacity:calc(.25 + .75*var(--k,1));background:radial-gradient(ellipse 72% 64% at 50% 50%,rgba(238,242,246,.82) 0%,rgba(238,242,246,.58) 46%,rgba(238,242,246,0) 76%)}
.band .kicker{margin-bottom:12px;color:var(--text-primary)}
.band .hl{font:800 clamp(28px,3.1vw,48px)/1.06 var(--display);letter-spacing:-.018em;max-width:14ch;position:relative;text-shadow:none}
/* the headline glow is one filter over the whole line, never a shadow per word box, so no word can wash out its neighbour */
.band .hl .vis{display:block;filter:drop-shadow(0 1px 2px rgba(238,242,246,.95)) drop-shadow(0 6px 22px rgba(238,242,246,.9))}
.band .sub{margin-top:16px;font-size:clamp(16px,1.3vw,19px);line-height:1.5;color:var(--text-primary);font-weight:600;max-width:36ch}
.band .cta{margin-top:26px;display:flex;flex-wrap:wrap;gap:12px;text-shadow:none}
.band .btn{text-shadow:none}
.band .w{display:inline-block;white-space:pre}
/* entrance (a) blur-to-sharp: a static-blur soft copy crossfades with the sharp copy */
.band[data-entrance="blur"] .hl .vis{opacity:var(--k,0)}
.band[data-entrance="blur"] .hl .soft{position:absolute;left:0;top:0;filter:blur(10px);opacity:calc(1 - var(--k,0));pointer-events:none}
.band[data-entrance="blur"] .kicker{opacity:clamp(0,(var(--k,0) - .2)*2.5,1)}
.band[data-entrance="blur"] .sub{--ks:clamp(0,(var(--k,0) - .45)*2.6,1);opacity:var(--ks);transform:translateY(calc((1 - var(--ks))*10px))}
.band[data-entrance="blur"] .cta{--kb:clamp(0,(var(--k,0) - .62)*3,1);opacity:var(--kb);transform:translateY(calc((1 - var(--kb))*10px))}
/* entrance (f) drift-down: words fall into place */
/* every word is fully in by k = 0.6, so the caption never reads half-written once it is on */
.band[data-entrance="drift"] .hl .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*3.4,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*-26px))}
.band[data-entrance="drift"] .kicker{--kc:clamp(0,var(--k,0)*4,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*-12px))}
.band[data-entrance="drift"] .sub{--ks:clamp(0,(var(--k,0) - .3)*3,1);opacity:var(--ks);transform:translateY(calc((1 - var(--ks))*-14px))}
/* entrance (invented) settle: each line lands from a little above, like mist settling */
.band[data-entrance="settle"] .line,.band[data-entrance="settle"] .kicker{--kc:clamp(0,(var(--k,0) - var(--th,0))*3.2,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*-18px)) scale(calc(.985 + .015*var(--kc)));transform-origin:left center}
.band[data-entrance="settle"] .hl .w{display:inline-block}
/* entrance (e) rise into a staged settle */
.band[data-entrance="rise"] .hl .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*3,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*22px))}
.band[data-entrance="rise"] .sub{--ks:clamp(0,(var(--k,0) - .5)*4,1);opacity:var(--ks);transform:translateY(calc((1 - var(--ks))*14px))}
.band[data-entrance="rise"] .cta{--kb:clamp(0,(var(--k,0) - .7)*5,1);opacity:var(--kb);transform:translateY(calc((1 - var(--kb))*14px))}
/* short laptop windows: a tighter caption, placed after the base rules so it wins */
@media (max-height:720px){
  .band .hl{font-size:clamp(24px,2.7vw,36px)}
  .band .sub{margin-top:10px;font-size:15px}
  .band .cta{margin-top:16px;gap:8px}
  .band .btn{min-height:42px;padding:10px 18px;font-size:15px}
  .band .kicker{margin-bottom:8px}
}
.ring{position:absolute;left:50%;bottom:34px;width:40px;height:40px;transform:translateX(-50%);color:var(--accent);z-index:4;opacity:.9;transition:opacity .4s}
.ring circle{transition:stroke-dashoffset .15s linear}
.stage.video-ready .ring{opacity:0}
.cue{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:4;width:28px;height:28px;color:var(--text-secondary);animation:cue 2.4s var(--ease-soft) infinite -1s}
@keyframes cue{0%,100%{transform:translate(-50%,0);opacity:.5}50%{transform:translate(-50%,8px);opacity:1}}
.static{display:none}

/* The five static-hero gates, identical in app.js */
@media (max-width: 720px),(orientation: portrait) and (max-width: 1024px),(orientation: portrait) and (pointer: coarse),(orientation: landscape) and (pointer: coarse) and (max-height: 560px),(prefers-reduced-motion: reduce){
  .hero{height:100vh;height:100svh;min-height:620px}
  .stage{height:100%;min-height:620px}
  .band,#hero,.ring,.cue{display:none}
  .poster{background-image:url("hero-ending.jpg");background-position:center 40%}
  @media (orientation:portrait){.poster{background-image:url("hero-mobile.jpg");background-position:center 30%}}
  .scrim{background:linear-gradient(to bottom,rgba(238,242,246,.35) 0%,rgba(238,242,246,0) 30%,rgba(238,242,246,0) 45%,rgba(238,242,246,.94) 78%,var(--canvas) 100%)}
  .stage::after{display:none}
  .static{display:flex;flex-direction:column;justify-content:flex-end;position:absolute;inset:0;z-index:3;padding:0 var(--gutter) 48px;text-shadow:var(--tglow)}
  .static .hl{font:800 clamp(30px,8vw,50px)/1.04 var(--display);letter-spacing:-.018em;max-width:14ch}
  .static .sub{margin-top:12px;font-size:16px;line-height:1.5;font-weight:600;color:var(--text-primary);max-width:40ch}
  .static .cta{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px;text-shadow:none}
  .static .cta .btn{min-height:46px;padding:11px 16px;font-size:15px}
}
@media (max-height:560px){.cue,.ring{display:none}}

/* ---------- the 40% off starburst on the opening screen ---------- */
.star40{position:absolute;width:118px;height:118px;display:grid;place-items:center;text-decoration:none;color:#fff;text-shadow:0 1px 2px rgba(120,20,0,.45);filter:drop-shadow(0 10px 22px rgba(224,22,43,.35));pointer-events:auto;z-index:2;transition:transform .5s var(--ease-out)}
.star40 svg{position:absolute;inset:0;width:100%;height:100%;animation:star-spin 36s linear infinite}
.star40:hover{transform:scale(1.06)}
.star40:hover svg{animation-play-state:paused}
@keyframes star-spin{to{transform:rotate(360deg)}}
.s40{position:relative;display:grid;text-align:center;line-height:1;transform:rotate(-8deg)}
.s40 b{font:800 30px/1 var(--display);letter-spacing:-.02em}
.s40 i{font:500 13px/1 var(--mono);font-style:normal;letter-spacing:.2em;text-transform:uppercase;margin-top:3px}
.band .star40{top:-116px;right:-12px}
.band[data-entrance="blur"] .star40{opacity:var(--k,0)}
.static .star40{top:calc(var(--nav-h) + 18px);right:18px;width:104px;height:104px}
.static .s40 b{font-size:26px}
@media (max-height:720px){.band .star40{width:96px;height:96px;top:-96px}.band .s40 b{font-size:24px}}
@media (prefers-reduced-motion:reduce){.star40 svg{animation:none}}

/* ---------- Frost Edge (the signature) ---------- */
/* A solid canvas-coloured veil covers each item at rest; its TOP edge carries a tiled wisp of vapour, so as the veil slides down the content is uncovered behind a soft, breathing edge. One-shot by design. */
.veil{position:absolute;inset:-2px;z-index:5;pointer-events:none;background:var(--canvas);--d:0s;transform:translateY(0);transition:transform 1.25s var(--ease-out) var(--d),visibility 0s linear calc(1.25s + var(--d));visibility:visible}
.veil::before{content:"";position:absolute;left:0;right:0;top:-46px;height:48px;background:
  linear-gradient(to bottom,rgba(238,242,246,0) 0%,var(--canvas) 88%),
  radial-gradient(ellipse 34px 16px at 18px 28px,var(--canvas) 55%,transparent 74%),
  radial-gradient(ellipse 44px 18px at 80px 22px,var(--canvas) 55%,transparent 74%),
  radial-gradient(ellipse 36px 15px at 138px 31px,var(--canvas) 55%,transparent 74%),
  radial-gradient(ellipse 48px 19px at 198px 24px,var(--canvas) 55%,transparent 74%);
  background-size:100% 100%,240px 48px,240px 48px,240px 48px,240px 48px;background-repeat:no-repeat,repeat-x,repeat-x,repeat-x,repeat-x}
.reveal.in .veil{transform:translateY(118%);visibility:hidden}
.veil-text{position:relative;display:inline-block;overflow:hidden;padding:.12em .1em .18em 0;margin:-.12em -.1em -.18em 0}
.veil-text .veil{inset:0}
/* staggered veils inside a section, via a delay token so the visibility hand-off stays in step */
.reveal .num:nth-child(2) .veil,.reveal .card:nth-child(2) .veil,.reveal .quote:nth-child(2) .veil,.reveal .ticket:nth-child(2) .veil{--d:.12s}
.reveal .num:nth-child(3) .veil,.reveal .card:nth-child(3) .veil,.reveal .quote:nth-child(3) .veil,.reveal .ticket:nth-child(3) .veil{--d:.24s}
.reveal .num:nth-child(4) .veil,.reveal .card:nth-child(4) .veil,.reveal .ticket:nth-child(4) .veil{--d:.36s}
/* retire the stagger once the entrance is done, at matching specificity */
.reveal.done .num:nth-child(2) .veil,.reveal.done .card:nth-child(2) .veil,.reveal.done .quote:nth-child(2) .veil,.reveal.done .ticket:nth-child(2) .veil,.reveal.done .num:nth-child(3) .veil,.reveal.done .card:nth-child(3) .veil,.reveal.done .quote:nth-child(3) .veil,.reveal.done .ticket:nth-child(3) .veil,.reveal.done .num:nth-child(4) .veil,.reveal.done .card:nth-child(4) .veil,.reveal.done .ticket:nth-child(4) .veil{--d:0s}
/* content lift under the veil */

/* ---------- sections ---------- */
section{padding:clamp(72px,9vw,128px) var(--gutter);position:relative;scroll-margin-top:calc(var(--nav-h) + 8px)}
.frost-line{position:relative;height:1px;margin:0 var(--gutter);background:linear-gradient(90deg,transparent,var(--line) 20%,var(--line) 80%,transparent)}

/* A. numbers: a deep navy strip right after the hero */
.numbers{--canvas:#10243D;background:var(--navy);color:#fff;padding-top:clamp(44px,6vw,80px);padding-bottom:clamp(44px,6vw,80px)}
.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,3vw,40px);max-width:1280px;margin:0 auto}
.num{position:relative;overflow:hidden;padding:8px 0 8px 20px;box-shadow:inset 2px 0 0 rgba(255,255,255,.18)}
.num .big{display:block;font:800 clamp(34px,4.2vw,58px)/1 var(--display);letter-spacing:-.02em;color:#fff}
.num .what{display:block;margin-top:10px;color:var(--ice);font-size:15.5px;line-height:1.5;max-width:26ch}
.num::before{content:"";position:absolute;left:0;top:0;width:2px;height:40%;background:#4EA1FF;opacity:0;transition:opacity .6s var(--ease-soft) .8s}
.reveal.in .num::before{opacity:1;animation:pulse-bar 5s var(--ease-soft) infinite -2s}
@keyframes pulse-bar{0%,100%{opacity:.5}50%{opacity:1}}
@media (max-width:900px){.nums{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.nums{grid-template-columns:1fr}}

/* B. repairs */
.repairs{overflow:hidden}
.repairs::before{content:"";position:absolute;right:-8%;top:-6%;width:min(44vw,560px);height:min(44vw,560px);border-radius:50%;background:radial-gradient(circle,rgba(198,221,245,.55),rgba(198,221,245,0) 68%);z-index:0;pointer-events:none;opacity:0;transition:opacity 1.5s}
.repairs.in::before{opacity:1;animation:glow-drift 90s var(--ease-soft) infinite alternate -30s}
@keyframes glow-drift{from{transform:translate(0,0) scale(1)}to{transform:translate(-12%,10%) scale(1.15)}}
.repairs > *{position:relative;z-index:1}
.repairs .head{max-width:1280px;margin:0 auto}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.4vw,28px);max-width:1280px;margin:clamp(36px,5vw,64px) auto 0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out),border-color .4s}
.card .price{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 8px;padding:10px 20px 0;letter-spacing:.08em;font-size:11.5px;color:var(--text-secondary)}
.card .price b{font:800 22px/1 var(--display);letter-spacing:0;text-transform:none;color:var(--accent-hover)}
.card p:not(.price){flex:1}
.card .book{margin:4px 20px 22px;align-self:flex-start}
.card:hover .book{background:var(--accent-hover)}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(16,36,61,.1);border-color:var(--accent-muted)}
.card .pic{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--panel-deep)}
.card .pic img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.card:hover .pic img{transform:scale(1.04)}
.card h3{font:700 20px/1.2 var(--display);padding:20px 20px 0}
.card p{padding:8px 20px 14px;color:var(--text-secondary);font-size:15.5px;line-height:1.5}
.brands{max-width:1280px;margin:clamp(28px,4vw,44px) auto 0;text-align:center;letter-spacing:.1em;line-height:1.9}
@media (max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.cards{grid-template-columns:1fr}}

/* C. steps */
.steps{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);max-width:1280px;margin:0 auto;background:var(--panel);border-radius:28px;border:1px solid var(--line)}
.steps-head{position:sticky;top:calc(var(--nav-h) + 24px);align-self:start}
.steps-body{position:relative;padding-left:44px}
.stepline{position:absolute;left:0;top:0;width:24px;height:100%;overflow:visible}
.stepline path{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:var(--len,2000);stroke-dashoffset:var(--len,2000);vector-effect:non-scaling-stroke}
.steplist{display:grid;gap:clamp(28px,4vw,48px)}
.step{position:relative}
.step .dot{position:absolute;left:-44px;top:8px;width:24px;height:24px;border-radius:50%;background:var(--canvas);border:2px solid var(--line-strong);transition:border-color .4s,background .4s,transform .5s var(--ease-out)}
.step .dot::after{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--text-primary);opacity:0;transition:opacity .4s}
.step.lit .dot{border-color:var(--text-primary);transform:scale(1.1)}
.steps-body .note{margin-top:clamp(28px,4vw,44px)}
.step.lit .dot::after{opacity:1}
.steps.in .step.lit:last-child .dot::after{animation:dot-pulse 4s var(--ease-soft) infinite -1s}
@keyframes dot-pulse{0%,100%{opacity:.6}50%{opacity:1}}
.step h3{font:700 clamp(20px,1.8vw,24px)/1.2 var(--display)}
.step p{margin-top:8px;color:var(--text-secondary);max-width:46ch}
@media (max-width:860px){.steps{grid-template-columns:1fr}.steps-head{position:static}}

/* D. sales */
.sales{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:center;max-width:1280px;margin:0 auto}
.points{margin-top:28px;display:grid;gap:14px}
.points li{padding:16px 18px;border-radius:14px;background:var(--panel);border:1px solid var(--line);color:var(--text-secondary);font-size:16px;line-height:1.5}
.points li strong{color:var(--text-primary);font-weight:700;display:block;margin-bottom:2px}
.sales .cta{margin-top:26px}
.sales-pic{position:relative;overflow:hidden;border-radius:24px;aspect-ratio:16/10;background:var(--panel-deep);box-shadow:0 30px 70px rgba(16,36,61,.14)}
.sales-pic img{width:100%;height:100%;object-fit:cover}
.sheen{position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,0) 40%,rgba(255,255,255,.35) 50%,rgba(255,255,255,0) 60%);transform:translateX(-120%);opacity:0}
.sales.in .sheen{animation:sheen 9s var(--ease-soft) infinite -3s}
@keyframes sheen{0%{transform:translateX(-120%);opacity:0}10%{opacity:1}40%{transform:translateX(120%);opacity:0}100%{transform:translateX(120%);opacity:0}}
@media (max-width:900px){.sales{grid-template-columns:1fr}.sales-pic{order:-1}}

/* D2. festive offers: three tickets with the one warm note */
.offers{max-width:1280px;margin:0 auto}
.offers .kicker{color:#9A4407}
.tickets{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,28px);margin-top:clamp(32px,5vw,56px)}
.ticket{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--festive);border-radius:18px;padding:26px 24px 24px;display:flex;flex-direction:column;gap:10px;transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.ticket:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(16,36,61,.1)}
.ticket::after{content:"";position:absolute;right:-14px;top:50%;width:28px;height:28px;border-radius:50%;background:var(--canvas);border:1px solid var(--line);transform:translateY(-50%)}
.t-label{color:var(--festive)}
.t-big{font:800 clamp(22px,2vw,28px)/1.15 var(--display);letter-spacing:-.015em;color:var(--text-primary)}
.ticket p{color:var(--text-secondary);font-size:15.5px;line-height:1.5;flex:1}
.ticket .btn{align-self:flex-start;margin-top:8px}
.offers .note{margin-top:22px}
/* the featured 40% ticket spans the row: star, words, button */
.ticket.featured{grid-column:1/-1;flex-direction:row;align-items:center;gap:clamp(18px,3vw,36px);padding:28px clamp(22px,3vw,36px);border-top-color:#E0162B;background:linear-gradient(100deg,#FFF4E8,var(--panel) 55%)}
.ticket.featured::after{display:none}
.f-star{position:relative;flex:none;width:118px;height:118px;display:grid;place-items:center;color:#fff;text-shadow:0 1px 2px rgba(120,20,0,.45);filter:drop-shadow(0 10px 22px rgba(224,22,43,.3))}
.f-star svg{position:absolute;inset:0;width:100%;height:100%}
.offers.in .f-star svg{animation:star-spin 36s linear infinite}
.f-text{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.f-text .badge-limited{position:static;align-self:flex-start;margin-bottom:2px}
.f-text .t-label{color:#C8102E}
.f-text .t-big{font-size:clamp(24px,2.4vw,32px)}
.ticket.featured p{flex:none;max-width:60ch}
.ticket.featured .btn{align-self:center;margin-top:0;flex:none}
.offers.in .ticket:first-child .t-label{animation:none}
@media (max-width:900px){.ticket.featured{flex-direction:column;align-items:flex-start;text-align:left}.ticket.featured .btn{align-self:flex-start}}
@media (prefers-reduced-motion:reduce){.f-star svg{animation:none}}
@media (max-width:900px){.tickets{grid-template-columns:1fr}}

/* E. promise, the hold */
.promise{text-align:center}
.promise .h2{margin:0 auto}
.hold{--hp:0;max-width:760px;margin:clamp(32px,5vw,56px) auto 0;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:pan-y;border-radius:28px}
.glass{position:relative;overflow:hidden;border-radius:28px;background:linear-gradient(160deg,var(--panel),var(--panel-deep));border:1px solid var(--line);padding:clamp(28px,5vw,56px) clamp(22px,5vw,56px);box-shadow:0 30px 70px rgba(16,36,61,.1)}
.board{display:grid;gap:14px;text-align:left}
.board li{--kl:clamp(0,(var(--hp,0) - .18 - var(--i)*.17)*5,1);opacity:var(--kl);transform:translateY(calc((1 - var(--kl))*10px));font:700 clamp(19px,2.2vw,26px)/1.3 var(--display);letter-spacing:-.01em;padding-left:28px;position:relative}
.board li::before{content:"";position:absolute;left:0;top:.55em;width:14px;height:14px;border-radius:50%;background:var(--text-primary);transform:scale(var(--kl));transition:none}
.glass .after{margin-top:26px;color:var(--text-secondary);text-align:left;opacity:clamp(0,(var(--hp,0) - .92)*12,1)}
.frost{position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(ellipse 50% 40% at 30% 30%,rgba(255,255,255,.9),transparent 70%),
  radial-gradient(ellipse 60% 50% at 75% 70%,rgba(255,255,255,.85),transparent 70%),
  linear-gradient(180deg,rgba(238,242,246,.96),rgba(227,233,240,.96));
  opacity:calc(1 - var(--hp,0)*.92);transform:translateY(calc(var(--hp,0)*-6%))}
.frost::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012' numOctaves='3' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");opacity:.6}
.hold.done .frost{opacity:0}
.hold .hint{margin-top:18px;display:inline-flex;align-items:center;gap:10px;text-transform:none;letter-spacing:.04em;font-size:13.5px;background:none;border:0;cursor:pointer;color:var(--text-secondary);font-family:var(--mono);font-weight:500;min-height:44px;padding:0 12px;border-radius:999px;transition:color .5s}
.hold.done .hint{color:var(--text-primary)}
.hint-icon{width:12px;height:12px;border-radius:50%;border:2px solid var(--text-primary);animation:hint 4.4s var(--ease-soft) infinite -1.2s}
@keyframes hint{0%,100%{transform:scale(.8);opacity:.6}50%{transform:scale(1.1);opacity:1}}
.hold.done .hint-icon{animation:none;background:var(--text-primary)}

/* F. AMC: a horizontal strip, text left, one link right, mist drifting through it */
.amc{--canvas:#1673D6;max-width:1280px;margin:0 auto;padding:clamp(36px,5vw,56px) clamp(28px,4vw,56px);overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 clamp(24px,4vw,48px);align-items:center;align-content:center;border-radius:28px;border:0;background:linear-gradient(100deg,var(--accent),var(--accent-hover));color:#fff;box-shadow:0 30px 70px rgba(16,36,61,.16)}
.amc .kicker{margin-bottom:12px;color:#fff}
.amc .h2{color:#fff;font-weight:800}
.amc .lede{color:#fff}
.amc .btn.ghost{color:#fff;border-color:rgba(255,255,255,.75)}
.amc .btn.ghost:hover{background:rgba(255,255,255,.16);border-color:#fff}
.amc > :not(.veil){position:relative;z-index:1}
.amc .veil{z-index:5}
.amc .kicker{grid-column:1}
.amc .h2{font-size:clamp(24px,2.6vw,34px);max-width:24ch}
.amc .lede{margin-top:10px;font-size:16px;max-width:60ch}
.amc .cta{grid-column:2;grid-row:1/span 3;margin:0;align-self:center}
.amc::after{content:"";position:absolute;top:-40%;left:-10%;width:50%;height:180%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.22),rgba(255,255,255,0) 70%);z-index:0;pointer-events:none;animation:amc-drift 70s linear infinite -25s}
@keyframes amc-drift{from{transform:translateX(-20%)}to{transform:translateX(220%)}}
@media (max-width:800px){.amc{grid-template-columns:1fr}.amc .cta{grid-column:1;grid-row:auto;margin-top:18px}}

/* G. reviews */
.reviews .head{max-width:1280px;margin:0 auto}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,28px);max-width:1280px;margin:clamp(36px,5vw,64px) auto 0}
.quote{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:30px 26px 24px}
.quote::before{content:"\201C";position:absolute;left:22px;top:6px;font:700 72px/1 var(--display);color:#9fc6ef;opacity:.55}
.reviews.in .quote::before{animation:quote-glow 6s var(--ease-soft) infinite -2s}
.quote blockquote{position:relative;font:600 19px/1.45 var(--body);margin-top:24px}
.quote cite{display:block;margin-top:16px;font:500 12.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);font-style:normal}
@media (max-width:900px){.quotes{grid-template-columns:1fr}}

/* H. FAQ */
.faq{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);max-width:1280px;margin:0 auto}
.faq-head{position:sticky;top:calc(var(--nav-h) + 24px);align-self:start}
.faq-head::after{content:"";display:block;width:14px;height:14px;margin-top:26px;background:var(--steel);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%)}
.faq.in .faq-head::after{animation:spark 7s var(--ease-soft) infinite -2s}
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;font:700 clamp(18px,1.5vw,21px)/1.3 var(--display);position:relative;transition:color .3s}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"";position:absolute;right:6px;top:50%;width:12px;height:12px;border-right:2px solid var(--text-secondary);border-bottom:2px solid var(--text-secondary);transform:translateY(-70%) rotate(45deg);transition:transform .45s var(--ease-out)}
.faq-list details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.faq-list summary:hover{color:var(--accent-hover)}
.faq-list .ans{padding:0 0 22px;color:var(--text-secondary);max-width:58ch;animation:ans-in .5s var(--ease-out) both}
@keyframes ans-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (max-width:860px){.faq{grid-template-columns:1fr}.faq-head{position:static}}

/* I. contact: one centred column, the two big buttons, then a wide form strip */
.contact{display:grid;grid-template-columns:1fr;gap:clamp(32px,5vw,56px);justify-items:center;text-align:center;max-width:1280px;margin:0 auto}
.big-cta{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px}
.big-cta .btn{min-height:56px;padding:14px 26px;font-size:17px}
.contact.in .btn.wa::after{animation:wa-glow 5s var(--ease-soft) infinite -1s}
@keyframes wa-glow{0%,100%{opacity:0}50%{opacity:1}}
.contact .phone{margin-top:22px;font-size:15px;letter-spacing:.08em}
.callback{position:relative;overflow:hidden;width:100%;max-width:1100px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:clamp(22px,3vw,34px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr);gap:16px 18px;align-items:end;box-shadow:0 30px 70px rgba(16,36,61,.08)}
.callback .chips{flex-wrap:nowrap;gap:8px}
.callback .chips span{padding:10px 14px;white-space:nowrap}
.form-label{font:700 19px/1.3 var(--display);grid-column:1/-1}
.callback .btn,.callback .form-note,.callback .success{grid-column:1/-1}
@media (max-width:900px){.callback{grid-template-columns:1fr}}
.field{display:grid;gap:6px}
.field label,.chips legend{font-size:13px;font-weight:600;color:var(--text-secondary);letter-spacing:.04em}
.field input,.field select{font:500 16px/1.3 var(--body);color:var(--text-primary);background:#fff;border:1.5px solid var(--line-strong);border-radius:12px;padding:12px 14px;min-height:48px;width:100%;transition:border-color .3s,box-shadow .3s}
.field input:focus,.field select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-muted)}
.field input::placeholder{color:#627286}
.chips{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.chips legend{width:100%;margin-bottom:6px}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;width:0;height:0}
.chips span{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border-radius:999px;border:1.5px solid var(--line-strong);font-weight:600;cursor:pointer;transition:background .3s,border-color .3s,color .3s}
.chips input:checked + span{background:var(--text-primary);border-color:var(--text-primary);color:#fff}
.chips input:focus-visible + span{outline:3px solid var(--accent);outline-offset:3px}
.callback .btn{width:100%}
.form-note{font-size:13px;color:var(--text-secondary);text-align:center}
.success{display:grid;gap:4px;padding:14px 16px;border-radius:12px;background:#e6f6ec;border:1px solid #bfe6cd;color:#14532d;font-size:15px}
.success:empty{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);padding:0;border:0;margin:0}   /* stays in the tree so the announcement lands */
.success a{color:inherit}
.callback.sent .btn,.callback.sent .form-note,.book-form.sent .btn,.book-form.sent .form-note{display:none}

/* ---------- footer: deep navy ---------- */
.foot{background:var(--navy);color:var(--ice);padding:clamp(48px,6vw,80px) max(var(--gutter),calc((100% - 1280px)/2)) 40px;display:grid;grid-template-columns:auto 1fr auto;gap:clamp(24px,4vw,64px);align-items:center}
.foot-brand{background:#fff;border-radius:20px;padding:14px;width:168px}
.foot-brand .logo{width:140px;height:140px;object-fit:contain}
.foot-info{color:var(--ice);font-size:15.5px;line-height:1.7}
.foot-line{font:700 18px/1.3 var(--display);color:#fff;margin-bottom:6px}
.foot-info a{text-decoration:none;color:#fff}
.foot-links{display:flex;flex-wrap:wrap;gap:8px 18px;justify-self:end}
.foot-links a{text-decoration:none;font-size:14.5px;font-weight:600;color:var(--ice);padding:6px 0}
.foot-links a:hover{color:#fff}
.foot .mono,.foot .copy{color:var(--ice)}
.foot :focus-visible{outline-color:#fff}
.copy{grid-column:1/-1;margin-top:8px}
@media (max-width:900px){.foot{grid-template-columns:1fr}.foot-links{justify-self:start}}

/* ---------- refinement pass: Indian accents, search, new arrivals, badge, promo ---------- */
:root{--peacock:#0E7490;--marigold:#D97706;--rani:#BE185D}
/* a small coloured dot before each section label, one colour per section, never in the hero */
.kicker::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin:0 10px 2px 0;vertical-align:middle}
.band .kicker::before,.static .kicker::before{display:none}
.repairs .kicker::before,.faq .kicker::before{background:var(--peacock)}
.offers .kicker::before,.contact .kicker::before{background:var(--festive)}
.sales .kicker::before,.reviews .kicker::before{background:var(--marigold)}
.steps .kicker::before,.promise .kicker::before{background:var(--rani)}
.amc .kicker::before{background:#fff}
.frost-line .dot{position:absolute;top:-4px;width:8px;height:8px;border-radius:50%;opacity:0;transition:opacity 1.2s var(--ease-soft) .6s}
.frost-line .d1{left:calc(50% - 56px);background:var(--peacock)}
.frost-line .d2{left:calc(50% - 38px);background:var(--marigold)}
.frost-line .d3{left:calc(50% + 30px);background:var(--marigold)}
.frost-line .d4{left:calc(50% + 48px);background:var(--peacock)}
.frost-line.in .dot{opacity:1}
.frost-line .lotus{position:absolute;left:50%;top:-13px;width:44px;height:26px;transform:translateX(-50%) scale(.6);opacity:0;transition:opacity 1.2s var(--ease-soft) .4s,transform 1.2s var(--ease-out) .4s}
.frost-line.in .lotus{opacity:1;transform:translateX(-50%) scale(1)}
.lotus .p1{fill:var(--peacock)}.lotus .p2{fill:var(--rani)}.lotus .p3{fill:var(--marigold)}
.ticket:nth-child(3){border-top-color:var(--peacock)}
.ticket:nth-child(3) .t-label{color:var(--peacock)}
.ticket:nth-child(4){border-top-color:var(--rani)}
.ticket:nth-child(4) .t-label{color:var(--rani)}
.badge-limited{position:absolute;top:16px;right:16px;background:var(--rani);color:#fff;font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:7px 10px;border-radius:999px}
.links a[href="#offers"]::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--festive);margin:0 6px 2px 0;vertical-align:middle}
/* new arrivals strip inside the appliances section */
.arrivals{margin-top:18px;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;align-items:start;padding:16px 18px;border-radius:14px;background:linear-gradient(90deg,rgba(217,119,6,.10),rgba(14,116,144,.07));border:1px solid rgba(217,119,6,.35)}
.arrivals-tag{grid-row:1/span 2;align-self:center;background:var(--festive);color:#fff;font:500 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:8px 10px;border-radius:999px;white-space:nowrap}
.arrivals p{color:var(--text-secondary);font-size:15px;line-height:1.5}
.arrivals-link{font-size:14.5px;font-weight:600;color:var(--accent-hover);text-decoration:underline;text-underline-offset:3px}
.arrivals-link:hover{color:var(--text-primary)}
@media (max-width:480px){.arrivals{grid-template-columns:1fr}.arrivals-tag{grid-row:auto;justify-self:start}}
/* search */
.search-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line-strong);background:rgba(255,255,255,.5);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;padding:0;margin-left:auto;transition:background .3s,border-color .3s}
.links + .search-btn{margin-left:0}
@media (max-width:960px){.links + .search-btn{margin-left:auto}.btn.btn-nav{margin-left:0}}   /* no menu links: brand on the left, search and the button together on the right */
.mono,.s40 i,.badge-limited,.arrivals-tag{font-synthesis:none}
.search-btn svg{width:20px;height:20px}
.search-btn:hover,.search-btn[aria-expanded="true"]{background:#fff;border-color:var(--text-primary)}
.search{position:absolute;left:0;right:0;top:100%;background:rgba(248,250,252,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);box-shadow:0 24px 60px rgba(16,36,61,.14);padding:14px var(--gutter) 16px;animation:search-in .35s var(--ease-out);max-height:calc(100vh - var(--nav-h));overflow:auto}
.search[hidden]{display:none}
@keyframes search-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.search-form{position:relative;max-width:760px;margin:0 auto;display:flex;align-items:center}
.search-icon{position:absolute;left:16px;width:20px;height:20px;color:var(--text-secondary);pointer-events:none}
.search-input{width:100%;min-height:52px;padding:12px 52px 12px 48px;border:1.5px solid var(--line-strong);border-radius:999px;background:#fff;font:500 17px/1.3 var(--body);color:var(--text-primary);-webkit-appearance:none;appearance:none}
.search-input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-muted)}
.search-input::placeholder{color:#627286}
.search-input::-webkit-search-cancel-button{display:none}
.search-close{position:absolute;right:6px;width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--text-secondary);font-size:26px;line-height:1;cursor:pointer}
.search-close:hover{background:var(--panel-deep);color:var(--text-primary)}
.search-results{max-width:760px;margin:10px auto 0;display:grid;gap:4px}
.search-results:empty{display:none}
.search-results li a{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:baseline;padding:10px 14px;border-radius:12px;text-decoration:none;color:var(--text-primary);transition:background .25s}
.search-results li a:hover,.search-results li.active a{background:var(--panel-deep)}
.search-results li a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.search-results .r-where{font:500 11px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-hover);white-space:nowrap}
.search-results .r-title{font-weight:600;font-size:16px}
.search-results .r-snip{grid-column:2;color:var(--text-secondary);font-size:14px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.search-results .r-none{padding:10px 14px;color:var(--text-secondary);font-size:15px}
.search-hint{max-width:760px;margin:10px auto 0;text-transform:none;letter-spacing:.04em;font-size:12.5px}
.search-hit{outline:3px solid var(--accent);outline-offset:8px;transition:outline-color 1.4s var(--ease-soft)}
.search-hit.fade{outline-color:transparent}
.faq-list details.search-hit,.points li.search-hit,.includes li.search-hit,.num.search-hit,.step.search-hit,.brands.search-hit,.arrivals.search-hit,#contact.search-hit{border-radius:14px}
@media (max-width:480px){.search-btn svg{width:18px;height:18px}.search{padding:12px 16px 14px}.search-hint{display:none}}
.ribbon a:focus-visible,.amc :focus-visible{outline-color:#fff}
/* the representative: one warm face, contact section and popup only */
.promo-rep{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:50% 28%;border:2px solid #fff;box-shadow:0 8px 20px rgba(16,36,61,.16);margin-bottom:14px}
/* the one promotional popup */
.promo-backdrop{position:fixed;inset:0;background:rgba(16,36,61,.45);z-index:80;animation:page-in .4s var(--ease-soft)}
.promo-backdrop[hidden]{display:none}
.promo{position:fixed;z-index:81;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw,440px);background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:30px 28px 24px;box-shadow:0 40px 90px rgba(16,36,61,.3);animation:promo-in .5s var(--ease-out)}
.promo[hidden]{display:none}
@keyframes promo-in{from{opacity:0;transform:translate(-50%,-46%)}to{opacity:1;transform:translate(-50%,-50%)}}
.promo-close{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;border:0;background:transparent;color:var(--text-secondary);font-size:26px;line-height:1;cursor:pointer}
.promo-close:hover{background:var(--panel-deep);color:var(--text-primary)}
.promo-h{font:800 clamp(26px,3vw,34px)/1.1 var(--display);letter-spacing:-.015em;margin-top:14px;color:var(--text-primary)}
.promo-p{margin-top:10px;color:var(--text-secondary);font-size:15.5px;line-height:1.55}
.promo-cta{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px}
.promo-note{margin-top:14px;font-size:12.5px;color:var(--text-secondary)}
@media (max-width:600px){.promo{left:12px;right:12px;top:auto;bottom:12px;width:auto;transform:none;animation:sheet-in .5s var(--ease-out)}}
@keyframes sheet-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
/* the booking box, one per repair card */
.book{max-height:calc(100vh - 24px);overflow:auto;z-index:83}
#book-backdrop{z-index:82}
.book .kicker{margin-bottom:0}
.book .promo-h{margin-top:8px}
.book-price{margin-top:8px;text-transform:none;letter-spacing:.04em;font-size:13px}
.book-price:empty{display:none}
.book-price b{font:800 22px/1 var(--display);letter-spacing:0;color:var(--accent-hover);margin-left:6px}
.book-form{display:grid;gap:14px;margin-top:18px}
.book-form .chips[hidden]{display:none}
.book-form .chips span{min-height:40px;padding:8px 14px;font-size:14.5px}
.book-form .form-note{text-align:left}
@media (pointer:coarse){.promo-close,.search-close{width:44px;height:44px}}

/* ---------- Indian pattern pass: jaali lattice, temple border, mandala; all at whisper level ---------- */
:root{
  --jaali:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56' fill='none' stroke='%23ffffff' stroke-width='1'%3E%3Cpath d='M28 3l7 18 18 7-18 7-7 18-7-18-18-7 18-7z'/%3E%3Ccircle cx='28' cy='28' r='5'/%3E%3Ccircle cx='0' cy='0' r='4'/%3E%3Ccircle cx='56' cy='0' r='4'/%3E%3Ccircle cx='0' cy='56' r='4'/%3E%3Ccircle cx='56' cy='56' r='4'/%3E%3C/svg%3E");
  --temple:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='14' viewBox='0 0 28 14' fill='none'%3E%3Cpath d='M0 14 14 1 28 14' stroke='%23D97706' stroke-width='1.3' stroke-linejoin='round'/%3E%3Ccircle cx='14' cy='9' r='1.7' fill='%23D97706'/%3E%3C/svg%3E");
  --rangoli:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40' fill='none' stroke='%2310243D' stroke-width='.9'%3E%3Ccircle cx='20' cy='20' r='3'/%3E%3Cpath d='M20 4c3 5 3 9 0 12-3-3-3-7 0-12zM36 20c-5 3-9 3-12 0 3-3 7-3 12 0zM20 36c-3-5-3-9 0-12 3 3 3 7 0 12zM4 20c5-3 9-3 12 0-3 3-7 3-12 0z'/%3E%3C/svg%3E");
}
.numbers::before,.foot::before{content:"";position:absolute;inset:0;background:var(--jaali) center/56px 56px;opacity:.07;pointer-events:none}
.numbers{position:relative}.numbers > *{position:relative}
.foot{position:relative}.foot > *{position:relative}
.temple-border{position:absolute;left:0;right:0;top:0;height:14px;background:var(--temple) left top/28px 14px repeat-x;opacity:.75}
.promise .glass::before{content:"";position:absolute;inset:0;background:var(--rangoli) center/40px 40px;opacity:.06;pointer-events:none}
.offers .ticket::before{content:"";position:absolute;right:-26px;bottom:-26px;width:120px;height:120px;background:var(--rangoli) center/40px 40px;opacity:.08;pointer-events:none;border-radius:50%}
.faq-list details:last-child::after{content:"";display:block;height:14px;margin-top:6px;background:var(--temple) left top/28px 14px repeat-x;opacity:.5}
/* how it works: the left column now carries a mandala and the "every visit includes" card */
.includes{position:relative;margin-top:28px;padding:22px 22px 18px;border-radius:18px;background:var(--panel-deep);border:1px solid var(--line);overflow:hidden}
.includes > *{position:relative;z-index:1}
.mandala{position:absolute!important;z-index:0!important;right:-70px;top:-70px;width:260px;height:260px;fill:none;stroke:var(--accent);stroke-width:1;opacity:.14;transform-origin:center;pointer-events:none}
.mandala .ring-a{transform-origin:100px 100px;animation:mandala-a 120s linear infinite}
.mandala .ring-b{transform-origin:100px 100px;animation:mandala-b 90s linear infinite}
@keyframes mandala-a{to{transform:rotate(360deg)}}
@keyframes mandala-b{to{transform:rotate(-360deg)}}
.includes-h{font:700 17px/1.3 var(--display);color:var(--text-primary)}
.includes ul{margin-top:12px;display:grid;gap:10px}
.includes li{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;font-size:15px;line-height:1.45;color:var(--text-secondary)}
.inc-ico{width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--accent-hover)}
.inc-ico svg{width:17px;height:17px}
.includes li:nth-child(1) .inc-ico{color:var(--peacock)}
.includes li:nth-child(2) .inc-ico{color:var(--marigold)}
.includes li:nth-child(3) .inc-ico{color:var(--rani)}
/* reviews: real names */
.quote cite .who{color:var(--text-primary);font-weight:500;letter-spacing:.06em}
/* contact: the representative stands beside the words as a cut-out */
.contact-text{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(24px,5vw,72px);align-items:end;width:100%;max-width:1100px;text-align:left}
.contact-copy{padding-bottom:12px}
.contact .h2,.contact .lede{margin-left:0;margin-right:0}
.big-cta{justify-content:flex-start}
.rep-wrap{position:relative;width:clamp(220px,26vw,340px);margin:0;perspective:900px;justify-self:end;display:flex;flex-direction:column;align-items:center}
.rep-glow{position:absolute;left:50%;top:18%;width:120%;height:70%;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,rgba(198,221,245,.9),rgba(198,221,245,0) 68%);z-index:0}
.rep-cut{position:relative;z-index:1;width:100%;height:auto;filter:drop-shadow(0 22px 28px rgba(16,36,61,.28)) drop-shadow(0 4px 6px rgba(16,36,61,.12));transform:rotateY(-6deg) translateZ(0);transform-origin:50% 100%;transition:transform .9s var(--ease-out),filter .9s var(--ease-out)}
.rep-wrap:hover .rep-cut{transform:rotateY(4deg) translateY(-6px) translateZ(0);filter:drop-shadow(0 34px 40px rgba(16,36,61,.3)) drop-shadow(0 4px 6px rgba(16,36,61,.12))}
.contact.in .rep-cut{animation:rep-breathe 6s var(--ease-soft) infinite -2s}
@keyframes rep-breathe{0%,100%{transform:rotateY(-6deg) translateY(0) translateZ(0)}50%{transform:rotateY(-6deg) translateY(-5px) translateZ(0)}}
.rep-wrap:hover .rep-cut{animation:none}
.rep-floor{position:relative;z-index:0;width:76%;height:16px;margin-top:-10px;border-radius:50%;background:radial-gradient(ellipse,rgba(16,36,61,.28),rgba(16,36,61,0) 70%)}
.rep-cap{margin-top:10px;text-transform:none;letter-spacing:.04em;font-size:12.5px;color:var(--text-secondary)}
@media (max-width:900px){.contact-text{grid-template-columns:1fr;text-align:center;justify-items:center}.contact-copy{padding-bottom:0}.contact .h2,.contact .lede{margin-left:auto;margin-right:auto}.big-cta{justify-content:center}.rep-wrap{justify-self:center;order:-1;width:clamp(180px,52vw,240px)}}

/* ---------- colour and motif pass: toran, woven stripe, diya, paisley, per-item colour edges ---------- */
:root{
  --saffron:#F97316;
  --toran:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='14' viewBox='0 0 48 14'%3E%3Cpath d='M0 0h24L12 9z' fill='%232F7D4A'/%3E%3Cpath d='M24 0h24L36 9z' fill='%23236B3E'/%3E%3Ccircle cx='12' cy='11' r='2.6' fill='%23F59E0B'/%3E%3Ccircle cx='36' cy='11' r='2.6' fill='%23E11D74'/%3E%3C/svg%3E");
  --paisley-white:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 130' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M58 6c26 14 40 48 22 82-12 22-40 34-58 24C4 102 8 72 22 56 36 40 48 30 58 6z'/%3E%3Cpath d='M56 26c14 12 22 34 12 56-7 14-22 22-32 16-10-7-6-24 2-34 9-11 15-20 18-38z'/%3E%3Cpath d='M52 48c6 8 8 20 2 30'/%3E%3Ccircle cx='44' cy='84' r='3'/%3E%3C/svg%3E");
  --paisley-teal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 130' fill='none' stroke='%230E7490' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M58 6c26 14 40 48 22 82-12 22-40 34-58 24C4 102 8 72 22 56 36 40 48 30 58 6z'/%3E%3Cpath d='M56 26c14 12 22 34 12 56-7 14-22 22-32 16-10-7-6-24 2-34 9-11 15-20 18-38z'/%3E%3Cpath d='M52 48c6 8 8 20 2 30'/%3E%3Ccircle cx='44' cy='84' r='3'/%3E%3C/svg%3E");
  --weave:linear-gradient(90deg,var(--saffron),var(--marigold) 20%,var(--rani) 45%,var(--peacock) 70%,var(--marigold) 88%,var(--saffron));
}
/* the toran garland hangs from the festive ribbon */
.toran{position:absolute;left:0;right:0;top:32px;height:14px;background:var(--toran) left top/48px 14px repeat-x;pointer-events:none;z-index:2;filter:drop-shadow(0 1px 1px rgba(16,36,61,.18))}
@media (max-height:700px){.toran{display:none}}
/* a woven colour stripe on the navy strip and the footer */
.numbers::after,.foot::after{content:"";position:absolute;left:0;right:0;height:4px;background:var(--weave);pointer-events:none}
.numbers::after{top:0}
.foot::after{bottom:0}
/* the diya beside the festive offers */
.offers .kicker::before{display:none}
.diya{width:20px;height:20px;vertical-align:-4px;margin-right:8px}
.diya .flame{transform-box:fill-box;transform-origin:50% 100%;animation:flame 2.6s var(--ease-soft) infinite -.8s}
@keyframes flame{0%,100%{transform:scale(1) rotate(0)}35%{transform:scale(.94,1.06) rotate(-2deg);opacity:.9}70%{transform:scale(1.04,.96) rotate(2deg)}}
/* paisley watermarks: white on the AMC strip, teal behind the promise board */
.amc::before{content:"";position:absolute;right:-14px;top:-26px;width:200px;height:260px;background:var(--paisley-white) no-repeat center/contain;opacity:.16;transform:rotate(14deg);z-index:0;pointer-events:none}
.glass::after{content:"";position:absolute;left:-26px;bottom:-34px;width:170px;height:220px;background:var(--paisley-teal) no-repeat center/contain;opacity:.14;transform:scaleX(-1) rotate(-8deg);z-index:0;pointer-events:none}
.board,.glass .after{position:relative;z-index:1}
.frost{z-index:2}
/* each repair card, step and review carries one colour from the set */
.card:nth-child(1){border-top:4px solid var(--peacock)}
.card:nth-child(2){border-top:4px solid var(--marigold)}
.card:nth-child(3){border-top:4px solid var(--rani)}
.card:nth-child(4){border-top:4px solid var(--saffron)}
.card:nth-child(1):hover{border-color:var(--peacock)}
.card:nth-child(2):hover{border-color:var(--marigold)}
.card:nth-child(3):hover{border-color:var(--rani)}
.card:nth-child(4):hover{border-color:var(--saffron)}
.step:nth-child(1).lit .dot{border-color:var(--peacock)}.step:nth-child(1) .dot::after{background:var(--peacock)}
.step:nth-child(2).lit .dot{border-color:var(--marigold)}.step:nth-child(2) .dot::after{background:var(--marigold)}
.step:nth-child(3).lit .dot{border-color:var(--rani)}.step:nth-child(3) .dot::after{background:var(--rani)}
.step:nth-child(4).lit .dot{border-color:var(--saffron)}.step:nth-child(4) .dot::after{background:var(--saffron)}
.quote:nth-child(1){border-left:4px solid var(--peacock)}.quote:nth-child(1)::before{color:var(--peacock)}
.quote:nth-child(2){border-left:4px solid var(--marigold)}.quote:nth-child(2)::before{color:var(--marigold)}
.quote:nth-child(3){border-left:4px solid var(--rani)}.quote:nth-child(3)::before{color:var(--rani)}
.quote::before{opacity:.45}
@keyframes quote-glow{0%,100%{opacity:.4}50%{opacity:.8}}
/* the sales image gets a thin saffron frame line, the new arrivals strip a marigold one */
.sales-pic{outline:3px solid rgba(249,115,22,.35);outline-offset:6px}
.includes{border-top:3px solid var(--rani)}

/* ---------- reduced motion: final states, no drives ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important}
  html{scroll-behavior:auto}
  body{opacity:1}
  .frost-line .lotus{opacity:1;transform:translateX(-50%) scale(1)}
  .frost-line .dot{opacity:1}
  .repairs::before{opacity:1}
  .veil{display:none}
  .stepline path{stroke-dashoffset:0!important}
  .step .dot{border-color:var(--accent)}
  .step .dot::after{opacity:1}
  .hold{--hp:1}
  .frost{opacity:0}
  .sheen{display:none}
  .mist,.env::before{display:none}
  .static{transform:none}
  .brand .spark{transform:none;opacity:1}
  .rep-cut,.rep-wrap:hover .rep-cut{transform:none;animation:none}
}
