/* =====================================================================
   Tithi Yoga Karna Kendra — Astro Thanikasalam
   New UI: Tamil almanac / dusk-sky identity
   Indigo → plum → temple-maroon | marigold saffron | palm-leaf parchment
   ===================================================================== */

/* ---------- Tokens ------------------------------------------------ */
:root{
  --indigo:      #1a1440;
  --indigo-2:    #241a5c;
  --plum:        #4a2a5e;
  --saffron:     #e8a33d;
  --saffron-2:   #f6c669;
  --brass:       #c9992b;
  --kumkum:      #9b2226;
  --kumkum-2:    #b5322f;
  --parchment:   #f5eee0;
  --parchment-2: #efe6d3;
  --ink:         #241c14;
  --muted:       #756a56;
  --white:       #fff;

  --grad-dusk:   linear-gradient(160deg,#14103a 0%, #241a5c 42%, #4a2a5e 78%, #7a2f3a 112%);
  --grad-saffron:linear-gradient(120deg,#e8a33d 0%, #f6c669 50%, #c9992b 100%);
  --grad-kumkum: linear-gradient(135deg,#b5322f,#9b2226 70%,#6d181b);

  --shadow-sm:   0 6px 22px rgba(26,20,64,.10);
  --shadow-md:   0 18px 46px rgba(26,20,64,.18);
  --shadow-gold: 0 12px 34px rgba(232,163,61,.34);

  --radius:      16px;
  --radius-lg:   24px;
  --ease:        cubic-bezier(.22,.61,.36,1);

  --f-en:  'Fraunces', Georgia, serif;      /* English display */
  --f-ta:  'Noto Serif Tamil', serif;        /* Tamil display   */
  --f-body:'Hind Madurai', system-ui, sans-serif; /* body: Tamil + Latin */

  --nav-h: 86px;
}

/* ---------- Base -------------------------------------------------- */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; font-family:var(--f-body); color:var(--ink);
  background:var(--parchment); line-height:1.75; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ text-decoration:none; transition:color .3s var(--ease); }
section{ position:relative; }
::selection{ background:var(--saffron); color:var(--indigo); }

.en{ font-family:var(--f-en); }
.ta{ font-family:var(--f-ta); }

h1,h2,h3,h4,h5,h6{ font-family:var(--f-en); font-weight:600; line-height:1.15; letter-spacing:.2px; }
/* Tamil headings get the Tamil serif automatically when tagged */
h1.ta,h2.ta,h3.ta,h4.ta,.title-ta{ font-family:var(--f-ta); font-weight:600; }

a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,.btn:focus-visible{
  outline:3px solid var(--saffron); outline-offset:3px;
}

.text-saffron{ color:var(--saffron)!important; }
.text-kumkum{ color:var(--kumkum)!important; }

.section-pad{ padding:clamp(60px,8.5vw,120px) 0; }

/* Eyebrow */
.eyebrow{
  font-family:var(--f-body); font-weight:600; font-size:.74rem;
  letter-spacing:.3em; text-transform:uppercase; color:var(--kumkum);
  display:inline-flex; align-items:center; gap:.7rem; margin-bottom:.9rem;
}
.eyebrow::before{ content:"\2748"; color:var(--saffron); font-size:.9rem; }
.eyebrow.on-dark{ color:var(--saffron-2); }

.section-title{ font-size:clamp(1.85rem,3.4vw,2.9rem); color:var(--indigo); margin-bottom:1rem; }
.section-title.on-dark{ color:var(--white); }
.lead{ color:var(--muted); max-width:640px; }
.lead.on-dark{ color:rgba(255,255,255,.78); }

/* Decorative divider */
.divider{ display:flex; align-items:center; justify-content:center; gap:.8rem; color:var(--saffron); margin:.6rem 0 1.4rem; }
.divider::before,.divider::after{ content:""; height:1px; width:46px; background:linear-gradient(90deg,transparent,var(--brass)); }
.divider.center::before{ background:linear-gradient(90deg,transparent,var(--brass)); }

/* ---------- Buttons ---------------------------------------------- */
.btn{
  font-family:var(--f-body); font-weight:600; letter-spacing:.02em;
  border:none; border-radius:60px; padding:.82rem 1.9rem;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), background .3s;
}
.btn:hover{ transform:translateY(-3px); }
.btn-saffron{ background:var(--grad-saffron); color:var(--indigo); box-shadow:var(--shadow-gold); }
.btn-saffron:hover{ color:#120c2e; }
.btn-kumkum{ background:var(--grad-kumkum); color:#fff; box-shadow:0 12px 30px rgba(155,34,38,.34); }
.btn-kumkum:hover{ color:#fff; }
.btn-outline-saffron{ background:transparent; border:1.5px solid var(--saffron); color:var(--saffron); }
.btn-outline-saffron:hover{ background:var(--saffron); color:var(--indigo); }
.btn-ghost-ink{ background:#fff; color:var(--indigo); box-shadow:var(--shadow-sm); }
.btn-ghost-ink:hover{ color:var(--kumkum); }

/* ---------- Loader ----------------------------------------------- */
#loader{ position:fixed; inset:0; z-index:9999; background:var(--grad-dusk);
  display:grid; place-items:center; transition:opacity .6s, visibility .6s; }
#loader.hidden{ opacity:0; visibility:hidden; }
.om-load{ width:90px; height:90px; border-radius:50%;
  border:3px solid rgba(232,163,61,.2); border-top-color:var(--saffron);
  animation:spin 1s linear infinite; display:grid; place-items:center; }
.om-load::after{ content:"\0B13"; font-family:var(--f-ta); color:var(--saffron); font-size:1.9rem; }
@keyframes spin{ to{ transform:rotate(360deg);} }

/* ---------- Announcement bar + Header ---------------------------- */
.topbar{ background:var(--indigo); color:rgba(255,255,255,.82); font-size:.82rem; }
.topbar a{ color:rgba(255,255,255,.82); }
.topbar a:hover{ color:var(--saffron); }
.topbar .soc a{ width:30px; height:30px; display:inline-grid; place-items:center; border-radius:8px;
  background:rgba(255,255,255,.07); }
.topbar .soc a:hover{ background:var(--saffron); color:var(--indigo); }

.site-header{ position:sticky; top:0; z-index:1030; background:rgba(245,238,224,.92);
  backdrop-filter:blur(12px); transition:box-shadow .35s, padding .35s, background .35s; }
.site-header.scrolled{ box-shadow:0 10px 34px rgba(26,20,64,.14); background:rgba(245,238,224,.97); }
.brand{ display:flex; align-items:center; gap:.75rem; }
.brand-badge{ width:56px; height:56px; border-radius:50%; flex:0 0 auto;
  background:var(--grad-dusk); display:grid; place-items:center; color:var(--saffron);
  font-size:1.5rem; border:2px solid var(--brass); box-shadow:var(--shadow-sm); }
.brand-name{ font-family:var(--f-en); font-weight:600; font-size:1.15rem; color:var(--indigo); line-height:1.05; }
.brand-name span{ color:var(--kumkum); }
.brand-sub{ font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); }

.navbar-nav .nav-link{ color:var(--indigo); font-weight:500; padding:.5rem .95rem!important; position:relative; }
.navbar-nav .nav-link::after{ content:""; position:absolute; left:.95rem; right:.95rem; bottom:.28rem; height:2px;
  background:var(--saffron); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.navbar-nav .nav-link:hover{ color:var(--kumkum); }
.navbar-nav .nav-link.active{ color:var(--kumkum); }
.navbar-nav .nav-link:hover::after,.navbar-nav .nav-link.active::after{ transform:scaleX(1); }

@media (max-width: 991.98px){
  .navbar-nav .nav-link::after{ display:none; }
  .navbar-nav .nav-link.active{ color:var(--saffron); background:rgba(232,163,61,.12); border-radius:999px; }
}

.phone-btn{ background:var(--grad-dusk); color:#fff; border-radius:60px; padding:.6rem 1.2rem;
  display:inline-flex; align-items:center; gap:.5rem; font-weight:600; box-shadow:var(--shadow-sm); }
.phone-btn i{ color:var(--saffron); }
.phone-btn:hover{ color:#fff; transform:translateY(-2px); }
.navbar-toggler{ border-color:rgba(155,34,38,.4); color:var(--kumkum); }

/* ---------- Hero + Rasi chart (signature) ------------------------ */
/* .hero{ background:var(--grad-dusk); color:#fff; overflow:hidden; padding:clamp(48px,7vw,86px) 0 clamp(60px,8vw,110px); } */
/* .hero::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(55% 55% at 78% 30%, rgba(232,163,61,.16), transparent 70%),
             radial-gradient(45% 45% at 15% 85%, rgba(155,34,38,.22), transparent 70%); } */
.hero{ padding:0; margin:0; overflow:hidden; width:100vw; position:relative; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw; }
.hero{ width:100vw; position:relative; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw; }
.hero .container{ position:relative; z-index:3; }
.hero-carousel-shell{ position:relative; width:100%; margin:0; padding:0; }
.heroSwiper{ position:relative; overflow:hidden; border-radius:24px; box-shadow:0 20px 60px rgba(0,0,0,.22); width:100%; margin:0; padding:0; }
.heroSwiper .swiper-wrapper{ width:100% !important; }
.heroSwiper .swiper-slide{ display:flex; justify-content:center; align-items:center; background:rgba(255,255,255,.04); min-height:800PX; }
.hero-banner-img{ width:100%; height:100%; min-height:inherit; max-height:min(70vh,560px);
   display:block; object-fit:cover ;}
.hero-prev,.hero-next{ position:absolute; top:50%; transform:translateY(-50%); z-index:4; width:46px; height:46px; border:none; border-radius:50%; display:grid; place-items:center; color:#fff; background:rgba(10,8,28,.55); backdrop-filter:blur(8px); cursor:pointer; transition:transform .2s ease, background .2s ease; }
.hero-prev:hover,.hero-next:hover{ transform:translateY(-50%) scale(1.05); background:rgba(232,163,61,.9); color:var(--indigo); }
.hero-prev{ left:16px; }
.hero-next{ right:16px; }
.hero-pagination{ position:absolute; left:50%; bottom:16px; transform:translateX(-50%); z-index:4; display:flex; gap:.5rem; }
.hero-pagination .swiper-pagination-bullet{ width:10px; height:10px; background:rgba(255,255,255,.7); opacity:1; transition:width .25s ease, background .25s ease; }
.hero-pagination .swiper-pagination-bullet-active{ width:28px; border-radius:999px; background:var(--saffron); }

@media (max-width: 991.98px){
  .heroSwiper{ border-radius:0; }
  .hero-prev,.hero-next{ width:40px; height:40px; }
}

.stars{ position:absolute; inset:0; z-index:1; overflow:hidden; }
.star{ position:absolute; border-radius:50%; background:#fff; opacity:.7;
  animation:twinkle var(--dur,3s) ease-in-out infinite; }
@keyframes twinkle{ 0%,100%{opacity:.15; transform:scale(.6)} 50%{opacity:1; transform:scale(1)} }

.hero-kicker{ display:inline-flex; align-items:center; gap:.6rem; font-size:.78rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--saffron-2); font-weight:600;
  border:1px solid rgba(232,163,61,.34); border-radius:60px; padding:.4rem 1rem; margin-bottom:1.3rem; }
.hero-title{ font-size:clamp(1.9rem,4.4vw,3.3rem); color:#fff; margin-bottom:.7rem; line-height:1.22; }
.hero-title.ta{ font-family:var(--f-ta); font-weight:600; }
.hero-en{ font-family:var(--f-en); font-style:italic; color:var(--saffron-2);
  font-size:clamp(1.05rem,2vw,1.4rem); display:block; margin-bottom:1.1rem; }
.hero-sub{ color:rgba(255,255,255,.82); max-width:540px; margin-bottom:1.8rem; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:.75rem; }

/* Rasi chart */
.rasi-stage{ display:grid; place-items:center; position:relative; z-index:2; }
.rasi-frame{ width:min(90%,430px); aspect-ratio:1; position:relative;
  background:rgba(255,255,255,.03); border:2px solid rgba(232,163,61,.5);
  border-radius:14px; box-shadow:0 0 60px rgba(232,163,61,.18), inset 0 0 40px rgba(0,0,0,.3);
  padding:10px; }
.rasi-svg{ width:100%; height:100%; }
.rasi-svg .cell{ fill:none; stroke:rgba(232,163,61,.4); stroke-width:1.4; }
.rasi-svg .rasi-label{ fill:var(--saffron-2); font-family:var(--f-ta); font-size:15px; }
.rasi-svg .rasi-num{ fill:rgba(255,255,255,.45); font-size:11px; font-family:var(--f-body); }
.rasi-svg .center-txt{ fill:var(--saffron); font-family:var(--f-ta); font-size:22px; }
.rasi-svg .center-sun{ fill:var(--saffron); }
.rasi-glow{ fill:rgba(232,163,61,.22); stroke:var(--saffron); stroke-width:2;
  transition:transform 1s var(--ease); filter:drop-shadow(0 0 8px rgba(232,163,61,.7)); }
.rasi-badge{ position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  background:var(--grad-saffron); color:var(--indigo); font-weight:700; font-size:.7rem;
  letter-spacing:.12em; text-transform:uppercase; padding:.3rem 1rem; border-radius:60px; white-space:nowrap; }

@keyframes spin{ to{ transform:rotate(360deg);} }
@media (prefers-reduced-motion: reduce){
  .star,.om-load,.floaty{ animation:none!important; }
  .rasi-glow{ transition:none!important; }
  html{ scroll-behavior:auto; }
}

/* ---------- Panchangam strip (extra) ----------------------------- */
.panchang{ background:var(--indigo); border-top:2px solid var(--brass); padding:0; margin:0; }
.panchang .container{ padding:0 0.75rem; }
.panchang .p-item{ text-align:center; padding:1rem .4rem; position:relative; }
.panchang .p-item:not(:last-child)::after{ content:""; position:absolute; right:0; top:22%; bottom:22%;
  width:1px; background:rgba(232,163,61,.22); }
.panchang small{ display:block; color:var(--saffron-2); font-size:.68rem; letter-spacing:.18em;
  text-transform:uppercase; margin-bottom:.35rem; }
.panchang b{ color:#fff; font-family:var(--f-ta); font-weight:600; font-size:1.02rem; }
.panchang .p-date{ color:rgba(255,255,255,.6); font-size:.8rem; }

/* ---------- About guru ------------------------------------------- */
.guru-frame{ position:relative; }
.guru-media{ border-radius:var(--radius-lg); overflow:hidden; background:var(--grad-dusk);
  box-shadow:var(--shadow-md); aspect-ratio:4/5; }
.guru-media img{ width:100%; height:100%; object-fit:cover; }
.guru-media .placeholder{ display:grid; place-items:center; height:100%; color:var(--saffron); text-align:center; padding:2rem; }
.guru-media .placeholder i{ font-size:3rem; margin-bottom:1rem; }
.seal{ position:absolute; right:-18px; bottom:-18px; background:#fff; border-radius:18px;
  box-shadow:var(--shadow-md); padding:1rem 1.2rem; display:flex; gap:.8rem; align-items:center; }
.seal i{ color:var(--kumkum); font-size:1.7rem; }
.seal strong{ display:block; font-family:var(--f-en); font-size:1.15rem; color:var(--indigo); }
.seal small{ color:var(--muted); }
.about-list li{ display:flex; gap:.8rem; margin-bottom:.9rem; color:var(--muted); }
.about-list i{ color:var(--kumkum); margin-top:.35rem; }

/* ---------- Services --------------------------------------------- */
.svc-card{ background:#fff; border-radius:var(--radius-lg); overflow:hidden; height:100%;
  box-shadow:var(--shadow-sm); border:1px solid rgba(26,20,64,.06);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.svc-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-md); }
.svc-media{ aspect-ratio:16/10; overflow:hidden; background:var(--grad-dusk); position:relative; }
.svc-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.svc-card:hover .svc-media img{ transform:scale(1.07); }
.svc-tag{ position:absolute; top:14px; left:14px; background:var(--grad-kumkum); color:#fff;
  font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700;
  padding:.35rem .8rem; border-radius:60px; }
.svc-body{ padding:1.6rem 1.6rem 1.8rem; }
.svc-body h3{ font-family:var(--f-ta); font-size:1.4rem; color:var(--indigo); margin-bottom:.5rem; }
.svc-body p{ color:var(--muted); font-size:.95rem; margin-bottom:1rem; }
.svc-more{ color:var(--kumkum); font-weight:600; }
.svc-more i{ transition:transform .3s var(--ease); }
.svc-card:hover .svc-more i{ transform:translateX(5px); }

/* small consultation chips */
.consult{ background:#fff; border-radius:var(--radius); padding:1.2rem 1rem; text-align:center;
  box-shadow:var(--shadow-sm); height:100%; transition:transform .3s var(--ease); border:1px solid rgba(26,20,64,.05); }
.consult:hover{ transform:translateY(-5px); }
.consult i{ font-size:1.5rem; color:var(--saffron); background:var(--indigo); width:56px; height:56px;
  border-radius:16px; display:grid; place-items:center; margin:0 auto .8rem; }
.consult h6{ font-family:var(--f-ta); color:var(--indigo); margin:0 0 .2rem; font-weight:600; }
.consult small{ color:var(--muted); }

/* ---------- Trust band ------------------------------------------- */
.trust{ background:var(--grad-dusk); color:#fff; }
.trust .stars{ z-index:0; }
.trust .container{ position:relative; z-index:2; }
.trust-item{ text-align:center; padding:1rem; }
.trust-num{ font-family:var(--f-en); font-size:clamp(2.2rem,5vw,3.2rem); color:var(--saffron); line-height:1; }
.trust-item p{ color:rgba(255,255,255,.72); margin:.5rem 0 0; }
.trust-badge{ display:flex; align-items:center; gap:.9rem; background:rgba(255,255,255,.05);
  border:1px solid rgba(232,163,61,.22); border-radius:var(--radius); padding:1.1rem 1.2rem; height:100%; }
.trust-badge i{ color:var(--saffron); font-size:1.5rem; }
.trust-badge b{ display:block; }
.trust-badge small{ color:rgba(255,255,255,.6); }

/* ---------- Courses ---------------------------------------------- */
.course-card{ background:#fff; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm);
  border:1px solid rgba(26,20,64,.06); transition:transform .4s var(--ease), box-shadow .4s var(--ease); height:100%; }
.course-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-md); }
.course-media{ aspect-ratio:16/9; background:var(--grad-saffron); position:relative; overflow:hidden; display:grid; place-items:center; }
.course-media .cm-glyph{ font-family:var(--f-ta); font-size:2.4rem; color:var(--indigo); text-align:center; padding:1rem; }
.course-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.premium-tag{ position:absolute; top:12px; left:12px; z-index:2; background:var(--grad-kumkum); color:#fff;
  font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; padding:.3rem .8rem; border-radius:6px; }
.course-body{ padding:1.3rem 1.4rem 1.5rem; }
.course-body h4{ font-size:1.15rem; color:var(--indigo); margin-bottom:.25rem; }
.course-body .meta{ color:var(--muted); font-size:.82rem; margin-bottom:.8rem; }
.stars-row{ color:var(--saffron); font-size:.82rem; }
.price{ font-family:var(--f-en); font-size:1.4rem; color:var(--kumkum); }
.price .was{ color:var(--muted); font-size:.85rem; text-decoration:line-through; font-family:var(--f-body); margin-right:.4rem; }
.price .free{ color:#2e7d32; font-weight:700; }

/* ---------- Videos ----------------------------------------------- */
.video-sec{ background:var(--parchment-2); }
.vfilter{ display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; }
.chip{ border:1.5px solid rgba(26,20,64,.15); background:#fff; color:var(--indigo);
  border-radius:60px; padding:.45rem 1.2rem; font-size:.85rem; font-weight:500; cursor:pointer; transition:all .3s var(--ease); }
.chip.active,.chip:hover{ background:var(--indigo); color:#fff; border-color:var(--indigo); }
.video-card{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); background:#fff; display:block; height:100%; }
.video-thumb{ aspect-ratio:16/9; background:var(--grad-dusk); position:relative; overflow:hidden; }
.video-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.video-card:hover .video-thumb img{ transform:scale(1.07); }
.video-thumb .play{ position:absolute; inset:0; display:grid; place-items:center; }
.video-thumb .play i{ width:56px; height:56px; border-radius:50%; background:rgba(155,34,38,.92); color:#fff;
  display:grid; place-items:center; font-size:1.2rem; box-shadow:0 6px 20px rgba(0,0,0,.4); transition:transform .3s var(--ease); }
.video-card:hover .play i{ transform:scale(1.12); }
.video-meta{ padding:.9rem 1rem 1.1rem; }
.video-meta h6{ color:var(--indigo); font-family:var(--f-ta); font-weight:600; font-size:1rem; margin:0 0 .2rem;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.video-meta small{ color:var(--muted); }

/* ---------- Testimonials ----------------------------------------- */
.testi-card{ background:#fff; border-radius:var(--radius-lg); padding:2.2rem 1.9rem; height:100%;
  box-shadow:var(--shadow-sm); border:1px solid rgba(26,20,64,.05); position:relative; }
.testi-card .q{ color:var(--saffron); font-size:2rem; opacity:.6; }
.testi-card p{ color:var(--ink); }
.testi-stars{ color:var(--saffron); margin-bottom:.5rem; }
.testi-who{ display:flex; align-items:center; gap:.85rem; margin-top:1.2rem; }
.testi-av{ width:50px; height:50px; border-radius:50%; background:var(--grad-dusk); color:var(--saffron);
  display:grid; place-items:center; font-family:var(--f-en); flex:0 0 auto; }
.testi-who h6{ margin:0; color:var(--indigo); }
.testi-who small{ color:var(--muted); }
.swiper-pagination-bullet{ background:var(--indigo); opacity:.25; }
.swiper-pagination-bullet-active{ background:var(--kumkum); opacity:1; }

/* ---------- Jathagam form ---------------------------------------- */
.jathagam{ background:var(--grad-dusk); color:#fff; overflow:hidden; }
.jathagam .stars{ z-index:0; }
.jathagam .container{ position:relative; z-index:2; }
.jat-card{ background:rgba(255,255,255,.05); border:1px solid rgba(232,163,61,.22);
  border-radius:var(--radius-lg); padding:2rem; backdrop-filter:blur(6px); }
.jathagam .form-label{ color:rgba(255,255,255,.82); font-size:.86rem; font-weight:500; }
.jathagam .form-control,.jathagam .form-select{ background:rgba(255,255,255,.94); border:none; border-radius:12px; padding:.7rem 1rem; }
.jathagam .form-control:focus,.jathagam .form-select:focus{ box-shadow:0 0 0 3px rgba(232,163,61,.5); }
.jat-disclaimer{ color:var(--saffron-2); font-size:.8rem; }
.jat-side .about-list li{ color:rgba(255,255,255,.78); }
.jat-side .about-list i{ color:var(--saffron); }

/* ---------- Footer ----------------------------------------------- */
.site-footer{ background:var(--indigo); color:rgba(255,255,255,.72); }
.site-footer h6{ color:var(--saffron); font-family:var(--f-en); font-size:1.05rem; margin-bottom:1.1rem; }
.foot-link{ color:rgba(255,255,255,.68); display:block; padding:.26rem 0; }
.foot-link:hover{ color:var(--saffron); padding-left:.3rem; }
.foot-brand p{ max-width:300px; }
.foot-soc{ display:flex; gap:.55rem; }
.foot-soc a{ width:40px; height:40px; border-radius:11px; background:rgba(255,255,255,.06); color:#fff;
  display:grid; place-items:center; transition:all .3s var(--ease); }
.foot-soc a:hover{ background:var(--grad-saffron); color:var(--indigo); transform:translateY(-3px); }
.foot-bottom{ border-top:1px solid rgba(255,255,255,.09); }
.foot-bottom a{ color:rgba(255,255,255,.68); }
.foot-bottom a:hover{ color:var(--saffron); }

/* ---------- Floating buttons ------------------------------------- */
#toTop,.wa-float{ position:fixed; z-index:1040; width:52px; height:52px; border-radius:50%;
  display:grid; place-items:center; cursor:pointer; border:none; box-shadow:var(--shadow-md);
  transition:transform .35s var(--ease), opacity .35s, visibility .35s; }
.wa-float{ right:22px; bottom:22px; background:#25d366; color:#fff; font-size:1.5rem; }
.wa-float:hover{ transform:translateY(-4px); color:#fff; }
#toTop{ right:22px; bottom:86px; background:var(--grad-saffron); color:var(--indigo); font-size:1.1rem;
  opacity:0; visibility:hidden; transform:translateY(10px); }
#toTop.show{ opacity:1; visibility:visible; transform:translateY(0); }
#toTop:hover{ transform:translateY(-4px); }

/* ---------- Responsive ------------------------------------------- */
@media (max-width:991.98px){
  .navbar-collapse{ background:var(--parchment); border-radius:16px; padding:1rem; margin-top:.6rem;  }
  .hero{ text-align:center; }
  .hero-sub,.hero .eyebrow,.hero-cta{ margin-left:auto; margin-right:auto; justify-content:center; }
  .rasi-stage{ margin-top:2.6rem; }
  .seal{ right:10px; }
}
@media (max-width:575.98px){
  .panchang .p-item:not(:last-child)::after{ display:none; }
  .btn{ padding:.72rem 1.4rem; }
}

/* =====================================================================
   INNER PAGE COMPONENTS
   ===================================================================== */

/* ---------- Page banner ------------------------------------------ */
.page-banner{ background:var(--grad-dusk); color:#fff; overflow:hidden;
  padding:clamp(56px,8vw,96px) 0 clamp(48px,6vw,72px); text-align:center; }
.page-banner::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(50% 60% at 50% 0%, rgba(232,163,61,.16), transparent 70%); }
.page-banner .container{ position:relative; z-index:3; }
.page-banner h1{ font-size:clamp(2rem,4.5vw,3.1rem); color:#fff; margin-bottom:.6rem; }
.page-banner h1.ta{ font-family:var(--f-ta); }
.page-banner p{ color:rgba(255,255,255,.78); max-width:600px; margin:0 auto; }
.crumbs{ display:inline-flex; align-items:center; gap:.5rem; margin-top:1rem;
  font-size:.82rem; color:rgba(255,255,255,.6); }
.crumbs a{ color:var(--saffron-2); }
.crumbs a:hover{ color:#fff; }
.crumbs i{ font-size:.6rem; opacity:.6; }

/* ---------- Section heading kit (reuse) -------------------------- */
.head-center{ text-align:center; max-width:680px; margin:0 auto clamp(36px,5vw,56px); }

/* ---------- Timeline --------------------------------------------- */
.timeline{ position:relative; padding-left:2rem; }
.timeline::before{ content:""; position:absolute; left:8px; top:6px; bottom:6px; width:2px;
  background:linear-gradient(var(--saffron),transparent); }
.tl-item{ position:relative; padding-bottom:1.8rem; }
.tl-item::before{ content:""; position:absolute; left:-1.72rem; top:6px; width:14px; height:14px;
  border-radius:50%; background:var(--saffron); box-shadow:0 0 0 4px rgba(232,163,61,.2); }
.tl-item h6{ font-family:var(--f-en); color:var(--kumkum); margin:0 0 .2rem; font-size:1.05rem; }
.tl-item .yr{ font-family:var(--f-en); font-weight:700; color:var(--indigo); font-size:.9rem; }
.tl-item p{ color:var(--muted); margin:.3rem 0 0; font-size:.95rem; }

/* ---------- Certificate frame ------------------------------------ */
.cert-frame{ background:#fff; padding:14px; border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md); border:1px solid rgba(26,20,64,.06); }
.cert-frame img{ width:100%; border-radius:12px; }
.cert-cap{ color:var(--muted); font-size:.85rem; text-align:center; margin-top:.8rem; }

/* ---------- Value cards (mission/vision) ------------------------- */
.value-card{ background:#fff; border-radius:var(--radius-lg); padding:2rem 1.8rem; height:100%;
  box-shadow:var(--shadow-sm); border:1px solid rgba(26,20,64,.06);
  transition:transform .4s var(--ease); }
.value-card:hover{ transform:translateY(-6px); }
.value-card .vi{ width:60px; height:60px; border-radius:16px; display:grid; place-items:center;
  font-size:1.5rem; color:var(--saffron); background:var(--indigo); margin-bottom:1.1rem; }
.value-card h4{ color:var(--indigo); margin-bottom:.5rem; }
.value-card p{ color:var(--muted); margin:0; }

/* ---------- Detailed service rows -------------------------------- */
.svc-row-media{ border-radius:var(--radius-lg); overflow:hidden; background:var(--grad-dusk);
  box-shadow:var(--shadow-md); aspect-ratio:4/3; }

/* ---------- COMPREHENSIVE MOBILE FIX: Overflow-x & White space --- */

@media (max-width: 768.98px){
.hero-banner-img {
    height: 100% !important;
}
.heroSwiper .swiper-slide {
	min-height: 100% !important;
}
}

@media (max-width: 767.98px){
  html, body{ width:100%; overflow-x:hidden; margin:0; padding:0; }
  
  /* Hero carousel full width */
  .hero{ width:100vw; overflow:hidden; margin:0; padding:0; position:relative; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw; }
  .hero-carousel-shell{ width:100vw; max-width:100vw; margin:0; padding:0; }
  .heroSwiper{ border-radius:0; width:100vw; margin:0; padding:0; }
  .heroSwiper .swiper-wrapper{ width:100vw !important; }
  /* .heroSwiper .swiper-slide{ min-height:clamp(220px, 58vh, 380px); } */
  .heroSwiper .swiper-slide{ min-height:100%;}
  .hero-banner-img{ max-height:none;height:250px; 
    object-fit:cover; }
  .hero-prev,.hero-next{ display:none; }
  .hero-pagination{ bottom:12px; }
  
  /* Containers and sections */
  .container, .container-fluid{ padding-left:.75rem; padding-right:.75rem; margin:0 !important; }
  section{ margin:0; padding:0 !important; }
  .section-pad{ padding:1.5rem 0 !important; }
  .panchang { margin:0; padding:0; }
  .panchang .container{ padding:0.75rem !important; }
}
.svc-row-media img{ width:100%; height:100%; object-fit:cover; }
.svc-row h3{ font-family:var(--f-ta); color:var(--indigo); font-size:1.7rem; margin-bottom:.6rem; }
.svc-row .price-pill{ display:inline-flex; align-items:center; gap:.5rem; background:var(--parchment-2);
  border:1px solid rgba(26,20,64,.08); border-radius:60px; padding:.4rem 1rem; color:var(--kumkum);
  font-weight:600; font-size:.9rem; margin-bottom:1rem; }

/* ---------- Course features -------------------------------------- */
.feature-tile{ display:flex; gap:.9rem; align-items:flex-start; }
.feature-tile .ft{ width:46px; height:46px; border-radius:12px; flex:0 0 auto; display:grid; place-items:center;
  background:var(--parchment-2); color:var(--kumkum); font-size:1.15rem; }
.feature-tile h6{ color:var(--indigo); margin:0 0 .15rem; }
.feature-tile p{ color:var(--muted); margin:0; font-size:.92rem; }

/* ---------- FAQ accordion ---------------------------------------- */
.faq .accordion-item{ border:1px solid rgba(26,20,64,.09); border-radius:14px!important;
  margin-bottom:.9rem; overflow:hidden; background:#fff; }
.faq .accordion-button{ font-family:var(--f-en); font-weight:600; color:var(--indigo); padding:1.15rem 1.3rem; }
.faq .accordion-button.ta{ font-family:var(--f-ta); }
.faq .accordion-button:not(.collapsed){ background:rgba(155,34,38,.05); color:var(--kumkum); box-shadow:none; }
.faq .accordion-button:focus{ box-shadow:0 0 0 3px rgba(232,163,61,.35); }
.faq .accordion-button::after{ background-image:none; content:"\2b"; font-family:"Font Awesome 6 Free";
  font-weight:900; color:var(--saffron); width:auto; height:auto; }
.faq .accordion-button:not(.collapsed)::after{ content:"\f068"; transform:none; }
.faq .accordion-body{ color:var(--muted); padding:0 1.3rem 1.2rem; }

/* ---------- Awards ----------------------------------------------- */
.award-card{ background:#fff; border-radius:var(--radius-lg); overflow:hidden; height:100%;
  box-shadow:var(--shadow-sm); border:1px solid rgba(26,20,64,.06); text-align:center;
  padding:2.2rem 1.6rem; transition:transform .4s var(--ease); }
.award-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.award-medal{ width:90px; height:90px; border-radius:50%; margin:0 auto 1.2rem; display:grid; place-items:center;
  background:var(--grad-dusk); color:var(--saffron); font-size:2.2rem; border:2px solid var(--brass); }
.award-card h4{ font-family:var(--f-en); font-style:italic; color:var(--kumkum); margin-bottom:.3rem; }
.award-card p{ color:var(--muted); margin:0; }

/* ---------- Pagination ------------------------------------------- */
.astro-pager{ display:flex; justify-content:center; gap:.5rem; }
.astro-pager a{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center;
  background:#fff; color:var(--indigo); box-shadow:var(--shadow-sm); font-weight:600; }
.astro-pager a.active,.astro-pager a:hover{ background:var(--indigo); color:#fff; }

/* ---------- Contact hours ---------------------------------------- */
.hours-list li{ display:flex; justify-content:space-between; padding:.55rem 0;
  border-bottom:1px dashed rgba(26,20,64,.12); color:var(--muted); }
.hours-list li b{ color:var(--indigo); font-family:var(--f-body); }
.cert-img {
  height: 500px;
  width: 100%;
}
.cert-frame img {
  height: 430px;
  object-fit: cover;
}
@media (max-width: 375.98px){
/* .hero-banner-img {
    max-height: none;
    height:100%;
    object-fit: cover;
} */
.hero-banner-img {
	max-height: none;
	height: 220px;
}
}
@media (max-width: 414.98px){
  .hero-banner-img {
	height: 230px;
}
}