:root{
    --cream:#fff9ee; --cream-2:#f7ebd8; --surface:#fffdf8;
    --espresso:#38220f; --espresso-2:#4a2e17;
    --saffron:#aa4c1d; --saffron-bright:#e2853a; --saffron-dark:#a8481a;
    --gold:#b5842f; --gold-deep:#866123; --gold-soft:#e7cf9c;
    --ink:#2c241c; --muted:#6f5a41; --muted-2:#7b644b;
    --line:rgba(138,99,32,.2); --line-gold:rgba(181,132,47,.42);
    --green:#47723b;
    --shadow:0 22px 54px -24px rgba(56,34,15,.42); --shadow-sm:0 8px 24px -14px rgba(56,34,15,.42);
    --maxw:1200px;
 /* a11y 2026-08-17: --gold-text is --gold darkened for text on cream;
    --line-strong is a control boundary at >=3:1 on every light surface. */
 --gold-text:#866123;--line-strong:#9e8139
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--cream);color:var(--ink);font-family:'Spectral',Georgia,serif;font-weight:400;font-size:18px;line-height:1.72;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  body.ta{font-family:'Noto Sans Tamil','Spectral',serif}
  body.te{font-family:'Noto Sans Telugu','Spectral',serif}
  body.kn{font-family:'Noto Sans Kannada','Spectral',serif}
  body.ml{font-family:'Noto Sans Malayalam','Spectral',serif}
  body.hi,body.sa{font-family:'Noto Serif Devanagari','Spectral',serif}
  h1,h2,h3,h4{font-family:'Marcellus',serif;font-weight:400;line-height:1.18;letter-spacing:.01em;color:var(--espresso)}
  body.ta h1,body.ta h2,body.ta h3,body.te h1,body.te h2,body.te h3,body.kn h1,body.kn h2,body.kn h3,body.ml h1,body.ml h2,body.ml h3,body.hi h1,body.hi h2,body.hi h3,body.sa h1,body.sa h2,body.sa h3{font-family:inherit}
  a{color:inherit;text-decoration:none}
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  /* inline links inside body copy must not rely on colour alone (WCAG 1.4.1) */
  .inline-link{color:var(--saffron-dark);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
  .inline-link:hover{text-decoration-thickness:2px}
  p a:not(.btn):not(.inline-link):not([class]){text-decoration:underline;text-underline-offset:2px}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 30px}
  .eyebrow{font-family:'Marcellus SC',serif;text-transform:uppercase;letter-spacing:.26em;font-size:.8rem;color:var(--gold-deep)}
  .sanskrit{font-family:'Noto Serif Devanagari',serif}
  .btn{display:inline-flex;align-items:center;gap:8px;font-family:'Marcellus SC',serif;letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;padding:13px 24px;border-radius:3px;transition:all .3s ease;cursor:pointer;border:1px solid transparent;white-space:nowrap}
  .btn-primary{background:var(--saffron-dark);color:#fff;border-color:var(--saffron-dark);box-shadow:0 6px 18px -8px rgba(198,90,34,.6)}
  .btn-primary:hover{background:var(--saffron-dark);transform:translateY(-1px)}
  .btn-ghost{background:transparent;color:var(--espresso);border-color:var(--gold)}
  .btn-ghost:hover{background:var(--espresso);color:var(--cream);border-color:var(--espresso)}

  /* An "answer block": one self-contained paragraph that stands on its own if
     an assistant lifts it out of the page. Marked up so it is also the
     speakable target in the structured data. */
  .answer{background:var(--surface);border:1px solid var(--gold-soft);border-left:4px solid var(--saffron);
    border-radius:0 12px 12px 0;padding:20px 24px;margin:26px auto 0;max-width:78ch}
  .answer p{margin:0 0 10px;font-size:1.04rem;line-height:1.7}
  .answer p:last-child{margin-bottom:0}
  .answer .k{font-family:'Marcellus SC',serif;letter-spacing:.12em;text-transform:uppercase;
    font-size:.78rem;color:var(--gold-deep);display:block;margin-bottom:8px}
  .answer dl{margin:10px 0 0;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:.98rem}
  .answer dt{font-family:'Marcellus',serif;color:var(--espresso)}
  .answer dd{margin:0;color:var(--muted)}
  @media(max-width:560px){.answer{padding:16px 16px}.answer dl{grid-template-columns:1fr;gap:2px}
    .answer dd{margin-bottom:8px}}
  .btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--saffron);outline-offset:2px}

  .utility{background:var(--espresso);color:rgba(250,243,229,.82);font-size:.76rem}
  .utility .wrap{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:8px 30px;flex-wrap:wrap}
  .utility .u-left{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
  .utility a{color:var(--gold-soft)}
  .utility .om{font-family:'Noto Serif Devanagari',serif;color:var(--gold-soft)}
  nav.links{display:flex;align-items:center;gap:16px}
  nav.links a:not(.btn){font-size:.82rem;letter-spacing:.03em;white-space:nowrap;color:var(--muted);transition:color .25s;position:relative}
  nav.links a:not(.btn):hover{color:var(--saffron)}

  .hero{position:relative;overflow:hidden;padding:70px 0 84px;background:radial-gradient(ellipse at 76% 42%, rgba(226,133,58,.16), transparent 54%),linear-gradient(180deg,var(--cream),var(--cream-2))}
  .hero h1{font-size:clamp(2.4rem,4.8vw,4rem);margin:.16em 0 .28em}
  .hero h1 em{font-style:normal;color:var(--saffron)}
  .hero p.lede{font-size:1.08rem;color:var(--muted);max-width:42ch;margin:0 0 28px}
  .portrait{position:relative;display:flex;justify-content:center}
  .portrait .frame{position:relative;width:min(92%,468px);border-radius:12px;overflow:hidden;border:1px solid var(--line-gold);box-shadow:var(--shadow)}
  .portrait .frame picture{display:block}
/* Square, not portrait. The source is landscape 1448x1086; a 760:879 frame can
   only take 939px of it, which is not enough to hold the liṅgam and Gurukkal at
   once - the shrine fell outside the crop. A square frame holds both. */
.frame img{width:100%;height:auto;display:block;aspect-ratio:1/1;object-fit:cover;object-position:center}

  .creed{background:var(--espresso);color:var(--cream)}
  .creed .wrap{display:flex;align-items:center;justify-content:center;gap:26px;padding:18px 30px;flex-wrap:wrap;text-align:center}
  .creed .item{font-family:'Marcellus',serif;letter-spacing:.06em;font-size:1.02rem;color:var(--gold-soft)}
  /* on --espresso: --saffron-bright is the palette's on-dark saffron (5.45:1) */
  .creed .sep{color:var(--saffron-bright);font-size:1.1rem}

  section{position:relative;padding:92px 0}
  .section-head{max-width:660px;margin-bottom:48px}
  .section-head.center{margin:0 auto 48px;text-align:center}
  .section-head h2{font-size:clamp(2rem,3.8vw,2.9rem);margin:.3em 0 .35em}
  .section-head p{color:var(--muted);font-size:1.06rem;margin:0}
  .rule{display:flex;align-items:center;justify-content:center;gap:16px;color:var(--gold-text);margin:0 auto 8px;max-width:200px}
  .rule .r{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--line-gold),transparent)}

  .about{background:var(--surface)}
  .scripture{display:flex;flex-wrap:wrap;gap:9px 24px;margin:0;padding:0;list-style:none}
  .scripture li{position:relative;padding-left:18px;color:var(--muted);font-size:.95rem;width:calc(50% - 12px)}
  .scripture li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}
  .about-media{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line-gold);box-shadow:var(--shadow)}
  .about-media picture{display:block}
.about-media img{width:100%;height:auto;display:block}

  .cer{background:var(--cream)}
  .cer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
  .cer-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:28px 28px;box-shadow:var(--shadow-sm)}
  .cer-card .hd{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
  .cer-card .hd .ic{color:var(--saffron);flex:0 0 auto}
  .cer-card .hd h3{margin:0;font-size:1.2rem}
  .cer-list{list-style:none;margin:0;padding:0}
  .cer-list li{padding:10px 0;border-bottom:1px dotted var(--line);font-size:.98rem;color:var(--ink);display:flex;justify-content:space-between;gap:12px;align-items:center;cursor:pointer;transition:color .2s}
  .cer-list li:last-child{border-bottom:0}
  .cer-list li:hover{color:var(--saffron-dark)}
  .cer-list li .nm{display:flex;flex-direction:column}
  .cer-list li .rg{color:var(--muted-2);font-size:.78rem;font-style:italic;font-family:'Cormorant Garamond',serif}
  .cer-list li .chev{color:var(--gold-text);flex:0 0 auto;opacity:.6;transition:transform .2s,opacity .2s}
  .cer-list li:hover .chev{opacity:1;transform:translateX(3px)}
  .cer-note{text-align:center;color:var(--muted);font-size:.9rem;margin-top:24px}

  /* muhurtham */
  .muh{background:var(--cream-2);color:var(--ink)}
  .muh .section-head h2{color:var(--espresso)}
  .muh .section-head p{color:var(--muted)}
  .muh .rule{color:var(--gold-deep)} .muh .rule .r{background:linear-gradient(90deg,transparent,rgba(231,207,156,.4),transparent)}
  .muh-panel{display:grid;grid-template-columns:.95fr 1.05fr;gap:34px;align-items:start}
  .muh-form{background:var(--surface);border:1px solid var(--gold-soft);border-radius:12px;padding:28px 28px}
  .muh-form .field{margin-bottom:14px}
  .muh-form label{display:block;font-family:'Marcellus SC',serif;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;color:var(--muted);margin-bottom:6px}
  .muh-form input,.muh-form select{width:100%;background:#fff;border:1px solid var(--line-strong);color:var(--ink);padding:11px 13px;border-radius:5px;font-family:'Spectral',serif;font-size:.96rem}
  .muh-form .loc{font-size:.8rem;color:var(--muted-2);margin:2px 0 14px;display:flex;align-items:center;gap:7px}
  .muh-form .btn-primary{width:100%;justify-content:center;margin-top:4px}
  .muh-result{border:1px solid var(--gold-soft);border-radius:12px;padding:8px 28px 24px;min-height:200px;background:var(--surface)}
  .muh-empty{color:var(--muted-2);text-align:center;padding:60px 20px;font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-style:italic}
  .muh-day{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:18px 0 14px;border-bottom:1px solid rgba(181,132,47,.28);flex-wrap:wrap}
  .muh-day .d{font-family:'Marcellus',serif;font-size:1.3rem;color:var(--espresso)}
  .muh-day .sun{font-size:.86rem;color:var(--muted)}
  .muh-group{margin-top:16px}
  .muh-group h4{font-family:'Marcellus SC',serif;letter-spacing:.12em;text-transform:uppercase;font-size:.66rem;margin:0 0 8px;display:flex;align-items:center;gap:9px}
  .muh-group.good h4{color:var(--green)} .muh-group.avoid h4{color:var(--saffron-dark)}
  .krow{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dotted rgba(181,132,47,.28);font-size:.95rem;color:var(--espresso)}
  .krow:last-child{border-bottom:0}
  .krow .kt{color:var(--muted)} .krow .kv{font-family:'Marcellus',serif;color:var(--gold-deep,#8a6320);white-space:nowrap;font-size:1.02rem}
  .muh-note{margin-top:16px;padding-top:14px;border-top:1px solid var(--gold-soft);font-size:.86rem;color:var(--muted)}
  .muh-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
  .muh-actions .btn{font-size:.78rem;padding:11px 16px}
  .btn-gold{background:var(--gold);color:#241505;border-color:var(--gold)} .btn-gold:hover{background:var(--gold-soft)}

  .modes{background:var(--surface)}
  .modes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:32px}
  .mode{border:1px solid var(--line-gold);border-radius:8px;padding:32px 28px;text-align:center;background:linear-gradient(170deg,#fff,var(--cream));transition:transform .35s,box-shadow .35s}
  .mode:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
  .mode .ic{color:var(--saffron);margin-bottom:14px;display:flex;justify-content:center}
  .mode h3{margin:0 0 8px;font-size:1.2rem}
  .mode p{margin:0;color:var(--muted);font-size:.95rem}
  .modes-extra{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;align-items:center}
  .chip{border:1px solid var(--line);border-radius:40px;padding:9px 18px;font-size:.86rem;color:var(--ink);background:var(--cream-2)}
  .chip b{color:var(--saffron-dark);font-weight:400;font-family:'Marcellus',serif}

  .how{background:var(--cream)}
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
  .step{border:1px solid var(--line);border-radius:8px;padding:28px 24px;background:var(--surface);box-shadow:var(--shadow-sm)}
  .step .n{font-family:'Marcellus',serif;font-size:2rem;color:var(--saffron);line-height:1}
  .step h3{font-size:1.08rem;margin:12px 0 8px}
  .step p{color:var(--muted);font-size:.93rem;margin:0}

  .contact{background:linear-gradient(180deg,var(--cream),var(--cream-2))}
  .contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:52px;align-items:start}
  .contact-info h3{font-size:1.4rem;margin:0 0 6px}
  .info-row{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
  .info-row .ic{color:var(--saffron);flex:0 0 22px;margin-top:3px}
  .info-row .val a{display:inline-flex;align-items:center;min-height:24px;padding:2px 0}
  .info-row .label{font-family:'Marcellus SC',serif;letter-spacing:.1em;font-size:.8rem;text-transform:uppercase;color:var(--gold-deep);display:block;margin-bottom:3px}
  .info-row .val{color:var(--ink);font-size:1rem} .info-row .val a{color:var(--saffron-dark)}
  .form{background:var(--surface);border:1px solid var(--line-gold);border-radius:10px;padding:32px 30px;box-shadow:var(--shadow)}
  .form h3{margin:0 0 4px} .form>p{color:var(--muted);font-size:.9rem;margin:0 0 18px}
  .field{margin-bottom:14px}
  .field label{display:block;font-family:'Marcellus SC',serif;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;color:var(--gold-deep);margin-bottom:6px}
  .field input,.field select,.field textarea{width:100%;background:var(--cream);border:1px solid var(--line-strong);color:var(--ink);padding:12px 14px;border-radius:4px;font-family:'Spectral',serif;font-size:.98rem}
  .form .btn-primary{width:100%;justify-content:center;margin-top:6px}
  .form .hint{color:var(--muted-2);font-size:.78rem;margin-top:10px;text-align:center}

  .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
  .reveal.in{opacity:1;transform:none}

  /* modal */
  .modal-back{position:fixed;inset:0;background:rgba(30,17,7,.66);backdrop-filter:blur(3px);z-index:400;display:none;align-items:center;justify-content:center;padding:20px}
  .modal-back.open{display:flex}
  .modal{background:var(--surface);border:1px solid var(--line-gold);border-radius:12px;max-width:640px;width:100%;max-height:88vh;overflow:auto;box-shadow:var(--shadow);position:relative}
  .modal .mhead{padding:28px 32px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface)}
  .modal .mhead .cat{font-family:'Marcellus SC',serif;letter-spacing:.16em;text-transform:uppercase;font-size:.62rem;color:var(--saffron)}
  .modal .mhead h3{margin:6px 0 0;font-size:1.7rem}
  .modal .mhead .rg{color:var(--muted-2);font-style:italic;font-family:'Cormorant Garamond',serif;font-size:1.05rem}
  .modal .mclose{position:absolute;top:20px;right:22px;background:none;border:0;font-size:1.6rem;color:var(--muted);cursor:pointer;line-height:1}
  .modal .mbody{padding:22px 32px 30px}
  .modal .mbody p{margin:0 0 18px;color:var(--ink)}
  .modal .meta{display:flex;gap:22px;flex-wrap:wrap;margin:0 0 20px}
  .modal .meta .m{background:var(--cream-2);border:1px solid var(--line-gold);border-radius:8px;padding:12px 18px}
  .modal .meta .m .k{font-family:'Marcellus SC',serif;letter-spacing:.1em;text-transform:uppercase;font-size:.58rem;color:var(--gold-deep)}
  .modal .meta .m .v{font-family:'Marcellus',serif;color:var(--espresso);font-size:1.05rem}
  .modal h4{font-family:'Marcellus SC',serif;letter-spacing:.06em;font-size:.98rem;color:var(--saffron-dark);margin:22px 0 10px;display:flex;align-items:center;gap:10px}
  .modal h4::before{content:"";width:20px;height:1px;background:var(--gold)}
  .modal ul{margin:0;padding-left:2px;list-style:none}
  .modal ul li{position:relative;padding:6px 0 6px 20px;color:var(--muted);font-size:.96rem}
  .modal ul li::before{content:"";position:absolute;left:0;top:.85em;width:6px;height:6px;background:var(--gold);transform:rotate(45deg)}
  .modal .mfoot{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap}

  /* chat */
  .chat-fab{position:fixed;bottom:22px;right:22px;z-index:2147483001;display:flex;align-items:center;gap:9px;background:var(--espresso);color:#fff;border:1px solid var(--gold-deep);border-radius:40px;padding:12px 19px 12px 15px;font-family:'Marcellus',serif;letter-spacing:.02em;font-size:.82rem;cursor:pointer;box-shadow:0 8px 22px -12px rgba(56,34,15,.55);transition:transform .2s}
  .chat-fab:hover{transform:translateY(-2px)}
  /* The consent bar is position:fixed at z-index 2147483000. At z-index 350 the
   floating buttons sat underneath it, so on a first visit the assistant and the
   WhatsApp button were both unclickable until consent was dismissed. */
.wa-fab{position:fixed;bottom:22px;left:22px;z-index:2147483001;width:54px;height:54px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 26px -10px rgba(37,211,102,.7);transition:transform .25s}
  .wa-fab:hover{transform:translateY(-2px)}
  .chat-panel{position:fixed;bottom:88px;right:22px;width:min(380px,calc(100vw - 44px));height:min(560px,calc(100vh - 130px));background:var(--surface);border:1px solid var(--line-gold);border-radius:14px;box-shadow:var(--shadow);z-index:360;display:none;flex-direction:column;overflow:hidden}
  .chat-panel.open{display:flex}
  .chat-head{background:var(--espresso);color:var(--cream);padding:16px 18px;display:flex;align-items:center;gap:12px}
  .chat-head .av{width:36px;height:36px;border-radius:50%;background:var(--saffron);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
  .chat-head .t{font-family:'Marcellus',serif;font-size:1rem;line-height:1.1} .chat-head .s{font-size:.78rem;color:var(--gold-soft)}
  .chat-head .x{margin-left:auto;background:none;border:0;color:var(--gold-soft);font-size:1.3rem;cursor:pointer}
  .chat-msgs{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;background:var(--cream)}
  .msg{max-width:85%;padding:11px 14px;border-radius:12px;font-size:.94rem;line-height:1.55}
  .msg.bot{background:var(--surface);border:1px solid var(--line);color:var(--ink);align-self:flex-start;border-bottom-left-radius:4px}
  .msg.user{background:var(--saffron);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
  .msg.bot a{color:var(--saffron-dark)}
  .chat-sug{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 12px;background:var(--cream)}
  .chat-sug button{background:var(--cream-2);border:1px solid var(--line-strong);color:var(--gold-deep);border-radius:30px;padding:7px 13px;font-size:.76rem;cursor:pointer;font-family:'Spectral',serif}
  .chat-sug button:hover{background:var(--gold-soft)}
  .chat-in{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--surface)}
  .chat-in input{flex:1;border:1px solid var(--line-strong);border-radius:8px;padding:11px 13px;font-family:'Spectral',serif;font-size:.94rem;background:var(--cream)}
  .chat-in button{background:var(--saffron);color:#fff;border:0;border-radius:8px;width:44px;cursor:pointer;flex:0 0 auto}
  .typing{display:flex;gap:4px;padding:6px 2px}
  .typing span{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:bl 1.2s infinite}
  .typing span:nth-child(2){animation-delay:.2s} .typing span:nth-child(3){animation-delay:.4s}
  @keyframes bl{0%,60%,100%{opacity:.3}30%{opacity:1}}

  @media(max-width:980px){
    .hero p.lede{margin-left:auto;margin-right:auto}
    .portrait{order:-1;margin-bottom:6px}
    .contact-grid,.muh-panel{grid-template-columns:1fr;gap:34px}
    .cer-grid{grid-template-columns:1fr} .modes-grid{grid-template-columns:1fr}
    .steps{grid-template-columns:1fr 1fr} .scripture li{width:100%}
  }
  /* The desktop nav is tight even at 1200px: brand + 7 links + CTA. Marcellus
     is wider than the fallback serif, so anything measured without the webfont
     underestimates it. Collapse to the menu button while there is still real
     room rather than at the last pixel - this is what made "Poojas &
     Ceremonies" break across two lines. */
  @media(max-width:1140px){
    nav.links{display:none}
    nav.links.open{display:flex;flex-direction:column;position:absolute;top:100%;right:14px;left:14px;background:var(--surface);border:1px solid var(--line-gold);border-radius:8px;padding:18px;gap:14px;align-items:flex-start;box-shadow:var(--shadow);z-index:120}
    nav.links.open a{padding:6px 2px}
  }
  @media(max-width:680px){
    body{font-size:17px}
    .steps{grid-template-columns:1fr}
    section{padding:64px 0}
  }
  /* 320px (iPhone SE 1st gen and split-screen) - the fixed 30px gutters plus
     card padding were wider than the viewport, clipping the muhurtham form and
     the contact block. */
  @media(max-width:400px){
    .wrap{padding:0 16px}
    .mobile-bar a{padding:0 10px}
    .utility .wrap{padding:8px 16px}
    .muh-form,.muh-result{padding:18px 14px}
    .contact-info,.contact-cta{padding:20px 16px}
    .btn{padding:12px 16px;white-space:normal;text-align:center;justify-content:center}
    .btn-lg{width:100%}
  }
  @media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

  .book{background:var(--surface)}

  .test{background:var(--cream)}
  .test-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;max-width:880px;margin:0 auto}
  .t-card{border:1px solid var(--line);border-radius:8px;padding:30px 28px;background:var(--surface);box-shadow:var(--shadow-sm)}
  .t-card .stars{color:var(--saffron);letter-spacing:3px;font-size:.9rem}
  .t-card p{color:var(--ink);font-style:italic;font-family:'Cormorant Garamond',serif;font-size:1.18rem;margin:12px 0 16px;line-height:1.5}
  .t-card .who{font-family:'Marcellus SC',serif;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;color:var(--espresso-2)}
  @media(max-width:820px){.test-grid{grid-template-columns:1fr}}

  /* FAQ */
  .faq{background:var(--surface)}
  .faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
  .faq-item{border:1px solid var(--line);border-radius:10px;background:var(--cream);overflow:hidden;transition:border-color .25s,box-shadow .25s}
  .faq-item[open]{border-color:var(--line-gold);box-shadow:var(--shadow-sm)}
  .faq-item summary{list-style:none;cursor:pointer;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:'Marcellus',serif;font-size:1.08rem;color:var(--espresso);font-weight:500}
  .faq-item summary::-webkit-details-marker{display:none}
  .faq-item summary .q-ico{flex:0 0 auto;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold-deep);display:grid;place-items:center;font-size:1.1rem;line-height:1;transition:transform .3s,background .25s,color .25s}
  .faq-item[open] summary .q-ico{transform:rotate(45deg);background:var(--saffron);border-color:var(--saffron);color:#fff}
  .faq-item .faq-a{padding:0 24px 22px;color:var(--muted);line-height:1.72;font-size:1rem}
  @media(max-width:640px){.faq-item summary{font-size:1rem;padding:17px 18px}.faq-item .faq-a{padding:0 18px 18px}}


  /* Guru & lineage */
  .lineage{background:var(--cream-2)}
  .lineage-grid{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:start;max-width:960px;margin:0 auto}
  .lineage-body p{margin:0 0 15px;color:var(--ink)}
  .lineage-body strong{color:var(--espresso-2)}
  .guru-credit{margin-top:22px!important;font-family:'Marcellus',serif;color:var(--muted-2);font-size:.86rem;letter-spacing:.04em;border-top:1px solid var(--line-gold);padding-top:16px}
  .guru-credit span{display:block;color:var(--saffron-dark);font-size:1.24rem;margin-top:4px}
  @media(max-width:720px){.lineage-grid{grid-template-columns:1fr;gap:24px;text-align:left}}
.emblem{background-image:url("../img/emblem.webp");background-size:contain;background-position:left center;background-repeat:no-repeat;display:inline-block}
.lineage-photos{display:flex;flex-direction:column;gap:20px}.lin-photo{margin:0}.lin-photo picture{display:block}
.lin-photo img{width:100%;height:auto;border-radius:12px;border:1px solid var(--line-gold);box-shadow:var(--shadow);display:block}.lin-photo figcaption{font-family:'Marcellus',serif;font-size:.8rem;color:var(--muted-2);margin-top:9px;line-height:1.45;letter-spacing:.02em}.lin-photo figcaption span{display:block;color:var(--saffron-dark);font-size:.94rem;margin-top:1px}@media(max-width:720px){.lineage-photos{max-width:360px;margin:0 auto}}@keyframes fieldflash{0%,100%{box-shadow:none}20%{box-shadow:0 0 0 3px rgba(198,90,34,.35)}}.fstrip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:900px;margin:0 auto}.fs-card{display:flex;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line-gold);border-radius:14px;padding:16px;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;cursor:pointer}.fs-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.fs-chip{flex:0 0 54px;text-align:center;background:var(--cream-2);border:1px solid var(--line-gold);border-radius:10px;padding:7px 4px}.fs-chip .m{display:block;font-family:'Marcellus SC','Marcellus',serif;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--saffron-dark)}.fs-chip .d{display:block;font-family:'Marcellus',serif;font-size:1.4rem;color:var(--espresso);line-height:1}.fs-b{min-width:0}.fs-tag{display:inline-block;font-family:'Marcellus SC','Marcellus',serif;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;padding:2px 8px;border-radius:20px;margin-bottom:3px}.fs-b h3{font-family:'Marcellus',serif;font-weight:400;font-size:1.02rem;color:var(--espresso);margin:2px 0 1px;line-height:1.15}.fs-din{font-size:.8rem;color:var(--saffron-dark);font-family:'Marcellus SC','Marcellus',serif;letter-spacing:.05em}@media(max-width:760px){.fstrip{grid-template-columns:1fr}}

/* ===== Muhurta day-quality verdict ===== */
.muh-assess{border-radius:10px;padding:.85em 1em;margin:0 0 1em;border:1px solid}
.muh-assess.favourable{background:rgba(76,122,63,.10);border-color:#8fae82}
.muh-assess.mixed{background:rgba(181,132,47,.12);border-color:#d9b877}
.muh-assess.caution{background:rgba(178,52,42,.09);border-color:#d99b93}
.ma-h{font-family:'Marcellus',serif;font-size:1.05rem;margin-bottom:.15em}
.muh-assess.favourable .ma-h{color:#3c6a32}
.muh-assess.mixed .ma-h{color:#8a6320}
.muh-assess.caution .ma-h{color:#a5352a}
.ma-s{font-family:'Spectral',serif;color:#5b4a38;line-height:1.5;margin-bottom:.4em}
.ma-r{margin:.2em 0 .5em;padding-left:1.15em}
.ma-r li{font-family:'Spectral',serif;color:#5b4a38;line-height:1.5;margin-bottom:.25em;font-size:.95rem}
.ma-note{font-family:'Spectral',serif;font-style:italic;color:#6b5844;font-size:.9rem;line-height:1.5;border-top:1px dashed rgba(181,132,47,.4);padding-top:.5em;margin-top:.4em}
/* ===== What are you celebrating? ===== */
.occ{padding:56px 0 8px}
.occ-sub{text-align:center;max-width:60ch;margin:.4em auto 0;color:#6b5844;font-family:'Spectral',serif}
.occ-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0 14px}
.occ-card{display:block;background:var(--surface);border:1px solid var(--gold-soft);border-radius:14px;padding:20px 20px 22px;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s}
.occ-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(56,34,15,.12);border-color:var(--gold)}
.occ-t{display:block;font-family:'Marcellus',serif;font-size:1.22rem;color:var(--espresso);margin-bottom:.35em}
.occ-r{display:block;font-family:'Spectral',serif;color:var(--saffron);font-size:.98rem;line-height:1.5}
.occ-help{text-align:center;font-family:'Spectral',serif;color:#6b5844;margin:.6em 0 0}
.occ-help .wa-btn{color:#2f6f5e;text-decoration:none;border-bottom:1px solid rgba(47,111,94,.3);padding-bottom:2px}
.occ-help .wa-btn:hover{color:#245a4b}
@media(max-width:820px){.occ-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.occ-grid{grid-template-columns:1fr}}
/* ===== Mobile action bar ===== */
.mobile-bar{position:fixed;left:0;right:0;bottom:0;z-index:1200;display:none;background:var(--espresso);box-shadow:0 -4px 18px rgba(56,34,15,.28);padding:env(safe-area-inset-bottom) 0 0}
.mobile-bar a{flex:1;text-align:center;padding:.9em .4em;color:#faf3e5;text-decoration:none;font-family:'Marcellus',serif;font-size:.98rem;border-right:1px solid rgba(250,243,229,.14)}
.mobile-bar a:last-child{border-right:none}
.mobile-bar .mb-wa{color:#a9e6c9}.mobile-bar .mb-req{background:var(--saffron);color:#fff}
@media(max-width:760px){
 .mobile-bar{display:flex}
 body{padding-bottom:56px}
 .chat-fab,#chatFab{bottom:70px!important}
html.sc-bar-open .wa-fab{bottom:104px}
html.sc-bar-open .chat-fab{bottom:152px!important}
 .wa-fab{display:none!important}
}

/* ===== What to expect (reassurance) ===== */
.how-assure{margin-top:34px;border-top:1px solid var(--gold-soft);padding-top:26px}
.ha-h{text-align:center;font-family:'Marcellus',serif;color:var(--espresso);font-size:1.3rem;margin:0 0 18px}
.ha-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 26px;max-width:900px;margin:0 auto}
.ha-item{background:var(--surface);border:1px solid var(--gold-soft);border-radius:12px;padding:16px 18px}
.ha-t{display:block;font-family:'Marcellus',serif;color:var(--saffron);font-size:1.05rem;margin-bottom:.3em}
.ha-d{display:block;font-family:'Spectral',serif;color:#5b4a38;line-height:1.55;font-size:.97rem}
@media(max-width:640px){.ha-grid{grid-template-columns:1fr}}
.t-ctx{font-family:'Marcellus',serif;color:var(--saffron);font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.4em}
.hero-link{display:inline-flex;align-items:center;color:var(--saffron-dark);font-family:'Marcellus',serif;font-size:1.02rem;text-decoration:none;padding:6px 4px;border-bottom:1px solid transparent;transition:border-color .2s}.hero-link:hover{border-color:var(--saffron)}

/* ===== Today's Panchāṅgam (top daily panel) ===== */
.today{background:linear-gradient(180deg,var(--cream) 0%,var(--surface) 100%);border-bottom:1px solid var(--gold-soft);padding:34px 0 40px}
.today .wrap{max-width:1120px}
.today-qual{display:inline-flex;flex-direction:column;gap:2px;padding:10px 16px;border-radius:12px;border:1px solid var(--gold-soft);background:var(--surface);min-width:180px}
.today-qual .q-h{font-family:'Marcellus',serif;font-size:.95rem;color:var(--espresso)}
.today-qual .q-s{font-size:.82rem;color:var(--muted);margin-top:2px;line-height:1.4}
.today-qual.favourable{border-color:#bcd8b0;background:#f2f8ee}.today-qual.favourable .q-h{color:var(--green)}
.today-qual.mixed{border-color:var(--gold-soft);background:#fbf4e6}.today-qual.mixed .q-h{color:var(--gold-deep)}
.today-qual.caution{border-color:#e6c3ac;background:#fbf0e8}.today-qual.caution .q-h{color:var(--saffron-dark)}
.today-qual.neutral{border-color:var(--gold-soft);background:var(--surface)}.today-qual.neutral .q-h{color:var(--espresso)}
.tw.ctx{border-color:var(--gold-soft)!important;background:#faf3e6!important}.tw.ctx .tw-n{color:var(--gold-deep)!important}
.today-now.ctx .dot{background:var(--gold)}
.today-fest{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 4px;padding:14px 20px;border-radius:14px}
.today-fest.is-today{background:linear-gradient(120deg,#fbe9cf,#f7dcae);border:1px solid var(--gold)}
.today-fest.is-soon{background:var(--surface);border:1px dashed var(--gold-soft)}
.today-fest .tf-badge{font-family:'Marcellus',serif;text-transform:uppercase;letter-spacing:.07em;font-size:.8rem;padding:4px 11px;border-radius:999px;background:var(--saffron-dark);color:#fff}
.today-fest.is-soon .tf-badge{background:var(--gold-deep)}
.today-fest .tf-name{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.5rem;color:var(--espresso)}
.today-fest .tf-when{color:var(--muted);font-size:.95rem}
.today-fest .tf-cta{margin-left:auto;color:var(--saffron-dark);font-weight:600;white-space:nowrap}

.today-panch{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--gold-soft);border:1px solid var(--gold-soft);border-radius:12px;overflow:hidden}
.today-panch .tp{background:var(--surface);padding:13px 15px;display:flex;flex-direction:column;gap:3px}
.today-panch .tp-k{font-family:'Marcellus',serif;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.today-panch .tp-v{font-size:1.02rem;color:var(--ink)}
.today-panch .tp-v small{display:block;font-size:.76rem;color:var(--muted);margin-top:1px}

.today-win{border:1px solid var(--gold-soft);border-radius:12px;padding:12px 14px;background:var(--surface)}
.today-win:empty,.today-now:empty,.today-qual:empty,.today-panch:empty{display:none;border:0;padding:0}
.today-win .tw-h{font-family:'Marcellus',serif;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.today-win .tw{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px dashed var(--cream-2);font-size:.92rem}
.today-win .tw:first-of-type{border-top:0}
.today-win .tw-n{color:var(--ink)}.today-win .tw-t{color:var(--muted);font-variant-numeric:tabular-nums}
.today-win .tw.good .tw-n{color:var(--green)}.today-win .tw.avoid .tw-n{color:var(--saffron-dark)}
.today-win .tw.live{background:#fff6e6;margin:0 -14px;padding:5px 14px;border-radius:6px;font-weight:600}
/* NOT flex. The message this box receives contains a <b> for the window's
   name, and in a flex container each text run either side of that <b>
   became its own flex item - so "A traditionally restricted starting
   period (" / "Rahu Kalam" / ") is active until 11:29 AM" laid out as
   three columns. Ordinary inline flow with an inline-block bullet renders
   correctly whatever markup the script writes. */
.today-now{display:block;padding:11px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--gold-soft);font-size:.95rem;line-height:1.5;color:var(--ink)}
.today-now .dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--green);margin-right:9px;position:relative;top:-1px}
.today-now .dot.warn{background:var(--saffron)}
.today-now.warn{background:#fbf0e8;border-color:#e6c3ac}.today-now.good{background:#f2f8ee;border-color:#bcd8b0}
/* Pooja CTA — the standout */
.pooja-cta{display:grid;grid-template-columns:1.5fr auto;gap:26px;align-items:center;margin-top:26px;padding:26px 28px;border-radius:18px;background:linear-gradient(120deg,var(--cream-2),#f2e4c9);border:1px solid var(--gold);box-shadow:0 10px 30px -18px rgba(138,99,32,.5)}
.pooja-cta .pc-eyebrow{font-family:'Marcellus',serif;text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;color:var(--saffron-dark);margin:0 0 4px}
.pooja-cta h2{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.85rem;color:var(--espresso);margin:0 0 6px;line-height:1.1}
.pooja-cta .pc-lead{color:var(--muted);font-size:.98rem;margin:0 0 14px;max-width:56ch}
.pc-chips{display:flex;flex-wrap:wrap;gap:9px}
.pc-chips a{display:inline-block;text-decoration:none;font-family:'Spectral',serif;font-size:.9rem;color:var(--espresso);background:var(--surface);border:1px solid var(--gold-soft);border-radius:999px;padding:8px 15px;cursor:pointer;transition:.15s}
.pc-chips a:hover{border-color:var(--saffron);color:var(--saffron-dark);background:#fff}
.btn-lg{font-size:1.05rem;padding:15px 30px}
.today-cal{display:inline-block;margin-top:18px;color:var(--gold-deep);font-weight:600;font-size:.95rem}
@media(max-width:860px){
 
 .today-panch{grid-template-columns:repeat(2,1fr)}
 .pooja-cta{grid-template-columns:1fr}
 
}
@media(max-width:480px){.today-panch{grid-template-columns:1fr 1fr}.today-fest .tf-cta{margin-left:0;flex-basis:100%}}

.chat-disc{font-size:.8rem;color:var(--muted);padding:8px 14px 2px;line-height:1.4;border-top:1px solid var(--cream-2)}
.cer-guides{text-align:center;margin:2px auto 14px;max-width:70ch;line-height:2}.cer-guides .cg-lbl{font-family:'Marcellus SC','Marcellus',serif;letter-spacing:.07em;text-transform:uppercase;font-size:.8rem;color:var(--muted);margin-right:6px}.cer-guides a{display:inline-block;margin:0 5px;padding:5px 13px;border:1px solid var(--gold-soft);border-radius:999px;text-decoration:none;color:var(--espresso);font-size:.92rem;background:var(--surface);transition:.15s}.cer-guides a:hover{border-color:var(--saffron);color:var(--saffron-dark)}
.req-cta-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:8px 0 6px}.req-cta-note{text-align:center;color:var(--muted);font-size:.92rem;max-width:60ch;margin:10px auto 0}
.contact-cta{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.contact-cta .hint{color:var(--muted-2);font-size:.86rem;margin-top:4px}


/* Today at a Glance strip */
.glance{background:var(--cream);color:var(--ink);border-top:1px solid var(--line-gold);border-bottom:1px solid var(--line-gold)}
.glance .dot{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(123,191,123,.25);flex:0 0 auto}
.glance .dot.warn{background:#e0a13c;box-shadow:0 0 0 3px rgba(224,161,60,.25)}

/* plain-language explanation under a timing window (e.g. why Abhijit is
   set aside today). Full width, so it does not fight the flex row above. */
.tw-note,.krow-note{margin:2px 0 8px;padding:7px 10px;border-left:3px solid var(--gold-soft);background:#fdf7ea;border-radius:0 6px 6px 0;font-size:.84rem;line-height:1.5;color:var(--muted)}
