/* ==========================================================================
   Surat Na Vighneshwar — "Night Mandap"
   The pandal after dark: a lamp at the centre, brass edges, everything else
   held back so the light and the photographs carry the page.
   ========================================================================== */

:root{
  --night:#140A0F;
  --night-2:#190C12;
  --ember:#241318;
  --ember-2:#2E1A1E;
  --line:rgba(192,138,62,.24);
  --line-soft:rgba(192,138,62,.13);

  --sindoor:#D8402B;
  --sindoor-lit:#EE5A3F;
  --marigold:#F2A413;
  --brass:#C08A3E;
  --chandan:#F3E6D6;
  --muted:#AC948C;
  --muted-2:#87706A;

  --display:"Tiro Devanagari Hindi",Georgia,serif;
  --gujarati:"Tiro Gujarati","Tiro Devanagari Hindi",serif;
  --body:"Mukta Vaani","Segoe UI",system-ui,sans-serif;

  --pad:clamp(20px,6vw,88px);
  --arch:clamp(80px,14vw,190px);
  --shadow:0 30px 70px -30px rgba(0,0,0,.85);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--body);
  font-weight:300;
  font-size:clamp(1rem,.97rem + .18vw,1.08rem);
  line-height:1.72;
  color:var(--muted);
  background:var(--night);
  overflow-x:hidden;
}
img,video{max-width:100%;display:block}
a{color:var(--chandan);text-underline-offset:3px}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;color:var(--chandan);line-height:1.12;margin:0}
p{margin:0 0 1em}
:focus-visible{outline:2px solid var(--marigold);outline-offset:3px;border-radius:4px}
::selection{background:var(--sindoor);color:#fff}

.wrap{max-width:1240px;margin-inline:auto;padding-inline:var(--pad)}
.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}

/* --- shared marks ------------------------------------------------------- */
.eyebrow{
  font-family:var(--body);font-size:.7rem;font-weight:600;
  letter-spacing:.3em;text-transform:uppercase;color:var(--brass);
  display:block;margin-bottom:14px;
}
.gujarati{font-family:var(--gujarati);font-weight:400}
.ornament{display:flex;justify-content:center;margin:24px 0 0;color:var(--brass);opacity:.85}
.ornament svg{width:104px;height:auto}
.rule{height:1px;border:0;background:linear-gradient(90deg,transparent,var(--line),transparent);margin:0}

/* --- buttons ------------------------------------------------------------ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--body);font-size:.9rem;font-weight:600;letter-spacing:.06em;
  padding:14px 30px;border-radius:999px;border:1px solid transparent;
  text-decoration:none;cursor:pointer;white-space:nowrap;transition:transform .25s,background .25s,border-color .25s,color .25s;
  background:none;color:var(--chandan);
}
.btn:hover{transform:translateY(-2px)}
.btn.primary{background:var(--sindoor);color:#fff;box-shadow:0 14px 34px -14px rgba(216,64,43,.9)}
.btn.primary:hover{background:var(--sindoor-lit)}
.btn.ghost{border-color:var(--line);color:var(--chandan)}
.btn.ghost:hover{border-color:var(--brass);background:rgba(192,138,62,.09)}
.btn.brass{background:linear-gradient(180deg,#D8A052,#A97327);color:#20120A;font-weight:700}
.btn:disabled,.btn[disabled]{opacity:.4;cursor:not-allowed;transform:none}
.btn.small{padding:9px 18px;font-size:.8rem}

/* --- navigation --------------------------------------------------------- */
.site-nav{
  position:sticky;top:0;z-index:60;
  background:rgba(20,10,15,.82);backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--line-soft);
}
.nav-inner{display:flex;align-items:center;gap:20px;min-height:74px;max-width:1240px;margin-inline:auto;padding-inline:var(--pad)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.brand .mark{width:38px;height:38px;flex:none}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-text b{font-family:var(--display);font-weight:400;font-size:1.06rem;color:var(--chandan);letter-spacing:.01em;white-space:nowrap}
.brand-text span{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--brass)}
.nav-links{display:flex;align-items:center;gap:clamp(14px,1.8vw,26px)}
.nav-links a{
  font-size:.82rem;font-weight:500;letter-spacing:.04em;color:var(--muted);
  text-decoration:none;padding:6px 0;position:relative;transition:color .2s;
}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--brass);transition:right .28s}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--chandan)}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{right:0}
.nav-cta{display:flex;align-items:center;gap:10px}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:10px;padding:9px 11px;cursor:pointer}
.nav-toggle span{display:block;width:18px;height:1.5px;background:var(--chandan);margin:4px 0;transition:.25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

@media(max-width:1080px){
  .nav-toggle{display:block;order:3}
  .nav-links,.nav-cta{
    display:none;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--night-2);border-bottom:1px solid var(--line-soft);padding:8px var(--pad) 18px;
  }
  .nav-links.open,.nav-cta.open{display:flex}
  .nav-cta.open{top:calc(100% + 1px);padding-top:16px;border-top:1px solid var(--line-soft);gap:10px;flex-direction:row}
  .nav-links a{padding:13px 0;border-bottom:1px solid var(--line-soft);font-size:.95rem}
  .nav-links a::after{display:none}
}

/* --- hero: the lamp ----------------------------------------------------- */
.hero{
  position:relative;min-height:min(94vh,880px);
  display:grid;place-items:center;text-align:center;
  padding:70px var(--pad) 90px;overflow:hidden;
  background:
    radial-gradient(120% 80% at 50% 8%,rgba(242,164,19,.16),transparent 58%),
    radial-gradient(90% 60% at 50% 0%,rgba(216,64,43,.14),transparent 62%),
    var(--night);
}
.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.34}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(75% 60% at 50% 40%,transparent,rgba(20,10,15,.7) 78%,var(--night));
}
/* width:100% matters — as a centred grid item this would otherwise size to
   max-content and push the page wider than the viewport on small screens. */
.hero-inner{position:relative;z-index:2;width:100%;max-width:860px}

.thali{width:clamp(96px,15vw,148px);margin:0 auto 26px;display:block}
.thali .ring{transform-origin:50% 50%;animation:thali-turn 90s linear infinite}
.thali .flame{transform-origin:50% 78%;animation:flame 3.1s ease-in-out infinite}
.thali .halo{animation:halo 3.1s ease-in-out infinite}
@keyframes thali-turn{to{transform:rotate(360deg)}}
@keyframes flame{0%,100%{transform:scaleY(1) scaleX(1) translateY(0)}28%{transform:scaleY(1.1) scaleX(.94) translateY(-1px)}55%{transform:scaleY(.95) scaleX(1.04) translateY(.5px)}78%{transform:scaleY(1.06) scaleX(.97) translateY(-.6px)}}
@keyframes halo{0%,100%{opacity:.5}45%{opacity:.85}}

.hero-kicker{font-family:var(--gujarati);font-size:clamp(1rem,2.4vw,1.35rem);color:var(--marigold);margin-bottom:20px;letter-spacing:.02em}
.hero h1{
  font-size:clamp(2.9rem,8.2vw,6.4rem);
  letter-spacing:-.015em;color:var(--chandan);
  text-shadow:0 0 70px rgba(242,164,19,.22);
}
.hero h1 em{display:block;font-style:italic;color:var(--marigold)}
.hero-tagline{max-width:33ch;margin:22px auto 0;color:var(--muted);font-size:clamp(1rem,1.6vw,1.16rem)}
.hero-meta{
  display:flex;justify-content:center;flex-wrap:wrap;gap:8px 26px;margin:30px 0 0;
  font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--brass);
}
@media(max-width:560px){.hero-meta{letter-spacing:.16em;font-size:.68rem;gap:6px 16px}}
.hero-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:36px}
.scroll-hint{
  position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:2;
  font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted-2);
  display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;
}
@media(max-height:820px),(max-width:700px){.scroll-hint{display:none}}
.scroll-hint::after{content:"";width:1px;height:34px;background:linear-gradient(180deg,var(--brass),transparent);animation:drop 2.4s ease-in-out infinite}
@keyframes drop{0%,100%{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}

/* --- the rite sequence -------------------------------------------------- */
.rites{border-block:1px solid var(--line-soft);background:var(--night-2)}
.rites-inner{display:grid;grid-template-columns:repeat(6,1fr)}
.rite{
  padding:26px 14px;text-decoration:none;text-align:center;
  border-right:1px solid var(--line-soft);transition:background .3s;
}
.rite:last-child{border-right:0}
.rite:hover{background:rgba(192,138,62,.07)}
.rite b{display:block;font-family:var(--gujarati);font-weight:400;font-size:1.15rem;color:var(--marigold);margin-bottom:7px}
.rite span{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.rite:hover span{color:var(--chandan)}
@media(max-width:860px){.rites-inner{grid-template-columns:repeat(3,1fr)}.rite{border:1px solid var(--line-soft);margin:-.5px;padding:20px 10px}}
@media(max-width:460px){.rites-inner{grid-template-columns:repeat(2,1fr)}}

/* --- story sections ----------------------------------------------------- */
.story{padding:clamp(72px,10vw,128px) 0;position:relative}
.story.tinted{background:var(--night-2)}
.story-head{max-width:640px;margin:0 auto clamp(44px,6vw,72px);text-align:center}
.story-head h2{font-size:clamp(1.9rem,4.4vw,3.2rem);margin-bottom:16px}
.story-head p{color:var(--muted);margin:0}

/* Rail: a horizontal procession of arched frames. */
.rail{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,272px);
  gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:6px var(--pad) 26px;margin-inline:calc(var(--pad) * -1);
  scrollbar-width:thin;scrollbar-color:var(--line) transparent;
}
.rail::-webkit-scrollbar{height:5px}
.rail::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.rail>*{scroll-snap-align:center}

/* Mosaic: an uneven wall, the way a pandal's photo boards are hung. */
.mosaic{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.mosaic .tile:nth-child(6n+1){grid-column:span 3;aspect-ratio:4/3}
.mosaic .tile:nth-child(6n+2){grid-column:span 3;aspect-ratio:4/3}
.mosaic .tile:nth-child(6n+3){grid-column:span 2;aspect-ratio:3/4}
.mosaic .tile:nth-child(6n+4){grid-column:span 2;aspect-ratio:3/4}
.mosaic .tile:nth-child(6n+5){grid-column:span 2;aspect-ratio:3/4}
.mosaic .tile:nth-child(6n+6){grid-column:span 6;aspect-ratio:21/9}
@media(max-width:900px){
  .mosaic{grid-template-columns:repeat(4,1fr);gap:12px}
  .mosaic .tile:nth-child(6n+1),.mosaic .tile:nth-child(6n+2){grid-column:span 4}
  .mosaic .tile:nth-child(6n+3),.mosaic .tile:nth-child(6n+4){grid-column:span 2}
  .mosaic .tile:nth-child(6n+5){grid-column:span 4;aspect-ratio:4/3}
  .mosaic .tile:nth-child(6n+6){grid-column:span 4}
}

/* The torana arch — the shape of the pandal doorway, used for every frame. */
.tile{
  position:relative;margin:0;overflow:hidden;
  border-radius:var(--arch) var(--arch) 12px 12px;
  border:1px solid var(--line-soft);background:var(--ember);
  aspect-ratio:3/4;
}
.rail .tile{aspect-ratio:3/4}
.tile img,.tile video{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.3,1);}
.tile:hover img,.tile:hover video{transform:scale(1.05)}
.tile figcaption{
  position:absolute;inset:auto 0 0;padding:44px 18px 16px;
  background:linear-gradient(180deg,transparent,rgba(20,10,15,.92));
  display:flex;justify-content:space-between;align-items:flex-end;gap:10px;
  font-size:.82rem;color:var(--chandan);
}
.tile figcaption b{font-weight:500;font-size:.68rem;letter-spacing:.16em;color:var(--brass)}

/* Chapters still without photographs: an arched niche each, read as a
   contents page for the festival rather than eight empty picture frames. */
.chapters{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:18px}
.chapter{
  border:1px solid var(--line-soft);
  border-radius:clamp(70px,11vw,120px) clamp(70px,11vw,120px) 14px 14px;
  padding:clamp(38px,5vw,52px) 24px 30px;text-align:center;
  background:radial-gradient(72% 50% at 50% 0%,rgba(242,164,19,.09),transparent 72%),var(--ember);
  transition:border-color .3s,transform .3s;
}
.chapter:hover{border-color:var(--brass);transform:translateY(-3px)}
.chapter .glyph{display:block;font-family:var(--gujarati);font-size:1.6rem;color:var(--marigold);margin-bottom:16px;line-height:1}
.chapter h3{font-size:1.16rem;margin-bottom:9px}
.chapter p{font-size:.85rem;color:var(--muted-2);margin:0;line-height:1.62}

/* Empty state: a lit alcove, not an error message. */
.alcove{
  border:1px solid var(--line-soft);
  border-radius:var(--arch) var(--arch) 14px 14px;
  padding:clamp(48px,9vw,88px) 28px;text-align:center;
  background:
    radial-gradient(70% 55% at 50% 12%,rgba(242,164,19,.09),transparent 70%),
    var(--ember);
}
.alcove .glyph{font-family:var(--gujarati);font-size:clamp(2.4rem,6vw,3.6rem);color:var(--brass);opacity:.55;line-height:1}
.alcove p{margin:18px auto 0;max-width:38ch;color:var(--muted-2);font-size:.94rem}
.alcove a{color:var(--brass)}

/* --- booking band ------------------------------------------------------- */
.band{
  padding:clamp(72px,10vw,120px) 0;
  background:
    radial-gradient(80% 100% at 50% 0%,rgba(216,64,43,.15),transparent 70%),
    var(--night);
  border-block:1px solid var(--line-soft);
}
.band-head{text-align:center;max-width:600px;margin:0 auto 52px}
.band-head h2{font-size:clamp(1.9rem,4.4vw,3rem);margin-bottom:14px}
.rites-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.ritual-card{
  display:block;text-decoration:none;padding:34px 28px 30px;
  border:1px solid var(--line-soft);border-radius:20px;background:var(--ember);
  transition:border-color .3s,transform .3s,background .3s;
}
.ritual-card:hover{border-color:var(--brass);transform:translateY(-4px);background:var(--ember-2)}
.ritual-card b{display:block;font-family:var(--gujarati);font-weight:400;font-size:1.9rem;color:var(--marigold);margin-bottom:16px}
.ritual-card strong{display:block;font-family:var(--display);font-weight:400;font-size:1.3rem;color:var(--chandan);margin-bottom:8px}
.ritual-card small{display:block;color:var(--muted-2);font-size:.87rem;line-height:1.6}
.ritual-card .go{display:inline-block;margin-top:18px;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}

/* --- reels -------------------------------------------------------------- */
.reel-card{
  border:1px solid var(--line-soft);border-radius:18px;overflow:hidden;background:var(--ember);
  display:flex;flex-direction:column;
}
.reel-card video{width:100%;aspect-ratio:9/16;object-fit:cover;background:#000}
.reel-card .instagram-media{margin:0!important;min-width:0!important;border-radius:0!important;border:0!important;box-shadow:none!important}
.reel-card .caption{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.86rem;color:var(--chandan)}
.pip-btn{
  background:none;border:1px solid var(--line);color:var(--brass);
  border-radius:999px;padding:6px 14px;font-family:var(--body);font-size:.72rem;
  letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:.25s;
}
.pip-btn:hover{border-color:var(--brass);background:rgba(192,138,62,.1)}
.reels-rail{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(258px,300px);gap:20px;
  overflow-x:auto;padding:6px var(--pad) 26px;margin-inline:calc(var(--pad) * -1);
  scroll-snap-type:x mandatory;
}
.reels-rail>*{scroll-snap-align:center}

/* --- archive callout ---------------------------------------------------- */
.callout{
  padding:clamp(72px,10vw,120px) 0;text-align:center;
  background:radial-gradient(70% 90% at 50% 100%,rgba(242,164,19,.11),transparent 70%),var(--night-2);
}
.callout h2{font-size:clamp(1.9rem,4.6vw,3.2rem);margin-bottom:16px}
.callout p{max-width:44ch;margin:0 auto 30px;color:var(--muted)}

/* --- slot cards --------------------------------------------------------- */
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:20px}
.slot{
  border:1px solid var(--line-soft);border-radius:18px;padding:26px 24px;
  background:var(--ember);display:flex;flex-direction:column;gap:12px;
  transition:border-color .3s;
}
.slot:hover{border-color:var(--line)}
.slot .when{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass)}
.slot h3{font-size:1.4rem}
.slot .time{color:var(--chandan);font-size:.95rem;margin:0}
.slot .note{color:var(--muted-2);font-size:.86rem;margin:0}
.slot .fee{font-family:var(--display);font-size:1.7rem;color:var(--marigold);margin-top:auto}
.slot .fee small{font-family:var(--body);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);display:block;margin-top:2px}
.seats{font-size:.8rem;color:var(--muted-2)}
.seats.low{color:var(--sindoor-lit)}
.seats.none{color:var(--muted-2)}

/* --- forms & panels ----------------------------------------------------- */
.panel{
  border:1px solid var(--line-soft);border-radius:20px;background:var(--ember);
  padding:clamp(24px,4vw,38px);
}
.panel + .panel{margin-top:20px}
.panel h2{font-size:1.5rem;margin-bottom:8px}
.panel h3{font-size:1.2rem;margin-bottom:8px}
.form-narrow{max-width:520px;margin-inline:auto}
.field{margin-bottom:18px}
.field label{display:block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:8px}
.field .hint{font-size:.8rem;color:var(--muted-2);margin:6px 0 0}
input,select,textarea{
  width:100%;padding:13px 16px;border-radius:12px;
  border:1px solid var(--line-soft);background:rgba(0,0,0,.28);
  color:var(--chandan);font-family:var(--body);font-size:1rem;font-weight:300;
  transition:border-color .25s,background .25s;
}
input::placeholder,textarea::placeholder{color:var(--muted-2)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brass);background:rgba(0,0,0,.42)}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--brass) 50%),linear-gradient(135deg,var(--brass) 50%,transparent 50%);background-position:calc(100% - 20px) center,calc(100% - 14px) center;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
textarea{min-height:120px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.form-row{grid-template-columns:1fr}}

.notice{
  border:1px solid var(--line-soft);border-left:2px solid var(--brass);
  border-radius:0 12px 12px 0;padding:16px 20px;background:rgba(192,138,62,.06);
  font-size:.92rem;color:var(--muted);margin-bottom:22px;
}
.notice.warn{border-left-color:var(--marigold);background:rgba(242,164,19,.07)}
.notice.err{border-left-color:var(--sindoor);background:rgba(216,64,43,.09);color:#F0C9C1}
.notice.ok{border-left-color:#5F9B57;background:rgba(95,155,87,.09)}
.notice strong{color:var(--chandan);font-weight:600}
.notice a{color:var(--brass)}
.msg{font-size:.9rem;margin:14px 0 0;min-height:1.2em}
.msg.err{color:#EE8B7A}
.msg.ok{color:#9BD08F}

.badge{
  display:inline-block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  padding:4px 11px;border-radius:999px;border:1px solid var(--line);color:var(--brass);
}
.badge.paid{border-color:rgba(95,155,87,.5);color:#9BD08F}
.badge.pending{border-color:rgba(242,164,19,.45);color:var(--marigold)}
.badge.failed{border-color:rgba(216,64,43,.5);color:#EE8B7A}

.page-head{padding:clamp(56px,8vw,96px) 0 0;text-align:center}
.page-head h1{font-size:clamp(2.2rem,5.5vw,3.8rem);margin-bottom:16px}
.page-head p{max-width:52ch;margin:0 auto;color:var(--muted)}
.page-body{padding:clamp(38px,6vw,64px) 0 clamp(72px,10vw,120px)}

/* --- long-form legal copy ----------------------------------------------- */
.prose{max-width:74ch;margin-inline:auto}
.prose h2{font-size:1.5rem;margin:44px 0 14px;color:var(--chandan)}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.1rem;margin:28px 0 10px;color:var(--brass);font-family:var(--body);font-weight:600;letter-spacing:.02em}
.prose p,.prose li{color:var(--muted)}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1em}
.prose li{margin-bottom:.5em}
.prose a{color:var(--brass)}
.prose strong{color:var(--chandan);font-weight:600}
.prose table{width:100%;border-collapse:collapse;margin:18px 0}
.prose th,.prose td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line-soft);font-size:.92rem}
.prose th{color:var(--brass);font-weight:600;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}
.updated{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);margin-bottom:34px}

/* --- data tables -------------------------------------------------------- */
.table-wrap{overflow-x:auto;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}
table.data{width:100%;border-collapse:collapse;min-width:560px}
table.data th,table.data td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line-soft);font-size:.9rem}
table.data th{color:var(--brass);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600}
table.data td{color:var(--muted)}
table.data tr:last-child td{border-bottom:0}

/* --- footer ------------------------------------------------------------- */
.site-footer{background:var(--night-2);border-top:1px solid var(--line-soft);padding:clamp(56px,8vw,88px) 0 34px}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;gap:34px}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr}}
.footer-grid h4{font-family:var(--body);font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);margin-bottom:16px}
.footer-grid ul{list-style:none;padding:0;margin:0}
.footer-grid li{margin-bottom:10px}
.footer-grid a{color:var(--muted);text-decoration:none;font-size:.88rem;transition:color .2s}
.footer-grid a:hover{color:var(--chandan)}
.footer-brand .mark{width:44px;height:44px;margin-bottom:16px}
.footer-brand p{font-size:.9rem;color:var(--muted-2);max-width:34ch}
.footer-brand .gujarati{color:var(--marigold);font-size:1.05rem;margin-bottom:12px}
.footer-contact address{font-style:normal;font-size:.88rem;color:var(--muted);line-height:1.8}
.footer-contact a{color:var(--muted)}
.footer-bottom{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;
  margin-top:52px;padding-top:24px;border-top:1px solid var(--line-soft);
  font-size:.78rem;color:var(--muted-2);
}
.footer-bottom a{color:var(--muted-2);text-decoration:none}
.footer-bottom a:hover{color:var(--brass)}

/* --- scroll reveal ------------------------------------------------------
   Only hidden once the inline head script has confirmed JavaScript is running,
   so a failed or blocked script can never leave the page blank. */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.3,1),transform .9s cubic-bezier(.2,.7,.3,1)}
.js .reveal.seen{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .js .reveal{opacity:1;transform:none}
}
