/* ═══════════════════════════════════════════════════════════
   കോർളി ശ്രീ നരസിംഹമൂർത്തി ക്ഷേത്രം — വെങ്കിടങ്ങ്
   Minimal devotional theme.  Palette drawn from the temple's
   own materials: laterite, terracotta tile, sand, teak shadow.
   ═══════════════════════════════════════════════════════════ */

/* ── tokens ─────────────────────────────────────────────── */
:root{
  /* surfaces */
  --paper:      #faf7f1;
  --paper-2:    #f3eee4;
  --paper-3:    #ece4d6;
  --dark:       #211d19;
  --dark-2:     #2c2721;

  /* ink */
  --ink:        #1d1a16;
  --ink-2:      #4b443c;
  --ink-3:      #7a7167;
  --on-dark:    #f4efe6;
  --on-dark-2:  #b8ada0;

  /* accent */
  --laterite:   #a34f2e;
  --laterite-d: #8a4126;
  --gold:       #a4884d;
  --gold-soft:  #c9b285;

  /* lines */
  --line:       #e2d9c9;
  --line-2:     #d3c7b2;
  --line-dark:  rgba(244,239,230,.16);

  /* type */
  --f-display:  'Gayathri', 'Manjari', 'Nirmala UI', 'Noto Serif Malayalam', serif;
  --f-body:     'Manjari', 'Nirmala UI', 'Noto Sans Malayalam', system-ui, sans-serif;
  --f-latin:    'Cormorant Garamond', Georgia, serif;

  /* rhythm */
  --sec-y:      clamp(4.5rem, 9vw, 8.5rem);
  --gutter:     clamp(1.25rem, 4vw, 3rem);
  --maxw:       1180px;
  --radius:     2px;

  --ease:       cubic-bezier(.22,.61,.36,1);
}

/* ── bilingual switching ────────────────────────────────
   Both languages ship in the HTML; only the active one is
   rendered. Pure CSS, so content survives a JS failure.     */
html[data-lang="ml"] [lang="en"]{ display:none; }
html[data-lang="en"] [lang="ml"]{ display:none; }
/* the switcher always shows both labels — it must never hide its own
   way back to the other language */
html .langsw button{ display:inline-block; }

/* ── reset ──────────────────────────────────────────────── */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:84px; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:clamp(1rem,.96rem + .22vw,1.075rem);
  line-height:1.85;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,p,dl,dd,figure,blockquote{ margin:0; }
:focus-visible{ outline:2px solid var(--laterite); outline-offset:3px; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms!important; transition-duration:.01ms!important; }
}

.skip{
  position:fixed; top:-100px; left:1rem; z-index:1000;
  background:var(--ink); color:var(--paper); padding:.7rem 1.2rem; font-size:.9rem;
  transition:top .2s;
}
.skip:focus{ top:1rem; }

/* ── layout ─────────────────────────────────────────────── */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.wrap--narrow{ max-width:760px; }
.sec{ padding-block:var(--sec-y); }
.sec--tint{ background:var(--paper-2); }
.sec--dark{ background:var(--dark); color:var(--on-dark); }

/* ── type primitives ────────────────────────────────────── */

/* Malayalam is a conjunct script: wide tracking and `text-transform`
   break its ligatures, so small labels stay in the body face with
   only a hint of extra spacing. Wide Latin tracking lives in .lbl-en. */
.lbl,
.eyebrow, .brand__sub, .hero__place, .note__label, .total__label,
.bank__label, .verdict__label, .ftr__h, .ba__tag, .bank__rows dt{
  font-family:var(--f-body);
  letter-spacing:.045em;
  text-transform:none;
  font-variant-numeric:lining-nums;
}
/* purely Latin labels keep the airy uppercase treatment */
.lbl-en, .card__no{
  font-family:var(--f-latin); letter-spacing:.24em; text-transform:uppercase;
}
/* figures: Cormorant defaults to old-style numerals — force lining */
.mono, .work__cost, .work__sub b, .total__val, .step__n, .work__no,
.contacts__ph, .bank__name, .lb__fig, .ftr__bar{
  font-variant-numeric:lining-nums;
  font-feature-settings:"lnum" 1, "tnum" 0;
}

.eyebrow{
  font-size:.86rem; color:var(--gold); font-weight:700;
  display:flex; align-items:center; gap:.85rem;
  margin-bottom:1.15rem;
}
.eyebrow::after{ content:''; flex:0 0 auto; width:38px; height:1px; background:var(--gold-soft); }
.eyebrow--light{ color:var(--gold-soft); }
.eyebrow--light::after{ background:rgba(201,178,133,.45); }
.eyebrow .num{
  font-size:.95rem; color:var(--laterite); font-weight:700;
}
.eyebrow--light .num{ color:var(--gold-soft); }

h1,h2,h3{ font-family:var(--f-display); font-weight:400; line-height:1.32; letter-spacing:.002em; }
h2{ font-size:clamp(1.75rem,1.25rem + 2.1vw,2.9rem); margin-bottom:1.1rem; }
h3{ font-size:clamp(1.15rem,1.05rem + .4vw,1.35rem); }

.lede{ color:var(--ink-2); max-width:62ch; font-size:1.03em; }
.lede--light{ color:var(--on-dark-2); }
.sec--dark .lede{ color:var(--on-dark-2); }

.prose p{ color:var(--ink-2); margin-bottom:1.15em; }
.prose p:last-child{ margin-bottom:0; }
.prose strong{ color:var(--ink); font-weight:700; }
.prose em{ color:var(--laterite); font-style:normal; }
.prose--light p{ color:var(--on-dark-2); }
.prose--light strong{ color:var(--on-dark); }

.sec__head{ margin-bottom:clamp(2.5rem,5vw,4rem); max-width:70ch; }
.sec__head--center{ margin-inline:auto; text-align:center; }
.sec__head--center .eyebrow{ justify-content:center; }
.sec__head--center .eyebrow::before{ content:''; width:38px; height:1px; background:var(--gold-soft); }
.sec__head--center .lede{ margin-inline:auto; }
.sec--dark h2{ color:var(--on-dark); }

.ornament{
  display:block; width:100%; height:22px; margin-block:2.4rem;
  background:
    radial-gradient(circle at center, var(--gold-soft) 0 3px, transparent 3.5px) center/100% no-repeat,
    linear-gradient(to right, transparent, var(--line-2) 18%, var(--line-2) 42%, transparent 46%,
                    transparent 54%, var(--line-2) 58%, var(--line-2) 82%, transparent) center/100% 1px no-repeat;
}

/* ── buttons ────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.82rem 1.9rem;
  background:var(--laterite); color:#fff;
  font-size:.98rem; letter-spacing:.02em;
  border:1px solid var(--laterite);
  border-radius:var(--radius);
  transition:background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
}
.btn:hover{ background:var(--laterite-d); border-color:var(--laterite-d); transform:translateY(-2px); }
.btn--sm{ padding:.52rem 1.15rem; font-size:.88rem; }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line-2); }
.btn--ghost:hover{ background:transparent; border-color:var(--ink); }
.btn--ghost-light{ color:#fff; border-color:rgba(255,255,255,.45); }
.btn--ghost-light:hover{ background:rgba(255,255,255,.1); border-color:#fff; }

/* ── scroll progress ────────────────────────────────────── */
.progress{
  position:fixed; inset:0 auto auto 0; z-index:200;
  height:2px; width:0; background:var(--laterite);
  transition:width .1s linear;
}

/* ── header ─────────────────────────────────────────────── */
.hdr{
  position:fixed; inset:0 0 auto 0; z-index:120;
  transition:background .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
  border-bottom:1px solid transparent;
}
.hdr__in{
  max-width:var(--maxw); margin-inline:auto; padding:1.1rem var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  transition:padding .35s var(--ease);
}
.hdr.is-stuck{
  background:rgba(250,247,241,.94);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
}
/* `backdrop-filter` turns .hdr into the containing block for its
   position:fixed drawer, so it must be dropped while the drawer is open. */
.hdr.is-navopen,
.hdr.is-navopen.is-stuck{
  background:var(--paper);
  backdrop-filter:none; -webkit-backdrop-filter:none;
}
.hdr.is-navopen .brand__mark{ color:var(--laterite); }
.hdr.is-navopen .brand__name{ color:var(--ink); }
.hdr.is-navopen .brand__sub{ color:var(--ink-3); }
.hdr.is-navopen .burger span{ background:var(--ink); }
.hdr.is-stuck .hdr__in{ padding-block:.75rem; }

.brand{ display:flex; align-items:center; gap:.8rem; min-width:0; }
.brand__mark{ color:#fff; flex:0 0 auto; transition:color .35s var(--ease); }
.brand__txt{ display:flex; flex-direction:column; line-height:1.25; min-width:0; }
.brand__name{
  font-family:var(--f-display); font-size:1.02rem; color:#fff;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  transition:color .35s var(--ease);
}
.brand__sub{
  font-size:.76rem; color:rgba(255,255,255,.72); transition:color .35s var(--ease);
}
.hdr.is-stuck .brand__mark,
.hdr.is-stuck .brand__name{ color:var(--ink); }
.hdr.is-stuck .brand__mark{ color:var(--laterite); }
.hdr.is-stuck .brand__sub{ color:var(--ink-3); }

.nav{ display:flex; align-items:center; gap:1.4rem; }
.nav__list{ display:flex; align-items:center; gap:1.35rem; }
.nav__list a{
  position:relative; font-size:.94rem; color:rgba(255,255,255,.88);
  padding-block:.3rem; white-space:nowrap;      /* never wrap a label */
  transition:color .25s var(--ease);
}
.brand__name{ max-width:min(30vw,300px); }
.nav__list a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:currentColor; transition:width .3s var(--ease);
}
.nav__list a:hover::after,
.nav__list a.is-active::after{ width:100%; }
.nav__list a:hover,
.nav__list a.is-active{ color:#fff; }
.hdr.is-stuck .nav__list a{ color:var(--ink-2); }
.hdr.is-stuck .nav__list a:hover,
.hdr.is-stuck .nav__list a.is-active{ color:var(--laterite); }
.nav__cta{ white-space:nowrap; }

.burger{ display:none; width:40px; height:40px; position:relative; }
.burger span{
  position:absolute; left:9px; width:22px; height:1.5px; background:#fff;
  transition:transform .3s var(--ease), opacity .2s, background .35s var(--ease);
}
.burger span:nth-child(1){ top:14px; }
.burger span:nth-child(2){ top:20px; }
.burger span:nth-child(3){ top:26px; }
.hdr.is-stuck .burger span{ background:var(--ink); }
.burger.is-open span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* ── language switch ────────────────────────────────────── */
.langsw{
  display:flex; align-items:center; gap:.1rem;
  border:1px solid rgba(255,255,255,.32); border-radius:100px;
  padding:2px; transition:border-color .35s var(--ease);
}
.langsw button{
  font-size:.8rem; line-height:1; padding:.42rem .8rem; border-radius:100px;
  color:rgba(255,255,255,.78); white-space:nowrap;
  transition:background .28s var(--ease), color .28s var(--ease);
}
.langsw button:hover{ color:#fff; }
.langsw button.is-on{ background:#fff; color:var(--ink); }
.hdr.is-stuck .langsw,
.hdr--solid .langsw,
.hdr.is-navopen .langsw{ border-color:var(--line-2); }
.hdr.is-stuck .langsw button,
.hdr--solid .langsw button,
.hdr.is-navopen .langsw button{ color:var(--ink-3); }
.hdr.is-stuck .langsw button.is-on,
.hdr--solid .langsw button.is-on,
.hdr.is-navopen .langsw button.is-on{ background:var(--ink); color:var(--paper); }

/* ── nav submenu ────────────────────────────────────────── */
.nav__has-sub{ position:relative; }
.nav__subtoggle{ display:inline-flex; align-items:center; gap:.4rem; }
.nav__caret{ transition:transform .28s var(--ease); flex:0 0 auto; }
.nav__has-sub.is-open .nav__caret{ transform:rotate(180deg); }
.nav__sub{
  position:absolute; top:calc(100% + .85rem); left:50%; translate:-50% 0;
  min-width:250px; padding:.5rem 0;
  background:var(--paper); border:1px solid var(--line);
  box-shadow:0 18px 46px rgba(29,26,22,.14);
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .26s var(--ease), transform .26s var(--ease), visibility .26s;
  z-index:5;
}
.nav__has-sub.is-open > .nav__sub{ opacity:1; visibility:visible; transform:none; }
.nav__sub::before{                        /* hover bridge over the gap */
  content:''; position:absolute; left:0; right:0; top:-.85rem; height:.85rem;
}
.nav__sub a,
.hdr.is-stuck .nav__sub a{
  display:block; padding:.62rem 1.3rem; font-size:.92rem; color:var(--ink-2);
  transition:background .2s, color .2s;
}
.nav__sub a::after{ display:none; }
.nav__sub a:hover,
.hdr.is-stuck .nav__sub a:hover{ background:var(--paper-2); color:var(--laterite); }

/* ── solid header (interior pages) ──────────────────────── */
.hdr--solid{
  position:sticky; background:rgba(250,247,241,.94);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
}
.hdr--solid .brand__mark{ color:var(--laterite); }
.hdr--solid .brand__name{ color:var(--ink); }
.hdr--solid .brand__sub{ color:var(--ink-3); }
.hdr--solid .nav__list > li > a{ color:var(--ink-2); }
.hdr--solid .nav__list > li > a:hover,
.hdr--solid .nav__list > li > a.is-active{ color:var(--laterite); }
.hdr--solid .burger span{ background:var(--ink); }

/* ── interior page head ─────────────────────────────────── */
.phead{ padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(1.5rem,3vw,2.5rem); background:var(--paper); }
.crumb{ display:flex; align-items:center; gap:.6rem; font-size:.86rem; color:var(--ink-3); margin-bottom:1.4rem; }
.crumb a{ border-bottom:1px solid transparent; transition:border-color .25s, color .25s; }
.crumb a:hover{ color:var(--laterite); border-bottom-color:currentColor; }
.crumb__now{ color:var(--laterite); }
.phead__title{
  font-family:var(--f-display); font-weight:400;
  font-size:clamp(1.9rem,1.3rem + 2.6vw,3.3rem); line-height:1.24;
}
.phead__lede{ margin-top:1.1rem; max-width:60ch; color:var(--ink-2); font-size:1.03em; }

/* ── section tabs ───────────────────────────────────────── */
.tabs{
  position:sticky; top:var(--hdr-h,68px); z-index:90;
  background:rgba(250,247,241,.95);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-block:1px solid var(--line);
}
.tabs__in{ display:flex; gap:.3rem; overflow-x:auto; scrollbar-width:none; }
.tabs__in::-webkit-scrollbar{ display:none; }
.tabs a{
  position:relative; flex:0 0 auto; padding:1rem .95rem; font-size:.93rem;
  color:var(--ink-3); white-space:nowrap; transition:color .25s;
}
.tabs a::after{
  content:''; position:absolute; left:.95rem; right:.95rem; bottom:-1px;
  height:2px; background:var(--laterite); transform:scaleX(0); transform-origin:center;
  transition:transform .3s var(--ease);
}
.tabs a:hover{ color:var(--ink); }
.tabs a.is-active{ color:var(--laterite); }
.tabs a.is-active::after{ transform:scaleX(1); }

/* ── year wheel ─────────────────────────────────────────── */
.year{ margin-bottom:clamp(2.5rem,5vw,3.5rem); overflow-x:auto; scrollbar-width:none; }
.year::-webkit-scrollbar{ display:none; }
.year__months{
  display:grid; grid-template-columns:repeat(12,minmax(78px,1fr));
  border:1px solid var(--line-2); min-width:100%;
}
.year__m{
  position:relative; padding:1.5rem .4rem .9rem; text-align:center;
  border-right:1px solid var(--line-2); background:var(--paper);
}
.year__m:last-child{ border-right:0; }
.year__m b{ display:block; font-weight:400; font-size:.88rem; color:var(--ink-2); }
.year__m i{
  display:block; margin-top:.2rem; font-family:var(--f-latin); font-style:normal;
  font-size:.72rem; letter-spacing:.06em; color:var(--ink-3);
}
.year__m.is-event{ background:var(--paper-3); }
.year__m.is-event b{ color:var(--ink); font-weight:700; }
.year__m.is-event::before{
  content:''; position:absolute; top:.6rem; left:50%; translate:-50% 0;
  width:7px; height:7px; border-radius:50%; background:var(--laterite);
}
.year__m.is-span{ background:linear-gradient(90deg,var(--paper-3),var(--paper)); }

/* ── calendar list ──────────────────────────────────────── */
.cal{ display:grid; gap:1px; background:var(--line-2); border:1px solid var(--line-2); }
.cal__it{
  display:grid; grid-template-columns:minmax(150px,.28fr) 1fr; gap:clamp(1rem,3vw,2.5rem);
  padding:clamp(1.5rem,3vw,2.1rem); background:var(--paper);
  transition:background .3s var(--ease);
}
.cal__it:hover{ background:var(--paper-2); }
.cal__when{ display:flex; flex-direction:column; gap:.2rem; }
.cal__mo{ font-family:var(--f-display); font-size:1.18rem; color:var(--laterite); line-height:1.3; }
.cal__greg{ font-family:var(--f-latin); font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }
.cal__body h3{ margin-bottom:.3rem; }
.cal__star{
  font-size:.88rem; color:var(--gold); margin-bottom:.7rem;
  padding-bottom:.7rem; border-bottom:1px solid var(--line);
}
.cal__body > p:last-child{ color:var(--ink-2); font-size:.95rem; line-height:1.75; }

/* ── countdown ──────────────────────────────────────────── */
.countdown{ text-align:center; margin-bottom:clamp(2.5rem,5vw,3.5rem); }
.countdown__box{
  display:inline-flex; flex-direction:column; align-items:center; gap:.3rem;
  padding:1.5rem 2.6rem; border:1px solid var(--gold);
}
.countdown__n{
  font-family:var(--f-latin); font-size:clamp(2.4rem,1.8rem + 2.4vw,3.6rem);
  line-height:1; color:var(--gold-soft); font-variant-numeric:lining-nums;
}
.countdown__l{ font-size:.86rem; color:var(--on-dark-2); }
.countdown__note{ margin-top:1.1rem; font-size:.9rem; color:var(--on-dark-2); }

/* ── timeline ───────────────────────────────────────────── */
.tline{ display:grid; gap:0; border-top:1px solid var(--line-dark); }
.tline__it{
  display:grid; grid-template-columns:minmax(110px,.2fr) 1fr; gap:clamp(1.2rem,3vw,2.5rem);
  padding:clamp(1.6rem,3vw,2.2rem) 0; border-bottom:1px solid var(--line-dark);
  align-items:start;
}
.tline__date{ display:flex; flex-direction:column; line-height:1.2; }
.tline__d{
  font-family:var(--f-latin); font-size:clamp(2rem,1.6rem + 1.4vw,2.8rem);
  color:var(--gold-soft); font-variant-numeric:lining-nums;
}
.tline__m{ font-family:var(--f-latin); font-size:.86rem; letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark-2); margin-top:.2rem; }
.tline__w{ font-size:.84rem; color:var(--ink-3); margin-top:.15rem; }
.tline__body h3{ color:var(--on-dark); margin-bottom:.45rem; }
.tline__body p{ color:var(--on-dark-2); font-size:.95rem; line-height:1.75; }
.tline__hi{
  display:inline-block; margin-bottom:.6rem; padding:.4rem .95rem;
  border:1px solid var(--gold); color:var(--gold-soft)!important; font-size:.92rem!important;
}
.tline__it--key .tline__d{ color:var(--laterite); }
.tline__it--key{ background:linear-gradient(90deg,rgba(163,79,46,.14),transparent 62%); }

/* ── promo strip ────────────────────────────────────────── */
.promo{
  position:relative; overflow:hidden; color:#fff;
  padding-block:clamp(4.5rem,9vw,7.5rem); text-align:center;
}
.promo__media{ position:absolute; inset:0; }
.promo__media img{ width:100%; height:100%; object-fit:cover; object-position:center 62%; }
.promo__veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(20,17,13,.78),rgba(20,17,13,.62) 45%,rgba(20,17,13,.85));
}
.promo__in{ position:relative; max-width:720px; }
.promo__in .eyebrow{ justify-content:center; }
.promo__in .eyebrow::before{ content:''; width:38px; height:1px; background:rgba(201,178,133,.5); }
.promo h2{ color:#fff; }
.promo__txt{ color:rgba(255,255,255,.85); margin-bottom:.5rem; }
.promo__txt strong{ color:#fff; }
.promo .hero__acts{ justify-content:center; }

/* light variants of the dark-section blocks */
.give--light .bank,
.give--light .contacts,
.committee--light{ border-color:var(--line-2); }
.give--light .bank__label,
.committee--light .bank__label{ color:var(--gold); }
.give--light .bank__name{ color:var(--ink); border-bottom-color:var(--line); }
.give--light .bank__rows > div{ border-bottom-color:var(--line); }
.give--light .bank__rows dt{ color:var(--ink-3); }
.give--light .bank__rows dd{ color:var(--ink); }
.give--light .copy{ border-color:var(--line-2); color:var(--ink-3); }
.give--light .copy:hover{ border-color:var(--laterite); color:var(--laterite); }
.give--light .contacts__list li{ border-bottom-color:var(--line); }
.give--light .contacts__nm{ color:var(--ink); }
.give--light .contacts__ro{ color:var(--ink-3); }
.give--light .contacts__ph{ color:var(--laterite); }
.give--light .contacts__ph:hover{ border-bottom-color:var(--laterite); }
.committee--light b{ color:var(--ink); }
.committee--light .committee__list span{ color:var(--ink-3); }

.works--compact .work{ grid-template-columns:auto 1fr auto; align-items:center; }
.works--compact .work__body h3{ margin-bottom:0; }

/* ── hero ───────────────────────────────────────────────── */
.hero{
  position:relative; min-height:100svh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; color:#fff; overflow:hidden;
  padding:8rem var(--gutter) 6rem;
}
.hero__media{ position:absolute; inset:0; }
.hero__media img{
  width:100%; height:100%; object-fit:cover; object-position:center 58%;
  animation:heroZoom 22s var(--ease) forwards;
}
@keyframes heroZoom{ from{ transform:scale(1.09); } to{ transform:scale(1); } }
.hero__veil{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(20,17,13,.62) 0%, rgba(20,17,13,.34) 34%, rgba(20,17,13,.5) 68%, rgba(20,17,13,.82) 100%),
    radial-gradient(120% 85% at 50% 45%, transparent 30%, rgba(20,17,13,.5) 100%);
}
.hero__in{ position:relative; max-width:900px; }
.hero__in .eyebrow{ justify-content:center; }
.hero__in .eyebrow::before{ content:''; width:38px; height:1px; background:rgba(201,178,133,.5); }
.hero__title{
  font-size:clamp(2.15rem,1.3rem + 4.2vw,4.35rem);
  font-weight:400; line-height:1.24; letter-spacing:-.005em;
  text-shadow:0 2px 30px rgba(0,0,0,.35);
}
.hero__place{
  font-size:.92rem; color:rgba(255,255,255,.78); margin-top:1.5rem;
}
.hero__tag{
  font-family:var(--f-display); font-size:clamp(1.15rem,1rem + .8vw,1.7rem);
  color:var(--gold-soft); margin-top:2.2rem;
  padding-top:2rem; position:relative;
}
.hero__tag::before{
  content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:52px; height:1px; background:rgba(201,178,133,.55);
}
.hero__acts{ display:flex; flex-wrap:wrap; gap:.9rem; justify-content:center; margin-top:2.6rem; }

.hero__scroll{
  position:absolute; bottom:2.2rem; left:50%; transform:translateX(-50%);
  width:1px; height:52px; background:rgba(255,255,255,.28); overflow:hidden;
}
.hero__scroll span{
  position:absolute; inset:0; background:#fff;
  animation:scrollLine 2.4s var(--ease) infinite;
}
@keyframes scrollLine{
  0%{ transform:translateY(-100%); } 60%,100%{ transform:translateY(100%); }
}

/* ── sloka ──────────────────────────────────────────────── */
.sloka{ background:var(--paper); padding-block:clamp(3.5rem,7vw,6rem); text-align:center; }
.sloka__verse p{
  font-family:var(--f-display); font-size:clamp(1.02rem,.95rem + .5vw,1.32rem);
  line-height:2.05; color:var(--ink); margin-bottom:.15rem;
}
.sloka__meaning{
  margin-top:2rem; color:var(--ink-3); font-size:.95rem; line-height:1.95;
  max-width:64ch; margin-inline:auto;
}

/* ── split (about) ──────────────────────────────────────── */
.split{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(2.5rem,5vw,5rem); align-items:start; }
.split__media{ position:sticky; top:110px; }

.fig{ position:relative; }
/* the hairline sits on the image itself so it never boxes in the caption */
.fig img{
  width:100%; background:var(--paper-3);
  box-shadow:inset 0 0 0 1px rgba(29,26,22,.08);
  transition:filter .6s var(--ease);
}
.fig--tall img{ aspect-ratio:4/4.4; object-fit:cover; }
.fig figcaption{
  margin-top:.85rem; font-size:.85rem; color:var(--ink-3); letter-spacing:.01em;
}

/* ── facts ──────────────────────────────────────────────── */
.facts{ margin-top:2.6rem; border-top:1px solid var(--line); }
.facts__row{
  display:grid; grid-template-columns:minmax(120px,.4fr) 1fr; gap:1.2rem;
  padding:.95rem 0; border-bottom:1px solid var(--line);
}
.facts dt{ font-size:.86rem; letter-spacing:.05em; color:var(--gold); font-weight:700; padding-top:.15rem; }
.facts dd{ margin:0; color:var(--ink-2); font-size:.97rem; line-height:1.7; }

/* ── cards (festivals) ──────────────────────────────────── */
.cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1px; background:var(--line-2); border:1px solid var(--line-2); }
.card{ background:var(--paper-2); padding:2rem 1.8rem 2.1rem; transition:background .35s var(--ease); }
.card:hover{ background:var(--paper); }
.card__no{ display:block; font-size:.8rem; color:var(--gold); margin-bottom:1.1rem; }
.card h3{ margin-bottom:.4rem; }
.card__when{
  font-size:.85rem; color:var(--laterite); letter-spacing:.02em; margin-bottom:.85rem;
  padding-bottom:.85rem; border-bottom:1px solid var(--line);
}
.card p:last-child{ color:var(--ink-2); font-size:.94rem; line-height:1.75; }

.note{
  margin-top:2.5rem; padding:1.8rem 2rem; background:var(--paper);
  border-left:2px solid var(--laterite);
}
.note__label{ font-size:.85rem; font-weight:700; color:var(--gold); margin-bottom:.7rem; }
.note p:last-child{ color:var(--ink-2); font-size:.98rem; }
.note strong{ color:var(--ink); }

/* ── avathara ───────────────────────────────────────────── */
.avathara__grid{ display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); gap:clamp(2.5rem,5vw,4.5rem); align-items:start; }
.avathara__fig{ position:sticky; top:110px; }
.avathara__fig img{ aspect-ratio:4/4.8; object-fit:cover; object-position:center 22%; }

.collapse__body{
  overflow:hidden; max-height:0;
  transition:max-height .6s var(--ease), opacity .4s var(--ease);
  opacity:0;
}
.collapse.is-open .collapse__body{ opacity:1; }
.collapse__btn{
  margin-top:1.4rem; display:inline-flex; align-items:center; gap:.6rem;
  font-size:.92rem; letter-spacing:.04em; color:var(--laterite);
  border-bottom:1px solid currentColor; padding-bottom:.2rem;
  transition:color .25s;
}
.collapse__btn:hover{ color:var(--laterite-d); }
.collapse__btn::after{ content:'↓'; font-size:.9em; transition:transform .3s var(--ease); }
.collapse.is-open .collapse__btn::after{ transform:rotate(180deg); }
.collapse__less{ display:none; }
.collapse.is-open .collapse__more{ display:none; }
.collapse.is-open .collapse__less{ display:inline; }

/* ── prashnam ───────────────────────────────────────────── */
.pgrid{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(2rem,4vw,4rem); align-items:start; }

.panel{ border:1px solid var(--line-dark); padding:2rem 1.9rem; background:var(--dark-2); }
.panel__label{
  font-size:.92rem; color:var(--gold-soft); line-height:1.65;
  padding-bottom:1.2rem; margin-bottom:1.3rem; border-bottom:1px solid var(--line-dark);
}
.chips{ display:flex; flex-wrap:wrap; gap:.5rem; }
.chips li{
  font-size:.88rem; padding:.35rem .85rem;
  border:1px solid var(--line-dark); color:var(--on-dark-2);
  transition:border-color .3s, color .3s;
}
.chips li:hover{ border-color:var(--gold-soft); color:var(--on-dark); }
.panel__foot{ margin-top:1.4rem; font-size:.88rem; color:var(--on-dark-2); line-height:1.75; }

.verdict{
  margin-top:clamp(2.5rem,5vw,4rem); padding:clamp(2rem,4vw,3rem);
  border:1px solid var(--gold); position:relative;
}
.verdict__label{
  position:absolute; top:0; left:clamp(1.5rem,3vw,2.5rem); transform:translateY(-50%);
  background:var(--dark); padding-inline:1rem;
  font-size:.88rem; font-weight:700; color:var(--gold-soft);
}
.verdict__text{ color:var(--on-dark); font-size:clamp(1rem,.95rem + .3vw,1.12rem); line-height:1.95; }
.verdict__text strong{ color:var(--gold-soft); }

.steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:clamp(1.5rem,3vw,2.5rem); margin-top:clamp(2.5rem,5vw,4rem); }
.step{ padding-top:1.5rem; border-top:1px solid var(--line-dark); }
.step__n{
  font-family:var(--f-latin); font-size:2.1rem; font-weight:300; color:var(--gold);
  display:block; line-height:1; margin-bottom:.9rem;
}
.step h3{ color:var(--on-dark); margin-bottom:.5rem; }
.step p{ color:var(--on-dark-2); font-size:.93rem; line-height:1.75; }

/* ── before / after ─────────────────────────────────────── */
.ba-list{ display:grid; gap:clamp(3rem,6vw,5rem); }
.ba-item figcaption{ margin-top:1.1rem; color:var(--ink-3); font-size:.93rem; line-height:1.75; max-width:70ch; }
.ba-item figcaption strong{ display:block; color:var(--ink); font-family:var(--f-display); font-size:1.08rem; margin-bottom:.25rem; font-weight:400; }

.ba{
  position:relative; overflow:hidden; background:var(--paper-3);
  aspect-ratio:16/10; user-select:none; touch-action:pan-y;
  box-shadow:0 1px 0 rgba(29,26,22,.1);
}
.ba__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ba__clip{ position:absolute; inset:0; width:50%; overflow:hidden; will-change:width; }
.ba__clip .ba__img{ width:var(--ba-w,100%); max-width:none; }

.ba__tag{
  position:absolute; top:1rem; z-index:3;
  font-size:.8rem; padding:.4rem .9rem; background:rgba(20,17,13,.68); color:#fff;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  pointer-events:none; transition:opacity .3s;
}
.ba__tag--l{ left:1rem; }
.ba__tag--r{ right:1rem; }

.ba__handle{
  position:absolute; top:0; bottom:0; left:50%; z-index:4;
  width:2px; background:rgba(255,255,255,.9); transform:translateX(-1px);
  pointer-events:none; box-shadow:0 0 14px rgba(0,0,0,.35);
}
.ba__grip{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:46px; height:46px; border-radius:50%;
  background:rgba(255,255,255,.95); box-shadow:0 3px 16px rgba(0,0,0,.28);
  display:grid; place-items:center;
}
.ba__grip::before,.ba__grip::after{
  content:''; position:absolute; width:0; height:0;
  border-block:5px solid transparent;
}
.ba__grip::before{ left:12px; border-right:7px solid var(--ink-2); }
.ba__grip::after{ right:12px; border-left:7px solid var(--ink-2); }

.ba__range{
  position:absolute; inset:0; z-index:5; width:100%; height:100%;
  margin:0; opacity:0; cursor:ew-resize; appearance:none; background:transparent;
}
.ba__range::-webkit-slider-thumb{ appearance:none; width:52px; height:100%; cursor:ew-resize; }
.ba__range::-moz-range-thumb{ width:52px; height:100%; border:0; cursor:ew-resize; }
.ba__range:focus-visible + .ba__tag,
.ba:has(.ba__range:focus-visible){ outline:2px solid var(--laterite); outline-offset:3px; }

.renders{                          /* three renders → one clean row on desktop */
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));
  gap:clamp(1.5rem,3vw,2.2rem); margin-top:clamp(3rem,6vw,5rem);
}
.renders .fig img{ aspect-ratio:16/10; object-fit:cover; }
.renders .fig:hover img{ filter:brightness(1.04) saturate(1.05); }

/* ── works & cost ───────────────────────────────────────── */
.works{ border-top:1px solid var(--line-2); }
.work{
  display:grid; grid-template-columns:auto 1fr auto; gap:clamp(1.2rem,3vw,2.5rem);
  padding:clamp(1.8rem,3.5vw,2.6rem) 0; border-bottom:1px solid var(--line-2);
  align-items:start;
}
.work__no{
  font-family:var(--f-latin); font-size:1.5rem; font-weight:300; color:var(--gold);
  line-height:1.35; min-width:2.2rem;
}
.work__body h3{ margin-bottom:.7rem; }
.work__body p{ color:var(--ink-2); font-size:.96rem; line-height:1.8; max-width:62ch; }
.work__sub{ margin-top:1.1rem; display:grid; gap:.5rem; max-width:44rem; }
.work__sub li{
  display:flex; justify-content:space-between; align-items:baseline; gap:1.5rem;
  font-size:.9rem; color:var(--ink-3);
  padding:.45rem 0; border-bottom:1px dotted var(--line-2);
}
.work__sub b{ font-family:var(--f-latin); font-size:1.02rem; font-weight:500; color:var(--ink-2); white-space:nowrap; }
.work__cost{
  font-family:var(--f-latin); font-size:clamp(1.3rem,1.1rem + .8vw,1.75rem);
  font-weight:400; color:var(--ink); white-space:nowrap; letter-spacing:.01em;
  padding-top:.15rem;
}
.work__cur{ color:var(--laterite); margin-right:.12em; }

.totals{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:1px; background:var(--line-2); border:1px solid var(--line-2);
  margin-top:clamp(2.5rem,5vw,3.5rem);
}
.total{ background:var(--paper-2); padding:2rem 1.8rem; text-align:center; }
.total__label{ font-size:.88rem; color:var(--gold); margin-bottom:1rem; }
.total__val{
  font-family:var(--f-latin); font-size:clamp(1.7rem,1.3rem + 1.6vw,2.5rem);
  font-weight:400; line-height:1.15; color:var(--ink);
}
.total__val span:first-child{ color:var(--laterite); margin-right:.1em; }
.total__words{ margin-top:.7rem; font-size:.86rem; color:var(--ink-3); }
.total--grand{ background:var(--dark); }
.total--grand .total__label{ color:var(--gold-soft); }
.total--grand .total__val{ color:var(--on-dark); }
.total--grand .total__val span:first-child{ color:var(--gold-soft); }
.total--grand .total__words{ color:var(--on-dark-2); }

/* ── gallery ────────────────────────────────────────────── */
.gal{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:clamp(.8rem,1.6vw,1.3rem); }
.gal__it{
  position:relative; overflow:hidden; display:block; width:100%;
  background:var(--paper-3); aspect-ratio:4/3; padding:0; text-align:left;
}
.gal__it img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease), filter .5s; }
.gal__it span{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:2.4rem 1rem .9rem; font-size:.88rem; color:#fff;
  background:linear-gradient(transparent, rgba(20,17,13,.78));
  opacity:0; transform:translateY(8px);
  transition:opacity .35s var(--ease), transform .35s var(--ease);
}
.gal__it:hover img,.gal__it:focus-visible img{ transform:scale(1.06); }
.gal__it:hover span,.gal__it:focus-visible span{ opacity:1; transform:translateY(0); }
.gal__it::after{ content:''; position:absolute; inset:0; box-shadow:inset 0 0 0 1px rgba(29,26,22,.08); pointer-events:none; }

/* ── give / bank ────────────────────────────────────────── */
.give{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:clamp(1.5rem,3vw,2.5rem); }
.bank,.contacts,.committee{ border:1px solid var(--line-dark); padding:clamp(1.8rem,3vw,2.4rem); }
.bank__label{ font-size:.88rem; font-weight:700; color:var(--gold-soft); margin-bottom:1.3rem; }
.bank__name{
  font-family:var(--f-latin); font-size:1.2rem; letter-spacing:.06em; color:var(--on-dark);
  padding-bottom:1.2rem; margin-bottom:.4rem; border-bottom:1px solid var(--line-dark);
}
.bank__rows > div{
  display:grid; grid-template-columns:minmax(70px,.32fr) 1fr; gap:1rem; align-items:center;
  padding:.85rem 0; border-bottom:1px solid var(--line-dark);
}
.bank__rows > div:last-child{ border-bottom:0; }
.bank__rows dt{ font-size:.85rem; color:var(--on-dark-2); }
.bank__rows dd{ margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:.7rem; color:var(--on-dark); font-size:.96rem; }
.mono{ font-family:var(--f-latin); font-size:1.08rem; letter-spacing:.09em; }
.copy{
  font-size:.72rem; letter-spacing:.06em; padding:.22rem .6rem;
  border:1px solid var(--line-dark); color:var(--on-dark-2);
  transition:border-color .25s, color .25s;
}
.copy:hover{ border-color:var(--gold-soft); color:var(--gold-soft); }

.contacts__list li{
  display:grid; gap:.15rem; padding:1rem 0; border-bottom:1px solid var(--line-dark);
}
.contacts__list li:last-child{ border-bottom:0; }
.contacts__nm{ color:var(--on-dark); font-size:1rem; }
.contacts__ro{ font-size:.82rem; color:var(--on-dark-2); letter-spacing:.03em; }
.contacts__ph{
  font-family:var(--f-latin); font-size:1.1rem; letter-spacing:.08em;
  color:var(--gold-soft); margin-top:.25rem; width:max-content;
  border-bottom:1px solid transparent; transition:border-color .25s;
}
.contacts__ph:hover{ border-bottom-color:var(--gold-soft); }

.committee{ margin-top:clamp(1.5rem,3vw,2.5rem); }
.committee__list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1.3rem 2rem; }
.committee__list li{ display:grid; gap:.1rem; }
.committee__list b{ font-weight:400; color:var(--on-dark); font-size:.99rem; }
.committee__list span{ font-size:.82rem; color:var(--on-dark-2); letter-spacing:.03em; }

/* ── closing ────────────────────────────────────────────── */
.closing{ background:var(--paper-2); padding-block:clamp(4rem,8vw,7rem); text-align:center; }
.closing__verse p{
  font-family:var(--f-display); font-size:clamp(1.02rem,.95rem + .5vw,1.28rem);
  line-height:2; color:var(--ink);
}
.closing__text{ margin-top:2.2rem; text-align:left; }
.closing__sign{
  margin-top:2rem; font-family:var(--f-display); font-size:1.05rem; color:var(--laterite);
}

/* ── footer ─────────────────────────────────────────────── */
.ftr{ background:var(--dark); color:var(--on-dark-2); padding-block:clamp(3rem,6vw,4.5rem) 0; font-size:.93rem; }
.ftr__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:clamp(2rem,4vw,3.5rem); padding-bottom:3rem; }
.ftr__om{ font-family:var(--f-display); color:var(--gold-soft); font-size:.95rem; margin-bottom:.9rem; }
.ftr__name{ font-family:var(--f-display); font-size:1.25rem; color:var(--on-dark); line-height:1.45; }
.ftr__addr{ margin-top:.5rem; }
.ftr__h{ font-size:.86rem; font-weight:700; color:var(--gold); margin-bottom:1.1rem; }
.ftr__nav li,.ftr__c li{ margin-bottom:.6rem; }
.ftr a{ transition:color .25s; }
.ftr a:hover{ color:var(--on-dark); }
.ftr__bar{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:.7rem;
  padding-block:1.6rem; border-top:1px solid var(--line-dark); font-size:.84rem;
}

/* ── lightbox ───────────────────────────────────────────── */
.lb{
  position:fixed; inset:0; z-index:300; display:grid; place-items:center;
  background:rgba(15,13,10,.94); padding:clamp(2.5rem,6vw,4rem);
  opacity:0; transition:opacity .3s var(--ease);
}
.lb[hidden]{ display:none; }   /* `hidden` must beat `display:grid` above */
.lb.is-on{ opacity:1; }
.lb__fig{ max-width:1200px; width:100%; text-align:center; }
.lb__fig img{
  max-width:100%; max-height:78svh; width:auto; margin-inline:auto; object-fit:contain;
  transform:scale(.97); transition:transform .35s var(--ease);
}
.lb.is-on .lb__fig img{ transform:scale(1); }
.lb__fig figcaption{ margin-top:1.2rem; color:var(--on-dark-2); font-size:.93rem; }
.lb__x{
  position:absolute; top:1.2rem; right:1.5rem; width:46px; height:46px;
  font-size:2rem; line-height:1; color:rgba(255,255,255,.8);
  display:grid; place-items:center; transition:color .25s;
}
.lb__x:hover{ color:#fff; }
.lb__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:52px; height:52px; font-size:2.4rem; line-height:1;
  color:rgba(255,255,255,.6); display:grid; place-items:center;
  transition:color .25s, background .25s; border-radius:50%;
}
.lb__nav:hover{ color:#fff; background:rgba(255,255,255,.08); }
.lb__nav--prev{ left:.7rem; }
.lb__nav--next{ right:.7rem; }

/* ── toast ──────────────────────────────────────────────── */
.toast{
  position:fixed; left:50%; bottom:2rem;
  z-index:400; background:var(--ink); color:var(--paper);
  padding:.75rem 1.5rem; font-size:.9rem; letter-spacing:.02em;
  pointer-events:none;
  /* Hidden by opacity/visibility, not by shifting it off-screen: while
     empty the box is only its padding tall, so a percentage translate
     is too small to clear `bottom` and leaves it peeking. */
  opacity:0; visibility:hidden; transform:translate(-50%,.75rem);
  transition:opacity .3s var(--ease), transform .4s var(--ease), visibility .4s;
}
.toast.is-on{ opacity:1; visibility:visible; transform:translate(-50%,0); }

/* ── reveal ─────────────────────────────────────────────── */
.reveal{
  opacity:0; transform:translateY(22px);
  transition:opacity .85s var(--ease), transform .85s var(--ease);
  transition-delay:calc(var(--d,0) * 110ms);
}
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; }
  .hero__media img{ animation:none; }
}

/* ═══════════ responsive ═══════════════════════════════════ */
@media (max-width:1000px){
  .split,.avathara__grid,.pgrid{ grid-template-columns:1fr; }
  .split__media,.avathara__fig{ position:static; max-width:420px; }
  .avathara__fig img,.fig--tall img{ aspect-ratio:4/3.4; }
  .ftr__grid{ grid-template-columns:1fr 1fr; }
  .ftr__brand{ grid-column:1 / -1; }
}

@media (max-width:860px){
  html{ scroll-padding-top:70px; }
  .burger{ display:block; }

  /* No backdrop-filter below the drawer breakpoint. A filtered ancestor
     becomes the containing block for its position:fixed drawer, which then
     stops being viewport-fixed: parked off-screen it widens the document,
     and opened it collapses to the header's box. Solid backgrounds instead. */
  .hdr.is-stuck,
  .hdr--solid,
  .tabs{
    backdrop-filter:none; -webkit-backdrop-filter:none;
    background:var(--paper);
  }
  .nav{
    position:fixed; inset:0 0 0 auto; width:min(84vw,340px);
    background:var(--paper); flex-direction:column; align-items:stretch;
    justify-content:flex-start; gap:0; padding:5.5rem 2rem 2rem;
    transform:translateX(102%); transition:transform .42s var(--ease);
    box-shadow:-20px 0 60px rgba(29,26,22,.16); overflow-y:auto;
  }
  .nav.is-open{ transform:none; }
  .nav__list{ flex-direction:column; align-items:stretch; gap:0; }
  .nav__list a,
  .hdr.is-stuck .nav__list a{
    display:block; color:var(--ink); font-size:1.06rem;
    padding:1rem 0; border-bottom:1px solid var(--line);
  }
  /* the desktop hover paints links white — inside the light drawer
     that would be white-on-white, so restate it here */
  .nav__list a:hover,
  .nav__list a.is-active,
  .hdr.is-stuck .nav__list a:hover,
  .hdr.is-stuck .nav__list a.is-active{ color:var(--laterite); }
  .nav__list a::after{ display:none; }
  .nav__cta{ margin-top:1.6rem; justify-content:center; }

  /* submenu becomes a plain nested list inside the drawer */
  .nav__sub{
    position:static; translate:none; transform:none; min-width:0;
    opacity:1; visibility:visible; border:0; box-shadow:none;
    background:transparent; padding:0; overflow:hidden;
    max-height:0; transition:max-height .38s var(--ease);
  }
  .nav__has-sub.is-open > .nav__sub{ max-height:340px; }
  .nav__sub::before{ display:none; }
  .nav__sub a,
  .hdr.is-stuck .nav__sub a{
    padding:.85rem 0 .85rem 1.1rem; font-size:.97rem;
    border-bottom:1px solid var(--line); color:var(--ink-3);
  }
  .nav__sub li:last-child a{ border-bottom:1px solid var(--line); }
  .nav__list a.nav__subtoggle{ display:flex; justify-content:space-between; }
  /* scoped to the drawer copy: .langsw--bar must keep its place in the header row */
  .nav .langsw{ order:-1; align-self:flex-start; margin-bottom:1.4rem; }
  .hero{ min-height:92svh; padding-top:7rem; }
  .work,
  .works--compact .work{ grid-template-columns:auto 1fr; }
  .work__cost{ grid-column:2; font-size:1.35rem; }
  .works--compact .work__cost{ padding-top:.35rem; }
  .work__no{ font-size:1.2rem; }
  .ba{ aspect-ratio:4/3; }
  .cal__it,.tline__it{ grid-template-columns:1fr; gap:.9rem; }
  .cal__when{ flex-direction:row; align-items:baseline; gap:.7rem; }
  .tline__date{ flex-direction:row; align-items:baseline; gap:.6rem; }
  .tline__d{ font-size:2rem; }
  .year__months{ grid-template-columns:repeat(12,88px); }
  .tabs{ top:0; }
}

@media (max-width:560px){
  .brand__name{ font-size:.92rem; max-width:52vw; }
  .hero__acts .btn{ width:100%; }
  .facts__row{ grid-template-columns:1fr; gap:.2rem; }
  .gal{ grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
  .ba__tag{ font-size:.72rem; padding:.3rem .6rem; top:.6rem; }
  .ba__tag--l{ left:.6rem; } .ba__tag--r{ right:.6rem; }
  .ba__grip{ width:38px; height:38px; }
  .lb__nav{ width:42px; height:42px; font-size:2rem; }
  .ftr__grid{ grid-template-columns:1fr; }
  .ftr__bar{ flex-direction:column; }
}

/* ── print ──────────────────────────────────────────────── */
@media print{
  .hdr,.hero__scroll,.progress,.lb,.toast,.burger,.collapse__btn{ display:none!important; }
  body{ background:#fff; }
  .reveal{ opacity:1; transform:none; }
  .collapse__body{ max-height:none!important; opacity:1!important; }
  .sec--dark,.ftr,.total--grand{ background:#fff!important; color:#000!important; }
  .sec--dark h2,.prose--light p,.verdict__text{ color:#000!important; }
}

/* ═══════════════════════════════════════════════════════════
   Additions — Aug 2026 content update
   ═══════════════════════════════════════════════════════════ */

/* ── larger Kalasham heading (restrained bump) ──────────────── */
.h2--lg{ font-size:clamp(2.1rem,1.5rem + 2.7vw,3.5rem); line-height:1.22; }

/* ── works list: explanation + amount in words ─────────────── */
.works .work__body p{
  margin-top:.55rem; color:var(--ink-2); font-size:.94rem; line-height:1.75; max-width:60ch;
}
.work__cost{ display:flex; flex-direction:column; align-items:flex-end; gap:.2rem; text-align:right; }
.work__amt{ white-space:nowrap; }
.work__words{
  font-family:var(--f-body); font-size:.78rem; line-height:1.5;
  color:var(--ink-3); max-width:15rem; white-space:normal;
}
.total__words{ font-size:.84rem; }
.lede--sm{ font-size:.92rem; color:var(--ink-3); margin-top:.9rem; }

/* ── Kalasham order of rites ────────────────────────────────── */
.kramam{ margin-top:clamp(2.2rem,4vw,3rem); }
.kramam__h{
  font-family:var(--f-display); font-size:1.25rem; color:var(--on-dark); margin-bottom:.5rem;
}
.kramam__note{ font-size:.9rem; color:var(--on-dark-2); margin-bottom:1.6rem; }
.kramam__note b{ color:var(--gold-soft); font-weight:400; }
.kramam__list{ display:grid; gap:0; border-top:1px solid var(--line-dark); }
.kramam__list li{
  display:grid; grid-template-columns:auto 1fr; gap:1rem 1.2rem; align-items:start;
  padding:.95rem 0; border-bottom:1px solid var(--line-dark);
}
.kramam__d{
  font-family:var(--f-latin); font-size:1.15rem; line-height:1.4; color:var(--gold);
  font-variant-numeric:lining-nums; min-width:1.8rem; text-align:right;
}
.kramam__t{ font-size:.93rem; line-height:1.7; color:var(--on-dark-2); }
.kramam__t b{
  display:inline-block; font-family:var(--f-latin); font-weight:500; font-size:.95rem;
  letter-spacing:.06em; color:var(--on-dark); margin-right:.55rem;
  font-variant-numeric:lining-nums;
}
.kramam__t em{
  display:inline-block; margin-left:.5rem; padding:.1rem .55rem; font-style:normal;
  font-size:.76rem; border:1px solid var(--gold); color:var(--gold-soft); white-space:nowrap;
}
.kramam__list li.is-key{ background:linear-gradient(90deg,rgba(163,79,46,.16),transparent 70%); }
.kramam__list li.is-key .kramam__d{ color:var(--laterite); }

/* ── UPI QR ─────────────────────────────────────────────────── */
.qr{ border:1px solid var(--line-2); padding:clamp(1.8rem,3vw,2.4rem); }
.qr__fig{ text-align:center; }
.qr__fig img{
  width:min(100%,260px); height:auto; margin-inline:auto;
  background:#fff; padding:10px; border:1px solid var(--line);
}
.qr__fig figcaption{
  margin-top:1rem; display:flex; flex-wrap:wrap; gap:.6rem;
  align-items:center; justify-content:center;
}
.qr__vpa{
  font-family:var(--f-latin); font-size:.9rem; letter-spacing:.03em; color:var(--ink-2);
  word-break:break-all; font-variant-numeric:lining-nums;
}
.qr__note{ margin-top:.9rem; text-align:center; font-size:.86rem; color:var(--ink-3); }
.bank__reg{
  margin-top:1.2rem; padding-top:1.1rem; border-top:1px solid var(--line);
  font-size:.82rem; line-height:1.7; color:var(--ink-3);
}
.bank__reg b{ color:var(--ink-2); font-weight:700; }

/* ── footer: socials + registration ─────────────────────────── */
.ftr__social{
  display:flex; flex-wrap:wrap; gap:1.1rem 2rem;
  padding-block:1.5rem; border-top:1px solid var(--line-dark);
}
.ftr__social a{
  display:inline-flex; align-items:center; gap:.55rem;
  font-size:.86rem; letter-spacing:.02em; color:var(--on-dark-2);
  transition:color .25s;
}
.ftr__social a:hover{ color:var(--gold-soft); }
.ftr__social svg{ flex:0 0 auto; }
.ftr__social span{ word-break:break-all; }
.ftr__reg{ font-variant-numeric:lining-nums; }

@media (max-width:860px){
  .work__cost{ align-items:flex-start; text-align:left; }
  .work__words{ max-width:none; }
  .kramam__list li{ grid-template-columns:auto 1fr; gap:.6rem .9rem; }
  .qr__fig img{ width:min(100%,230px); }
}

/* ── mobile language toggle in the header bar ───────────────
   Two switchers exist: the one inside .nav for desktop, and this
   one in the header bar for mobile, so the language can be changed
   without opening the drawer. Only ever one is displayed, and
   applyLang() drives both. On mobile only the INACTIVE language
   shows, making it a compact one-tap switch. */
.langsw--bar{ display:none; }
.langsw--bar button{ display:inline-flex; align-items:center; gap:.4rem; }
.langsw--bar svg{ flex:0 0 auto; opacity:.85; }

@media (max-width:860px){
  .nav .langsw{ display:none; }
  .langsw--bar{ display:flex; order:0; flex:0 0 auto; margin-left:auto; }
  /* show only the language you are NOT in — one tap swaps */
  .langsw--bar button.is-on{ display:none; }
  .langsw--bar button{ padding:.46rem .85rem; font-size:.84rem; }
  /* it sits above the open drawer, in the drawer's empty top padding,
     so the language stays changeable while the menu is open */
  .hdr.is-navopen .langsw--bar{ position:relative; z-index:2; }
  .burger{ margin-left:.35rem; }
}
@media (max-width:400px){
  /* no hard cap on the brand: .brand has min-width:0 and the name
     ellipsises, so flex gives it whatever the toggle and burger leave */
  .langsw--bar button{ padding:.42rem .7rem; font-size:.8rem; }
  .langsw--bar svg{ width:13px; height:13px; }
}
/* the bar toggle is a primary control on mobile — give it more contrast
   than the desktop switcher's muted grey (#7a7167 was ~4.3:1 on cream) */
.hdr.is-stuck .langsw--bar button,
.hdr--solid .langsw--bar button,
.hdr.is-navopen .langsw--bar button{ color:var(--ink-2); }

/* ── footer: directions link ────────────────────────────────── */
.ftr__dir{ margin-top:1.1rem; }
.ftr__dir a{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.9rem; color:var(--gold-soft);
  border-bottom:1px solid transparent; transition:border-color .25s, color .25s;
}
.ftr__dir a:hover{ color:var(--on-dark); border-bottom-color:currentColor; }
.ftr__dir svg{ flex:0 0 auto; }

/* ── two codes in one card ──────────────────────────────────── */
.qr__cap{
  font-size:.88rem; color:var(--ink-2); text-align:center; margin-bottom:.9rem;
}
.qr__fig + .qr__fig{
  margin-top:1.8rem; padding-top:1.6rem; border-top:1px solid var(--line);
}
.qr__fig--map img{ width:min(100%,170px); }
.qr__fig--map a{ display:block; line-height:0; }
.qr__link{
  font-size:.88rem; color:var(--laterite);
  border-bottom:1px solid transparent; transition:border-color .25s;
}
.qr__link:hover{ border-bottom-color:currentColor; }
.qr__fig .qr__note{ margin-top:.75rem; }

/* ── footer contacts: name over designation ─────────────────── */
.ftr__c li{ margin-bottom:.85rem; }
.ftr__c li a{ display:block; }
.ftr__c__nm{ display:block; }
.ftr__c__ro{
  /* --ink-3 is a light-background token; on the dark footer it lands at
     3.5:1, under AA for text this size. Dim the on-dark token instead. */
  display:block; margin-top:.1rem; font-size:.8rem;
  color:var(--on-dark-2); opacity:.78;
  transition:opacity .25s;
}
.ftr a:hover .ftr__c__ro{ opacity:1; }
