/* ============================================================
   Khatu Shyam Ji — khatuwalebaba.in
   Premium spiritual tourism portal — shared design system
   ============================================================ */

/* ---------- Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&family=Mukta:wght@300;400;500;600;700&family=Space+Mono:wght@400;700&display=swap');

/* ---------- Design tokens ---------- */
:root{
  /* brand */
  --saffron:#FF7A00;
  --saffron-600:#E96D00;
  --saffron-050:#FFF3E7;
  --gold:#D4AF37;
  --gold-700:#A8842049;
  --gold-soft:#F3E6BE;
  --maroon:#7B1E1E;
  --maroon-800:#5E1414;
  --maroon-900:#491010;
  --maroon-050:#F8EFEC;

  /* neutrals (warm) */
  --ink:#26190F;
  --ink-2:#4A3C30;
  --muted:#6B5D52;
  --muted-2:#938577;
  --line:#ECE4D6;
  --line-2:#E2D8C6;
  --paper:#FBF7F0;
  --paper-2:#F5EEE2;
  --white:#FFFFFF;

  /* semantic */
  --star:#F5A623;
  --green:#1F8A5B;
  --green-050:#E8F5EE;

  /* type */
  --sans:'Plus Jakarta Sans', system-ui, sans-serif;
  --deva:'Mukta','Plus Jakarta Sans', system-ui, sans-serif;
  --mono:'Space Mono', ui-monospace, monospace;

  /* radius */
  --r-xs:8px; --r-sm:12px; --r-md:16px; --r-lg:22px; --r-xl:30px; --r-pill:999px;

  /* shadow (warm) */
  --sh-xs:0 1px 2px rgba(60,38,20,.06);
  --sh-sm:0 2px 8px rgba(60,38,20,.07), 0 1px 2px rgba(60,38,20,.05);
  --sh-md:0 10px 30px -12px rgba(60,38,20,.20), 0 2px 8px rgba(60,38,20,.06);
  --sh-lg:0 24px 60px -20px rgba(60,38,20,.28), 0 6px 16px rgba(60,38,20,.08);

  /* layout */
  --container:1200px;
  --nav-h:68px;
}

/* ---------- Reset / base ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--white);
  line-height:1.55;
  font-size:16px;
  letter-spacing:-0.006em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
:lang(hi), [data-lang="hi"] body, body[data-lang="hi"]{font-family:var(--deva);letter-spacing:0}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
ul{list-style:none}
h1,h2,h3,h4{line-height:1.12;letter-spacing:-0.02em;font-weight:800}
h2{font-size:clamp(26px,3vw,38px)}
h3{font-size:clamp(20px,2vw,26px);font-weight:700}
::selection{background:var(--saffron);color:#fff}

/* ---------- Layout helpers ---------- */
.container{max-width:var(--container);margin:0 auto;padding:0 24px}
.section{padding:72px 0}
.section-tight{padding:48px 0}
.center{text-align:center}
.row{display:flex;align-items:center}
.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}
.wrap{flex-wrap:wrap}
.grow{flex:1}
.hide{display:none !important}
@media(max-width:860px){.section{padding:52px 0}.container{padding:0 18px}}

/* ---------- Eyebrow / section headers ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--maroon);
}
.eyebrow::before{content:"";width:22px;height:2px;background:linear-gradient(90deg,var(--gold),var(--saffron));border-radius:2px}
.eyebrow.solo::before{display:none}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}
.sec-head h2{margin-top:10px}
.sec-head p.sub{color:var(--muted);max-width:52ch;margin-top:8px;font-size:15.5px}
.sec-head .link-more{white-space:nowrap;color:var(--maroon);font-weight:700;font-size:14.5px;display:inline-flex;align-items:center;gap:6px}
.sec-head .link-more:hover{color:var(--saffron)}
@media(max-width:680px){.sec-head{flex-direction:column;align-items:flex-start;gap:12px}}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-weight:700;font-size:15px;border-radius:var(--r-sm);
  padding:13px 22px;transition:.18s ease;white-space:nowrap;
  border:1.5px solid transparent;
}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--saffron);color:#fff;box-shadow:0 6px 16px -6px rgba(255,122,0,.55)}
.btn-primary:hover{background:var(--saffron-600);transform:translateY(-1px);box-shadow:0 10px 22px -8px rgba(255,122,0,.6)}
.btn-maroon{background:var(--maroon);color:#fff}
.btn-maroon:hover{background:var(--maroon-800);transform:translateY(-1px)}
.btn-gold{background:linear-gradient(135deg,#E7C55A,var(--gold));color:#43340a}
.btn-gold:hover{filter:brightness(1.04);transform:translateY(-1px)}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--maroon);color:var(--maroon)}
.btn-outline{background:transparent;color:var(--maroon);border-color:var(--maroon)}
.btn-outline:hover{background:var(--maroon);color:#fff}
.btn-sm{padding:9px 15px;font-size:13.5px;border-radius:10px}
.btn-lg{padding:16px 28px;font-size:16.5px}
.btn-block{width:100%}
.btn-wa{background:#25D366;color:#fff}
.btn-wa:hover{background:#1ebe5a;transform:translateY(-1px)}

/* ---------- Pills / chips / badges ---------- */
.chip{
  display:inline-flex;align-items:center;gap:7px;
  padding:8px 14px;border-radius:var(--r-pill);
  border:1.5px solid var(--line-2);background:#fff;
  font-size:13.5px;font-weight:600;color:var(--ink-2);
  cursor:pointer;transition:.15s ease;white-space:nowrap;
}
.chip:hover{border-color:var(--saffron);color:var(--saffron)}
.chip.active{background:var(--maroon);border-color:var(--maroon);color:#fff}
.chip .ic{width:15px;height:15px}
.badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 11px;border-radius:7px;font-size:12px;font-weight:700;
  letter-spacing:.02em;
}
.badge-saffron{background:var(--saffron-050);color:var(--saffron-600)}
.badge-gold{background:var(--gold-soft);color:#7a5e10}
.badge-maroon{background:var(--maroon-050);color:var(--maroon)}
.badge-green{background:var(--green-050);color:var(--green)}
.badge-veg{display:inline-flex;width:16px;height:16px;border:1.6px solid var(--green);border-radius:3px;align-items:center;justify-content:center;padding:0}
.badge-veg::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}

/* ---------- Stars ---------- */
.stars{display:inline-flex;gap:1.5px;color:var(--star)}
.stars svg{width:15px;height:15px}
.rating-pill{display:inline-flex;align-items:center;gap:6px;background:var(--maroon);color:#fff;font-weight:800;font-size:13.5px;padding:5px 9px;border-radius:8px}
.rating-pill .out{font-weight:500;opacity:.75;font-size:11.5px}

/* ---------- Cards ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;transition:.2s ease;box-shadow:var(--sh-xs)}
.card:hover{box-shadow:var(--sh-md);transform:translateY(-3px);border-color:var(--line-2)}
.card-body{padding:12px 14px}
.card-title{font-weight:700;font-size:15px;letter-spacing:-0.01em}
.card-meta{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:4px;margin-top:2px}
.card-price{font-weight:800;font-size:15px;color:var(--ink)}
.card-price small{font-weight:500;color:var(--muted);font-size:12.5px}

/* ---------- Image placeholder ---------- */
.ph{
  position:relative;background:linear-gradient(145deg,#FCF8F1 0%,#F3E9D4 100%);
  display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--muted-2);
}
.ph::before{
  content:"";position:absolute;inset:0;opacity:.55;
  background-image:radial-gradient(circle at 1px 1px,rgba(212,175,55,.22) 1px,transparent 0);
  background-size:16px 16px;
}
.ph::after{
  content:attr(data-label);position:relative;z-index:1;
  font-family:var(--mono);font-size:11px;letter-spacing:.03em;
  color:#9a7b3e;padding:6px 12px 6px 30px;
  background:rgba(255,255,255,.78) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23C99A3A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3Cpath d='m21 15-3.6-3.6a2 2 0 0 0-2.8 0L6 20'/%3E%3C/svg%3E") no-repeat 10px center;
  border-radius:var(--r-pill);box-shadow:0 1px 4px rgba(123,30,30,.08);font-weight:600;
}
.ph.dark{background:linear-gradient(145deg,#5e1414,#491010)}
.ph.dark::before{background-image:radial-gradient(circle at 1px 1px,rgba(212,175,55,.3) 1px,transparent 0);opacity:.4}
.ph.dark::after{color:#e8c9bf;background-color:rgba(73,16,16,.65)}

/* ---------- Forms ---------- */
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12.5px;font-weight:700;color:var(--ink-2);letter-spacing:.01em}
.input,.select{
  width:100%;padding:12px 14px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);
  background:#fff;font-size:15px;transition:.15s;color:var(--ink);
}
.input:focus,.select:focus{outline:none;border-color:var(--saffron);box-shadow:0 0 0 3px var(--saffron-050)}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%237B1E1E' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:34px}

/* ============================================================
   HEADER
   ============================================================ */
.topbar{background:var(--maroon-900);color:#f3dcd2;font-size:13px}
.topbar .container{display:flex;align-items:center;justify-content:space-between;height:38px}
.topbar a{display:inline-flex;align-items:center;gap:6px;color:#f3dcd2;font-weight:500}
.topbar a:hover{color:var(--gold-soft)}
.topbar .tb-left{display:flex;gap:20px}
.topbar .tb-right{display:flex;gap:16px;align-items:center}
.topbar svg{width:14px;height:14px;opacity:.85}
@media(max-width:760px){.topbar .tb-left{display:none}}

.lang-toggle{display:inline-flex;border:1px solid rgba(212,175,55,.4);border-radius:var(--r-pill);overflow:hidden}
.lang-toggle button{padding:3px 11px;font-size:12px;font-weight:700;color:#e8c9bf;background:transparent;transition:.15s}
.lang-toggle button.on{background:var(--gold);color:#43340a}

.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;gap:22px;height:var(--nav-h)}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.brand .emblem{
  width:42px;height:42px;border-radius:50%;
  background:radial-gradient(circle at 50% 35%,#fff4dd,var(--gold) 70%);
  display:flex;align-items:center;justify-content:center;position:relative;
  box-shadow:0 2px 10px -2px rgba(212,175,55,.7);flex-shrink:0;
}
.brand .emblem::before{content:"";position:absolute;inset:4px;border-radius:50%;border:1.5px dashed rgba(123,30,30,.4)}
.brand .emblem span{font-family:var(--deva);font-weight:700;color:var(--maroon);font-size:16px;line-height:1}
.brand .wm{display:flex;flex-direction:column;line-height:1.05}
.brand .wm .hi{font-family:var(--deva);font-weight:700;color:var(--maroon);font-size:18px}
.brand .wm .en{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2)}
.nav-links{display:flex;align-items:center;gap:3px;margin-left:6px}
.nav-links a{padding:9px 13px;border-radius:9px;font-size:14.5px;font-weight:600;color:var(--ink-2);transition:.15s;white-space:nowrap}
.nav-links a:hover{background:var(--paper);color:var(--maroon)}
.nav-links a.active{color:var(--saffron)}
.nav-cta{margin-left:auto;display:flex;align-items:center;gap:10px}
.nav-icon-btn{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--line-2);color:var(--maroon);transition:.15s}
.nav-icon-btn:hover{border-color:var(--saffron);color:var(--saffron)}
.nav-icon-btn svg{width:19px;height:19px}
.burger{display:none}
@media(max-width:1080px){.nav-links{display:none}.burger{display:flex}}

/* mobile drawer */
.drawer-bg{position:fixed;inset:0;background:rgba(40,20,10,.45);z-index:90;opacity:0;pointer-events:none;transition:.2s}
.drawer-bg.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:300px;max-width:84vw;background:#fff;z-index:100;transform:translateX(100%);transition:.25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:var(--sh-lg)}
.drawer.open{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid var(--line)}
.drawer nav{padding:10px;overflow:auto}
.drawer nav a{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:11px;font-weight:600;color:var(--ink-2)}
.drawer nav a:hover{background:var(--paper);color:var(--maroon)}
.drawer-foot{margin-top:auto;padding:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--maroon-900);color:#e9cfc6;margin-top:40px;position:relative}
.footer::before{content:"";display:block;height:5px;background:linear-gradient(90deg,var(--saffron),var(--gold),var(--saffron))}
.footer .container{padding-top:56px;padding-bottom:30px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:36px}
.foot-grid h4{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;font-weight:700}
.foot-grid a{display:block;color:#e0c2b8;font-size:14px;padding:6px 0;transition:.15s}
.foot-grid a:hover{color:#fff;padding-left:4px}
.foot-brand p{font-size:14px;color:#d6b6ac;margin-top:14px;max-width:34ch;line-height:1.6}
.foot-social{display:flex;gap:10px;margin-top:18px}
.foot-social a{width:38px;height:38px;border-radius:10px;border:1px solid rgba(212,175,55,.35);display:flex;align-items:center;justify-content:center;padding:0}
.foot-social a:hover{background:var(--gold);color:var(--maroon-900);border-color:var(--gold)}
.foot-social svg{width:18px;height:18px}
.news-in{display:flex;gap:8px;margin-top:14px}
.news-in input{flex:1;padding:11px 13px;border-radius:10px;border:1px solid rgba(212,175,55,.3);background:rgba(255,255,255,.06);color:#fff;font-size:14px}
.news-in input::placeholder{color:#c9a99f}
.foot-bottom{border-top:1px solid rgba(212,175,55,.2);margin-top:40px;padding-top:22px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px;color:#c9a99f}
@media(max-width:860px){.foot-grid{grid-template-columns:1fr 1fr;gap:28px}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* ---------- WhatsApp float ---------- */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:70;width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 28px -8px rgba(37,211,102,.7);transition:.2s}
.wa-float:hover{transform:scale(1.06)}
.wa-float svg{width:30px;height:30px}

/* ---------- Modal ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(40,20,10,.5);backdrop-filter:blur(3px);z-index:120;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:.2s}
.modal-bg.open{opacity:1;pointer-events:auto}
.modal{background:#fff;border-radius:var(--r-lg);width:100%;max-width:460px;box-shadow:var(--sh-lg);transform:translateY(12px) scale(.98);transition:.2s;max-height:90vh;overflow:auto}
.modal-bg.open .modal{transform:none}
.modal-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
.modal-body{padding:22px}
.modal-x{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:.15s}
.modal-x:hover{background:var(--paper);color:var(--maroon)}

/* ---------- Misc utility ---------- */
.divider-orn{display:flex;align-items:center;gap:14px;color:var(--gold);justify-content:center}
.divider-orn::before,.divider-orn::after{content:"";height:1px;width:60px;background:linear-gradient(90deg,transparent,var(--gold))}
.divider-orn::after{background:linear-gradient(90deg,var(--gold),transparent)}
.kbd{font-family:var(--mono);font-size:11px;background:var(--paper);border:1px solid var(--line-2);border-radius:6px;padding:2px 6px;color:var(--muted)}
.skeleton{background:linear-gradient(90deg,var(--paper) 25%,var(--paper-2) 50%,var(--paper) 75%);background-size:200% 100%;animation:sk 1.4s infinite}
@keyframes sk{to{background-position:-200% 0}}
.fade-up{opacity:0;transform:translateY(16px);animation:fadeUp .6s ease forwards}
[data-ic]{display:inline-flex;align-items:center;line-height:0}
[data-ic]>svg{width:18px;height:18px}

/* ============================================================
   INNER PAGE PATTERNS
   ============================================================ */
.page-hero{background:linear-gradient(150deg,var(--maroon-900),var(--maroon) 70%);color:#fff;padding:30px 0 34px;position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;opacity:.14;background-image:radial-gradient(circle at 1px 1px,rgba(212,175,55,.7) 1px,transparent 0);background-size:24px 24px}
.page-hero .container{position:relative;z-index:2}
.page-hero h1{font-size:clamp(28px,3.4vw,40px)}
.page-hero p{color:#e9cfc6;margin-top:8px;max-width:60ch}
.crumbs{display:flex;align-items:center;gap:8px;font-size:13px;color:#d6b6ac;margin-bottom:14px;flex-wrap:wrap}
.crumbs a:hover{color:var(--gold-soft)}
.crumbs svg{width:14px;height:14px;opacity:.6}

.listing-layout{display:grid;grid-template-columns:280px 1fr;gap:30px;align-items:start}
@media(max-width:920px){.listing-layout{grid-template-columns:1fr}.filter-side{position:sticky;top:var(--nav-h);z-index:20}}
.filter-side{position:sticky;top:88px}
.filter-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:20px;box-shadow:var(--sh-xs)}
.filter-card h4{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 12px;font-weight:700}
.filter-card h4:first-child{margin-top:0}
.fopt{display:flex;align-items:center;gap:10px;padding:7px 0;cursor:pointer;font-size:14.5px;color:var(--ink-2);font-weight:600}
.fopt input{width:18px;height:18px;accent-color:var(--saffron);cursor:pointer}
.fopt .ct{margin-left:auto;font-size:12px;color:var(--muted-2);font-weight:600}
.sortbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px;flex-wrap:wrap}
.sortbar .count{font-weight:700;font-size:15px}
.sortbar .count span{color:var(--muted);font-weight:500}
.seg{display:inline-flex;border:1.5px solid var(--line-2);border-radius:10px;overflow:hidden}
.seg button{padding:8px 14px;font-size:13.5px;font-weight:700;color:var(--muted);background:#fff}
.seg button.on{background:var(--maroon);color:#fff}
.mobile-filter-btn{display:none}
@media(max-width:920px){.mobile-filter-btn{display:inline-flex}.filter-card.collapsible{display:none}.filter-card.collapsible.show{display:block}}

.empty{padding:60px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line-2);border-radius:var(--r-md)}
@keyframes fadeUp{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}

/* ============================================================
   PAGE-SPECIFIC CSS
   Extracted from inline <style> blocks of the original
   khatushyamji design pages (index, stays, taxi, events,
   gallery, news, temple, prasad, etc.). These rules were
   missing from the base stylesheet and caused unstyled
   giant SVG icons on the homepage.
   ============================================================ */

/* ===== inline CSS from index.html ===== */
/* ---------- HERO ---------- */
.hero{position:relative;background:
  radial-gradient(1200px 500px at 80% -10%,rgba(212,175,55,.18),transparent),
  linear-gradient(160deg,var(--maroon-900),var(--maroon) 60%,var(--maroon-800));
  color:#fff;overflow:hidden;padding:54px 0 70px}
.hero::before{content:"";position:absolute;inset:0;opacity:.16;background-image:radial-gradient(circle at 1px 1px,rgba(212,175,55,.7) 1px,transparent 0);background-size:26px 26px}
.hero .container{position:relative;z-index:2}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:46px;align-items:center}
.hero h1{font-size:clamp(34px,4.4vw,56px);line-height:1.04;letter-spacing:-0.03em}
.hero h1 .gold{background:linear-gradient(120deg,#F3E6BE,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{color:#e9cfc6;font-size:clamp(16px,1.5vw,19px);margin-top:18px;max-width:46ch;line-height:1.6}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(212,175,55,.15);border:1px solid rgba(212,175,55,.4);color:var(--gold-soft);padding:7px 14px;border-radius:var(--r-pill);font-size:13px;font-weight:700;letter-spacing:.02em}
.hero-badge .dot{width:8px;height:8px;border-radius:50%;background:#3fd07a;box-shadow:0 0 0 3px rgba(63,208,122,.3);animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.4}}
/* search card */
.search-card{background:#fff;border-radius:var(--r-lg);padding:10px;box-shadow:var(--sh-lg);margin-top:28px;max-width:640px}
.search-tabs{display:flex;gap:4px;padding:4px;flex-wrap:wrap}
.search-tab{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:11px;font-weight:700;font-size:14px;color:var(--muted);transition:.15s}
.search-tab svg{width:17px;height:17px}
.search-tab.active{background:var(--saffron-050);color:var(--saffron-600)}

.search-row{display:flex;gap:8px;align-items:flex-end;padding:4px 6px 6px;flex-wrap:wrap}
.sf-group{display:flex;flex-direction:column;gap:4px;flex:1;min-width:140px}
.sf-query{flex:2}
.sf-near{flex:1;min-width:110px}
.sf-label{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;padding-left:2px}
.sf-group input,.sf-group select{width:100%;border:1.5px solid var(--line);border-radius:8px;padding:9px 12px;font-size:14px;outline:none;background:#fff;color:var(--ink);font-family:inherit;-webkit-appearance:none;appearance:none}
.sf-group input:focus,.sf-group select:focus{border-color:var(--saffron)}
.sf-btn{display:flex;align-items:center;gap:6px;white-space:nowrap;padding:10px 20px;flex-shrink:0;height:42px}
.sf-btn svg{width:15px;height:15px}
@media(max-width:580px){.search-row{flex-direction:column}.sf-btn{width:100%;justify-content:center}}
.search-fields{display:grid;grid-template-columns:1.4fr 1fr auto;gap:8px;padding:6px;border-top:1px solid var(--line);margin-top:4px}
.sf{display:flex;flex-direction:column;gap:3px;padding:8px 12px;border-radius:11px;cursor:text}
.sf:hover{background:var(--paper)}
.sf label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2)}
.sf input,.sf select{border:none;background:none;font-size:15px;font-weight:600;color:var(--ink);padding:2px 0;outline:none}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;gap:30px}.hero-aside{order:-1}}
@media(max-width:620px){.search-fields{grid-template-columns:1fr}}
.hero-aside{position:relative}
.hero-photo{width:100%;aspect-ratio:4/4.4;border-radius:var(--r-lg);border:3px solid rgba(212,175,55,.5);box-shadow:var(--sh-lg)}
.live-chip{position:absolute;left:-14px;bottom:24px;background:#fff;border-radius:var(--r-md);padding:14px 16px;box-shadow:var(--sh-lg);display:flex;align-items:center;gap:12px;color:var(--ink)}
.live-chip .ic{width:42px;height:42px;border-radius:11px;background:var(--green-050);color:var(--green);display:flex;align-items:center;justify-content:center}
.live-chip .ic svg{width:22px;height:22px}
@media(max-width:980px){.hero-photo{aspect-ratio:16/10}}
.trust-row{display:flex;gap:26px;margin-top:24px;flex-wrap:wrap}
.trust-row .t{display:flex;flex-direction:column}
.trust-row .t b{font-size:22px;font-weight:800;color:#fff}
.trust-row .t span{font-size:12.5px;color:#d6b6ac}
.trust-row .t b .gold{color:var(--gold)}
/* category strip */
.catstrip{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.catcard{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;transition:.18s;text-align:center}
.catcard:hover{border-color:var(--saffron);box-shadow:var(--sh-md);transform:translateY(-3px)}
.catcard .ci{width:50px;height:50px;border-radius:14px;background:var(--saffron-050);color:var(--saffron-600);display:flex;align-items:center;justify-content:center}
.catcard .ci svg{width:25px;height:25px}
.catcard span{font-weight:700;font-size:14px}
.catcard small{color:var(--muted);font-size:12px}
@media(max-width:900px){.catstrip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.catstrip{grid-template-columns:repeat(2,1fr)}}
/* live info band */
.live-band{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.live-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.live-item{display:flex;align-items:center;gap:14px;padding:18px 0}
.live-item .li{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.live-item .li svg{width:23px;height:23px}
.live-item h4{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.live-item b{font-size:18px;font-weight:800;display:block;margin-top:2px}
@media(max-width:880px){.live-grid{grid-template-columns:1fr 1fr}}
/* generic grids */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media(max-width:1000px){.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:920px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}
/* stay card */
.stay-img{aspect-ratio:16/7;position:relative}
.stay-img .fav{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;color:var(--maroon)}
.stay-img .fav svg{width:17px;height:17px}
.stay-img .tag{position:absolute;top:10px;left:10px}
.amenity-row{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.amenity-row .a{font-size:11.5px;color:var(--muted);background:var(--paper);padding:3px 8px;border-radius:6px;font-weight:600}
/* restaurant row card */
.eat-card{display:flex;gap:14px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;transition:.18s}
.eat-card:hover{box-shadow:var(--sh-md);border-color:var(--line-2)}
.eat-card .ph{width:92px;height:92px;border-radius:12px;flex-shrink:0}
/* taxi card */
.taxi-card{border:1px solid var(--line);border-radius:var(--r-md);padding:18px;background:#fff;transition:.18s;display:flex;flex-direction:column;gap:12px}
.taxi-card:hover{box-shadow:var(--sh-md)}
.taxi-top{display:flex;align-items:center;gap:12px}
.taxi-top .ti{width:48px;height:48px;border-radius:12px;background:var(--maroon-050);color:var(--maroon);display:flex;align-items:center;justify-content:center}
.taxi-top .ti svg{width:25px;height:25px}
/* news */
/* ── News — 4 compact equal cards ── */
.news-card {
  display:block; text-decoration:none; color:inherit;
  background:#fff; border:1px solid var(--line,#e8ddd0);
  border-radius:var(--r-lg,14px); overflow:hidden;
  transition:box-shadow .15s, transform .15s;
}
.news-card:hover { transform:translateY(-3px); box-shadow:0 6px 20px rgba(0,0,0,.09); }
.news-card-img {
  width:100%; aspect-ratio:16/9;
  background:var(--paper,#fdfaf5);
}
.news-card-body { padding:14px; }
.news-card-title {
  font-weight:700; font-size:14.5px; line-height:1.4;
  margin-top:8px; color:var(--ink,#1a1a1a);
  display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden;
}
@media(max-width:720px){
  #newsGrid { grid-template-columns:repeat(2,1fr) !important; }
}
@media(max-width:480px){
  #newsGrid { grid-template-columns:1fr !important; }
}
/* events */
.ev-card{display:flex;gap:16px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;transition:.18s}
.ev-card:hover{box-shadow:var(--sh-md);border-color:var(--gold)}
.ev-date{width:66px;height:72px;border-radius:12px;background:linear-gradient(150deg,var(--maroon),var(--maroon-800));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}
.ev-date .d{font-size:26px;font-weight:800;line-height:1}
.ev-date .m{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--gold-soft)}
/* video gallery */
.vid-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:300px}
.vid{position:relative;border-radius:var(--r-md);overflow:hidden;cursor:pointer}
.vid:first-child{grid-row:1/3}
.vid .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.vid .play .pb{width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;color:var(--saffron-600);box-shadow:var(--sh-md);transition:.2s}
.vid:hover .play .pb{transform:scale(1.1)}
.vid .vlabel{position:absolute;left:14px;bottom:12px;color:#fff;font-weight:700;text-shadow:0 1px 6px rgba(0,0,0,.6);z-index:2}
.vid .vlabel small{display:block;font-weight:500;opacity:.85;font-size:12px}
@media(max-width:780px){.vid-grid{grid-template-columns:1fr 1fr;height:auto}.vid:first-child{grid-row:auto;grid-column:1/3;aspect-ratio:16/9}.vid{aspect-ratio:4/3}}
/* testimonials */
.testi{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px}
.testi p{font-size:15.5px;line-height:1.65;color:var(--ink-2)}
.testi .who{display:flex;align-items:center;gap:12px;margin-top:18px}
.testi .av{width:46px;height:46px;border-radius:50%}
/* FAQ */
.faq-item{border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:12px;overflow:hidden;background:#fff}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;cursor:pointer;font-weight:700;font-size:16px}
.faq-q .fi{color:var(--saffron);transition:.2s;flex-shrink:0}
.faq-item.open .faq-q .fi{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-a p{padding:0 20px 20px;color:var(--muted);font-size:15px;line-height:1.6}
/* CTA band */
.cta-band{background:linear-gradient(120deg,var(--saffron),var(--saffron-600));border-radius:var(--r-xl);padding:48px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;right:-40px;top:-40px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.12)}
.cta-band h2{font-size:clamp(24px,3vw,34px)}
@media(max-width:720px){.cta-band{flex-direction:column;text-align:center;padding:34px 24px}}

/* ===== inline CSS from account.html ===== */
.auth-wrap{max-width:440px;margin:0 auto}
.auth-card{border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-md);overflow:hidden;background:#fff}
.auth-tabs{display:flex}
.auth-tabs button{flex:1;padding:16px;font-weight:700;color:var(--muted);background:var(--paper);border-bottom:2px solid transparent}
.auth-tabs button.on{background:#fff;color:var(--maroon);border-bottom-color:var(--saffron)}
.auth-body{padding:26px}
.acct-layout{display:grid;grid-template-columns:250px 1fr;gap:30px;align-items:start}
@media(max-width:840px){.acct-layout{grid-template-columns:1fr}}
.acct-side{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:#fff}
.acct-side .uhead{padding:22px;background:linear-gradient(150deg,var(--maroon),var(--maroon-800));color:#fff;display:flex;align-items:center;gap:12px}
.acct-side .uhead .av{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--saffron),var(--gold));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px}
.acct-side nav a{display:flex;align-items:center;gap:12px;padding:13px 18px;font-weight:600;color:var(--ink-2);cursor:pointer;border-left:3px solid transparent}
.acct-side nav a svg{width:19px;height:19px;opacity:.7}
.acct-side nav a:hover{background:var(--paper)}
.acct-side nav a.on{background:var(--saffron-050);color:var(--saffron-600);border-left-color:var(--saffron)}
.acct-side nav a.on svg{opacity:1}
.bk-item{display:flex;gap:14px;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:14px;background:#fff}
.bk-item .ph{width:96px;height:74px;border-radius:10px;flex-shrink:0}
.wishlist-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:560px){.wishlist-grid{grid-template-columns:1fr}}
.apanel{display:none}
.apanel.on{display:block}

/* ===== inline CSS from admin.html ===== */
body{background:var(--paper)}
.admin{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.aside{background:var(--maroon-900);color:#e9cfc6;padding:18px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.aside .brand{padding:8px 8px 18px;border-bottom:1px solid rgba(212,175,55,.2);margin-bottom:14px}
.aside .brand .wm .hi{color:var(--gold-soft)}
.aside .brand .wm .en{color:#c9a99f}
.anav{display:flex;flex-direction:column;gap:3px}
.anav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;font-weight:600;font-size:14.5px;color:#e0c2b8;cursor:pointer}
.anav a svg{width:19px;height:19px;opacity:.85}
.anav a:hover{background:rgba(255,255,255,.06);color:#fff}
.anav a.on{background:var(--saffron);color:#fff}
.anav a.on svg{opacity:1}
.aside .afoot{margin-top:auto;padding:12px 8px;font-size:12px;color:#c9a99f;border-top:1px solid rgba(212,175,55,.2)}
.main{padding:0}
.atop{background:#fff;border-bottom:1px solid var(--line);padding:16px 30px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}
.atop h1{font-size:22px}
.atop .au{display:flex;align-items:center;gap:12px}
.au .av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--saffron),var(--gold));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800}
.apad{padding:28px 30px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:20px;box-shadow:var(--sh-xs)}
.stat .si{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.stat .si svg{width:22px;height:22px}
.stat .v{font-size:28px;font-weight:800}
.stat .l{color:var(--muted);font-size:13.5px}
.stat .d{font-size:12.5px;font-weight:700;margin-top:6px}
.atable{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.atable .th{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}
.atable table{width:100%;border-collapse:collapse}
.atable th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:12px 20px;background:var(--paper)}
.atable td{padding:14px 20px;border-top:1px solid var(--line);font-size:14.5px}
.atable tr:hover td{background:var(--paper)}
.st-dot{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:13px}
.st-dot::before{content:"";width:8px;height:8px;border-radius:50%}
.st-live{color:var(--green)}
.st-live::before{background:var(--green)}
.st-pend{color:#B8860B}
.st-pend::before{background:#E0A800}
.st-rev{color:var(--maroon)}
.st-rev::before{background:var(--maroon)}
.act-btn{padding:6px 12px;border-radius:8px;font-size:13px;font-weight:700;border:1.5px solid var(--line-2);color:var(--ink-2)}
.act-btn:hover{border-color:var(--saffron);color:var(--saffron)}
.act-btn.app{background:var(--green-050);color:var(--green);border-color:transparent}
.panel{display:none}
.panel.on{display:block}
.editor{display:grid;grid-template-columns:1fr 320px;gap:22px}
@media(max-width:980px){.editor{grid-template-columns:1fr}.admin{grid-template-columns:1fr}.aside{position:fixed;left:0;top:0;z-index:50;transform:translateX(-100%);transition:.2s;width:248px}.aside.open{transform:none}.amenu{display:inline-flex!important}}
.amenu{display:none}
.textarea{width:100%;min-height:200px;padding:14px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);font-size:15px;line-height:1.6;resize:vertical}

/* ===== inline CSS from business.html ===== */
.biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:980px){.biz-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.biz-grid{grid-template-columns:1fr}}
.biz-card{display:flex;gap:14px;padding:18px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;transition:.18s}
.biz-card:hover{box-shadow:var(--sh-md);border-color:var(--line-2)}
.biz-ic{width:52px;height:52px;border-radius:13px;background:var(--maroon-050);color:var(--maroon);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.biz-ic svg{width:25px;height:25px}
.biz-actions{display:flex;gap:8px;margin-top:12px}
.biz-actions a{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;border-radius:9px;font-size:13px;font-weight:700;border:1.5px solid var(--line-2);color:var(--ink-2)}
.biz-actions a:hover{border-color:var(--saffron);color:var(--saffron)}
.biz-actions a.wa{background:#25D366;color:#fff;border-color:transparent}

/* ===== inline CSS from design-system.html ===== */
.ds-sec{padding:40px 0;border-bottom:1px solid var(--line)}
.ds-label{font-family:var(--mono);font-size:12px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px}
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.sw{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.sw .chip-c{height:80px}
.sw .meta{padding:10px 12px}
.sw .meta b{font-size:13.5px;display:block}
.sw .meta code{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.type-row{display:flex;align-items:baseline;gap:18px;padding:12px 0;border-bottom:1px dashed var(--line)}
.type-row .tag{font-family:var(--mono);font-size:11px;color:var(--muted-2);width:120px;flex-shrink:0}
.comp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.comp-box{border:1px solid var(--line);border-radius:var(--r-md);padding:22px;background:#fff}
.comp-box .ds-label{margin-bottom:14px}

/* ===== inline CSS from docs.html ===== */
.docs-layout{display:grid;grid-template-columns:230px 1fr;gap:40px;align-items:start}
@media(max-width:920px){.docs-layout{grid-template-columns:1fr}.docs-toc{position:static!important;display:none}}
.docs-toc{position:sticky;top:88px}
.docs-toc a{display:block;padding:8px 12px;border-radius:8px;font-size:14px;font-weight:600;color:var(--ink-2)}
.docs-toc a:hover{background:var(--paper);color:var(--maroon)}
.doc-sec{padding:36px 0;border-bottom:1px solid var(--line)}
.doc-sec h2{margin-bottom:6px}
.doc-sec>p.intro{color:var(--muted);margin-bottom:22px;max-width:70ch}
/* sitemap tree */
.tree{font-family:var(--mono);font-size:13.5px;line-height:2;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:22px 24px;color:var(--ink-2);overflow:auto}
.tree .root{color:var(--maroon);font-weight:700}
.tree .branch{color:var(--saffron-600)}
.tree a{color:var(--ink-2)}
.tree a:hover{color:var(--saffron-600);text-decoration:underline}
.tree .note{color:var(--muted-2)}
/* schema tables */
.schema-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media(max-width:760px){.schema-grid{grid-template-columns:1fr}}
.tbl{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:#fff}
.tbl .tname{background:var(--maroon-900);color:var(--gold-soft);padding:11px 16px;font-family:var(--mono);font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:8px}
.tbl .tname svg{width:15px;height:15px}
.tbl table{width:100%;border-collapse:collapse}
.tbl td{padding:8px 16px;border-top:1px solid var(--line);font-size:13px;font-family:var(--mono)}
.tbl td:first-child{color:var(--maroon);font-weight:700;width:42%}
.tbl td:nth-child(2){color:var(--muted-2)}
.tbl .pk td:first-child::after{content:" PK";color:var(--gold);font-size:10px}
.tbl .fk td:first-child::after{content:" FK";color:var(--saffron-600);font-size:10px}
/* arch */
.arch-layers{display:flex;flex-direction:column;gap:12px}
.layer{border:1px solid var(--line);border-radius:var(--r-md);padding:18px 20px;background:#fff;display:grid;grid-template-columns:160px 1fr;gap:18px;align-items:center}
@media(max-width:680px){.layer{grid-template-columns:1fr}}
.layer .ln{font-weight:800;display:flex;align-items:center;gap:10px}
.layer .ln .d{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff}
.layer .stack{display:flex;flex-wrap:wrap;gap:8px}
.tech{background:var(--paper);border:1px solid var(--line-2);border-radius:8px;padding:6px 11px;font-size:12.5px;font-weight:600;font-family:var(--mono);color:var(--ink-2)}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:760px){.feat-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.feat-grid{grid-template-columns:1fr}}
.feat{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;font-size:13.5px}
.feat .fc{color:var(--green);flex-shrink:0;margin-top:1px}
.feat .fc svg{width:18px;height:18px}

/* ===== inline CSS from events.html ===== */
.ev-layout{display:grid;grid-template-columns:1fr 380px;gap:34px;align-items:start}
@media(max-width:920px){.ev-layout{grid-template-columns:1fr}}
.cal{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--sh-xs)}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.cal-head h3{font-size:20px}
.cal-nav{display:flex;gap:8px}
.cal-nav button{width:36px;height:36px;border-radius:9px;border:1.5px solid var(--line-2);color:var(--maroon);display:flex;align-items:center;justify-content:center}
.cal-nav button:hover{border-color:var(--saffron);color:var(--saffron)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-grid .dow{text-align:center;font-size:11px;font-weight:700;color:var(--muted-2);text-transform:uppercase;padding:6px 0}
.cal-cell{aspect-ratio:1/1;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:600;font-size:14px;position:relative;color:var(--ink-2)}
.cal-cell.muted{color:var(--line-2)}
.cal-cell.ev{background:var(--saffron-050);color:var(--saffron-600);cursor:pointer;font-weight:800}
.cal-cell.ev.big{background:var(--maroon);color:#fff}
.cal-cell .dot{width:5px;height:5px;border-radius:50%;background:currentColor;margin-top:3px}
.ev-side .ev-card{margin-bottom:14px}
.legend{display:flex;gap:16px;margin-top:16px;font-size:12.5px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend .sw{width:12px;height:12px;border-radius:4px}

/* ===== inline CSS from gallery.html ===== */
.gal-masonry{columns:4;column-gap:16px}
@media(max-width:1000px){.gal-masonry{columns:3}}
@media(max-width:700px){.gal-masonry{columns:2}}
.g-item{break-inside:avoid;margin-bottom:16px;border-radius:var(--r-md);overflow:hidden;position:relative;cursor:pointer;display:block}
.g-item .ph{width:100%}
.g-item:hover .g-over{opacity:1}
.g-over{position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(73,16,16,.7));display:flex;flex-direction:column;justify-content:flex-end;padding:14px;opacity:.85;transition:.2s;color:#fff}
.g-over .gl{font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.5)}
.g-over small{opacity:.85;font-size:12px}
.g-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;color:var(--saffron-600)}
.lightbox{position:fixed;inset:0;background:rgba(30,12,8,.92);z-index:130;display:flex;align-items:center;justify-content:center;padding:30px;opacity:0;pointer-events:none;transition:.2s}
.lightbox.open{opacity:1;pointer-events:auto}
.lb-inner{max-width:900px;width:100%}
.lb-inner .ph{aspect-ratio:16/10;border-radius:var(--r-md)}
.lb-cap{color:#fff;text-align:center;margin-top:16px}
.lb-x{position:absolute;top:20px;right:24px;color:#fff;width:44px;height:44px;border-radius:11px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center}
.lb-arrow{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;display:flex;align-items:center;justify-content:center}

/* ===== inline CSS from news.html ===== */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:980px){.news-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.news-grid{grid-template-columns:1fr}}
.ncard .ph{aspect-ratio:16/10}
.article{max-width:760px;margin:0 auto}
.article .ph{aspect-ratio:16/8;border-radius:var(--r-lg);margin:22px 0}
.article p{font-size:17px;line-height:1.75;color:var(--ink-2);margin:18px 0}
.article h3{margin:28px 0 4px}
.share-row{display:flex;gap:10px;align-items:center;padding:18px 0;border-block:1px solid var(--line);margin:28px 0}

/* ===== inline CSS from prasad-product.html ===== */
.pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
@media(max-width:860px){.pd-grid{grid-template-columns:1fr}}
.pd-gal{display:flex;flex-direction:column;gap:12px}
.pd-main{aspect-ratio:1/1;border-radius:var(--r-lg);border:1px solid var(--line)}
.pd-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pd-thumbs .ph{aspect-ratio:1/1;border-radius:10px;cursor:pointer}
.qty{display:inline-flex;align-items:center;border:1.5px solid var(--line-2);border-radius:10px;overflow:hidden}
.qty button{width:42px;height:44px;font-size:20px;color:var(--maroon);font-weight:700}
.qty span{width:48px;text-align:center;font-weight:800}
.pd-feat{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}
.pd-feat .f{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--ink-2);background:var(--paper);padding:12px;border-radius:10px}
.pd-feat .f svg{width:20px;height:20px;color:var(--saffron-600)}

/* ===== inline CSS from prasad.html ===== */
.prasad-banner{background:linear-gradient(120deg,var(--saffron-050),#fff);border:1px solid var(--gold-soft);border-radius:var(--r-lg);padding:26px 30px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.trust-pills{display:flex;gap:20px;flex-wrap:wrap}
.trust-pills .tp{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px}
.trust-pills .tp .c{width:38px;height:38px;border-radius:10px;background:#fff;color:var(--saffron-600);display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-xs)}

/* ===== inline CSS from stay-detail.html ===== */
.detail-grid{display:grid;grid-template-columns:1fr 360px;gap:34px;align-items:start}
@media(max-width:980px){.detail-grid{grid-template-columns:1fr}}
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:380px;margin-bottom:8px}
.gal image-slot,.gal .ph{border-radius:14px;width:100%;height:100%}
.gal>:first-child{grid-row:1/3}
@media(max-width:640px){.gal{height:300px}}
.info-block{border-top:1px solid var(--line);padding:26px 0}
.amen-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.amen-grid .ai{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14.5px;color:var(--ink-2)}
.amen-grid .ai .c{width:34px;height:34px;border-radius:9px;background:var(--saffron-050);color:var(--saffron-600);display:flex;align-items:center;justify-content:center}
.amen-grid .ai .c svg{width:18px;height:18px}
@media(max-width:560px){.amen-grid{grid-template-columns:1fr 1fr}}
.book-card{position:sticky;top:88px;border:1px solid var(--line-2);border-radius:var(--r-lg);padding:22px;box-shadow:var(--sh-md);background:#fff}
.bk-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.price-line{display:flex;justify-content:space-between;padding:8px 0;font-size:14.5px;color:var(--ink-2)}
.price-line.total{border-top:1px solid var(--line);margin-top:8px;padding-top:14px;font-weight:800;font-size:18px;color:var(--ink)}
.rev-summary{display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:center;background:var(--paper);border-radius:var(--r-md);padding:24px;margin-bottom:20px}
.rev-big{text-align:center}
.rev-big .n{font-size:48px;font-weight:800;color:var(--maroon);line-height:1}
.bar{display:flex;align-items:center;gap:10px;font-size:13px;margin:5px 0}
.bar .track{flex:1;height:7px;background:var(--line);border-radius:4px;overflow:hidden}
.bar .fill{height:100%;background:linear-gradient(90deg,var(--gold),var(--saffron))}
.review{border-bottom:1px solid var(--line);padding:18px 0}
.review .top{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.review .av{width:44px;height:44px;border-radius:50%}
.map-ph{height:220px;border-radius:var(--r-md);border:1px solid var(--line)}

/* ===== inline CSS from taxi.html ===== */
.fare-card{background:linear-gradient(150deg,var(--maroon-900),var(--maroon));border-radius:var(--r-lg);padding:24px;color:#fff;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:14px;align-items:end}
.fare-card .field label{color:var(--gold-soft)}
.fare-card .input,.fare-card .select{background:rgba(255,255,255,.95)}
@media(max-width:820px){.fare-card{grid-template-columns:1fr 1fr}}
.trans-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:760px){.trans-grid{grid-template-columns:1fr}}
.trans-card{border:1px solid var(--line);border-radius:var(--r-md);padding:22px;background:#fff}
.trans-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px dashed var(--line)}
.trans-row:last-child{border-bottom:none}
.trans-row .t-ic{width:40px;height:40px;border-radius:10px;background:var(--saffron-050);color:var(--saffron-600);display:flex;align-items:center;justify-content:center;flex-shrink:0}

/* ===== inline CSS from temple.html ===== */
.t-hero{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
@media(max-width:900px){.t-hero{grid-template-columns:1fr}}
.t-photo{aspect-ratio:5/4;border-radius:var(--r-lg);border:3px solid rgba(212,175,55,.5)}
.info-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:880px){.info-cards{grid-template-columns:1fr 1fr}}
.ic-card{border:1px solid var(--line);border-radius:var(--r-md);padding:20px;background:#fff;text-align:center}
.ic-card .c{width:50px;height:50px;border-radius:14px;background:var(--saffron-050);color:var(--saffron-600);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.ic-card .c svg{width:25px;height:25px}
.ic-card b{font-size:18px;display:block}
.ic-card span{color:var(--muted);font-size:13px}
.timing-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.timing-table th{background:var(--maroon-900);color:var(--gold-soft);text-align:left;padding:14px 18px;font-size:13px;letter-spacing:.05em;text-transform:uppercase}
.timing-table td{padding:14px 18px;border-top:1px solid var(--line);font-size:15px}
.timing-table tr td:first-child{font-weight:700}
.timing-table .now{background:var(--saffron-050)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:30px}
@media(max-width:820px){.two{grid-template-columns:1fr}}
.steps li{display:flex;gap:14px;padding:14px 0;border-bottom:1px dashed var(--line)}
.steps .num{width:30px;height:30px;border-radius:50%;background:var(--maroon);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0}
.dodont{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:680px){.dodont{grid-template-columns:1fr}}
.dd-list li{display:flex;gap:10px;padding:8px 0;font-size:14.5px;color:var(--ink-2)}
.dd-list .m{flex-shrink:0;width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center}

/* ===== inline CSS from vendor.html ===== */
.av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--saffron),var(--gold));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800}
.two-col{display:grid;grid-template-columns:1fr 340px;gap:22px;align-items:start}
@media(max-width:980px){.two-col{grid-template-columns:1fr}.admin{grid-template-columns:1fr}.aside{position:fixed;left:0;top:0;z-index:50;transform:translateX(-100%);transition:.2s;width:248px}.aside.open{transform:none}.amenu{display:inline-flex!important}}
.lead{display:flex;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:12px;background:#fff}
.lead .lic{width:40px;height:40px;border-radius:10px;background:var(--green-050);color:var(--green);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.bar-row{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:13px}
.bar-row .track{flex:1;height:8px;background:var(--line);border-radius:4px;overflow:hidden}
.bar-row .fill{height:100%;background:linear-gradient(90deg,var(--gold),var(--saffron))}
/* ============================================================
   SVG SAFETY NET — prevents unstyled icons from expanding to
   full container width. Any SVG inside a common icon wrapper
   defaults to a sensible inline size. Specific rules above
   still override these where needed.
   ============================================================ */
.ci > svg, .li > svg, .ti > svg, .fi > svg, .fav > svg,
.catcard svg, .live-item svg, .nav-icon-btn svg, .biz-ic svg,
.t-ic svg, .li-ic svg, .ev-ic svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}
.ci, .li {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
/* Hard cap: NO inline-injected icon SVG may exceed 64px unless it is
   explicitly a hero/illustration. Catches any future missing-class case. */
[class] > svg:not([width]):not([class]) {
  max-width: 64px;
  max-height: 64px;
}

/* ============================================================
   REAL IMAGE OVERLAY — when a card has a real featured image,
   .has-img hides the dotted placeholder pattern + filename label
   and .ph-img fills the container.
   ============================================================ */
.ph.has-img::before,
.ph.has-img::after { display: none !important; }
.ph.has-img { background: var(--ivory-dark, #f5f0e8) !important; }
.ph-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  z-index: 1;
}
/* keep badges/fav above the image */
.ph .tag, .ph .fav, .vid .play, .vid .vlabel { position: relative; z-index: 2; }


/* ============================================================
   PAGESPEED FIXES v1.3
   1. CLS (Cumulative Layout Shift) — reserve space for JS-rendered
      sections so the page does not jump as cards load.
   2. Accessibility — focus outlines, larger tap targets.
   ============================================================ */

/* Reserve min-height for JS-rendered grids so layout does not shift
   when home.js injects cards after load. Tune to typical content height. */
/* Grid layout for JS-rendered sections */
#staysGrid   { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; min-height:0; }
@media(max-width:1000px){ #staysGrid { grid-template-columns:repeat(3,1fr); } }
@media(max-width:600px){ #staysGrid { grid-template-columns:repeat(2,1fr); } }
#eatGrid     { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; min-height:220px; }
#taxiGrid    { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; min-height:240px; }
#bizGrid     { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; min-height:300px; }
#eventsGrid  { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; min-height:220px; }
#vidGrid     { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:150px 150px; gap:10px; min-height:240px; }
#vidGrid .vid:first-child { grid-row:1/3; }
@media(max-width:780px){ #vidGrid { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  #vidGrid .vid:first-child { grid-row:auto; grid-column:1/3; aspect-ratio:16/9; }
  #vidGrid .vid { aspect-ratio:4/3; } }
#testiGrid   { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; min-height:200px; }
#newsGrid    { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
#catstrip    { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; min-height:96px; }
@media(max-width:900px){ #catstrip { grid-template-columns:repeat(3,1fr); } }
@media(max-width:520px){ #catstrip { grid-template-columns:repeat(2,1fr); } }
#liveGrid    { display:grid; grid-template-columns:repeat(4,1fr); gap:0; min-height:64px; border-left:1px solid var(--line); }
#liveGrid .live-item { border-right:1px solid var(--line); padding:18px 24px; }
@media(max-width:768px){ #liveGrid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px){ #liveGrid { grid-template-columns:1fr 1fr; } }

/* Responsive grid breakpoints */
@media(max-width:1100px){
  #eatGrid, #bizGrid, #newsGrid { grid-template-columns:repeat(2,1fr); }
  #eventsGrid, #testiGrid       { grid-template-columns:repeat(2,1fr); }
  #vidGrid                      { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:768px){
  #staysGrid                    { grid-template-columns:repeat(3,1fr); }
  #eatGrid,#bizGrid,#newsGrid,
  #eventsGrid,#testiGrid        { grid-template-columns:repeat(2,1fr); }
  #taxiGrid,#vidGrid            { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:520px){
  #staysGrid,#eatGrid,#taxiGrid,
  #bizGrid,#eventsGrid,#vidGrid,
  #testiGrid,#newsGrid          { grid-template-columns:1fr; }
}
@media(max-width:820px){
  #staysGrid,#eatGrid,#taxiGrid,#bizGrid,#newsGrid,
  #eventsGrid,#vidGrid,#testiGrid{ min-height: 0; }
}

/* Hero image: reserve aspect ratio to stop hero shift */
.hero-photo, .hero-aside img { aspect-ratio: 4/5; object-fit: cover; }

/* Accessibility: visible keyboard focus on all interactive elements */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, .btn:focus-visible, .nav-icon-btn:focus-visible {
  outline: 3px solid var(--saffron, #d4521a);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Accessibility: ensure icon buttons meet 24px+ tap target */
.nav-icon-btn, .fav { min-width: 40px; min-height: 40px; display:inline-flex; align-items:center; justify-content:center; }

/* Accessibility: improve muted-text contrast slightly (was failing ratio) */
:root { --muted: #6b5d52; }

/* ============================================================
   USER SUBMISSION FORMS — reviews & complaints
   ============================================================ */
.ppf-form-wrap { max-width: 640px; margin: 0 auto; }
.ppf-form { background:#fff; border:1px solid var(--line,#e8ddd0); border-radius:16px; padding:28px; box-shadow:0 2px 12px rgba(0,0,0,.05); }
.ppf-label { display:block; font-weight:700; font-size:14px; color:var(--ink,#1a1a1a); margin:16px 0 6px; }
.ppf-input {
  width:100%; padding:11px 14px; font-size:15px; font-family:inherit;
  border:1.5px solid var(--line,#e8ddd0); border-radius:10px; background:var(--paper,#fdfaf5);
  color:var(--ink,#1a1a1a); transition:border-color .15s;
}
.ppf-input:focus { outline:none; border-color:var(--saffron,#d4521a); background:#fff; }
textarea.ppf-input { resize:vertical; min-height:110px; }

/* Star rating input — CSS-only, fills left-to-right on hover/check */
.ppf-stars-input { display:inline-flex; flex-direction:row-reverse; gap:4px; font-size:34px; line-height:1; }
.ppf-stars-input input { position:absolute; left:-9999px; }
.ppf-stars-input label { color:var(--border-dark,#c8b89a); cursor:pointer; transition:color .12s; }
.ppf-stars-input label:hover,
.ppf-stars-input label:hover ~ label,
.ppf-stars-input input:checked ~ label { color:var(--gold,#c8922a); }
.ppf-stars-input input:focus-visible + label { outline:2px solid var(--saffron,#d4521a); outline-offset:2px; }

/* ============================================================
   TRAIN SCHEDULE — interactive timetable
   ============================================================ */
.train-tabs { display:flex; gap:10px; flex-wrap:wrap; }
.train-tab {
  flex:1; min-width:160px; text-align:left; cursor:pointer;
  background:#fff; border:1.5px solid var(--line,#e8ddd0); border-radius:14px;
  padding:14px 18px; transition:all .15s; font-family:inherit;
}
.train-tab:hover { border-color:var(--saffron,#d4521a); }
.train-tab.active { border-color:var(--saffron,#d4521a); background:var(--paper,#fdfaf5); box-shadow:0 2px 10px rgba(212,82,26,.12); }
.train-tab .tt-name { display:block; font-weight:800; font-size:16px; color:var(--ink,#1a1a1a); }
.train-tab .tt-meta { display:block; font-size:12.5px; color:var(--muted,#6b5d52); margin-top:3px; }

.train-panel { display:none; }
.train-panel.active { display:block; }

.train-station-head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:16px; }

.train-table-wrap { overflow-x:auto; border:1px solid var(--line,#e8ddd0); border-radius:14px; }
.train-table { width:100%; border-collapse:collapse; font-size:14.5px; min-width:560px; }
.train-table thead th {
  text-align:left; padding:13px 16px; background:var(--maroon,#7a1f1f); color:#fff;
  font-size:12.5px; text-transform:uppercase; letter-spacing:.04em; font-weight:700;
}
.train-table thead th:first-child { border-top-left-radius:13px; }
.train-table thead th:last-child { border-top-right-radius:13px; }
.train-table tbody td { padding:13px 16px; border-top:1px solid var(--line,#e8ddd0); vertical-align:top; }
.train-table tbody tr:hover { background:var(--paper,#fdfaf5); }
.train-table .tr-name { font-weight:700; color:var(--ink,#1a1a1a); }
.train-table .tr-sub { font-size:12.5px; color:var(--muted,#6b5d52); margin-top:3px; }
.train-table .tr-time { font-variant-numeric:tabular-nums; white-space:nowrap; }
.train-table .tr-route { color:var(--ink,#1a1a1a); }
.train-table .tr-note { font-size:12px; color:var(--saffron,#d4521a); margin-top:4px; font-style:italic; }
.train-table .tr-days { font-size:13px; color:var(--muted,#6b5d52); white-space:nowrap; }

@media(max-width:600px){
  .train-tab { min-width:calc(50% - 5px); }
  .train-table thead th, .train-table tbody td { padding:10px 12px; }
}

/* ============================================================
   HOW TO REACH — travel mode boxes (Air / Train / Bus / Taxi)
   ============================================================ */
.reach-modes {
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
}
.reach-box {
  background:#fff; border:1px solid var(--line,#e8ddd0); border-radius:16px;
  padding:24px; box-shadow:0 2px 12px rgba(0,0,0,.05); display:flex; flex-direction:column;
  transition:transform .15s, box-shadow .15s;
}
.reach-box:hover { transform:translateY(-3px); box-shadow:0 8px 22px rgba(0,0,0,.10); }
.reach-box .reach-ic {
  width:56px; height:56px; border-radius:14px; display:flex; align-items:center;
  justify-content:center; font-size:28px; background:var(--paper,#fdfaf5);
  border:1px solid var(--line,#e8ddd0); margin-bottom:14px;
}
.reach-box h3 { font-size:18px; margin:0 0 4px; }
.reach-box .reach-key { font-size:13.5px; font-weight:700; color:var(--saffron,#d4521a); margin:0 0 10px; }
.reach-box .reach-desc { font-size:14px; line-height:1.65; color:var(--muted,#6b5d52); flex:1; margin:0 0 14px; }
.reach-box .btn { align-self:flex-start; }

@media(max-width:900px){ .reach-modes { grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .reach-modes { grid-template-columns:1fr; } }

/* ============================================================
   ROUTE FAQ accordion
   ============================================================ */
.route-faq {
  border:1px solid var(--line,#e8ddd0); border-radius:12px;
  margin-bottom:12px; background:#fff; overflow:hidden;
}
.route-faq summary {
  cursor:pointer; padding:16px 20px; font-weight:700; color:var(--ink,#1a1a1a);
  font-size:15.5px; list-style:none; position:relative; padding-right:48px;
}
.route-faq summary::-webkit-details-marker { display:none; }
.route-faq summary::after {
  content:'+'; position:absolute; right:20px; top:50%; transform:translateY(-50%);
  font-size:22px; color:var(--saffron,#d4521a); font-weight:400;
}
.route-faq[open] summary::after { content:'−'; }
.route-faq[open] summary { border-bottom:1px solid var(--line,#e8ddd0); }
.route-faq p { padding:16px 20px; margin:0; color:var(--muted,#6b5d52); line-height:1.7; font-size:14.5px; }

/* ============================================================
   TEMPLE GUIDE — single page layout
   ============================================================ */
.tg-quick-grid {
  display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-bottom:36px;
}
.tg-card {
  background:#fff; border:1px solid var(--line,#e8ddd0); border-radius:16px;
  padding:22px; box-shadow:0 2px 10px rgba(0,0,0,.05);
}
.tg-card--highlight { border-color:var(--saffron,#d4521a); background:var(--paper,#fdfaf5); }
.tg-card h3 { font-size:17px; margin:0 0 14px; }

/* Timing table inside card */
.tg-time-table { width:100%; border-collapse:collapse; font-size:14px; }
.tg-time-table th { text-align:left; padding:7px 10px; background:var(--maroon,#7a1f1f); color:#fff; font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.tg-time-table th:first-child { border-radius:6px 0 0 0; }
.tg-time-table th:last-child { border-radius:0 6px 0 0; }
.tg-time-table td { padding:9px 10px; border-bottom:1px solid var(--line,#e8ddd0); }
.tg-note { font-size:12.5px; color:var(--muted,#6b5d52); margin-top:10px; font-style:italic; }

/* Aarti list */
.tg-aarti-list { display:flex; flex-direction:column; gap:10px; }
.tg-aarti-row { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:10px 14px; background:var(--paper,#fdfaf5); border-radius:10px; border:1px solid var(--line,#e8ddd0); }
.tg-aarti-name { font-weight:700; font-size:14.5px; color:var(--ink,#1a1a1a); display:block; }
.tg-aarti-note { font-size:12px; color:var(--muted,#6b5d52); display:block; margin-top:2px; }
.tg-aarti-time { font-size:15px; font-weight:800; color:var(--saffron,#d4521a); white-space:nowrap; }

/* Rules list */
.tg-rules-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; font-size:14.5px; line-height:1.6; }
.tg-rules-list li { padding:8px 0; border-bottom:1px solid var(--line,#e8ddd0); }
.tg-rules-list li:last-child { border-bottom:none; }

@media(max-width:760px){
  .tg-quick-grid { grid-template-columns:1fr; }
}

/* ============================================================
   DHARAMSHALA CARDS — facility icon pills
   ============================================================ */
.ds-card { display:flex; flex-direction:column; }
.ds-card .card-body { flex:1; }

.ds-icons {
  display:flex; flex-wrap:wrap; gap:6px;
  margin-top:10px;
}
.ds-icon-pill {
  display:inline-flex; align-items:center; gap:4px;
  background:var(--paper,#fdfaf5);
  border:1px solid var(--line,#e8ddd0);
  border-radius:20px;
  padding:3px 9px 3px 7px;
  font-size:12px; color:var(--muted,#6b5d52);
  white-space:nowrap; cursor:default;
  transition:background .12s, border-color .12s;
}
.ds-icon-pill:hover {
  background:#fff; border-color:var(--saffron,#d4521a);
  color:var(--ink,#1a1a1a);
}
.ds-icon-em { font-size:14px; line-height:1; }
.ds-icon-label { font-size:12px; font-weight:500; }

.ds-actions {
  display:flex; gap:8px;
  padding:0 16px 16px;
}

/* Limit to 4 icon pills on the card, rest hidden (full list on single page) */
.ds-icons .ds-icon-pill:nth-child(n+5) { display:none; }

@media(max-width:640px){
  .ds-icons .ds-icon-pill:nth-child(n+4) { display:none; }
}

/* ============================================================
   DEVOTIONAL CONTENT — archive cards + single page
   ============================================================ */

/* Archive grid — matches screenshot style */
.dev-grid {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:16px;
}
.dev-card {
  display:flex; flex-direction:column; align-items:flex-start;
  background:#F3E8FF; /* lavender matching screenshot */
  border:1px solid #E0C8F8;
  border-radius:16px; padding:22px 18px 18px;
  text-decoration:none; color:inherit;
  transition:transform .15s, box-shadow .15s, background .15s;
  position:relative; cursor:pointer;
}
.dev-card:hover {
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(120,50,180,.12);
  background:#EDD8FF;
}
.dev-card-icon {
  font-size:36px; line-height:1; margin-bottom:12px;
}
.dev-card-body { flex:1; }
.dev-card-title {
  font-size:18px; font-weight:800; color:var(--ink,#1a1a1a);
  margin:0 0 6px; line-height:1.3;
}
.dev-card-desc {
  font-size:13.5px; color:var(--muted,#6b5d52);
  margin:0; line-height:1.5;
}
.dev-card-arrow {
  position:absolute; bottom:18px; right:18px;
  font-size:18px; color:#9B59B6; font-weight:700;
  transition:transform .15s;
}
.dev-card:hover .dev-card-arrow { transform:translateX(4px); }

@media(max-width:1100px){ .dev-grid { grid-template-columns:repeat(3,1fr); } }
@media(max-width:640px){ .dev-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:380px){ .dev-grid { grid-template-columns:1fr; } }

/* Single page */
.dev-content-wrap { max-width:860px; margin:0 auto; }

.dev-meta-bar {
  display:flex; flex-wrap:wrap; gap:12px; align-items:center;
  background:var(--paper,#fdfaf5); border:1px solid var(--line,#e8ddd0);
  border-radius:10px; padding:12px 16px; margin-bottom:24px;
  font-size:13.5px; color:var(--muted,#6b5d52);
}
.dev-copy-btn {
  margin-left:auto; background:var(--saffron,#d4521a); color:#fff;
  border:none; border-radius:8px; padding:6px 14px; font-size:13px;
  cursor:pointer; font-family:inherit; font-weight:600;
  transition:opacity .15s;
}
.dev-copy-btn:hover { opacity:.85; }

/* Devotional body text — large, readable Devanagari */
.dev-body {
  font-size:17px; line-height:2; color:var(--ink,#1a1a1a);
  font-family:'Noto Sans Devanagari', 'Mangal', sans-serif;
}
.dev-body h2 {
  font-size:20px; color:var(--maroon,#7a1f1f);
  margin:32px 0 12px; border-bottom:2px solid var(--line,#e8ddd0);
  padding-bottom:6px;
}
.dev-body h3 { font-size:17px; color:var(--saffron,#d4521a); margin:24px 0 8px; }
.dev-body p  { margin-bottom:16px; }
.dev-body .doha {
  background:var(--paper,#fdfaf5); border-left:4px solid var(--saffron,#d4521a);
  border-radius:0 10px 10px 0; padding:14px 20px; margin:20px 0;
  font-style:italic; font-size:16px;
}
.dev-body .chaupai {
  margin:8px 0; padding:8px 0;
  border-bottom:1px dashed var(--line,#e8ddd0);
}
.dev-body .meaning {
  background:#E8F5E9; border-radius:10px; padding:14px 18px;
  font-size:14.5px; color:#2D5016; margin:12px 0;
}
.dev-body .jaykara {
  text-align:center; font-size:22px; font-weight:700;
  color:var(--maroon,#7a1f1f); margin:20px 0; letter-spacing:.02em;
}

/* Share bar */
.dev-share-bar {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  margin:32px 0; padding:16px; background:var(--paper,#fdfaf5);
  border-radius:12px; border:1px solid var(--line,#e8ddd0);
}

/* ============================================================
   BABA SPECIAL — sidebar widget
   ============================================================ */
.baba-special-widget {
  background:#fff; border:1px solid var(--line,#e8ddd0);
  border-radius:14px; overflow:hidden;
}
.baba-special-header {
  background:linear-gradient(135deg,#7a1f1f,#c0391b);
  color:#fff; font-weight:800; font-size:15px;
  padding:14px 18px; letter-spacing:.01em;
}
.baba-special-list { list-style:none; padding:0; margin:0; }
.baba-special-item { border-bottom:1px solid var(--line,#e8ddd0); }
.baba-special-item:last-child { border-bottom:none; }
.baba-special-item a {
  display:flex; align-items:center; gap:10px;
  padding:13px 16px; text-decoration:none; color:var(--ink,#1a1a1a);
  font-size:14px; transition:background .12s;
}
.baba-special-item a:hover { background:var(--paper,#fdfaf5); }
.baba-special-item.active a {
  background:var(--paper,#fdfaf5);
  color:var(--saffron,#d4521a); font-weight:700;
}
.bsi-icon { font-size:20px; flex-shrink:0; width:28px; text-align:center; }
.bsi-label { flex:1; line-height:1.35; }
.bsi-arrow {
  color:var(--saffron,#d4521a); font-size:18px; font-weight:700;
  flex-shrink:0; transition:transform .12s;
}
.baba-special-item a:hover .bsi-arrow { transform:translateX(3px); }

/* Devotional single page two-column layout */
.dev-layout {
  display:grid;
  grid-template-columns:1fr 320px;
  gap:32px; align-items:start;
}
@media(max-width:900px){
  .dev-layout { grid-template-columns:1fr; }
  .dev-sidebar { order:-1; }
}
.dev-sidebar { position:sticky; top:100px; }

/* ============================================================
   EKADASHI — buttons, single page, tabs
   ============================================================ */

/* Calendar buttons — matching reference site style */
.ek-btn-katha, .ek-btn-vidhi {
  display:inline-flex; align-items:center; gap:5px;
  padding:5px 12px; border-radius:6px; font-size:13px;
  font-weight:700; text-decoration:none; white-space:nowrap;
  transition:opacity .12s;
}
.ek-btn-katha {
  background:var(--maroon,#7a1f1f); color:#fff;
}
.ek-btn-vidhi {
  background:var(--saffron,#d4521a); color:#fff;
}
.ek-btn-katha:hover, .ek-btn-vidhi:hover { opacity:.85; }

/* Single Ekadashi page */
.ek-info-card {
  display:flex; flex-wrap:wrap; gap:0;
  background:#fff; border:1px solid var(--line,#e8ddd0);
  border-radius:14px; overflow:hidden; margin-bottom:28px;
  max-width:860px;
}
.ek-info-item {
  flex:1; min-width:160px; padding:16px 20px;
  border-right:1px solid var(--line,#e8ddd0);
  display:flex; flex-direction:column; gap:4px;
}
.ek-info-item:last-child { border-right:none; }
.ek-info-label {
  font-size:12px; color:var(--muted,#6b5d52);
  text-transform:uppercase; letter-spacing:.04em; font-weight:600;
}
.ek-info-val {
  font-size:15px; font-weight:700; color:var(--ink,#1a1a1a);
}

/* Tab buttons */
.ek-tabs {
  display:flex; gap:10px; margin-bottom:24px; max-width:860px;
}
.ek-tab-btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 28px; border-radius:10px; font-size:16px;
  font-weight:700; text-decoration:none; transition:all .15s;
  border:2px solid transparent;
}
.ek-tab-katha {
  background:var(--paper,#fdfaf5);
  border-color:var(--maroon,#7a1f1f); color:var(--maroon,#7a1f1f);
}
.ek-tab-katha.active {
  background:var(--maroon,#7a1f1f); color:#fff;
}
.ek-tab-vidhi {
  background:var(--paper,#fdfaf5);
  border-color:var(--saffron,#d4521a); color:var(--saffron,#d4521a);
}
.ek-tab-vidhi.active {
  background:var(--saffron,#d4521a); color:#fff;
}
.ek-tab-btn:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,.1); }

.ek-content-wrap { max-width:860px; }
.ek-body { font-size:16.5px; line-height:1.9; }

@media(max-width:600px){
  .ek-info-item { min-width:calc(50% - 1px); }
  .ek-tab-btn { padding:10px 18px; font-size:14px; }
}


/* ============================================================
   GLOBAL SIDEBAR LAYOUT — shared by all pilgrim content pages
   ============================================================ */
.ppf-layout {
  display:grid;
  grid-template-columns:1fr 300px;
  gap:32px;
  align-items:start;
}
.ppf-sidebar {
  position:sticky;
  top:88px; /* below fixed header */
}
.ppf-sidebar-stack {
  display:flex;
  flex-direction:column;
  gap:16px;
}

/* Ekadashi mini-widget for sidebar */
.ek-sidebar-next {
  background:#fff;
  border:1px solid var(--line,#e8ddd0);
  border-radius:14px;
  overflow:hidden;
}
.ek-sidebar-next-header {
  background:linear-gradient(135deg,#d4521a,#c8922a);
  color:#fff;
  font-weight:800;
  font-size:14px;
  padding:12px 16px;
}
.ek-sidebar-next-body {
  padding:14px 16px;
  font-size:14px;
  line-height:1.7;
}
.ek-sidebar-next-body a {
  display:block;
  margin-top:10px;
  color:var(--saffron,#d4521a);
  font-weight:700;
  text-decoration:none;
}
.ek-sidebar-next-body a:hover {
  text-decoration:underline;
}

@media(max-width:960px) {
  .ppf-layout {
    grid-template-columns:1fr;
  }
  .ppf-sidebar {
    position:static;
    order:2; /* sidebar goes below content on mobile */
  }
}

/* ============================================================
   GALLERY ITEM — single page photo grid
   ============================================================ */
.gi-main-img {
  border-radius:16px; overflow:hidden;
  margin-bottom:16px; background:var(--paper,#fdfaf5);
}
.gi-gallery-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px; margin-bottom:24px;
}
.gi-thumb {
  display:block; border-radius:10px; overflow:hidden;
  aspect-ratio:1; background:var(--paper,#fdfaf5);
  transition:transform .15s, box-shadow .15s;
}
.gi-thumb:hover { transform:scale(1.03); box-shadow:0 6px 20px rgba(0,0,0,.12); }
@media(max-width:600px){
  .gi-gallery-grid { grid-template-columns:repeat(2,1fr); }
}

/* ============================================================
   NAV DROPDOWN — sub-menus under Temple + How to Reach
   ============================================================ */
.nav-drop-wrap {
  position:relative;
  display:inline-block;
}
.nav-drop-trigger {
  display:inline-flex; align-items:center; gap:4px;
}
.nav-caret {
  font-size:10px; opacity:.7; transition:transform .2s;
}
.nav-drop-wrap:hover .nav-caret { transform:rotate(180deg); }

.nav-dropdown {
  position:absolute; top:100%; left:50%;
  transform:translateX(-50%);
  padding-top:8px; /* invisible bridge — cursor stays in hover zone */
  background:transparent;
  min-width:200px; z-index:999;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s;
}
.nav-dropdown-inner {
  background:#fff; border:1px solid var(--line,#e8ddd0);
  border-radius:12px; padding:8px;
  box-shadow:0 8px 32px rgba(0,0,0,.12);
}
.nav-drop-wrap:hover .nav-dropdown {
  opacity:1; visibility:visible; pointer-events:auto;
}
/* Triangle pointer */
.nav-dropdown-inner::before {
  content:''; position:absolute; top:-6px; left:50%;
  transform:translateX(-50%);
  border:6px solid transparent;
  border-top:none;
  border-bottom-color:#fff;
  filter:drop-shadow(0 -1px 1px rgba(0,0,0,.08));
}
.nav-dropdown-inner { position:relative; }
.nav-sub-link {
  display:block; padding:10px 14px; border-radius:8px;
  color:var(--ink,#1a1a1a); text-decoration:none;
  font-size:14px; font-weight:500;
  transition:background .12s;
  white-space:nowrap;
}
.nav-sub-link:hover {
  background:var(--paper,#fdfaf5);
  color:var(--saffron,#d4521a);
}

.foot-wa-channel{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:9px 14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#fff;font-size:13px;font-weight:600;text-decoration:none}
.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr !important}


/* ── Hero stats ── */
.hero-stats{display:flex;gap:28px;margin-top:20px;flex-wrap:wrap}
.hero-stat{display:flex;flex-direction:column;gap:2px}
.hero-stat .stat-num{font-size:22px;font-weight:800;color:#fff;line-height:1}
.hero-stat .stat-sfx{font-size:14px;font-weight:700;color:var(--gold-soft,#f5d78e);line-height:1}
.hero-stat .stat-lbl{font-size:12px;color:rgba(255,255,255,.75);margin-top:3px;white-space:nowrap}

/* Hotel dev-card variant — warm saffron theme */
#staysGrid .dev-card {
  background:#FFF8F0;
  border-color:#F0D5B0;
}
#staysGrid .dev-card:hover {
  background:#FEECD5;
  box-shadow:0 8px 24px rgba(212,82,26,.12);
}
#staysGrid .dev-card-arrow { color:#d4521a; }
#staysGrid .dev-card-title { font-size:14px; font-weight:700; }
#staysGrid .dev-card-desc  { font-size:12px; }
#staysGrid .dev-card-icon  { font-size:28px; margin-bottom:8px; }

/* ── Blog Post Single Page ───────────────────────── */
.hero-post-title{font-size:clamp(22px,4vw,36px);font-weight:800;line-height:1.25;color:#fff;margin-top:10px}
.post-meta-strip{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:13px;color:rgba(255,255,255,.8)}
.post-content{font-size:16px;line-height:1.85;color:var(--ink)}
.post-content h2{font-size:22px;font-weight:700;margin:32px 0 12px;color:var(--maroon);border-left:4px solid var(--saffron);padding-left:12px}
.post-content h3{font-size:18px;font-weight:700;margin:24px 0 10px;color:var(--ink)}
.post-content h4{font-size:16px;font-weight:700;margin:18px 0 8px;color:var(--ink)}
.post-content p{margin-bottom:16px}
.post-content ul,.post-content ol{padding-left:22px;margin-bottom:16px}
.post-content li{margin-bottom:6px;line-height:1.75}
.post-content blockquote{border-left:4px solid var(--saffron);padding:12px 20px;margin:20px 0;background:#fff8f0;border-radius:0 8px 8px 0;font-style:italic}
.post-content table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px}
.post-content table th{background:var(--maroon);color:#fff;padding:10px 14px;text-align:left}
.post-content table td{padding:10px 14px;border-bottom:1px solid var(--line)}
.post-content table tr:nth-child(even){background:var(--paper)}
.post-content img{max-width:100%;border-radius:10px;margin:10px 0}
.post-content a{color:var(--saffron-600);font-weight:600;text-decoration:none}
.post-content a:hover{text-decoration:underline}
.post-content strong{color:var(--ink)}
.post-content hr{border:none;border-top:1px solid var(--line);margin:28px 0}
/* NEVER allow H1 inside post content */
.post-content h1{font-size:22px!important;font-weight:700!important;border-left:4px solid var(--saffron)!important;padding-left:12px!important;color:var(--maroon)!important}
@media(max-width:768px){.hero-post-title{font-size:22px}.post-meta-strip{gap:10px}}

/* ── Blog + News Tabs ── */
#content-blog, #content-news {
  animation: kwbFadeIn .2s ease;
}
@keyframes kwbFadeIn {
  from { opacity:0; transform:translateY(6px); }
  to   { opacity:1; transform:translateY(0); }
}
@media(max-width:900px){
  #content-blog, #content-news {
    grid-template-columns: repeat(2,1fr) !important;
  }
}
@media(max-width:520px){
  #content-blog, #content-news {
    grid-template-columns: 1fr !important;
  }
}

/* ── Blog Archive Grid ───────────────────────── */
.blog-archive-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media(max-width:900px){ .blog-archive-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .blog-archive-grid { grid-template-columns:1fr; } }

/* ── Blog Single Post ────────────────────────── */
.blog-post .post-content h2 {
  font-size:22px; font-weight:700; margin:32px 0 12px;
  color:var(--maroon); border-left:4px solid var(--saffron);
  padding-left:12px; line-height:1.3;
}
.blog-post .post-content h3 {
  font-size:18px; font-weight:700; margin:24px 0 10px; color:var(--ink);
}
.blog-post .post-content h4 {
  font-size:16px; font-weight:700; margin:18px 0 8px; color:var(--ink);
}
/* CRITICAL: Force any accidental H1 inside content to look like H2 */
.blog-post .post-content h1 {
  font-size:22px !important; font-weight:700 !important;
  color:var(--maroon) !important; border-left:4px solid var(--saffron) !important;
  padding-left:12px !important; margin:32px 0 12px !important;
}
.blog-post .post-content p  { margin-bottom:16px; font-size:16px; line-height:1.85; }
.blog-post .post-content ul,
.blog-post .post-content ol { padding-left:22px; margin-bottom:16px; }
.blog-post .post-content li { margin-bottom:6px; line-height:1.75; font-size:15px; }
.blog-post .post-content blockquote {
  border-left:4px solid var(--saffron); padding:14px 20px;
  margin:20px 0; background:#fff8f0; border-radius:0 10px 10px 0;
  font-style:italic; font-size:15px; color:#5a3a1a;
}
.blog-post .post-content table { width:100%; border-collapse:collapse; margin:20px 0; font-size:14px; }
.blog-post .post-content table th { background:var(--maroon); color:#fff; padding:10px 14px; text-align:left; }
.blog-post .post-content table td { padding:10px 14px; border-bottom:1px solid var(--line); }
.blog-post .post-content table tr:nth-child(even) { background:var(--paper); }
.blog-post .post-content a { color:var(--saffron-600); font-weight:600; }
.blog-post .post-content hr { border:none; border-top:2px solid var(--line); margin:28px 0; }
.blog-post .post-content img { max-width:100%; border-radius:10px; margin:10px 0; }
.blog-post .post-content strong { color:var(--ink); }

/* Responsive related posts */
@media(max-width:640px){
  .blog-post [style*="grid-template-columns:repeat(3,1fr)"] {
    grid-template-columns: 1fr !important;
  }
}
