/*
Theme Name: Sri Bhuvaneswari Devi Temple
Theme URI: https://bhuvaneswaridevi.org/
Author: Temple Web Team
Author URI: https://bhuvaneswaridevi.org/
Description: A premium, fully responsive custom WordPress theme built for Sri Bhuvaneswari Devi Temple, Kailasa Puri, Chalamareddy Palle, Kadapa, Andhra Pradesh. Modeled on the layout, navigation flow and feature set of a modern temple website, featuring a hero slider, donation/e-hundi section, seva booking, temple timings, festivals, galleries and spiritual resources. Built with Bootstrap 5.3, Swiper.js and Font Awesome 6. Gutenberg and Elementor compatible.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.0
Author: Temple Web Team
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: bhuvaneswari-devi
Tags: custom-menu, custom-logo, featured-images, translation-ready, threaded-comments, one-column, two-columns, right-sidebar, theme-options, full-width-template

Sri Bhuvaneswari Devi Temple WordPress Theme is distributed under the terms of the GNU GPL v2 or later.
*/

/* =========================================================
   0. CSS VARIABLES / THEME TOKENS
========================================================= */
:root{
  --bdt-maroon: #7A1128;
  --bdt-maroon-dark: #4F0A19;
  --bdt-maroon-light: #9E2338;
  --bdt-gold: #C9A227;
  --bdt-gold-light: #F1DFA0;
  --bdt-cream: #FFF8EC;
  --bdt-cream-dark: #F6ECD9;
  --bdt-ink: #2B1810;
  --bdt-text: #4A362C;
  --bdt-white: #FFFFFF;
  --bdt-shadow: 0 10px 30px rgba(122,17,40,0.12);
  --bdt-radius: 14px;
  --bdt-font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --bdt-font-body: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --bdt-transition: all 0.3s ease;
}

/* =========================================================
   1. BASE / RESET
========================================================= */
*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  font-family: var(--bdt-font-body);
  color: var(--bdt-text);
  background-color: var(--bdt-cream);
  line-height: 1.7;
  overflow-x: hidden;
}
h1,h2,h3,h4,h5,h6{
  font-family: var(--bdt-font-heading);
  color: var(--bdt-maroon-dark);
  font-weight: 700;
}
a{ color: var(--bdt-maroon); text-decoration: none; transition: var(--bdt-transition); }
a:hover{ color: var(--bdt-gold); }
img{ max-width: 100%; height: auto; display: block; }
.btn{ border-radius: 50px; font-weight: 600; padding: .7rem 1.8rem; transition: var(--bdt-transition); letter-spacing: .3px; }
.btn-temple-primary{
  background: linear-gradient(135deg, var(--bdt-maroon), var(--bdt-maroon-light));
  color: var(--bdt-white);
  border: none;
  box-shadow: var(--bdt-shadow);
}
.btn-temple-primary:hover{ background: var(--bdt-gold); color: var(--bdt-maroon-dark); transform: translateY(-2px); }
.btn-temple-outline{
  background: transparent;
  border: 2px solid var(--bdt-gold);
  color: var(--bdt-maroon-dark);
}
.btn-temple-outline:hover{ background: var(--bdt-gold); color: var(--bdt-white); }

.section-padding{ padding: 80px 0; }
.section-title{ text-align: center; margin-bottom: 50px; }
.section-title .eyebrow{
  display: inline-block;
  color: var(--bdt-gold);
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: .8rem;
  font-weight: 700;
  margin-bottom: 10px;
}
.section-title h2{ font-size: 2.4rem; margin-bottom: 10px; }
.section-title .divider{
  width: 90px;
  height: 3px;
  margin: 15px auto 0;
  background: linear-gradient(90deg, transparent, var(--bdt-gold), transparent);
}
.section-title p{ max-width: 700px; margin: 15px auto 0; color: var(--bdt-text); }
.bg-cream-dark{ background-color: var(--bdt-cream-dark); }
.bg-maroon{ background-color: var(--bdt-maroon) !important; color: var(--bdt-white); }
.bg-maroon h2, .bg-maroon h3, .bg-maroon h4{ color: var(--bdt-white); }

/* =========================================================
   2. TOP BAR & HEADER
========================================================= */
.bdt-topbar{
  background: var(--bdt-maroon-dark);
  color: var(--bdt-gold-light);
  font-size: .85rem;
  padding: 6px 0;
}
.bdt-topbar a{ color: var(--bdt-gold-light); margin-right: 18px; }
.bdt-topbar a:hover{ color: var(--bdt-white); }
.bdt-topbar .social-icons a{
  display: inline-flex; align-items:center; justify-content:center;
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(255,255,255,0.08); margin-left: 6px; margin-right: 0;
}

.site-header{
  background: var(--bdt-white);
  box-shadow: 0 2px 15px rgba(122,17,40,0.08);
  position: sticky;
  top: 0;
  z-index: 999;
  transition: var(--bdt-transition);
}
.site-header.scrolled{ box-shadow: 0 4px 20px rgba(122,17,40,0.18); }
.site-branding{ display: flex; align-items: center; gap: 14px; padding: 10px 0; }
.site-branding img.custom-logo{ max-height: 70px; width: auto; border-radius: 8px; }
.site-title{ font-size: 1.5rem; margin: 0; line-height: 1.2; }
.site-title a{ color: var(--bdt-maroon-dark); }
.site-description{ font-size: .8rem; color: var(--bdt-text); margin: 0; text-transform: uppercase; letter-spacing: 1px; }

.navbar-temple{ padding: 0; }
.navbar-temple .navbar-nav{ margin-left: auto; }
.navbar-temple .nav-link{
  color: var(--bdt-maroon-dark) !important;
  font-weight: 600;
  padding: 1.3rem .9rem !important;
  font-size: .93rem;
  text-transform: uppercase;
  letter-spacing: .5px;
  position: relative;
}
.navbar-temple .nav-link:hover, .navbar-temple .nav-link:focus{ color: var(--bdt-gold) !important; }
.navbar-temple .nav-item.active > .nav-link{ color: var(--bdt-gold) !important; }
.navbar-temple .dropdown-menu{
  border: none; border-radius: 10px; box-shadow: var(--bdt-shadow);
  padding: 8px; border-top: 3px solid var(--bdt-gold);
}
.navbar-temple .dropdown-item{ border-radius: 6px; padding: 8px 14px; font-size: .9rem; }
.navbar-temple .dropdown-item:hover{ background: var(--bdt-cream-dark); color: var(--bdt-maroon); }
.header-cta{ display:flex; align-items:center; gap:10px; }
.header-cta .btn{ padding: .5rem 1.2rem; font-size: .85rem; }

@media (min-width: 992px){
  .navbar-temple .dropdown:hover > .dropdown-menu{ display:block; margin-top:0; }
  .navbar-temple .dropdown-submenu{ position: relative; }
  .navbar-temple .dropdown-submenu > .dropdown-menu{ top:0; left:100%; margin-top:-8px; }
}

/* =========================================================
   3. HERO SLIDER
========================================================= */
.hero-slider{ position: relative; }
.hero-slider .swiper-slide{
  height: 620px;
  background-size: cover;
  background-position: center;
  position: relative;
  display: flex;
  align-items: center;
}
.hero-slider .swiper-slide::before{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(79,10,25,.55) 0%, rgba(79,10,25,.75) 100%);
}
.hero-caption{ position: relative; z-index: 2; color: var(--bdt-white); max-width: 700px; }
.hero-caption .eyebrow{ color: var(--bdt-gold); text-transform: uppercase; letter-spacing: 3px; font-weight: 700; }
.hero-caption h1{ color: var(--bdt-white); font-size: 3rem; margin-bottom: 18px; }
.hero-caption p{ font-size: 1.15rem; margin-bottom: 28px; color: var(--bdt-gold-light); }
.hero-slider .swiper-button-next, .hero-slider .swiper-button-prev{ color: var(--bdt-gold); }
.hero-slider .swiper-pagination-bullet{ background: var(--bdt-white); opacity:.6; }
.hero-slider .swiper-pagination-bullet-active{ background: var(--bdt-gold); opacity:1; }

@media (max-width: 767px){
  .hero-slider .swiper-slide{ height: 460px; }
  .hero-caption h1{ font-size: 2rem; }
}

/* =========================================================
   4. WELCOME / ABOUT
========================================================= */
.welcome-section{ position: relative; }
.welcome-media{ position: relative; }
.welcome-media img{ border-radius: var(--bdt-radius); box-shadow: var(--bdt-shadow); }
.welcome-media .deity-frame{
  position:absolute; bottom:-25px; right:-25px;
  border: 6px solid var(--bdt-white); border-radius: var(--bdt-radius);
  box-shadow: var(--bdt-shadow); width: 45%;
  display:none;
}
@media(min-width: 768px){ .welcome-media .deity-frame{ display:block; } }
.stat-box{ text-align:center; padding: 20px; }
.stat-box .num{ font-family: var(--bdt-font-heading); font-size: 2.2rem; color: var(--bdt-maroon); font-weight:700; }
.stat-box .label{ text-transform: uppercase; font-size: .8rem; letter-spacing: 1px; }

/* =========================================================
   5. DASHA MAHA VIDYA / CARD GRIDS
========================================================= */
.vidya-card, .seva-card, .resource-card, .highlight-card{
  background: var(--bdt-white);
  border-radius: var(--bdt-radius);
  padding: 30px 24px;
  text-align: center;
  height: 100%;
  box-shadow: 0 6px 18px rgba(122,17,40,0.06);
  transition: var(--bdt-transition);
  border-bottom: 4px solid transparent;
}
.vidya-card:hover, .seva-card:hover, .resource-card:hover, .highlight-card:hover{
  transform: translateY(-8px);
  box-shadow: var(--bdt-shadow);
  border-bottom-color: var(--bdt-gold);
}
.vidya-card .icon-circle, .seva-card .icon-circle, .resource-card .icon-circle, .highlight-card .icon-circle{
  width: 70px; height:70px; border-radius:50%;
  background: linear-gradient(135deg, var(--bdt-maroon), var(--bdt-maroon-light));
  color: var(--bdt-gold-light);
  display:flex; align-items:center; justify-content:center;
  font-size: 1.6rem; margin: 0 auto 18px;
}
.vidya-card h3, .seva-card h3, .resource-card h3, .highlight-card h4{ font-size: 1.15rem; margin-bottom: 10px; }

/* =========================================================
   6. DONATION / E-HUNDI
========================================================= */
.donation-section{
  background: linear-gradient(135deg, var(--bdt-maroon-dark), var(--bdt-maroon));
  color: var(--bdt-white);
  border-radius: var(--bdt-radius);
  padding: 60px 40px;
  position: relative;
  overflow: hidden;
}
.donation-section::after{
  content:"\f6de"; font-family:"Font Awesome 6 Free"; font-weight:900;
  position:absolute; right:-20px; bottom:-40px; font-size: 220px; color: rgba(255,255,255,0.05);
}
.donation-section h2{ color: var(--bdt-white); }
.donation-card{
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px;
  padding: 26px;
  text-align:center;
  height:100%;
}
.donation-card .amount{ font-size:1.6rem; font-weight:700; color: var(--bdt-gold-light); font-family: var(--bdt-font-heading); }
.donation-card .btn{ margin-top: 14px; }
.donation-quick-amounts .form-check{
  background: var(--bdt-white); border-radius: 8px; padding: 10px 15px; margin-bottom: 10px;
}

/* =========================================================
   7. FESTIVALS
========================================================= */
.festival-card{
  border-radius: var(--bdt-radius);
  overflow:hidden;
  box-shadow: var(--bdt-shadow);
  height: 100%;
  background: var(--bdt-white);
}
.festival-card .festival-img{ height: 220px; overflow:hidden; position:relative; }
.festival-card .festival-img img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.festival-card:hover .festival-img img{ transform: scale(1.08); }
.festival-date-badge{
  position:absolute; top:15px; left:15px;
  background: var(--bdt-gold); color: var(--bdt-maroon-dark);
  border-radius: 8px; padding: 6px 12px; text-align:center; font-weight:700; line-height:1.1;
}
.festival-card .festival-body{ padding: 22px; }

/* =========================================================
   8. GALLERY
========================================================= */
.gallery-item{ border-radius: var(--bdt-radius); overflow:hidden; position:relative; margin-bottom: 24px; box-shadow: var(--bdt-shadow); }
.gallery-item img{ width:100%; height: 260px; object-fit:cover; transition: var(--bdt-transition); }
.gallery-item:hover img{ transform: scale(1.06); }
.gallery-item .overlay{
  position:absolute; inset:0; background: linear-gradient(0deg, rgba(79,10,25,.85), transparent 60%);
  display:flex; align-items:flex-end; padding: 16px; opacity:0; transition: var(--bdt-transition);
}
.gallery-item:hover .overlay{ opacity:1; }
.gallery-item .overlay span{ color: var(--bdt-white); font-weight:600; }
.gallery-filter{ text-align:center; margin-bottom: 34px; }
.gallery-filter button{
  background:none; border: 2px solid var(--bdt-gold); color: var(--bdt-maroon-dark);
  border-radius: 50px; padding: 7px 20px; margin: 4px; font-weight:600; font-size:.85rem; transition: var(--bdt-transition);
}
.gallery-filter button.active, .gallery-filter button:hover{ background: var(--bdt-gold); color: var(--bdt-white); }

/* =========================================================
   9. TESTIMONIALS
========================================================= */
.testimonial-card{
  background: var(--bdt-white); border-radius: var(--bdt-radius); padding: 34px; text-align:center;
  box-shadow: var(--bdt-shadow); margin: 10px;
}
.testimonial-card .quote-icon{ color: var(--bdt-gold); font-size: 2rem; margin-bottom: 14px; }
.testimonial-card img{ width:70px; height:70px; object-fit:cover; border-radius:50%; margin: 0 auto 14px; border: 3px solid var(--bdt-gold-light); }
.testimonial-card .name{ font-weight:700; color: var(--bdt-maroon-dark); }
.testimonial-card .role{ font-size:.8rem; color: var(--bdt-text); text-transform:uppercase; letter-spacing:.5px; }

/* =========================================================
   10. NEWS / BLOG
========================================================= */
.news-card{ background: var(--bdt-white); border-radius: var(--bdt-radius); overflow:hidden; box-shadow: var(--bdt-shadow); height:100%; }
.news-card .news-img{ height: 210px; overflow:hidden; }
.news-card .news-img img{ width:100%; height:100%; object-fit:cover; transition: var(--bdt-transition); }
.news-card:hover .news-img img{ transform: scale(1.08); }
.news-card .news-body{ padding: 22px; }
.news-card .news-date{ color: var(--bdt-gold); font-size: .8rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; }
.news-card h3{ font-size: 1.1rem; margin: 8px 0; }
.news-card h3 a{ color: var(--bdt-maroon-dark); }

/* =========================================================
   11. TEMPLE TIMINGS / CONTACT
========================================================= */
.timing-box{
  background: var(--bdt-white); border-radius: var(--bdt-radius); box-shadow: var(--bdt-shadow);
  padding: 30px; text-align:center; height:100%;
}
.timing-box i{ font-size: 2rem; color: var(--bdt-gold); margin-bottom: 14px; }
.contact-info-box{ background: var(--bdt-white); border-radius: var(--bdt-radius); box-shadow: var(--bdt-shadow); padding: 30px; }
.contact-info-box .info-row{ display:flex; gap: 14px; margin-bottom: 18px; }
.contact-info-box .info-row i{ color: var(--bdt-gold); font-size:1.3rem; width: 30px; }
.map-wrap{ border-radius: var(--bdt-radius); overflow:hidden; box-shadow: var(--bdt-shadow); }
.map-wrap iframe{ width:100%; height: 420px; border:0; }

/* =========================================================
   12. FORMS
========================================================= */
.temple-form .form-control, .temple-form .form-select{
  border-radius: 8px; border: 1px solid #e2d3c5; padding: .7rem 1rem; margin-bottom: 16px;
}
.temple-form .form-control:focus, .temple-form .form-select:focus{
  border-color: var(--bdt-gold); box-shadow: 0 0 0 .2rem rgba(201,162,39,.2);
}

/* =========================================================
   13. FOOTER
========================================================= */
.site-footer{ background: var(--bdt-maroon-dark); color: rgba(255,255,255,.85); }
.footer-widgets{ padding: 70px 0 30px; }
.site-footer h5{ color: var(--bdt-gold-light); font-size: 1.1rem; margin-bottom: 20px; }
.site-footer a{ color: rgba(255,255,255,.75); }
.site-footer a:hover{ color: var(--bdt-gold); }
.footer-links li{ margin-bottom: 10px; }
.footer-links a i{ margin-right: 8px; color: var(--bdt-gold); }
.footer-social a{
  display:inline-flex; align-items:center; justify-content:center;
  width: 38px; height: 38px; border-radius: 50%;
  background: rgba(255,255,255,.08); margin-right: 8px;
}
.footer-social a:hover{ background: var(--bdt-gold); color: var(--bdt-maroon-dark); }
.footer-bottom{
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 18px 0; font-size: .85rem; text-align:center;
}
.footer-bottom a{ color: var(--bdt-gold-light); }

/* Back to top */
#back-to-top{
  position: fixed; right: 24px; bottom: 24px; width: 46px; height:46px; border-radius:50%;
  background: var(--bdt-maroon); color: var(--bdt-gold-light); border:none;
  display:flex; align-items:center; justify-content:center; font-size: 1.1rem;
  box-shadow: var(--bdt-shadow); opacity:0; visibility:hidden; transform: translateY(10px);
  transition: var(--bdt-transition); z-index: 1000;
}
#back-to-top.show{ opacity:1; visibility:visible; transform: translateY(0); }
#back-to-top:hover{ background: var(--bdt-gold); color: var(--bdt-maroon-dark); }

/* =========================================================
   14. PAGE / SINGLE / ARCHIVE / 404 / COMMENTS
========================================================= */
.page-hero{
  background: linear-gradient(135deg, var(--bdt-maroon-dark), var(--bdt-maroon));
  color: var(--bdt-white); padding: 70px 0; text-align:center;
}
.page-hero h1{ color: var(--bdt-white); margin-bottom: 8px; }
.page-hero .breadcrumb{ justify-content:center; background:transparent; margin:0; }
.page-hero .breadcrumb a{ color: var(--bdt-gold-light); }
.page-hero .breadcrumb-item.active{ color: rgba(255,255,255,.7); }

.content-area{ padding: 60px 0; }
.entry-content img{ border-radius: var(--bdt-radius); }
.entry-content{ line-height:1.85; }
.widget{ background: var(--bdt-white); border-radius: var(--bdt-radius); box-shadow: var(--bdt-shadow); padding: 24px; margin-bottom: 30px; }
.widget-title{ font-size: 1.1rem; border-bottom: 2px solid var(--bdt-gold-light); padding-bottom: 10px; margin-bottom: 18px; }
.widget ul{ list-style:none; padding:0; margin:0; }
.widget ul li{ padding: 8px 0; border-bottom: 1px dashed #eadfca; }

.error-404{ text-align:center; padding: 100px 0; }
.error-404 .code{ font-family: var(--bdt-font-heading); font-size: 7rem; color: var(--bdt-gold); font-weight:700; line-height:1; }

.comment-list{ list-style:none; padding:0; }
.comment-body{ background: var(--bdt-white); border-radius: var(--bdt-radius); padding: 20px; margin-bottom: 20px; box-shadow: 0 4px 14px rgba(122,17,40,.06); }
.comment-meta .comment-author{ font-weight:700; color: var(--bdt-maroon-dark); }
.comment-reply-link{ display:inline-block; margin-top:8px; font-size:.85rem; font-weight:600; }

.pagination .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  width: 40px; height: 40px; margin: 0 4px; border-radius:50%;
  background: var(--bdt-white); color: var(--bdt-maroon); box-shadow: 0 2px 8px rgba(122,17,40,.08);
}
.pagination .page-numbers.current, .pagination .page-numbers:hover{ background: var(--bdt-maroon); color: var(--bdt-white); }

/* Utility */
.text-gold{ color: var(--bdt-gold) !important; }
.fw-temple-bold{ font-weight:700; }
@media (max-width: 991px){
  .navbar-temple .navbar-nav{ margin-top: 15px; }
  .navbar-temple .nav-link{ padding: .7rem 0 !important; }
}
