:root {
  --crimson:#990011; --crimson-d:#6e000c; --marigold:#ff6f00; --gold:#e5a93b; --yellow:#ffd54f;
  --ivory:#fdfbf7; --char:#1a1a1a; --char-2:#262626; --muted:#5d5650; --line:#e3dccf;
  --head:"Rozha One","Noto Serif Malayalam",serif;
  --body:"Montserrat","Noto Sans Malayalam",sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ivory); color:var(--char); font:400 1.02rem/1.75 var(--body); }
img { display:block; max-width:100%; height:auto; }
a { color:var(--crimson); text-underline-offset:3px; }
a:hover { color:var(--char); }
h1,h2,h3 { font-family:var(--head); font-weight:400; line-height:1.18; margin:0 0 .5em; }
h2 { font-size:clamp(1.6rem,3.4vw,2.4rem); } h3 { font-size:1.3rem; }
p { margin:0 0 1em; }
:focus-visible { outline:3px solid var(--yellow); outline-offset:3px; }
.wrap { width:min(1120px,100% - 2rem); margin-inline:auto; }
.sr { position:absolute; left:-9999px; }
html[data-lang="ml"] [data-l="en"], html[data-lang="en"] [data-l="ml"] { display:none; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } * { transition:none !important; } }

/* Garad-sari border: crimson with two gold threads */
.garad { height:14px; background:linear-gradient(var(--gold),var(--gold)) 0 3px/100% 2px no-repeat, linear-gradient(var(--gold),var(--gold)) 0 9px/100% 2px no-repeat, var(--crimson); }
.toran { height:46px; background-color:var(--crimson-d); background-repeat:repeat-x;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='46'%3E%3Cpath d='M0 3Q28 12 56 3' stroke='%23e5a93b' stroke-width='2' fill='none'/%3E%3Cpath d='M28 9C18 18 18 32 28 44C38 32 38 18 28 9Z' fill='%232e7d32'/%3E%3Cpath d='M28 12V40' stroke='%23a5d6a7' stroke-width='1'/%3E%3C/svg%3E"); }

/* header */
.skip { position:absolute; left:-9999px; top:0; background:var(--yellow); color:var(--char); padding:.6rem 1rem; z-index:99; }
.skip:focus { left:0; }
header.site { background:var(--crimson); color:#fff; position:sticky; top:0; z-index:30; }
header.site .wrap { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:64px; }
.brand { display:flex; align-items:center; gap:.7rem; text-decoration:none; color:#fff; font:400 1.1rem/1.15 var(--head); }
.brand:hover { color:var(--yellow); }
.brand svg { width:30px; height:30px; flex:none; }
.nav { display:flex; align-items:center; gap:1.15rem; font-size:.88rem; font-weight:500; }
.nav a { color:#fff; text-decoration:none; white-space:nowrap; padding:.3rem 0; border-bottom:2px solid transparent; }
.nav a:hover, .nav a[aria-current="page"] { color:var(--yellow); border-color:var(--yellow); }
.nav .pill { background:var(--gold); color:var(--char); padding:.4rem 1rem; border-radius:999px; font-weight:600; border:0; }
.nav .pill:hover { background:var(--yellow); color:var(--char); }
.tools { display:flex; align-items:center; gap:.6rem; }
.lang { font:600 .85rem var(--body); background:transparent; color:#fff; border:1px solid #d98a94; border-radius:999px; padding:.3rem .85rem; cursor:pointer; }
.lang:hover { border-color:var(--yellow); color:var(--yellow); }
.menu-btn { display:none; font:inherit; font-size:.9rem; background:none; color:#fff; border:1px solid #d98a94; border-radius:6px; padding:.35rem .7rem; cursor:pointer; }
@media (max-width:1080px){
  .menu-btn { display:block; }
  .nav { display:none; position:absolute; left:0; right:0; top:100%; background:var(--crimson-d); flex-direction:column; align-items:flex-start; padding:1rem; gap:.5rem; border-top:1px solid var(--gold); }
  .nav.open { display:flex; }
}

/* buttons */
.btn { display:inline-block; padding:.85rem 1.7rem; border-radius:4px; font-weight:600; text-decoration:none; border:2px solid var(--gold); margin:.3rem .5rem .3rem 0; }
.btn.gold { background:var(--gold); color:var(--char); }
.btn.gold:hover { background:var(--yellow); border-color:var(--yellow); box-shadow:0 0 28px rgba(255,213,79,.55); }
.btn.line { color:#fff; } .btn.line:hover { background:rgba(255,255,255,.12); color:#fff; }
.btn.dark { background:var(--char); border-color:var(--char); color:var(--yellow); } .btn.dark:hover { background:#fff; color:var(--char); border-color:#fff; }
.btn.red { background:var(--crimson); border-color:var(--crimson); color:#fff; } .btn.red:hover { background:var(--char); border-color:var(--char); color:#fff; }

/* hero */
.hero { position:relative; background:var(--char); color:#fff; isolation:isolate; overflow:hidden; }
.hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.hero::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(26,26,26,.95) 0%, rgba(26,26,26,.72) 50%, rgba(153,0,17,.28) 100%); }
.hero .wrap { padding:clamp(3.5rem,10vw,7.5rem) 0; display:grid; grid-template-columns:minmax(0,7fr) minmax(0,3fr); gap:2rem; align-items:center; }
.hero h1 { font-size:clamp(2rem,5.2vw,3.7rem); text-wrap:balance; }
.hero .lede { color:var(--yellow); font-size:1.15rem; max-width:40ch; margin-bottom:1.8rem; }
.eye { width:min(210px,40vw); justify-self:center; }
@media (max-width:760px){ .hero .wrap{ grid-template-columns:1fr; } .eye{ display:none; } }

/* sections */
.sec { padding:clamp(3rem,7vw,5.5rem) 0; position:relative; }
.sec.dark { background:var(--char); color:#fff; } .sec.dark h2 { color:var(--yellow); }
.sec.red { background:var(--crimson); color:#fff; } .sec.red h2 { color:var(--yellow); }
.lead { font-size:1.08rem; color:var(--muted); max-width:56ch; }
.dark .lead { color:#cfc6bd; } .red .lead { color:#ffd9d9; }
.center { text-align:center; } .center .lead { margin-inline:auto; }
.more { font-weight:600; }
.div { display:flex; align-items:center; gap:1rem; max-width:360px; margin:0 auto 1.6rem; color:var(--gold); }
.div::before,.div::after { content:""; flex:1; height:2px; background:currentColor; }
.div svg { width:26px; height:34px; }

/* inner page header */
.page-head { background:var(--char); color:#fff; padding:clamp(2.2rem,5vw,3.6rem) 0; }
.page-head h1 { color:var(--yellow); font-size:clamp(1.9rem,4.4vw,3rem); margin:0 0 .25em; }
.page-head p { margin:0; color:#cfc6bd; max-width:60ch; }
.crumbs { font-size:.85rem; margin-bottom:.8rem; color:#a99f94; } .crumbs a { color:#e8dfd4; }

/* empty / pending note */
.pending { border-left:4px solid var(--gold); background:#fff; padding:1rem 1.3rem; max-width:62ch; color:var(--muted); }
.pending b { color:var(--char); font-family:var(--head); font-weight:400; }
.dark .pending { background:var(--char-2); color:#cfc6bd; } .dark .pending b { color:#fff; }

/* sloka */
.sloka blockquote { margin:0 auto; max-width:46rem; text-align:center; }
.sloka .dev { font:600 clamp(1.4rem,3.2vw,2.1rem)/1.75 "Noto Serif Devanagari",serif; color:var(--crimson); margin:0 0 .6rem; }
.sloka .trn { font-style:italic; color:var(--muted); margin:0 0 1rem; }
.sloka .mean { max-width:56ch; margin:0 auto; font-size:.98rem; }

/* schedule table */
table.rows { width:100%; border-collapse:collapse; margin-top:1.6rem; }
table.rows th, table.rows td { text-align:left; padding:.95rem .8rem; border-bottom:1px solid var(--line); vertical-align:top; }
table.rows th { font:600 .85rem var(--body); color:var(--crimson); border-bottom:2px solid var(--gold); }
table.rows td:first-child { font:400 1.15rem var(--head); }
td.t { font-weight:600; } td.tbc { color:#8a7f73; font-style:italic; font-weight:400; }
.dark table.rows th { color:var(--gold); } .dark table.rows td, .dark table.rows th { border-color:#3a3a3a; } .dark table.rows td:first-child { color:#fff; } .dark td.t { color:var(--yellow); }
@media (max-width:640px){ table.rows thead{ display:none; } table.rows tr{ display:block; padding:.6rem 0; border-bottom:1px solid var(--line); } table.rows td{ display:block; border:0; padding:.1rem 0; } }

/* events */
.events { list-style:none; padding:0; margin:1.6rem 0 0; display:grid; gap:.9rem; }
.event { display:grid; grid-template-columns:84px 1fr; gap:1.2rem; align-items:center; background:#fff; border:1px solid var(--line); border-left:4px solid var(--gold); padding:.9rem 1.2rem; }
.date { text-align:center; line-height:1.1; color:var(--crimson); font-family:var(--head); }
.date b { display:block; font-size:2rem; font-weight:400; } .date span { font:600 .8rem var(--body); color:var(--muted); }
.event h3 { margin:0 0 .15em; font-size:1.15rem; } .event p { margin:0; color:var(--muted); font-size:.95rem; }
.event .tag { display:inline-block; font:600 .75rem var(--body); background:var(--gold); color:var(--char); padding:.05rem .6rem; border-radius:999px; margin-left:.4rem; }
.dark .event { background:var(--char-2); border-color:#3a3a3a; border-left-color:var(--gold); } .dark .event h3 { color:#fff; } .dark .date { color:var(--yellow); } .dark .event p, .dark .date span { color:#b9afa4; }

/* navadurga */
.nava { position:relative; overflow:hidden; }
.nava::before { content:""; position:absolute; inset:0; opacity:.07; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='-60 -60 120 120' fill='none' stroke='%23ffd54f' stroke-width='1.4'%3E%3Ccircle r='20'/%3E%3Cpath d='M0-46L8-26M0 46L8 26M-46 0L-26 8M46 0L26 8M-33-33L-18-18M33-33L18-18M-33 33L-18 18M33 33L18 18'/%3E%3Cpath d='M-9-4Q0-11 9-4M-12 6L-3 3M12 6L3 3M-3 10H3L0 15Z'/%3E%3C/svg%3E") 0 0/120px; }
.nava .wrap { position:relative; }
.grid9 { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:2.4rem 0 0; padding:0; list-style:none; }
.card { width:100%; text-align:left; font:inherit; color:var(--char); background:var(--ivory); border:2px solid var(--gold); border-radius:4px; padding:1.3rem 1.3rem 1.2rem; cursor:pointer; transition:transform .15s, box-shadow .15s; }
.card:hover { transform:translateY(-3px); box-shadow:0 10px 24px rgba(0,0,0,.28); border-color:var(--yellow); }
.card .n { font:400 .95rem var(--head); color:var(--marigold); display:block; }
.card h3 { font-size:1.45rem; margin:.15rem 0 .2rem; color:var(--crimson); }
.card .ml { font:600 1rem "Noto Serif Malayalam",serif; display:block; }
.card .tag { display:block; margin-top:.5rem; font-size:.88rem; color:var(--muted); line-height:1.5; }
@media (max-width:760px){ .grid9{ grid-template-columns:1fr; } }
@media (min-width:761px) and (max-width:980px){ .grid9{ grid-template-columns:repeat(2,1fr); } }

dialog { border:3px solid var(--gold); border-radius:6px; padding:0; width:min(640px,92vw); max-height:88vh; background:var(--ivory); color:var(--char); }
dialog::backdrop { background:rgba(26,0,6,.78); }
dialog .top { background:var(--crimson); color:#fff; padding:1.3rem 1.6rem; position:relative; }
dialog .top .n { color:var(--yellow); font:400 .95rem var(--head); }
dialog h3 { margin:0; font-size:1.9rem; } dialog .ml { font:600 1.1rem "Noto Serif Malayalam",serif; color:#ffd9d9; }
dialog .body { padding:1.4rem 1.6rem 1.6rem; overflow:auto; }
dialog h4 { font:600 .95rem var(--body); color:var(--crimson); margin:1.2rem 0 .2rem; } dialog h4:first-child { margin-top:0; }
dialog p { margin:0 0 .6rem; }
dialog .mantra { font:600 1.35rem/1.7 "Noto Serif Devanagari",serif; color:var(--crimson); }
dialog .close { position:absolute; right:.8rem; top:.8rem; width:38px; height:38px; border-radius:50%; border:2px solid var(--gold); background:transparent; color:#fff; font-size:1.3rem; cursor:pointer; line-height:1; }
dialog .close:hover { background:var(--gold); color:var(--char); }
dialog .pn { display:flex; justify-content:space-between; gap:.6rem; margin-top:1.2rem; }
dialog .pn button { font:600 .9rem var(--body); background:none; border:2px solid var(--crimson); color:var(--crimson); padding:.45rem 1rem; border-radius:4px; cursor:pointer; }
dialog .pn button:hover { background:var(--crimson); color:#fff; }

/* two-column + frames */
.split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(1.5rem,5vw,4rem); align-items:center; }
.frame { border:3px solid var(--gold); padding:8px; background:var(--ivory); }
.frame img { width:100%; aspect-ratio:4/3; object-fit:cover; }
@media (max-width:780px){ .split{ grid-template-columns:1fr; } }
.strip3 { display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; margin-top:2.2rem; }
.strip3 img { width:100%; aspect-ratio:1; object-fit:cover; }
@media (max-width:640px){ .strip3{ grid-template-columns:1fr; } }

/* gallery */
.albums { display:flex; flex-wrap:wrap; gap:.5rem; margin:1.4rem 0; }
.albums button { font:600 .88rem var(--body); background:transparent; border:2px solid var(--gold); color:var(--char); padding:.4rem 1.1rem; border-radius:999px; cursor:pointer; }
.albums button[aria-pressed="true"], .albums button:hover { background:var(--gold); }
.gal { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.7rem; }
.gal figure { margin:0; } .gal[hidden], .gal figure[hidden] { display:none; }
.gal button { display:block; width:100%; padding:0; border:0; background:var(--char); cursor:zoom-in; position:relative; }
.gal img { width:100%; aspect-ratio:1; object-fit:cover; transition:opacity .15s; } .gal button:hover img { opacity:.85; }
.gal figcaption { font-size:.85rem; color:var(--muted); padding:.3rem .1rem 0; }
.videos { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1rem; margin-top:1rem; }
.videos iframe { width:100%; aspect-ratio:16/9; border:0; background:var(--char); }
.videos a { display:block; padding:1rem; border:1px solid var(--line); background:#fff; }
dialog.lb { width:min(1000px,96vw); background:var(--char); color:#fff; border-color:var(--gold); }
dialog.lb img { width:100%; max-height:76vh; object-fit:contain; background:#000; }
dialog.lb .cap { padding:.8rem 1.2rem; display:flex; justify-content:space-between; gap:1rem; align-items:center; flex-wrap:wrap; }
dialog.lb .pn button { border-color:var(--gold); color:var(--yellow); } dialog.lb .pn button:hover { background:var(--gold); color:var(--char); }
dialog.lb .close { top:.5rem; right:.5rem; background:rgba(0,0,0,.5); }

/* prose + people + contact */
.prose { max-width:62ch; } .prose h2 { margin-top:2rem; }
.person { display:grid; grid-template-columns:84px 1fr; gap:1.2rem; align-items:center; max-width:520px; padding:1.1rem 0; border-top:2px solid var(--gold); }
.avatar { width:84px; height:84px; border-radius:50%; background:var(--crimson); color:var(--yellow); display:grid; place-items:center; font:400 1.8rem var(--head); border:2px solid var(--gold); }
.cols3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.cols3 > div { border-top:3px solid var(--gold); padding-top:1rem; }
@media (max-width:800px){ .cols3{ grid-template-columns:1fr; } }
.list { padding-left:1.2rem; } .list li { margin-bottom:.4rem; }

.donate-band { background:var(--marigold); color:var(--char); }
.donate-band .wrap { display:flex; flex-wrap:wrap; gap:1.2rem 3rem; align-items:center; justify-content:space-between; }
.donate-band h2 { margin:0 0 .2em; } .donate-band p { margin:0; font-weight:500; }

/* footer */
footer.site { background:var(--char); color:#b9afa4; font-size:.92rem; }
footer.site .wrap { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2rem; padding:2.6rem 0 1.6rem; }
footer.site h3 { color:#fff; font-size:1rem; font-family:var(--body); font-weight:600; margin-bottom:.6em; }
footer.site ul { list-style:none; margin:0; padding:0; } footer.site li { margin-bottom:.35rem; }
footer.site a { color:var(--gold); } footer.site a:hover { color:var(--yellow); }
.legal { border-top:1px solid #333; padding:1rem 0 1.4rem; font-size:.85rem; }
@media (max-width:860px){ footer.site .wrap{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ footer.site .wrap{ grid-template-columns:1fr; } }

@media (max-width:520px){
  .brand { font-size:.92rem; gap:.5rem; } .brand svg { width:24px; height:24px; }
  .tools { gap:.4rem; } .lang, .menu-btn { padding:.3rem .65rem; font-size:.8rem; }
}

/* "Coming soon" marker on every placeholder */
.soon { display:inline-block; font:600 .75rem var(--body); background:var(--gold); color:var(--char); padding:.1rem .75rem; border-radius:999px; margin-bottom:.5rem; }
.pending b { display:block; }
.when.tbc { font-style:normal; font-weight:600; }

/* tap-to-load map */
.mapbox { max-width:760px; background:#fff; border:3px solid var(--gold); padding:1.2rem; margin-top:1rem; }
.mapbox iframe { display:block; width:100%; aspect-ratio:16/10; border:0; margin-bottom:1rem; background:#eee; }

.note-occ { margin-top:1.4rem; max-width:62ch; padding:.9rem 1.2rem; border-left:4px solid var(--gold); background:#fff; color:var(--muted); }
.note-occ b { color:var(--char); font-family:var(--head); font-weight:400; }

/* inner page title banner with a temple photo */
.page-head { position:relative; isolation:isolate; overflow:hidden; }
.page-head > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.page-head:has(> img)::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(26,26,26,.93) 0%, rgba(26,26,26,.74) 55%, rgba(153,0,17,.38) 100%); }
