:root{
  --ivory:#FBF6ED; --ivory-deep:#F4ECDD; --card:#FFFFFF;
  --saffron:#E4772E; --saffron-deep:#C1440E; --saffron-light:#F5A15A;
  --gold:#B8902E; --gold-soft:#E4C878;
  --earth:#4A3324; --earth-soft:#7A6350; --forest:#4C6444;
  --line:#E9DFCB;
  --radius-lg:28px; --radius-md:18px; --radius-sm:12px;
  --shadow-soft:0 24px 55px -25px rgba(74,51,36,0.4);
  --shadow-card:0 12px 30px -18px rgba(74,51,36,0.28);
}
html{ overflow-x:clip; width:100%; }
body{
  background:var(--ivory); color:var(--earth);
  font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased;
  overflow-x:clip; width:100%;
}
h1,h2,h3,h4,h5{ font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--earth); }
a{ color:inherit; text-decoration:none; }
.eyebrow{
  font-size:12.5px; letter-spacing:3px; text-transform:uppercase; color:var(--saffron-deep);
  font-weight:600; display:flex; align-items:center; gap:10px;
}
.eyebrow::before{ content:""; width:22px; height:1px; background:var(--gold); display:inline-block; }
.btn-vk-primary{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 26px; border-radius:100px; font-weight:600; font-size:14.5px; border:none;
  background:linear-gradient(135deg,var(--saffron-light),var(--saffron-deep)); color:#fff;
  box-shadow:0 14px 28px -12px rgba(193,68,14,0.55); transition:transform .2s ease;
}
.btn-vk-primary:hover{ transform:translateY(-2px); color:#fff; }
.btn-vk-ghost{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 24px; border-radius:100px; font-weight:600; font-size:14px;
  background:transparent; border:1.5px solid var(--line); color:var(--earth);
}
.btn-vk-ghost:hover{ border-color:var(--gold); color:var(--saffron-deep); }
.btn-text-vk{ color:var(--saffron-deep); font-weight:600; font-size:14.5px; display:inline-flex; align-items:center; gap:6px; }

/* NAV */
.vk-header{ position:static; background:rgba(251,246,237,0.92); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.vk-logo{ display:flex; align-items:center; }
.vk-logo-img{ height:32px; width:auto; display:block; }
.vk-nav{ display:flex; gap:6px; }
@media(max-width:1000px){ .vk-nav{ display:none; } }
.vk-nav a{
  font-size:13px; font-weight:600; color:var(--earth-soft);
  padding:7px 13px; border:1px solid var(--line); border-radius:100px;
  transition:all .18s ease; white-space:nowrap;
}
.vk-nav a:hover{ color:var(--saffron-deep); border-color:var(--saffron-deep); background:var(--ivory-deep); }

/* CARDS */
.temple-card{ background:var(--card); border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-card); transition:transform .25s ease, box-shadow .25s ease; height:100%; }
.temple-card:hover{ transform:translateY(-5px); box-shadow:0 22px 38px -20px rgba(74,51,36,0.35); }
.nearby-temple-card{ flex-direction:row; align-items:stretch; }
.nearby-temple-img{ width:130px; min-width:130px; height:auto; background-size:cover; background-position:center; border-radius:var(--radius-md) 0 0 var(--radius-md); }
/* On mobile, a fixed 130px image next to text left the text column
   too narrow — long temple names wrapped awkwardly and got cramped
   against the image. Stack image on top, text below instead, so the
   text gets the card's full width to breathe. */
@media(max-width:480px){
  .nearby-temple-card{ flex-direction:column; }
  .nearby-temple-img{ width:100%; min-width:100%; height:150px; border-radius:var(--radius-md) var(--radius-md) 0 0; }
}
.temple-img{ height:180px; background-size:cover; background-position:center; position:relative; }
.temple-img .deity-badge{ position:absolute; top:12px; left:12px; background:rgba(255,255,255,0.92); padding:5px 13px; border-radius:100px; font-size:11.5px; font-weight:700; color:var(--saffron-deep); }
.temple-body{ padding:20px; }
.temple-loc{ font-size:13px; color:var(--earth-soft); margin-top:6px; }
.temple-desc{ font-size:13.5px; color:var(--earth-soft); margin-top:10px; line-height:1.6; }
.temple-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:16px; padding-top:14px; border-top:1px dashed var(--line); }

/* FILTER SIDEBAR */
.filter-panel{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); padding:22px; box-shadow:var(--shadow-card); }
.filter-panel h6{ font-family:'Inter'; font-size:12px; text-transform:uppercase; letter-spacing:1.5px; font-weight:700; color:var(--earth-soft); margin-bottom:12px; margin-top:20px; }
.filter-panel h6:first-child{ margin-top:0; }
.form-select, .form-control{
  border:1.5px solid var(--line); border-radius:10px; font-size:14px; padding:10px 14px;
}
.form-select:focus, .form-control:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(184,144,46,0.15); }
.form-check-input:checked{ background-color:var(--saffron-deep); border-color:var(--saffron-deep); }

/* DETAIL PAGE */
.temple-hero{ background:linear-gradient(135deg,var(--earth),#2E1D12); color:#fff; padding:52px 0; }
.temple-hero .badge-pill{ background:rgba(255,255,255,0.15); padding:6px 14px; border-radius:100px; font-size:12px; font-weight:600; margin-right:8px; display:inline-block; margin-bottom:8px;}
.detail-section{ padding:40px 0; border-bottom:1px solid var(--line); }
.detail-section h3{ font-size:28px; margin-bottom:16px; }
.info-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); padding:24px; box-shadow:var(--shadow-card); }
.info-row{ display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px dashed var(--line); font-size:14px; }
.info-row:last-child{ border-bottom:none; }
.info-row .label{ color:var(--earth-soft); font-weight:600; }
.faq-item{ border:1px solid var(--line); border-radius:14px; padding:18px 20px; margin-bottom:12px; background:var(--card); }
.faq-item summary{ font-weight:600; cursor:pointer; font-size:15.5px; }
.faq-item p{ margin-top:10px; color:var(--earth-soft); font-size:14px; }
.review-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); padding:20px; margin-bottom:14px; }
.stars-vk{ color:var(--gold); letter-spacing:2px; }
.gallery-thumb{ border-radius:14px; overflow:hidden; height:110px; background-size:cover; background-position:center; }
.breadcrumb-vk{ font-size:13px; color:var(--earth-soft); margin-bottom:18px; }
.breadcrumb-vk a{ color:var(--earth-soft); }
.breadcrumb-vk a:hover{ color:var(--saffron-deep); }

/* PAGINATION */
.pagination .page-link{ border-radius:10px !important; margin:0 3px; border:1px solid var(--line); color:var(--earth); }
.pagination .page-item.active .page-link{ background:var(--saffron-deep); border-color:var(--saffron-deep); }

/* FOOTER */
.vk-footer{ background:var(--earth); color:#EDE1D2; padding:72px 0 30px; margin-top:60px; }
.vk-footer h6{ color:#fff; font-size:18px; margin-bottom:18px; }
.vk-footer a{ color:#C9B69F; font-size:14px; line-height:1.6; margin-bottom:11px; display:block; }
.vk-footer a:hover{ color:var(--gold-soft); }

/* ADMIN */
.admin-shell{ display:flex; min-height:100vh; }
.admin-sidebar{ width:230px; background:var(--earth); color:#EDE1D2; flex-shrink:0; padding:24px 0; }
.admin-sidebar a{ display:block; padding:11px 24px; color:#D8C6AF; font-size:14px; font-weight:600; }
.admin-sidebar a:hover, .admin-sidebar a.active{ background:rgba(255,255,255,0.08); color:#fff; }
.admin-sidebar .brand{ padding:0 24px 24px; font-family:'Cormorant Garamond'; font-size:22px; color:#fff; font-weight:700; }
.admin-main{ flex:1; background:var(--ivory-deep); padding:32px; }
.admin-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-md); padding:24px; box-shadow:var(--shadow-card); }
.admin-topbar{ display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; }
.table-vk thead th{ font-size:12px; text-transform:uppercase; letter-spacing:1px; color:var(--earth-soft); border-bottom:2px solid var(--line); font-weight:700; }
.table-vk td{ vertical-align:middle; font-size:14px; border-color:var(--line); }
.status-badge{ font-size:11px; font-weight:700; padding:4px 10px; border-radius:100px; }
.status-badge.published{ background:#EAF1E4; color:var(--forest); }
.status-badge.draft{ background:#F4ECDD; color:var(--earth-soft); }
/* =========================================================
   SHARED DETAIL PAGE PATTERN
   Used by temples/show.php, pujas/show.php, tours/show.php
   ========================================================= */

/* ---- Hero ---- */
.detail-hero-vk{
  position:relative; color:#fff; padding:64px 0 56px; overflow:hidden;
  background:linear-gradient(135deg, var(--earth), #2E1D12);
}
.back-link-vk{ color:#E4C878; font-size:13.5px; text-decoration:none; display:inline-flex; align-items:center; gap:6px; margin-bottom:14px; font-weight:600; }
.back-link-vk:hover{ color:#fff; }
.detail-hero-vk .breadcrumb-vk{ color:#D8C6AF; }
.detail-hero-vk .breadcrumb-vk a{ color:#D8C6AF; }
.detail-hero-vk h1{ color:#fff; font-size:44px; margin-top:14px; }
.detail-hero-vk .lead-vk{ color:#E9DCC8; max-width:640px; margin-top:10px; font-size:16px; line-height:1.6; }
.detail-hero-vk .meta-vk{ color:#D8C6AF; font-size:14px; margin-top:16px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }

/* ---- Section cards ---- */
.sec-card-vk{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-card); padding:28px 30px; margin-bottom:24px; }
.sec-card-vk h3{ font-size:26px; margin-bottom:14px; }
.sec-card-vk p{ color:var(--earth-soft); line-height:1.85; font-size:15px; margin-bottom:0; }
.sec-card-vk .eyebrow{ margin-bottom:8px; }

/* ---- Grouped overview blocks (About/History/Architecture/... or About/Benefits/Items/...) ---- */
.overview-vk .overview-block-vk{ margin-bottom:28px; }
.overview-vk .overview-block-vk:last-child{ margin-bottom:0; }
.overview-vk h4{ font-size:20px; color:var(--saffron-deep); margin-bottom:10px; display:flex; align-items:center; gap:10px; }
.overview-rule-vk{ border:none; border-top:1px solid var(--line); opacity:1; margin:0 0 14px; width:100%; }

/* ---- Gallery ---- */
.gallery-thumb-vk{ border-radius:14px; overflow:hidden; height:130px; background-size:cover; background-position:center; box-shadow:var(--shadow-card); cursor:pointer; transition:transform .2s ease; }
.gallery-thumb-vk:hover{ transform:scale(1.03); }

/* Lightbox (shared by temples/pujas/tours gallery pages) */
.lightbox-vk{
  position:fixed; inset:0; z-index:1000; background:rgba(20,13,8,0.92);
  display:none; align-items:center; justify-content:center; padding:40px;
}
.lightbox-vk.open-vk{ display:flex; }
.lightbox-vk .lb-stage-vk{
  width:min(900px,90vw); height:min(620px,80vh); border-radius:18px; overflow:hidden;
  background-size:cover; background-position:center; box-shadow:0 30px 70px rgba(0,0,0,0.5);
  position:relative;
}
.lightbox-vk .lb-caption-vk{
  position:absolute; left:0; right:0; bottom:0; padding:16px 22px;
  background:linear-gradient(0deg,rgba(0,0,0,0.65),transparent);
  color:#fff; font-size:14px; font-weight:600;
}
.lightbox-vk .lb-close-vk, .lightbox-vk .lb-prev-vk, .lightbox-vk .lb-next-vk{
  position:absolute; background:rgba(255,255,255,0.15); color:#fff; border:none;
  width:44px; height:44px; border-radius:50%; font-size:20px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:background .15s;
}
.lightbox-vk .lb-close-vk:hover, .lightbox-vk .lb-prev-vk:hover, .lightbox-vk .lb-next-vk:hover{ background:rgba(255,255,255,0.3); }
.lightbox-vk .lb-close-vk{ top:-56px; right:0; }
.lightbox-vk .lb-prev-vk{ top:50%; left:-56px; transform:translateY(-50%); }
.lightbox-vk .lb-next-vk{ top:50%; right:-56px; transform:translateY(-50%); }
.lightbox-vk .lb-count-vk{ position:absolute; top:-56px; left:0; color:#E9DCC8; font-size:13px; font-weight:600; }
@media(max-width:768px){
  .lightbox-vk .lb-prev-vk{ left:8px; }
  .lightbox-vk .lb-next-vk{ right:8px; }
  .lightbox-vk .lb-close-vk{ top:8px; right:8px; }
  .lightbox-vk .lb-count-vk{ top:8px; left:8px; }
}

/* ---- Etiquette / do-dont style lists ---- */
.etiquette-vk{ border-radius:var(--radius-md); padding:22px 24px; height:100%; }
.etiquette-vk.do-vk{ background:#F1F7EE; border:1px solid #D9E9CE; }
.etiquette-vk.dont-vk{ background:#FBF0EF; border:1px solid #F1D6D2; }
.etiquette-vk h6{ font-size:15.5px; font-weight:700; margin-bottom:14px; display:flex; align-items:center; gap:8px; }
.etiquette-vk.do-vk h6{ color:var(--forest); }
.etiquette-vk.dont-vk h6{ color:#A6402F; }
.etiquette-vk ul{ list-style:none; padding:0; margin:0; }
.etiquette-vk li{ font-size:14px; color:var(--earth); padding:6px 0 6px 26px; position:relative; line-height:1.55; }
.etiquette-vk.do-vk li::before{ content:"✓"; position:absolute; left:0; color:var(--forest); font-weight:700; }
.etiquette-vk.dont-vk li::before{ content:"✕"; position:absolute; left:0; color:#A6402F; font-weight:700; }

/* ---- Notes box ---- */
.notes-vk{ background:#FBF3E3; border:1px solid var(--gold-soft); border-radius:var(--radius-md); padding:22px 24px; margin-bottom:24px; }
.notes-vk h6{ color:var(--gold); font-weight:700; margin-bottom:12px; font-size:15.5px; }
.notes-vk ul{ list-style:none; padding:0; margin:0; }
.notes-vk li{ font-size:14px; color:var(--earth-soft); padding:5px 0 5px 24px; position:relative; }
.notes-vk li::before{ content:"⚑"; position:absolute; left:0; font-size:12px; color:var(--saffron-deep); }

/* ---- Accordion (FAQ / itinerary days) ---- */
.accordion-vk .accordion-item{ border:1px solid var(--line); border-radius:14px !important; margin-bottom:12px; overflow:hidden; }
.accordion-vk .accordion-button{ font-weight:600; font-size:15.5px; color:var(--earth); background:var(--card); padding:18px 20px; }
.accordion-vk .accordion-button:not(.collapsed){ color:var(--saffron-deep); background:var(--ivory-deep); box-shadow:none; }
.accordion-vk .accordion-button:focus{ box-shadow:none; }
.accordion-vk .accordion-body{ color:var(--earth-soft); font-size:14.5px; line-height:1.75; padding:0 20px 18px; }

/* ---- CTA band ---- */
.cta-band-vk{
  background:linear-gradient(135deg, var(--saffron-deep), #8f320c);
  border-radius:var(--radius-lg); padding:40px 36px; text-align:center; color:#fff; margin:30px 0 10px;
  box-shadow:var(--shadow-soft);
}
.cta-band-vk h4{ color:#fff; font-size:26px; margin-bottom:8px; }
.cta-band-vk p{ color:#FBE2CC; margin-bottom:20px; font-size:15px; }
.cta-band-vk .btn-vk-white{ background:#fff; color:var(--saffron-deep); border:none; padding:12px 28px; border-radius:100px; font-weight:700; text-decoration:none; display:inline-block; }
.cta-band-vk .btn-vk-white:hover{ color:var(--saffron-deep); transform:translateY(-2px); }

/* ---- Sidebar ---- */
.side-vk{ position:static; }
.side-card-vk{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-card); padding:24px; margin-bottom:20px; }
.side-card-vk h5{ font-size:24px; margin-bottom:16px; }
a.side-card-vk:hover{ box-shadow:0 14px 28px -14px rgba(74,51,36,0.25); border-color:#25D366; }
.side-pill-vk{ display:inline-block; background:var(--ivory-deep); color:var(--saffron-deep); border:1px solid var(--line); font-size:12px; font-weight:700; padding:6px 13px; border-radius:100px; margin:0 6px 6px 0; }
.side-divider-vk{ height:1px; background:var(--line); border:none; margin:16px 0; }
.qf-row-vk{ display:flex; gap:12px; align-items:flex-start; margin-bottom:14px; }
.qf-row-vk:last-child{ margin-bottom:0; }
.qf-icon-vk{ width:36px; height:36px; flex:0 0 36px; border-radius:10px; background:var(--ivory-deep); color:var(--gold); display:flex; align-items:center; justify-content:center; font-size:16px; }
.qf-row-vk .qf-label-vk{ font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:var(--earth-soft); font-weight:700; }
.qf-row-vk .qf-val-vk{ font-size:13.8px; color:var(--earth); margin-top:2px; line-height:1.5; }
.btn-vk-block{ display:block; width:100%; text-align:center; margin-bottom:10px; }
.map-frame-vk{ width:100%; height:210px; border:0; border-radius:12px; display:block; }
.side-list-vk{ list-style:none; padding:0; margin:0; }
.side-list-vk li{ font-size:14px; color:var(--earth); padding:7px 0 7px 22px; position:relative; line-height:1.5; }
.side-list-vk li::before{ content:"❋"; position:absolute; left:0; font-size:11px; top:9px; color:var(--gold); }
.side-sub-vk{ font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:var(--earth-soft); font-weight:700; margin:14px 0 6px; }
.side-sub-vk:first-child{ margin-top:0; }
.side-price-vk{ font-family:'Cormorant Garamond'; font-size:32px; font-weight:700; color:var(--saffron-deep); line-height:1; }
.side-price-strike-vk{ font-size:14px; color:var(--earth-soft); text-decoration:line-through; margin-top:4px; }

/* ---- Anchor / section nav ---- */
.anchor-nav-vk{
  position:sticky; top:0; z-index:40; background:var(--card,#fff);
  border-bottom:1px solid var(--line); margin-bottom:0;
}
.anchor-nav-vk .anchor-nav-flex-vk{ display:flex; align-items:center; gap:8px; }
.anchor-nav-vk .anchor-nav-inner-vk{
  display:flex; align-items:center; gap:8px; overflow-x:auto; padding:14px 0;
  scrollbar-width:none; -ms-overflow-style:none;
  flex:1; min-width:0; -webkit-overflow-scrolling:touch;
  scroll-behavior:auto !important;
}
.anchor-nav-vk .anchor-nav-inner-vk::-webkit-scrollbar{ display:none; }
.anchor-nav-arrow-vk{
  flex:0 0 auto; width:32px; height:32px; border-radius:50%; border:none;
  background:var(--saffron-deep); display:flex; align-items:center; justify-content:center;
  color:#fff; cursor:pointer; font-size:15px; line-height:1; transition:all .15s ease;
  box-shadow:0 2px 6px rgba(0,0,0,0.15);
}
.anchor-nav-arrow-vk:hover{ background:#a8481f; }
.anchor-nav-arrow-vk:disabled{ opacity:.3; cursor:default; }
.anchor-link-vk{
  flex:0 0 auto; display:inline-block; padding:8px 18px; border-radius:100px;
  font-size:14px; font-weight:600; color:var(--earth-soft); text-decoration:none;
  white-space:nowrap; border:1px solid transparent; transition:all .15s ease;
  -webkit-user-drag:none; user-select:none; -webkit-user-select:none;
}
.anchor-link-vk:hover{ color:var(--saffron-deep); }
.anchor-link-vk.active-vk{
  background:var(--ivory-deep); color:var(--saffron-deep); border-color:var(--line);
}
.anchor-jump-vk{ scroll-margin-top:150px; }

.login-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--ivory-deep); }
.login-card{ background:#fff; border-radius:var(--radius-lg); padding:44px; width:380px; box-shadow:var(--shadow-soft); border:1px solid var(--line); }

/* Go to top button (site-wide) */
.go-top-vk{
  position:fixed; bottom:26px; right:26px; z-index:500;
  width:46px; height:46px; border-radius:50%; border:none;
  background:linear-gradient(135deg,var(--saffron-light),var(--saffron-deep)); color:#fff;
  font-size:19px; cursor:pointer; display:none; align-items:center; justify-content:center;
  box-shadow:0 12px 26px -8px rgba(193,68,14,0.55);
  opacity:0; transform:translateY(8px); transition:opacity .2s ease, transform .2s ease;
}
.go-top-vk.show-vk{ display:flex; opacity:1; transform:translateY(0); }
.go-top-vk:hover{ filter:brightness(1.05); }
@media(max-width:600px){ .go-top-vk{ bottom:18px; right:18px; width:42px; height:42px; font-size:17px; } }

/* Temple Circuits — redesigned card style, shared by the homepage
   and tours page so both stay in sync (was previously only defined
   locally on the homepage, meaning the tours page never had any
   styling for this at all — rendered as plain unstyled text). */
.pilgrim-card{
  border-radius:var(--radius-md); overflow:hidden; position:relative; height:230px;
  background-size:cover; background-position:center;
  display:flex; align-items:flex-end;
  box-shadow:var(--shadow-card);
  transition:transform .3s ease, box-shadow .3s ease;
}
.pilgrim-card:hover{ transform:translateY(-6px); box-shadow:0 26px 44px -20px rgba(74,51,36,0.4); }
.pilgrim-card::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(74,51,36,0) 25%, rgba(43,28,18,0.9) 100%);
}
.pilgrim-icon{
  position:absolute; top:18px; left:18px; width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,0.18); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; font-size:20px;
  border:1px solid rgba(255,255,255,0.3);
}
.pilgrim-inner{ position:relative; padding:22px; color:#fff; width:100%; }
.pilgrim-inner h4{ color:#fff; font-size:19px; line-height:1.25; margin-bottom:10px; }
.pilgrim-count-badge{
  display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,0.16);
  backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,0.3);
  padding:5px 12px; border-radius:100px; font-size:12px; font-weight:600; color:#fff;
}
.pilgrim-arrow{
  position:absolute; bottom:20px; right:20px; width:34px; height:34px; border-radius:50%;
  background:var(--saffron); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:16px; opacity:0; transform:translateX(-8px); transition:all .25s ease;
}
.pilgrim-card:hover .pilgrim-arrow{ opacity:1; transform:translateX(0); }
.tg-rich-content{ color:var(--earth); line-height:1.75; font-size:14.5px; }
.tg-rich-content p{ margin-bottom:10px; }
.tg-rich-content ul, .tg-rich-content ol{ margin-bottom:10px; padding-left:22px; }
.tg-rich-content li{ margin-bottom:4px; }
.tg-rich-content h3{ font-size:16px; margin-top:16px; margin-bottom:6px; color:var(--earth); }
.tg-rich-content strong{ color:var(--earth); }
/* display:block + overflow-x:auto directly on the <table> lets it
   scroll horizontally on its own — no wrapper div needed, which
   matters here since these tables come from arbitrary pasted HTML
   (Quill content), not markup we control line-by-line. Without this,
   a 4+ column table (Darshan Timings, Aarti, Tickets, etc.) was
   simply clipped at the screen edge on mobile, cutting columns like
   "Status" down to "Stat". Applies to all 6 rich-content sections
   that can contain a pasted table, not just one. */
.tg-rich-content table{ width:auto; min-width:100%; border-collapse:collapse; margin-bottom:14px; font-size:14px; display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain; }
.tg-rich-content table th, .tg-rich-content table td{ border:1px solid var(--line); padding:10px 12px; text-align:left; white-space:nowrap; }
.tg-rich-content table th{ background:var(--ivory-deep); color:var(--earth-soft); font-size:11.5px; text-transform:uppercase; letter-spacing:.4px; font-weight:700; }

/* Reduce Bootstrap's default .container side padding across all
   inner pages — was Bootstrap's default (much wider), cutting into
   usable card width unnecessarily on mobile. */
.container{ max-width:1240px !important; padding-left:10px !important; padding-right:10px !important; margin-left:auto !important; margin-right:auto !important; }
/* Some pages (login, register) intentionally need a much narrower,
   centered container — the !important on .container above (needed to
   keep inner pages and the homepage consistently sized) was also
   overriding their inline max-width, stretching forms full-width.
   This gives them their own class instead of fighting that rule. */
.container-narrow{ max-width:480px !important; margin-left:auto !important; margin-right:auto !important; padding-left:20px !important; padding-right:20px !important; }

/* Hamburger menu — the top nav (.vk-nav) disappears below 1000px
   with nothing replacing it; this fixes that gap. */
.vk-hamburger{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; border:none; background:transparent; cursor:pointer; padding:0;
}
.vk-hamburger span{
  display:block; width:24px; height:2.5px; background:var(--earth); border-radius:2px;
  transition:transform .25s ease, opacity .2s ease;
}
.vk-hamburger.open span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.vk-hamburger.open span:nth-child(2){ opacity:0; }
.vk-hamburger.open span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

.vk-mobile-menu{
  display:none; flex-direction:column; background:var(--card); border-top:1px solid var(--line);
  max-height:0; overflow:hidden; transition:max-height .3s ease;
}
.vk-mobile-menu.open{ max-height:600px; }
.vk-mobile-menu a{
  padding:14px 24px; color:var(--earth); text-decoration:none; font-weight:600; font-size:15px;
  border-bottom:1px solid var(--line);
}
.vk-mobile-menu a:hover{ background:var(--ivory-deep); color:var(--saffron-deep); }
.vk-mobile-menu hr{ margin:4px 0; border:none; border-top:1px solid var(--line); }

@media(max-width:1000px){
  .vk-hamburger{ display:flex; }
  .vk-mobile-menu{ display:flex; }
}
