/* sarakku.in home v3 — page styles. Ported from the designer's handoff
   (design_handoff_sarakku_landing_v3, "Sarakku Landing v3.html"); tokens,
   fonts and the base nav/footer live in site.css. */
html{scroll-behavior:smooth}
.home{overflow-x:hidden;--nav:64px}
.home .wrap{max-width:1200px;padding:0 24px}
.home a:hover{text-decoration:none}
.home .more a:hover,.home .caps-f a:hover{text-decoration:underline}
.home img{-webkit-user-drag:none}
.home .btn{gap:10px;white-space:nowrap}
.home .btn i{font-size:20px;line-height:1}
.home .btn.dark{background:var(--dark-100)}.home .btn.dark:hover{background:#000}
.home .btn.big{height:60px;padding:0 30px;font-size:17.5px}.home .btn.big i{font-size:22px}
.cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.cta .note{font-size:13px;color:var(--ink-60);width:100%}
/* ── nav ── */
.home nav{background:rgba(255,255,255,.84)}
.home .nav-in{gap:22px;height:var(--nav);position:relative}
.home .nav-brand{gap:10px;margin-right:10px}
.home .nav-brand img{width:30px;height:30px;object-fit:contain;display:block;transition:transform .45s var(--ease-spring)}
.home .nav-brand:hover img{transform:rotate(-12deg) scale(1.06)}
.home .nav-in .lnk{transition:color .15s ease}.home .nav-in .lnk:hover{color:var(--ink-100)}
.home .nav-in>.btn{margin-left:auto;height:44px;padding:0 20px;font-size:15px}.home .nav-in>.btn i{font-size:18px}
.home .menu{display:none;margin-left:auto;width:44px;height:44px;border-radius:999px;border:1px solid var(--ink-10);background:#fff;align-items:center;justify-content:center;cursor:pointer;padding:0;color:var(--ink-100);font-size:20px}
.home .sheet{display:none}
@media(max-width:820px){
  .home .nav-in .lnk{display:none}.home .menu{display:inline-flex}.home .nav-in>.btn{display:none}
  .home .sheet{display:flex;flex-direction:column;gap:4px;position:absolute;left:0;right:0;top:var(--nav);background:#fff;border-bottom:1px solid var(--ink-10);padding:10px 18px 18px;box-shadow:var(--shadow-sheet);transform:translateY(-8px);opacity:0;pointer-events:none;transition:transform .25s var(--ease-out),opacity .2s}
  .home .sheet.open{transform:none;opacity:1;pointer-events:auto}
  .home .sheet a.lnk{display:flex;align-items:center;justify-content:space-between;padding:14px 6px;border-bottom:1px solid var(--ink-10);font-size:17px;font-weight:700;color:var(--ink-100)}
  .home .sheet a.lnk i{font-size:14px;color:var(--ink-40)}
  .home .sheet .btn{display:inline-flex;margin:14px 0 0;width:100%;height:52px}
}
/* the sheet is positioned against the nav, not the 1200 px wrap */
@media(max-width:820px){.home nav{position:sticky}.home .nav-in{position:static}}
/* ── hero: centred copy, three phones fanned below, a grey pour rising behind them ── */
.hero{position:relative;overflow:hidden;padding:76px 0 0;text-align:center}
.hero .wrap{position:relative;z-index:2}
.hero h1{font-size:clamp(34px,8.8vw,74px);line-height:1.02;font-weight:800;margin-top:16px}
@media(min-width:601px){.hero h1{font-size:clamp(40px,5.4vw,74px)}}
.hero h1 em{font-style:normal;color:var(--red-60)}
.hero p{color:var(--ink-80);font-size:clamp(16px,1.4vw,19px);max-width:60ch;margin:20px auto 0;text-wrap:pretty}
.hero .cta{justify-content:center;margin-top:30px}
.hero .cta .note{text-align:center}
.hero-wave{position:absolute;left:0;right:0;bottom:0;height:46%;z-index:0}
.hero-wave svg{width:100%;height:100%;display:block;overflow:hidden}
.wave{transform-box:view-box;transform-origin:0 100%;will-change:transform}
.wave-a{animation:wave-roll 9s linear infinite,wave-swell 5.5s ease-in-out infinite alternate}
.wave-b{animation:wave-roll-r 14s linear infinite,wave-swell 7s ease-in-out -2s infinite alternate-reverse}
@keyframes wave-roll{from{translate:0 0}to{translate:-1320px 0}}
@keyframes wave-roll-r{from{translate:-1320px 0}to{translate:0 0}}
@keyframes wave-swell{from{scale:1 1}to{scale:1 1.07}}
.bubbles{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.bubbles i{position:absolute;bottom:-20px;border-radius:50%;border:1.5px solid rgba(235,23,0,.28);background:rgba(255,255,255,.7);box-shadow:inset -2px -2px 3px rgba(235,23,0,.12);animation:bubble-rise linear infinite;opacity:0}
@keyframes bubble-rise{0%{transform:translate(0,0) scale(.6);opacity:0}12%{opacity:.9}55%{transform:translate(10px,-45vh) scale(1)}100%{transform:translate(-6px,-78vh) scale(1.15);opacity:0}}
.rise{animation:rise .8s var(--ease-out) both}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* ── the phone: a 393×852 screen in a 14 px graphite bezel, scaled as one layer by --s ── */
.ph{--s:.6;position:relative;flex:none;width:calc(421px*var(--s));height:calc(880px*var(--s))}
.ph::before{content:"";position:absolute;inset:0;border-radius:calc(54px*var(--s));background:#2A2A2A;box-shadow:0 calc(34px*var(--s)) calc(80px*var(--s)) calc(-18px*var(--s)) rgba(25,25,25,.55),inset 0 0 0 calc(1.5px*var(--s)) rgba(255,255,255,.09)}
.ph.dark::before{box-shadow:0 calc(34px*var(--s)) calc(80px*var(--s)) calc(-18px*var(--s)) rgba(25,25,25,.55),inset 0 0 0 calc(1.5px*var(--s)) rgba(255,255,255,.16)}
.ph .scr{position:absolute;left:calc(14px*var(--s));top:calc(14px*var(--s));width:calc(393px*var(--s));height:calc(852px*var(--s));border-radius:calc(40px*var(--s));overflow:hidden;background:#fff}
.ph .scr img{display:block;width:100%;height:100%}
/* ── hero fan: a 1240×740 stage scaled to the container ── */
.home .fan-wrap{margin-top:28px;z-index:1;max-width:1240px}
.fan{position:relative;width:100%;overflow:visible;height:740px}
.fan-in{position:absolute;left:50%;top:0;width:1240px;height:740px;transform-origin:top center;transform:translateX(-50%) scale(var(--sc,1))}
.fan-p{position:absolute;filter:drop-shadow(0 30px 40px rgba(25,25,25,.16));transform:translateY(calc(var(--py,0) * 1px))}
.fan-p:nth-child(1){left:117.49px;top:112px;z-index:2;--dx:372px}
.fan-p:nth-child(2){left:460.02px;top:40px;z-index:3;--dx:0px}
.fan-p:nth-child(3){left:861.49px;top:112px;z-index:2;--dx:-372px}
.fan.tight .fan-p:nth-child(1){left:243.97px;--dx:245.52px}
.fan.tight .fan-p:nth-child(3){left:734.99px;--dx:-245.52px}
.fan-p:nth-child(1) .ph,.fan-p:nth-child(3) .ph{--s:.62}
.fan-p:nth-child(2) .ph{--s:.76}
.fan-p:nth-child(1){--r:-8deg;--d:.14s}.fan-p:nth-child(2){--r:0deg;--d:0s}.fan-p:nth-child(3){--r:8deg;--d:.26s}
.fan-pose{transform:translate(var(--dx),48px) rotate(0deg);opacity:0;transition:transform 1.15s cubic-bezier(.34,1.25,.64,1) var(--d),opacity .7s ease var(--d)}
.fan-pose.open{transform:translate(0,0) rotate(var(--r));opacity:1}
/* ── stats band continues the pour ── */
.stats-band{background:var(--ink-5);padding:34px 0 40px}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 26px}
@media(min-width:820px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stat b{display:block;font-size:30px;font-weight:800;letter-spacing:-0.02em;font-feature-settings:"tnum" 1}
.stat .lb{display:block;font-size:12.5px;color:var(--ink-60)}
/* ── sections ── */
.sec{padding:104px 0 0}
.sec-h{max-width:680px}
.sec-h h2{font-size:clamp(28px,3.4vw,42px);font-weight:800;margin-top:10px}
.sec-h p{color:var(--ink-80);margin:12px 0 0;text-wrap:pretty}
.steps{display:grid;grid-template-columns:1fr;gap:12px;margin-top:36px}
@media(min-width:820px){.steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.step{background:var(--ink-5);border-radius:18px;padding:20px 22px}
.step b{display:flex;align-items:center;gap:10px;font-size:16px}
.step .n{width:26px;height:26px;border-radius:99px;background:var(--red-60);color:#fff;font-size:13px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex:none}
.step p{font-size:14px;color:var(--ink-80);margin:8px 0 0}
/* ── zig-zag rows ── */
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center;margin-top:96px}
.row.flip .row-text{order:2}
.ch-eyebrow{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:700;color:var(--ink-60)}
.ch-eyebrow b{color:var(--red-60);font-feature-settings:"tnum" 1}
.row h2{font-size:clamp(28px,3.2vw,44px);line-height:1.06;font-weight:800;margin-top:14px}
.row p{color:var(--ink-80);font-size:clamp(16px,1.25vw,18px);max-width:46ch;margin:16px 0 0;text-wrap:pretty}
.ch-tag{margin-top:18px;font-size:14px;font-weight:700;color:var(--ink-60)}
/* a phone on a colour tile: it lifts into place as the tile scrolls in, then the pills land */
.tile{--s:.6;--k:1;position:relative;border-radius:32px;overflow:hidden;height:calc(880px*var(--s) + 80px)}
.tile-lift{position:absolute;left:50%;top:50%;margin-left:calc(-210.5px*var(--s));margin-top:calc(-440px*var(--s));transform:translateY(64px);opacity:0;transition:transform 1s var(--lift),opacity .7s ease}
.tile.in .tile-lift{transform:none;opacity:1}
.tile-rot{transform:rotate(var(--rot,0deg))}
.tile .ph{--s:inherit}
.pillw{position:absolute;z-index:6;left:calc(var(--x) * 1% + var(--dx,0px));top:calc(var(--y) * 1%);transform:translate(-50%,-50%);pointer-events:none}
.pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;box-shadow:0 16px 34px -10px rgba(25,25,25,.45),0 0 0 1px rgba(25,25,25,.06);opacity:0;background:#fff;gap:calc(9px*var(--k));padding:calc(9px*var(--k)) calc(15px*var(--k)) calc(9px*var(--k)) calc(12px*var(--k))}
.pill i{font-size:calc(19px*var(--k));line-height:1}
.pill span{font-size:calc(17px*var(--k));line-height:1;font-weight:700;letter-spacing:-0.01em;color:var(--ink-100);font-feature-settings:"tnum" 1}
.pill.money span{font-weight:800;color:var(--green-60)}
.tile.in .pill{animation:co-pop .55s var(--ease-spring) both;animation-delay:var(--d)}
@keyframes co-pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.12);opacity:1}100%{transform:scale(1);opacity:1}}
@media(max-width:899px){.row{grid-template-columns:1fr;gap:28px;margin-top:72px}.row.flip .row-text{order:0}}
/* ── pulse band ── */
.band{background:var(--dark-100);color:#fff;border-radius:32px;padding:60px 64px 0;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;overflow:hidden;position:relative}
.band .caps{color:rgba(255,255,255,.5)}
.band h2{font-size:clamp(30px,3.6vw,48px);font-weight:800;margin-top:10px}
.band .big{font-size:clamp(48px,6vw,84px);font-weight:800;letter-spacing:-0.04em;line-height:1;margin-top:18px;font-feature-settings:"tnum" 1;display:flex;align-items:baseline;flex-wrap:wrap;gap:0 .2em}
.band .big .unit{font-size:.34em;font-weight:700;letter-spacing:-0.01em;color:rgba(255,255,255,.72)}
.band .sub{color:rgba(255,255,255,.68);margin-top:10px;max-width:52ch;text-wrap:pretty}
.band .sub b{color:#fff}
.band .facts{display:flex;gap:26px;flex-wrap:wrap;margin-top:24px}
.band .facts b{display:block;font-size:22px;font-weight:800;letter-spacing:-0.02em}
.band .facts .lb{display:block;font-size:12px;color:rgba(255,255,255,.55)}
.band .caps-h{margin-top:30px}
.caps-list{border-top:1px solid rgba(255,255,255,.14);margin-top:8px;max-width:440px}
.caps-list .cr{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.09)}
.caps-list .ck{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5);flex:none}
.caps-list .cv{font-size:14.5px;font-weight:700;text-align:right;line-height:1.25}
.caps-list .cd{display:block;font-size:11.5px;font-weight:500;color:rgba(255,255,255,.45)}
.caps-f{font-size:11.5px;color:rgba(255,255,255,.4);margin:10px 0 56px;line-height:1.5;max-width:440px}
.band-phone{align-self:center;justify-self:center;margin:0 0 56px;transform:translateY(64px);opacity:0;transition:transform 1s var(--lift) .15s,opacity .7s ease .15s}
.band.in .band-phone{transform:none;opacity:1}
@media(max-width:899px){.band{grid-template-columns:1fr;padding:44px 28px 0;gap:8px}.caps-f{margin-bottom:28px}.band-phone{margin:0 0 44px}}
/* ── between visits: three cards, phones cropped at the foot ── */
.trio{display:grid;grid-template-columns:1fr;gap:16px;margin-top:36px}
@media(min-width:900px){.trio{grid-template-columns:repeat(3,minmax(0,1fr))}}
.card3{position:relative;border-radius:28px;overflow:hidden;padding:28px 28px 0;height:620px;opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.card3.in{opacity:1;transform:none}
.card3 h3{font-size:22px;margin-top:10px;letter-spacing:-0.02em}
.card3 p{font-size:14.5px;color:var(--ink-80);margin:8px 0 0;text-wrap:pretty}
.card3.dark{color:#fff}.card3.dark p{color:rgba(255,255,255,.7)}.card3.dark .caps{color:rgba(255,255,255,.5)}
.c3-phone{position:absolute;left:50%;bottom:-140px;transform:translateX(-50%) translateY(56px);opacity:0;transition:transform 1s var(--lift) .2s,opacity .7s ease .2s}
.c3-phone .ph{--s:.52}
.card3.in .c3-phone{transform:translateX(-50%);opacity:1}
/* ── trust · faq · guides · final · footer ── */
.rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:34px}
@media(max-width:520px){.rules{grid-template-columns:1fr}}
@media(min-width:820px){.rules{grid-template-columns:repeat(4,minmax(0,1fr))}}
.rule{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--ink-10);border-radius:16px;padding:14px 15px;font-size:13.5px;line-height:1.45;color:var(--ink-80)}
.rule b{color:var(--ink-100)}.rule i{flex:none;margin-top:1px;font-size:20px;color:var(--red-60);line-height:1}
.districts{margin-top:14px;border:1px solid var(--ink-10);border-radius:18px;padding:18px 20px}
.districts p{font-size:14px;color:var(--ink-80);margin:8px 0 0;line-height:1.75}
.districts p b{color:var(--ink-100)}
.home .faq-wrap{max-width:800px}
.faq{margin-top:30px}
.faq details{border:1px solid var(--ink-10);border-radius:16px;margin-top:10px;overflow:hidden}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;font-size:16px;font-weight:700;transition:background .16s ease}
.faq summary:hover{background:var(--ink-3)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:20px;font-weight:700;color:var(--red-60);flex:none;transition:transform .2s var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 18px 16px;font-size:14.5px;color:var(--ink-80);line-height:1.65}
.faq details[open] .a{animation:faq-in .32s var(--ease-out) both}
@keyframes faq-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.faq .a b{color:var(--ink-100)}
.guides{display:grid;grid-template-columns:1fr;gap:14px;margin-top:34px}
@media(min-width:820px){.guides{grid-template-columns:repeat(3,minmax(0,1fr))}}
.guide{position:relative;display:block;color:inherit;border:1px solid var(--ink-10);border-radius:24px;padding:24px;opacity:0;transition:transform .22s var(--ease-out),box-shadow .22s ease}
.guide.in{opacity:1;animation:rise .6s var(--ease-out) var(--rd,0s) backwards}
.guide:hover{transform:translateY(-3px);box-shadow:var(--shadow-card);color:inherit;text-decoration:none}
.guide.hot{background:var(--red-10);border-color:var(--red-20)}
.guide.hot.in{animation:rise .6s var(--ease-out) var(--rd,0s) backwards,dry-ring 2.2s var(--ease-out) .7s 2}
.guide.hot .ic{animation:pf-wiggle .6s var(--ease-spring) 1.1s 2}
.guide.hot .tagline{color:var(--red-60)}
@keyframes dry-ring{0%{box-shadow:0 0 0 0 rgba(235,23,0,.42)}100%{box-shadow:0 0 0 16px rgba(235,23,0,0)}}
.dry-badge{position:absolute;top:20px;right:20px;display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 11px 0 9px;border-radius:999px;background:var(--red-60);color:#fff;font-size:12px;font-weight:700;box-shadow:var(--gloss);white-space:nowrap}
.dry-badge i{position:relative;width:8px;height:8px;border-radius:50%;background:#fff;flex:none}
.dry-badge i::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid #fff;animation:pf-halo 1.6s var(--ease-out) infinite}
.guide .ic{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:var(--gloss);color:#fff;font-size:22px}
.guide h3{font-size:19px;margin-top:16px}
.guide p{font-size:14.5px;color:var(--ink-80);margin:8px 0 0}
.guide .tagline{margin-top:12px;font-size:12.5px;font-weight:700;color:var(--ink-60)}
.more{margin:18px 0 0;font-size:15px}.more a{font-weight:700}.more span{color:var(--ink-60)}
.final{text-align:center;padding:120px 0 96px}
.final-mark{display:flex;justify-content:center}.final-mark img{width:64px;height:64px;object-fit:contain}
.final h2{font-size:clamp(32px,4.4vw,52px);font-weight:800;margin-top:22px}
.final p{color:var(--ink-80);margin:12px auto 26px;max-width:44ch}
.cta.center{justify-content:center}
.final .note{font-size:14px;font-weight:600;color:var(--ink-80);margin-top:16px}
.home footer{padding:26px 0 34px}
.home footer .wrap{gap:10px 26px;font-size:12.5px;font-weight:400;color:var(--ink-60)}
.home footer .wordmark{font-size:16px}
.home footer a{color:var(--ink-60);font-weight:700;transition:color .15s ease}.home footer a:hover{color:var(--ink-100)}
.home footer .muted{color:var(--ink-60)}
/* ── phones: tighter gutters and rhythm, the headline flows, store buttons stack full-width ── */
@media(max-width:600px){
  .home .wrap{padding:0 18px}
  .hero{padding:48px 0 0}.hero h1 br{display:none}.hero p{font-size:16px}
  .hero .cta .btn,.final .cta .btn{width:100%;max-width:360px}
  .fan-wrap{margin-top:18px}
  .stats-band{padding:28px 0 32px}.stat b{font-size:26px}
  .sec{padding:72px 0 0}.row{margin-top:56px}
  .tile{border-radius:24px}.band{border-radius:24px}.card3{height:560px;padding:24px 22px 0}
  .final{padding:88px 0 72px}
}
/* ── reduced motion: everything lands, nothing moves ── */
@media(prefers-reduced-motion:reduce){
  .home *{animation:none!important;transition:none!important}
  .reveal,.card3,.tile-lift,.band-phone,.c3-phone,.pill,.fan-pose,.guide{opacity:1!important;transform:none!important}
  .fan-pose{transform:rotate(var(--r))!important}
}
