/* ======================================================
   VISHWA SHANTI YOGA SCHOOL — Bootstrap 5 Custom Theme
   ====================================================== */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,600&family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600;700&display=swap');

:root {
  --saffron:       #d97b3a;
  --saffron-light: #f5c07a;
  --saffron-dark:  #b85e20;
  --green:         #2d6142;
  --green-light:   #4d8f62;
  --brown:         #4a2e0f;
  --cream:         #fdf6ec;
  --cream-mid:     #f5e9d5;
  --gold:          #c9963d;
  --text:          #2a2a2a;
  --text-muted:    #6b6b6b;
  --border:        #e8ddc8;
  --white:         #ffffff;
  --bs-primary:    #d97b3a;
}

/* --- Base --- */
body { font-family: 'Lora', serif; color: var(--text); background: #fff; overflow-x: hidden; font-size: 1rem; }
h1,h2,h3,h4,h5,h6 { font-family: 'Playfair Display', serif; color: var(--brown); line-height: 1.3; letter-spacing: .5px; }
p { color: var(--text-muted); line-height: 1.85; font-family: 'Lora', serif; }
small, .small, label, .form-label, .nav-link, .btn, .eyebrow, .topbar, .footer-link, .footer-heading, .breadcrumb { font-family: 'Inter', sans-serif !important; }
img { max-width: 100%; }
a { transition: all .25s ease; }
section { position: relative; }

/* --- Topbar --- */
.topbar { background: var(--brown); font-size: .8rem; padding: 7px 0; }
.topbar a:hover { color: var(--saffron-light) !important; }

/* --- Navbar --- */
.main-nav { background: #fff; padding: 0; box-shadow: 0 2px 20px rgba(0,0,0,.07); }
.navbar-brand img { height: 58px; width: auto; }
.nav-link { font-size: .85rem; font-weight: 600; color: var(--text) !important; padding: 1.1rem .9rem !important; letter-spacing: .2px; position: relative; }
.nav-link:hover, .nav-link.active { color: var(--saffron) !important; }
.nav-link::after { content:''; position:absolute; bottom:0; left:.9rem; right:.9rem; height:2px; background:var(--saffron); transform:scaleX(0); transition:.25s ease; }
.nav-link:hover::after, .nav-link.active::after { transform:scaleX(1); }
.dropdown-menu { border:none; box-shadow:0 8px 30px rgba(0,0,0,.10); border-radius:8px; padding:.5rem 0; min-width:220px; }
.dropdown-item { font-size:.84rem; padding:.6rem 1.2rem; color:var(--text); }
.dropdown-item:hover { background:var(--cream); color:var(--saffron); }
.btn-apply { background: var(--saffron); color: #fff !important; border-radius: 40px; padding: .5rem 1.4rem !important; font-size: .85rem !important; }
.btn-apply:hover { background: var(--saffron-dark); color: #fff !important; }
.btn-apply::after { display:none !important; }

/* --- Hero Carousel --- */
.hero-carousel { position: relative; }
.hero-slide {
  position: relative;
  height: 62vh;
  min-height: 480px;
  max-height: 620px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: cover;
  background-position: center;
}
.hero-slide::before { content:''; position:absolute; inset:0; background: linear-gradient(160deg, rgba(58,35,8,.80) 0%, rgba(35,75,50,.65) 100%); }
.hero-slide .container {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  width: 100%;
}
.hero-content {
  position: relative;
  z-index: 2;
  color: #fff;
  text-align: center;
  width: 100%;
  max-width: 760px;
  padding: 48px 24px;
}
.hero-badge {
  display: inline-block;
  border: 1px solid rgba(255,255,255,.4);
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(4px);
  border-radius: 40px;
  padding: 5px 20px;
  font-size: .72rem;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  margin-bottom: 1rem;
  font-family: 'Inter', sans-serif;
}
.hero-title {
  font-size: clamp(1.8rem, 4.5vw, 3.2rem);
  font-weight: 700;
  line-height: 1.25;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0,0,0,.45);
  margin-bottom: .9rem;
  font-family: 'Playfair Display', serif;
  letter-spacing: .5px;
}
.hero-text {
  font-size: .97rem;
  opacity: .9;
  max-width: 540px;
  margin: 0 auto 1.8rem;
  color: #fff;
  font-family: 'Lora', serif;
  line-height: 1.75;
}
.hero-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.hero-stat strong { font-size:1.7rem; font-family:'Playfair Display',serif; color:var(--saffron-light); display:block; line-height:1.1; }
.hero-stat span { font-size:.68rem; letter-spacing:1.5px; text-transform:uppercase; opacity:.75; font-family:'Inter',sans-serif; }
.hero-stats-bar { background:rgba(0,0,0,.38); backdrop-filter:blur(10px); border-top:1px solid rgba(255,255,255,.1); padding:16px 0; }
.carousel-control-prev, .carousel-control-next { width:44px; }
.carousel-indicators { bottom:12px; }
.carousel-indicators [data-bs-target] { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.45); border:none; margin:0 4px; }
.carousel-indicators .active { background:var(--saffron); width:24px; border-radius:4px; }

/* --- Breadcrumb global fix --- */
.breadcrumb { --bs-breadcrumb-divider-color: rgba(255,255,255,.5); --bs-breadcrumb-item-active-color: #fff; }
.breadcrumb-item a { color: rgba(255,255,255,.65) !important; text-decoration: none; }
.breadcrumb-item a:hover { color: var(--saffron-light) !important; }
.breadcrumb-item.active { color: #fff !important; }
.breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.4); }

/* --- Section Styles --- */
.section-pad { padding: 90px 0; }
.section-pad-sm { padding: 60px 0; }
.bg-cream { background: var(--cream); }
.eyebrow { font-size:.78rem; text-transform:uppercase; letter-spacing:2.5px; color:var(--saffron); font-family:'Inter',sans-serif; display:block; margin-bottom:.5rem; }
.section-title { font-size:clamp(1.8rem,3vw,2.5rem); color:var(--brown); margin-bottom:.6rem; }
.divider-line { width:50px; height:3px; background:var(--saffron); border-radius:2px; margin:.8rem auto 1.5rem; }
.divider-line.left { margin-left:0; }

/* --- About --- */
.about-img { border-radius:12px; overflow:hidden; box-shadow:0 16px 48px rgba(0,0,0,.12); }
.about-img img { width:100%; height:440px; object-fit:cover; }
.about-badge { background:var(--white); border:1px solid var(--border); border-radius:10px; padding:14px 20px; text-align:center; }
.about-badge strong { display:block; font-size:1.2rem; color:var(--saffron); font-family:'Playfair Display',serif; }
.about-badge span { font-size:.72rem; color:var(--text-muted); }

/* --- Why Cards --- */
.why-card { background:#fff; border-radius:12px; padding:32px 24px; text-align:center; box-shadow:0 4px 20px rgba(0,0,0,.07); transition:.25s ease; border:1px solid var(--border); height:100%; }
.why-card:hover { transform:translateY(-5px); box-shadow:0 12px 36px rgba(0,0,0,.13); border-color:var(--saffron-light); }
.why-icon { width:64px; height:64px; background:var(--cream); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 1rem; font-size:1.7rem; border:2px solid var(--cream-mid); }
.why-card h5 { font-size:1.05rem; color:var(--brown); margin-bottom:.5rem; }
.why-card p { font-size:.84rem; margin:0; }

/* --- Courses --- */
.course-card { background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 4px 24px rgba(0,0,0,.08); transition:.3s ease; border:1px solid var(--border); height:100%; display:flex; flex-direction:column; }
.course-card:hover { transform:translateY(-6px); box-shadow:0 14px 40px rgba(0,0,0,.14); }
.course-card.featured { border:2px solid var(--saffron); }
.course-thumb { position:relative; overflow:hidden; }
.course-thumb img { width:100%; height:220px; object-fit:cover; transition:.4s ease; }
.course-card:hover .course-thumb img { transform:scale(1.05); }
.course-badge { position:absolute; top:12px; left:12px; background:var(--saffron); color:#fff; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.8px; padding:4px 12px; border-radius:40px; }
.course-badge.popular { background:var(--green); }
.course-body { padding:22px; flex:1; display:flex; flex-direction:column; }
.course-body h4 { font-size:1.15rem; color:var(--brown); margin-bottom:.5rem; }
.course-body p { font-size:.85rem; flex:1; }
.course-meta span { font-size:.78rem; color:var(--text-muted); margin-right:12px; }
.course-price { font-size:1.55rem; font-family:'Playfair Display',serif; font-weight:700; color:var(--green); letter-spacing:.5px; }
.course-price small { font-size:.75rem; font-weight:400; color:var(--text-muted); font-family:'Inter',sans-serif; letter-spacing:0; }
.course-includes { background:var(--cream); border-radius:10px; padding:28px; margin-top:48px; }
.course-includes h4 { font-size:1.2rem; color:var(--brown); text-align:center; margin-bottom:1.2rem; }
.include-item { display:flex; gap:8px; align-items:flex-start; font-size:.86rem; color:var(--text-muted); margin-bottom:.5rem; }
.include-item i { color:var(--green); margin-top:3px; flex-shrink:0; }

/* --- Stats Banner --- */
.stats-banner { background: linear-gradient(135deg, var(--green) 0%, var(--brown) 100%); }
.stat-box strong { font-size:2.8rem; font-family:'Playfair Display',serif; color:var(--cream); display:block; line-height:1; letter-spacing:1px; }
.stat-box span { font-size:.8rem; letter-spacing:1px; text-transform:uppercase; color:rgba(255,255,255,.75); margin-top:4px; display:block; }

/* --- Retreats --- */
.retreat-card { background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,.07); transition:.3s ease; border:1px solid var(--border); }
.retreat-card:hover { transform:translateY(-5px); box-shadow:0 12px 36px rgba(0,0,0,.13); }
.retreat-thumb img { width:100%; height:200px; object-fit:cover; transition:.4s; }
.retreat-card:hover .retreat-thumb img { transform:scale(1.05); }
.retreat-price { font-size:1.45rem; font-family:'Playfair Display',serif; font-weight:700; color:var(--green); letter-spacing:.5px; }

/* --- Faculty --- */
.faculty-card { border-radius:14px; overflow:hidden; background:#fff; box-shadow:0 4px 20px rgba(0,0,0,.08); transition:.3s ease; }
.faculty-card:hover { transform:translateY(-5px); box-shadow:0 12px 36px rgba(0,0,0,.14); }
.faculty-img { position:relative; overflow:hidden; }
.faculty-img img { width:100%; height:280px; object-fit:cover; object-position:top; transition:.4s; }
.faculty-card:hover .faculty-img img { transform:scale(1.05); }
.faculty-role { font-size:.75rem; color:var(--saffron); font-weight:700; text-transform:uppercase; letter-spacing:.8px; }
.faculty-body { padding:20px; }
.faculty-body h5 { font-size:1.1rem; color:var(--brown); margin-bottom:4px; }
.faculty-body p { font-size:.82rem; margin:0; }

/* --- Testimonials --- */
.testimonial-card { background:#fff; border-radius:12px; padding:28px; box-shadow:0 4px 20px rgba(0,0,0,.07); border-left:4px solid var(--saffron); transition:.25s; height:100%; }
.testimonial-card:hover { transform:translateY(-3px); box-shadow:0 10px 32px rgba(0,0,0,.12); }
.stars { color:#f5a623; font-size:.9rem; letter-spacing:1px; }
.t-text { font-style:italic; font-size:.9rem; margin:10px 0 16px; }
.t-author img { width:42px; height:42px; border-radius:50%; object-fit:cover; border:2px solid var(--cream-mid); }
.t-author strong { font-size:.87rem; color:var(--brown); }
.t-author span { font-size:.76rem; color:var(--text-muted); }

/* --- FAQ --- */
.accordion-button { font-size:.96rem; font-weight:600; color:var(--brown); background:transparent; box-shadow:none !important; }
.accordion-button:not(.collapsed) { color:var(--saffron); background:var(--cream); }
.accordion-button::after { filter:hue-rotate(190deg); }
.accordion-item { border:1px solid var(--border); border-radius:8px !important; margin-bottom:.5rem; overflow:hidden; }

/* --- Blog --- */
.blog-card { background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,.07); transition:.3s; border:1px solid var(--border); height:100%; display:flex; flex-direction:column; }
.blog-card:hover { transform:translateY(-4px); box-shadow:0 12px 36px rgba(0,0,0,.12); }
.blog-thumb img { width:100%; height:200px; object-fit:cover; transition:.4s; }
.blog-card:hover .blog-thumb img { transform:scale(1.05); }
.blog-thumb { overflow:hidden; }
.blog-cat { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--saffron); }
.blog-body { padding:20px; flex:1; display:flex; flex-direction:column; }
.blog-body h5 { font-size:1rem; color:var(--brown); margin:.5rem 0 .6rem; }
.blog-body p { font-size:.84rem; flex:1; }

/* --- Contact --- */
.contact-info-card { background:var(--cream); border-radius:12px; padding:32px; height:100%; }
.ci-item { display:flex; gap:14px; align-items:flex-start; margin-bottom:20px; }
.ci-icon { width:44px; height:44px; background:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--saffron); font-size:1.1rem; flex-shrink:0; box-shadow:0 2px 8px rgba(0,0,0,.08); }
.ci-item strong { display:block; font-size:.84rem; color:var(--brown); margin-bottom:2px; }
.ci-item span, .ci-item a { font-size:.86rem; color:var(--text-muted); }
.ci-item a:hover { color:var(--saffron); }
.contact-form-card { background:#fff; border-radius:12px; padding:36px; box-shadow:0 6px 30px rgba(0,0,0,.08); }
.form-label { font-size:.82rem; font-weight:600; color:var(--text); }
.form-control, .form-select { border:1.5px solid var(--border); border-radius:8px; font-size:.87rem; padding:.65rem .9rem; transition:.2s; }
.form-control:focus, .form-select:focus { border-color:var(--saffron); box-shadow:0 0 0 3px rgba(217,123,58,.12); }
.map-wrapper { border-radius:12px; overflow:hidden; box-shadow:0 4px 16px rgba(0,0,0,.10); margin-top:20px; }

/* --- Footer --- */
.footer-main { background:var(--brown); color:rgba(255,255,255,.8); padding:60px 0 0; }
.footer-logo img { height:70px; width:auto; }
.footer-about p { font-size:.84rem; line-height:1.8; margin:14px 0 20px; opacity:.8; }
.social-link { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.1); display:inline-flex; align-items:center; justify-content:center; color:rgba(255,255,255,.8); font-size:.85rem; transition:.25s; text-decoration:none; }
.social-link:hover { background:var(--saffron); color:#fff; }
.footer-heading { font-size:.83rem; text-transform:uppercase; letter-spacing:1.5px; color:var(--saffron-light); margin-bottom:1rem; font-family:'Inter',sans-serif; }
.footer-link { display:block; font-size:.84rem; color:rgba(255,255,255,.7); padding:4px 0; text-decoration:none; transition:.2s; }
.footer-link:hover { color:var(--saffron-light); padding-left:4px; }
.footer-nl input { border-radius:6px; border:none; font-size:.84rem; padding:.6rem .9rem; width:100%; margin-bottom:.5rem; }
.footer-nl button { width:100%; font-size:.84rem; }
.footer-bottom { background:rgba(0,0,0,.25); padding:16px 0; font-size:.78rem; color:rgba(255,255,255,.55); }

/* --- Buttons --- */
.btn-saffron { background:var(--saffron); color:#fff; border-radius:40px; padding:.65rem 1.6rem; font-size:.88rem; font-weight:600; border:none; transition:.25s; }
.btn-saffron:hover { background:var(--saffron-dark); color:#fff; transform:translateY(-2px); }
.btn-saffron-outline { border:2px solid #fff; color:#fff; border-radius:40px; padding:.6rem 1.4rem; font-size:.88rem; font-weight:600; background:transparent; transition:.25s; }
.btn-saffron-outline:hover { background:#fff; color:var(--saffron); }
.btn-green { background:var(--green); color:#fff; border-radius:40px; padding:.6rem 1.4rem; font-size:.87rem; font-weight:600; border:none; transition:.25s; }
.btn-green:hover { background:var(--green-light); color:#fff; transform:translateY(-2px); }

/* --- Floating Buttons --- */
.whatsapp-btn { position:fixed; bottom:28px; right:28px; width:54px; height:54px; border-radius:50%; background:#25d366; display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.5rem; box-shadow:0 4px 20px rgba(37,211,102,.45); z-index:9999; transition:.25s; text-decoration:none; }
.whatsapp-btn:hover { transform:scale(1.1); color:#fff; }
.scroll-top-btn { position:fixed; bottom:92px; right:28px; width:42px; height:42px; border-radius:50%; background:var(--saffron); color:#fff; border:none; font-size:1rem; box-shadow:0 4px 16px rgba(0,0,0,.15); z-index:999; cursor:pointer; opacity:0; pointer-events:none; transition:.25s; display:flex; align-items:center; justify-content:center; }
.scroll-top-btn.show { opacity:1; pointer-events:auto; }

/* --- Section Specific --- */
.pattern-bg { background-image: url('../extro/image/pattern-chakras-alt-color.png'); background-repeat:repeat; background-size:300px; }
.dropin-box { background:var(--white); border-radius:12px; padding:22px 28px; box-shadow:0 4px 20px rgba(0,0,0,.07); border-left:4px solid var(--green); }

/* --- Responsive --- */
@media (max-width: 991px) {
  .navbar-collapse { padding: 1rem 0; }
  .nav-link { padding:.7rem .5rem !important; }
  .nav-link::after { display:none; }
  .hero-slide { min-height:70vh; }
  .hero-stats-bar { display:none !important; }
}
@media (max-width: 767px) {
  .section-pad { padding:60px 0; }
  .topbar .d-md-block { display:none !important; }
  .hero-slide { min-height:85vh; text-align:center; }
  .hero-text { margin-left:auto; margin-right:auto; }
  .about-img img { height:260px; }
}
