:root{
  --kumkum:#A31E24;
  --kumkum-bright:#C4272E;
  --kumkum-deep:#7A1418;
  --pasupu:#D89B2B;
  --pasupu-bright:#F0B93D;
  --pasupu-light:#F3D48A;
  --gandham:#F4E8D0;
  --gandham-deep:#E9D5A8;
  --gandham-pale:#FBF3E3;
  --ink:#2E1610;
  --ink-soft:#5C3A2E;
  --card:#FDF8ED;
  --shadow: 0 10px 30px rgba(58,20,16,0.12);
  --radius-arch: 200px 200px 8px 8px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body.temple-home-template{
  margin:0;
  background:var(--gandham);
  color:var(--ink);
  font-family:'Mukta',sans-serif;
  -webkit-font-smoothing:antialiased;
}
.temple-home-template h1,.temple-home-template h2,.temple-home-template h3,.temple-home-template .display{
  font-family:'Cinzel',serif;
  color:var(--kumkum-deep);
  margin:0;
}
.telugu{ font-family:'Tiro Telugu', serif; }
.temple-home-template a{color:inherit;text-decoration:none;}
.temple-home-template img{max-width:100%;display:block;}
.container{max-width:1180px;margin:0 auto;padding:0 24px;}
.eyebrow{
  font-family:'Mukta',sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:.72rem;
  color:var(--kumkum);
  font-weight:700;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.eyebrow::before{content:'';width:18px;height:1px;background:var(--pasupu);}
.section-head{ text-align:center; max-width:640px; margin:0 auto 42px; }
.section-head h2{ font-size:clamp(1.7rem,3vw,2.4rem); margin-top:10px; }
.section-head p{ color:var(--ink-soft); margin-top:12px; line-height:1.6; }
.temple-home-template section{ padding:78px 0; position:relative; }
.temple-home-template button{font-family:inherit;cursor:pointer;}
.temple-home-template :focus-visible{ outline:3px solid var(--pasupu-bright); outline-offset:3px; }
@media (prefers-reduced-motion: reduce){
  .temple-home-template *{animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.001ms !important;}
}

/* MARQUEE */
.marquee-bar{
  background:var(--kumkum); color:var(--gandham-pale); overflow:hidden; white-space:nowrap;
  padding:9px 0; font-size:.85rem; letter-spacing:.02em; border-bottom:2px solid var(--pasupu);
}
.marquee-track{ display:inline-block; padding-left:100%; animation:scroll-left 32s linear infinite; }
.marquee-track span{ margin:0 2.2em; }
.marquee-track span::before{ content:'✦'; color:var(--pasupu-bright); margin-right:.6em; }
@keyframes scroll-left{ 0%{transform:translateX(0);} 100%{transform:translateX(-100%);} }

/* GOPURAM DIVIDER */
.tier-divider{ width:100%; height:34px; display:block; }
.tier-divider path{ fill:var(--pasupu); }
.tier-divider.on-cream path{ fill:var(--gandham-deep); }
.tier-divider.on-kumkum path{ fill:var(--pasupu-light); }

/* HEADER */
.temple-home-template header{ background:var(--gandham-pale); position:sticky; top:0; z-index:50; border-bottom:1px solid var(--gandham-deep); }
.nav-wrap{ display:flex; align-items:center; justify-content:space-between; padding:14px 24px; max-width:1180px; margin:0 auto; gap:20px; }
.brand{ display:flex; align-items:center; gap:18px; }
.brand-mark{ width:52px; height:52px; flex:none; }
.brand-text .telugu{ font-size:1.05rem; color:var(--kumkum-deep); line-height:1.15; display:block; }
.brand-text small{ display:block; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-top:3px; }
nav.links{ display:flex; gap:28px; }
nav.links a{ font-size:.9rem; font-weight:600; color:var(--ink); position:relative; padding:4px 0; white-space:nowrap; }
nav.links a::after{ content:''; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--kumkum); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
nav.links a:hover::after{ transform:scaleX(1); }
.cta-btn{ background:var(--kumkum); color:#fff !important; padding:11px 22px; border-radius:4px; font-weight:700; font-size:.86rem; letter-spacing:.03em; border:1px solid var(--kumkum); transition:background .2s ease; display:inline-block; white-space:nowrap; }
.cta-btn:hover{ background:var(--kumkum-deep); }
.cta-btn.ghost{ background:transparent; color:var(--kumkum) !important; }
.cta-btn.ghost:hover{ background:var(--kumkum); color:#fff !important; }
.pujas .cta-btn.ghost.pujas-view-all-link{ border-color:var(--pasupu-bright); color:var(--pasupu-bright) !important; }
.pujas .cta-btn.ghost.pujas-view-all-link:hover{ background:var(--pasupu-bright); color:var(--kumkum-deep) !important; }
.menu-toggle{ display:none; background:none; border:none; font-size:1.6rem; color:var(--kumkum-deep); }

/* HERO SLIDER */
.hero{ position:relative; background:var(--ink); overflow:hidden; }
.slides{ position:relative; height:min(78vh,640px); min-height:420px; }
.slide{ position:absolute; inset:0; opacity:0; transition:opacity 1s ease; display:flex; align-items:flex-end; }
.slide.active{ opacity:1; }
.slide-art{ position:absolute; inset:0; background-size:cover; background-position:center; }
.slide-scrim{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(20,8,6,0.88) 0%, rgba(20,8,6,0.35) 48%, rgba(58,20,16,0.15) 100%); }
.slide-content{ position:relative; padding:0 24px 64px; max-width:1180px; margin:0 auto; width:100%; color:#fff; }
.slide-content .eyebrow{ color:var(--pasupu-bright); }
.slide-content .eyebrow::before{ background:var(--pasupu-bright); }
.slide-content h2{ font-family:'Cinzel Decorative',serif; color:#fff; font-size:clamp(1.4rem,2.8vw,2.3rem); margin-top:8px; text-shadow:0 3px 18px rgba(0,0,0,.5); line-height:1.2; }
.slide-content .telugu{ display:block; font-size:.95rem; color:var(--pasupu-light); margin-top:6px; }
.slide-content p{ max-width:480px; margin-top:10px; color:#f1e6d3; line-height:1.5; font-size:.92rem; }
.hero-arch{ display:none; }
.slide-dots{ position:absolute; bottom:24px; left:50%; transform:translateX(-50%); display:flex; gap:10px; z-index:5; }
.slide-dots button{ width:10px; height:10px; border-radius:50%; border:1px solid var(--pasupu-bright); background:transparent; padding:0; }
.slide-dots button.active{ background:var(--pasupu-bright); }
.hero-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:5; background:rgba(20,8,6,0.45); border:1px solid rgba(240,185,61,.5); color:#fff; width:42px; height:42px; border-radius:50%; font-size:1.1rem; display:flex; align-items:center; justify-content:center; }
.hero-arrow:hover{ background:var(--kumkum); }
.hero-arrow.prev{ left:18px; } .hero-arrow.next{ right:18px; }

/* INFO STRIP */
.info-strip{ background:var(--kumkum); color:var(--gandham-pale); padding:0; }
.info-grid{ display:grid; grid-template-columns:repeat(4,1fr); max-width:1180px; margin:0 auto; }
.info-item{ padding:26px 22px; border-left:1px solid rgba(240,215,138,0.25); display:flex; gap:14px; align-items:flex-start; }
.info-item:first-child{ border-left:none; }
.info-item svg{ flex:none; width:26px; height:26px; fill:var(--pasupu-bright); margin-top:2px; }
.info-item h4{ font-family:'Cinzel',serif; font-size:.95rem; color:var(--pasupu-bright); margin:0 0 4px; }
.info-item p{ margin:0; font-size:.85rem; line-height:1.5; color:#f1e0c9; }

/* ABOUT */
.about{ background:var(--gandham); }
.about-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.about-art{ aspect-ratio:4/5; border-radius:var(--radius-arch); overflow:hidden; position:relative; box-shadow:var(--shadow); border:3px solid var(--pasupu); }
.about-copy .eyebrow{ margin-bottom:6px; }
.about-copy h2{ font-size:clamp(1.6rem,3vw,2.2rem); margin-top:8px; }
.about-copy p{ color:var(--ink-soft); line-height:1.75; margin-top:16px; }

/* CARDS */
.card{ background:var(--card); border-radius:10px; overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--gandham-deep); display:flex; flex-direction:column; height:100%; }
.card-art{ aspect-ratio:16/10; position:relative; overflow:hidden; }
.kalasha-badge{ position:absolute; top:14px; left:14px; background:var(--kumkum); color:#fff; border-radius:6px; padding:7px 12px; text-align:center; box-shadow:0 4px 10px rgba(0,0,0,.25); font-family:'Cinzel',serif; }
.kalasha-badge .d{ font-size:1.2rem; font-weight:700; line-height:1; display:block; }
.kalasha-badge .m{ font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:var(--pasupu-light); }
.card-body{ padding:20px 22px 24px; flex:1; display:flex; flex-direction:column; }
.card-body h3{ font-size:1.08rem; color:var(--kumkum-deep); }
.card-body .meta{ font-size:.78rem; color:var(--ink-soft); margin-top:6px; letter-spacing:.02em; }
.card-body p{ font-size:.88rem; color:var(--ink-soft); line-height:1.55; margin-top:10px; flex:1; }
.card-link{ margin-top:14px; font-weight:700; font-size:.82rem; color:var(--kumkum); display:inline-flex; align-items:center; gap:6px; }
.card-link::after{ content:'→'; transition:transform .2s; }
.card-link:hover::after{ transform:translateX(4px); }

/* FESTIVALS / EVENTS grids */
.festivals{ background:var(--gandham-pale); }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.events{ background:var(--gandham); }
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.tag{ display:inline-block; font-size:.68rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; background:var(--pasupu-light); color:var(--kumkum-deep); padding:3px 9px; border-radius:4px; margin-bottom:8px; }

/* PUJAS TABLE */
.pujas{ background:var(--kumkum-deep); color:var(--gandham-pale); }
.pujas .section-head h2{ color:#fff; }
.pujas .section-head p{ color:var(--pasupu-light); }
.pujas .eyebrow{ color:var(--pasupu-bright); }
.pujas .eyebrow::before{ background:var(--pasupu-bright); }
.puja-table{ width:100%; border-collapse:collapse; background:rgba(255,255,255,.04); border-radius:10px; overflow:hidden; }
.puja-table th{ text-align:left; font-family:'Cinzel',serif; font-weight:600; font-size:.82rem; letter-spacing:.05em; text-transform:uppercase; color:var(--pasupu-bright); padding:14px 20px; border-bottom:1px solid rgba(240,185,61,.3); }
.puja-table td{ padding:16px 20px; border-bottom:1px solid rgba(255,255,255,.08); font-size:.92rem; }
.puja-table tr:last-child td{ border-bottom:none; }
.puja-table td.name{ font-weight:600; color:#fff; }
.puja-table td.name span{ display:block; font-size:.76rem; color:var(--pasupu-light); font-weight:400; margin-top:2px; }
.book-pill{ background:var(--pasupu-bright); color:var(--kumkum-deep); font-weight:700; font-size:.76rem; padding:6px 14px; border-radius:20px; display:inline-block; border:none; }
.book-pill:hover{ background:#fff; }

/* VIDEO SLIDER */
.videos{ background:var(--gandham-pale); }
.video-row{ display:flex; gap:22px; overflow-x:auto; padding-bottom:14px; scroll-snap-type:x mandatory; }
.video-row::-webkit-scrollbar{ height:8px; }
.video-row::-webkit-scrollbar-thumb{ background:var(--pasupu); border-radius:8px; }
.video-card{ flex:0 0 320px; scroll-snap-align:start; }
.video-thumb{ position:relative; aspect-ratio:16/9; border-radius:10px; overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--gandham-deep); display:block; }
.play-btn{ position:absolute; inset:0; margin:auto; width:56px; height:56px; border-radius:50%; background:rgba(163,30,36,0.88); border:2px solid var(--pasupu-bright); color:#fff; font-size:1.3rem; display:flex; align-items:center; justify-content:center; }
.video-card h4{ margin-top:12px; font-size:.95rem; color:var(--kumkum-deep); font-family:'Cinzel',serif; }
.video-card p{ margin:4px 0 0; font-size:.78rem; color:var(--ink-soft); }
.video-nav{ display:flex; justify-content:flex-end; gap:10px; margin-bottom:18px; }
.video-nav button{ width:38px; height:38px; border-radius:50%; border:1px solid var(--kumkum); background:transparent; color:var(--kumkum); }
.video-nav button:hover{ background:var(--kumkum); color:#fff; }

/* GALLERY */
.gallery{ background:var(--gandham); }
.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:150px; gap:14px; }
.g-item{ border-radius:8px; overflow:hidden; position:relative; display:block; }
.g-item .art{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .5s ease; }
.g-item:hover .art{ transform:scale(1.08); }
.g-item .label{ position:absolute; left:0; right:0; bottom:0; padding:10px 12px; background:linear-gradient(0deg, rgba(20,8,6,.75), transparent); color:#fff; font-size:.74rem; font-weight:600; opacity:0; transition:opacity .3s; }
.g-item:hover .label{ opacity:1; }
.g-item.tall{ grid-row:span 2; }
.gallery-cta{ text-align:center; margin-top:32px; }

/* CTA STRIP */
.cta-strip{ background:linear-gradient(120deg, var(--kumkum) 0%, var(--kumkum-deep) 100%); color:#fff; text-align:center; padding:70px 24px; }
.cta-strip h2{ color:#fff; font-size:clamp(1.6rem,3vw,2.3rem); }
.cta-strip p{ color:var(--pasupu-light); max-width:560px; margin:14px auto 26px; line-height:1.6; }
.cta-strip .row{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* LOCATION */
.location{ background:var(--gandham-pale); }
.loc-wrap{ display:grid; grid-template-columns:1.1fr 1fr; gap:40px; }
.loc-card{ background:var(--card); border:1px solid var(--gandham-deep); border-radius:10px; padding:30px; box-shadow:var(--shadow); }
.loc-card h3{ font-size:1.1rem; color:var(--kumkum-deep); margin-bottom:14px; }
.timing-row{ display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px dashed var(--gandham-deep); font-size:.9rem; }
.timing-row:last-child{ border-bottom:none; }
.timing-row span:first-child{ color:var(--ink-soft); }
.timing-row span:last-child{ font-weight:700; color:var(--kumkum); }
.map-frame{ border-radius:10px; overflow:hidden; border:1px solid var(--gandham-deep); box-shadow:var(--shadow); aspect-ratio:4/3; position:relative; background:var(--gandham-deep); }
.map-frame iframe{ width:100%; height:100%; border:0; }
.map-frame .mock{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; color:var(--ink-soft); font-size:.85rem; text-align:center; padding:20px; }

/* NEWSLETTER */
.newsletter{ background:var(--gandham); text-align:center; }
.newsletter form{ display:flex; gap:10px; max-width:440px; margin:22px auto 0; }
.newsletter input{ flex:1; padding:13px 16px; border-radius:5px; border:1px solid var(--gandham-deep); font-family:inherit; font-size:.9rem; background:var(--card); }
.newsletter button{ background:var(--kumkum); color:#fff; border:none; padding:0 22px; border-radius:5px; font-weight:700; font-size:.85rem; }
.newsletter button:hover{ background:var(--kumkum-deep); }

/* FOOTER */
.temple-home-template footer{ background:#22100C; color:#e7d3ba; padding:64px 0 0; }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:44px; border-bottom:1px solid rgba(240,215,138,.15); }
.foot-brand{ display:flex; gap:12px; align-items:flex-start; }
.foot-brand svg{ width:44px; height:44px; flex:none; }
.foot-brand .telugu{ color:var(--pasupu-bright); font-size:1rem; }
.foot-brand p{ font-size:.82rem; line-height:1.6; margin-top:10px; color:#c9ac8a; }
.temple-home-template footer h5{ font-family:'Cinzel',serif; color:var(--pasupu-bright); font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:16px; }
.temple-home-template footer ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.temple-home-template footer ul a{ font-size:.87rem; color:#e7d3ba; }
.temple-home-template footer ul a:hover{ color:var(--pasupu-bright); }
.foot-social{ display:flex; gap:12px; margin-top:16px; }
.foot-social a{ width:36px; height:36px; border-radius:50%; border:1px solid rgba(240,215,138,.35); display:flex; align-items:center; justify-content:center; }
.foot-social a:hover{ background:var(--kumkum); border-color:var(--kumkum); }
.foot-bottom{ display:flex; justify-content:space-between; padding:22px 0; font-size:.78rem; color:#a98763; flex-wrap:wrap; gap:10px; }

/* RESPONSIVE */
@media (max-width:980px){
  nav.links{ display:none; }
  .menu-toggle{ display:block; }
  .info-grid{ grid-template-columns:repeat(2,1fr); }
  .info-item:nth-child(3){ border-left:none; }
  .about-wrap, .loc-wrap{ grid-template-columns:1fr; }
  .grid-3{ grid-template-columns:repeat(2,1fr); }
  .grid-4{ grid-template-columns:repeat(2,1fr); }
  .gallery-grid{ grid-template-columns:repeat(3,1fr); }
  .foot-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:640px){
  .temple-home-template section{ padding:56px 0; }
  .grid-3, .grid-4{ grid-template-columns:1fr; }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:120px; }
  .info-grid{ grid-template-columns:1fr; }
  .info-item{ border-left:none !important; border-top:1px solid rgba(240,215,138,0.25); }
  .info-item:first-child{ border-top:none; }
  .foot-grid{ grid-template-columns:1fr; }
  .newsletter form{ flex-direction:column; }
}

/* Single seva/festival pages */
.about div > p:first-child{ margin-top:0; }
.book-pill[style*="cursor:not-allowed"]{ opacity:.7; }

/* Gallery lightbox (vanilla JS, no plugin) */
.temple-lightbox-overlay{
	position:fixed; inset:0; background:rgba(20,8,6,0.94); z-index:9999;
	display:none; align-items:center; justify-content:center;
}
.temple-lightbox-overlay.open{ display:flex; }
.temple-lightbox-content{ max-width:90vw; max-height:85vh; text-align:center; }
.temple-lightbox-content img{ max-width:90vw; max-height:78vh; border-radius:6px; box-shadow:0 20px 60px rgba(0,0,0,.5); margin:0 auto; }
.temple-lightbox-caption{ color:#f1e6d3; margin-top:14px; font-size:.9rem; }
.temple-lightbox-close{
	position:absolute; top:20px; right:24px; background:none; border:none; color:#fff; font-size:2.2rem;
	line-height:1; cursor:pointer;
}
.temple-lightbox-nav{
	position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.12); border:1px solid rgba(240,185,61,.5);
	color:#fff; width:48px; height:48px; border-radius:50%; font-size:1.4rem; cursor:pointer;
}
.temple-lightbox-nav:hover{ background:var(--kumkum); }
.temple-lightbox-nav.prev{ left:24px; } .temple-lightbox-nav.next{ right:24px; }
@media (max-width:640px){
	.temple-lightbox-nav{ width:38px; height:38px; }
	.temple-lightbox-nav.prev{ left:8px; } .temple-lightbox-nav.next{ right:8px; }
	.temple-lightbox-close{ top:12px; right:14px; }
}

/* Native WordPress Gallery block, styled to match the temple design */
.temple-gallery-content{ padding-bottom:20px; }
.temple-gallery-content .wp-block-image img,
.temple-gallery-content .wp-block-gallery img{
	border-radius:8px;
	box-shadow:0 6px 18px rgba(58,20,16,0.12);
}
.temple-gallery-content figcaption{
	color:var(--ink-soft);
	font-size:.82rem;
	margin-top:8px;
	text-align:center;
}

/* Uploaded site logo — a fixed-size circular badge, independent of
   whatever dimensions the uploaded file actually is. !important is used
   deliberately here since GeneratePress's own logo CSS can otherwise
   override sizing set by a child theme. */
.brand-mark-logo{ width:56px; height:56px; flex:none; display:block; position:relative; padding-right:18px; }
.brand-mark-logo::after{
	content:''; position:absolute; right:0; top:50%; transform:translateY(-50%);
	width:1px; height:34px; background:var(--gandham-deep);
}
.brand-mark-logo a{ display:block; width:100%; height:100%; }
.brand-mark-logo img,
img.temple-logo-img{
	width:56px !important; height:56px !important;
	max-width:56px !important; max-height:56px !important;
	border-radius:50% !important; object-fit:cover;
	border:2.5px solid var(--pasupu); box-shadow:0 3px 10px rgba(58,20,16,.25), 0 0 0 4px var(--gandham-pale);
	display:block; transition:opacity .25s ease, transform .25s ease;
}
.foot-brand-logo{ width:44px; height:44px; flex:none; display:block; }
.foot-brand-logo a{ display:block; width:100%; height:100%; }
.foot-brand-logo img{
	width:44px !important; height:44px !important;
	max-width:44px !important; max-height:44px !important;
	border-radius:50% !important; object-fit:cover; border:2px solid var(--pasupu-bright);
	display:block;
}

/* Sticky header: hide the logo once scrolled, keep the bar compact.
   Reappears automatically once scrolled back near the top (same rule,
   just removed when scroll position drops below the threshold). */
header.header-scrolled{ padding:2px 0; }
header.header-scrolled .brand-mark-logo,
header.header-scrolled .brand-mark{
	width:0; padding-right:0; opacity:0; transform:scale(.6);
	overflow:hidden; margin:0; pointer-events:none;
}
header.header-scrolled .brand-mark-logo::after{ opacity:0; }
.brand-mark{ transition:opacity .25s ease, transform .25s ease, width .25s ease; }
.brand-mark-logo{ transition:opacity .25s ease, transform .25s ease, width .25s ease, padding .25s ease; }

@media (max-width:640px){
	.brand-mark-logo, .brand-mark-logo img{ width:42px !important; height:42px !important; max-width:42px !important; max-height:42px !important; }
	.brand-mark-logo{ padding-right:12px; }
	.brand-mark-logo::after{ height:26px; }
}
