/* ==========================================================================
   Swadhyay — Theme on top of Bootstrap 5.3
   Fonts  : Playfair Display (headings) + Inter (content)
   Colours: taken from the Swadhyay logo (hands, wordmark, sun, petals)
   ========================================================================== */

:root {
  /* Logo palette */
  --sw-ink: #10437C;          /* wordmark brown */
  --sw-ink-2: #0D3866;
  --sw-terra: #2E8B8A;        /* left hand */
  --sw-terra-dark: #23706F;   /* accessible terracotta for buttons/text */
  --sw-blush: #7FD6D3;        /* right hand */
  --sw-sun: #FFF8F0;          /* emblem sun */
  --sw-gold: #FFB61C;         /* yellow petal */
  --sw-blue: #10437C;         /* figure */
  --sw-sky: #20CECF;
  --sw-green: #41AF7B;

  /* Neutrals */
  --sw-bg: #FFFFFF;
  --sw-light: #FFF8F0;
  --sw-sand: #F3E8DC;
  --sw-muted: #556372;
  --sw-line: rgba(16, 67, 124, .12);

  --sw-font-head: 'Playfair Display', Georgia, serif;
  --sw-font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --sw-radius: 18px;
  --sw-shadow: 0 18px 50px -24px rgba(16, 67, 124, .28);
  --sw-shadow-lg: 0 30px 70px -30px rgba(16, 67, 124, .40);

  /* Bootstrap overrides */
  --bs-body-font-family: var(--sw-font-body);
  --bs-body-color: var(--sw-ink);
  --bs-body-bg: var(--sw-bg);
  --bs-primary: var(--sw-terra-dark);
  --bs-primary-rgb: 16, 67, 124;
  --bs-link-color: var(--sw-terra-dark);
  --bs-link-color-rgb: 35, 112, 111;
  --bs-link-hover-color: var(--sw-ink);
  --bs-border-color: var(--sw-line);
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { font-size: 1rem; line-height: 1.75; color: var(--sw-ink); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
h1, h2, h3, h4, h5, .font-head { font-family: var(--sw-font-head); font-weight: 600; line-height: 1.2; color: inherit; letter-spacing: -.01em; }
h5, h6 { font-family: var(--sw-font-body); }
p { color: var(--sw-muted); }
.text-dark-section p { color: rgba(255, 255, 255, .75); }
img { max-width: 100%; height: auto; }
a { text-decoration: none; transition: color .2s; }
::selection { background: var(--sw-blush); color: var(--sw-ink); }

.display-title { font-size: clamp(2.3rem, 4.6vw, 3.9rem); line-height: 1.12; }
.section-title { font-size: clamp(1.9rem, 3.2vw, 2.75rem); }
.lead { font-size: 1.125rem; font-weight: 400; color: var(--sw-muted); }
.accent { color: var(--sw-terra-dark); font-style: italic; }
.accent-light { color: var(--sw-blush); font-style: italic; }
.accent-gold { color: var(--sw-gold); font-style: italic; }
.deva { font-family: var(--sw-font-body); }

.section { padding: 100px 0; position: relative; }
.section-sm { padding: 70px 0; }
.bg-light-warm { background: var(--sw-light); }
.bg-sand { background: var(--sw-sand); }
.bg-ink { background: var(--sw-ink); color: #fff; }
.bg-ink h1, .bg-ink h2, .bg-ink h3, .bg-ink h4 { color: #fff; }
.bg-ink p { color: rgba(255, 255, 255, .72); }
@media (max-width: 767.98px) { .section { padding: 70px 0; } .section-sm { padding: 50px 0; } }

/* Eyebrow label with logo petal */
.eyebrow { display: inline-flex; align-items: center; gap: .6rem; font-size: .8rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--sw-terra-dark); margin-bottom: 1rem; }
.eyebrow::before { content: ""; width: 10px; height: 15px; background: currentColor; border-radius: 0 100% 0 100%; transform: rotate(45deg); flex: none; }
.bg-ink .eyebrow, .eyebrow.light { color: var(--sw-blush); }
.section-head { max-width: 720px; margin-bottom: 3.5rem; }
.section-head.text-center { margin-left: auto; margin-right: auto; }

/* Petal ornament (12 logo colours) */
.petal-bar { height: 4px; background: linear-gradient(90deg, #E53935, #F28C28, #F2C230, #41AF7B, #20CECF, #10437C, #283888, #5A3A22, #10437C); }

/* ---------- Buttons ---------- */
.btn { font-family: var(--sw-font-body); font-weight: 500; border-radius: 50px; padding: .8rem 1.6rem; letter-spacing: .01em; transition: all .25s ease; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; }
.btn-lg { padding: 1rem 2rem; font-size: 1rem; }
.btn-sm { padding: .55rem 1.15rem; font-size: .9rem; }
.btn-primary { --bs-btn-bg: var(--sw-terra-dark); --bs-btn-border-color: var(--sw-terra-dark); --bs-btn-hover-bg: var(--sw-ink); --bs-btn-hover-border-color: var(--sw-ink); --bs-btn-active-bg: var(--sw-ink); --bs-btn-active-border-color: var(--sw-ink); box-shadow: 0 12px 28px -12px rgba(35, 112, 111, .7); }
.btn-primary:hover { transform: translateY(-2px); }
.btn-outline-dark { --bs-btn-color: var(--sw-ink); --bs-btn-border-color: rgba(16, 67, 124, .3); --bs-btn-hover-bg: var(--sw-ink); --bs-btn-hover-border-color: var(--sw-ink); }
.btn-light-warm { background: var(--sw-sun); color: var(--sw-ink); border: 0; }
.btn-light-warm:hover { background: #fff; color: var(--sw-ink); transform: translateY(-2px); }
.btn-outline-light { --bs-btn-border-color: rgba(255, 255, 255, .4); }
.btn i { font-size: 1.05em; transition: transform .25s; }
.btn:hover i.bi-arrow-right, .btn:hover i.bi-arrow-up-right { transform: translateX(3px); }
.link-arrow { font-weight: 500; color: var(--sw-terra-dark); display: inline-flex; align-items: center; gap: .4rem; }
.link-arrow:hover { color: var(--sw-ink); gap: .65rem; }

/* ---------- Top bar + Navbar ---------- */
.topbar { background: var(--sw-ink); color: rgba(255, 255, 255, .75); font-size: .82rem; padding: .45rem 0; }
.topbar a { color: rgba(255, 255, 255, .85); }
.topbar a:hover { color: var(--sw-blush); }
.topbar .bi { color: var(--sw-blush); margin-right: .35rem; }

.site-nav { background: rgba(255, 255, 255, .96); backdrop-filter: blur(12px); padding: .9rem 0; transition: box-shadow .3s, padding .3s; border-bottom: 1px solid transparent; }
.site-nav.scrolled { box-shadow: 0 10px 30px -18px rgba(16, 67, 124, .35); padding: .55rem 0; border-bottom-color: var(--sw-line); }
.site-nav .navbar-brand img { height: 46px; width: auto; transition: height .3s; }
.site-nav.scrolled .navbar-brand img { height: 40px; }
.site-nav .nav-link { font-size: .95rem; font-weight: 500; color: var(--sw-ink); padding: .5rem .9rem !important; position: relative; }
.site-nav .nav-link::after { content: ""; position: absolute; left: .9rem; right: .9rem; bottom: .2rem; height: 2px; background: var(--sw-terra); border-radius: 2px; transform: scaleX(0); transition: transform .3s; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: var(--sw-terra-dark); }
.site-nav .nav-link:hover::after, .site-nav .nav-link.active::after { transform: scaleX(1); }
.navbar-toggler { border: 0; padding: .4rem; }
.navbar-toggler:focus { box-shadow: none; }
@media (max-width: 1199.98px) {
  .site-nav .navbar-collapse { background: #fff; margin-top: .8rem; padding: 1rem; border-radius: var(--sw-radius); box-shadow: var(--sw-shadow); }
  .site-nav .nav-link::after { display: none; }
  .site-nav .nav-link { padding: .7rem .5rem !important; border-bottom: 1px solid var(--sw-line); }
}

/* ---------- Home hero ---------- */
.hero { position: relative; padding: 70px 0 90px; background: radial-gradient(circle at 85% 30%, rgba(127, 214, 211, .35), transparent 45%), radial-gradient(circle at 10% 90%, rgba(234, 217, 199, .55), transparent 40%), var(--sw-light); overflow: hidden; }
.pron-chip { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .4rem .9rem; background: #fff; border: 1px solid var(--sw-line); border-radius: 50px; padding: .5rem 1.1rem; font-size: .9rem; color: var(--sw-muted); box-shadow: 0 8px 20px -16px rgba(16, 67, 124, .4); }
.pron-chip .deva { font-size: 1.3rem; color: var(--sw-terra-dark); font-weight: 600; line-height: 1; }
.pron-chip em { font-family: var(--sw-font-head); color: var(--sw-ink); }
.hero h1 { margin: 1.6rem 0 1.3rem; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 2rem; margin-top: 2.6rem; padding-top: 1.8rem; border-top: 1px solid var(--sw-line); }
.hero-trust div strong { display: block; font-family: var(--sw-font-head); font-size: 1.8rem; color: var(--sw-ink); line-height: 1.1; }
.hero-trust div span { font-size: .85rem; color: var(--sw-muted); }
.hero-visual { position: relative; max-width: 470px; margin-left: auto; isolation: isolate; }
.hero-visual .arch { border-radius: 260px 260px 24px 24px; overflow: hidden; aspect-ratio: 4 / 5; box-shadow: var(--sw-shadow-lg); border: 8px solid #fff; background: var(--sw-sand); }
.hero-visual .arch img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; }
.hero-visual .ring { position: absolute; inset: -40px auto auto -40px; width: 150px; height: 150px; z-index: -1; animation: spin 60s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.float-card { position: absolute; background: #fff; border-radius: 16px; padding: .85rem 1.1rem; box-shadow: var(--sw-shadow); display: flex; align-items: center; gap: .8rem; font-size: .85rem; line-height: 1.35; }
.float-card .ic { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; font-size: 1.2rem; flex: none; }
.float-card strong { display: block; color: var(--sw-ink); font-size: .95rem; }
.float-card span { color: var(--sw-muted); }
.float-card.fc-1 { left: -50px; bottom: 70px; animation: bob 6s ease-in-out infinite; }
.float-card.fc-2 { right: -30px; top: 120px; animation: bob 6s ease-in-out -3s infinite; }
@keyframes bob { 50% { transform: translateY(-10px); } }
@media (max-width: 991.98px) { .hero-visual { margin: 3rem auto 0; max-width: 400px; } .float-card.fc-1 { left: -10px; } .float-card.fc-2 { right: -10px; } }

/* ---------- Logo strip ---------- */
.logo-strip { background: var(--sw-ink); padding: 34px 0; overflow: hidden; }
.logo-strip .label { color: var(--sw-blush); font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 600; white-space: nowrap; }
.marquee { overflow: hidden; -webkit-mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee-track { display: flex; align-items: center; gap: 4rem; width: max-content; animation: marquee 38s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-track img { height: 84px; width: auto; opacity: .8; transition: opacity .3s; }
.marquee-track img:hover { opacity: 1; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- About / meaning ---------- */
.meaning-word { font-size: clamp(3.5rem, 8vw, 6rem); line-height: 1.1; font-weight: 600; display: flex; gap: .1em; }
.meaning-word .p1 { color: var(--sw-terra-dark); }
.meaning-word .p2 { color: var(--sw-ink); }
.meaning-gloss { display: flex; gap: 2.5rem; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sw-muted); margin-top: .5rem; }
.meaning-gloss b { color: var(--sw-terra-dark); font-weight: 600; }
.quote-line { font-family: var(--sw-font-head); font-style: italic; font-size: 1.35rem; color: var(--sw-ink); border-left: 3px solid var(--sw-terra); padding-left: 1.2rem; margin: 2rem 0; }

.about-tabs { background: #fff; border-radius: 24px; box-shadow: var(--sw-shadow); padding: 14px; margin-top: 4.5rem; }
.about-tabs .nav-pills { gap: .4rem; }
.about-tabs .nav-pills .nav-link { color: var(--sw-muted); border-radius: 14px; text-align: left; padding: 1rem 1.25rem; font-weight: 500; display: flex; justify-content: space-between; align-items: center; width: 100%; }
.about-tabs .nav-pills .nav-link small { font-size: .72rem; letter-spacing: .15em; opacity: .55; }
.about-tabs .nav-pills .nav-link.active { background: var(--sw-ink); color: #fff; }
.about-tabs .nav-pills .nav-link:not(.active):hover { background: var(--sw-light); color: var(--sw-ink); }
.about-tabs .tab-content { padding: 1.5rem 2rem; }
.about-tabs .tab-pane h3 { font-size: 1.8rem; margin-bottom: 1rem; }
.value-chips { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.2rem; }
.value-chips span { background: var(--sw-light); border: 1px solid var(--sw-line); border-radius: 50px; padding: .45rem 1rem; font-size: .9rem; color: var(--sw-ink); }
@media (max-width: 767.98px) { .about-tabs .tab-content { padding: 1.2rem .6rem; } }

/* ---------- Service cards ---------- */
.service-card { background: #fff; border-radius: var(--sw-radius); overflow: hidden; box-shadow: var(--sw-shadow); height: 100%; display: flex; flex-direction: column; transition: transform .35s, box-shadow .35s; }
.service-card:hover { transform: translateY(-8px); box-shadow: var(--sw-shadow-lg); }
.service-card .img { aspect-ratio: 16 / 11; overflow: hidden; position: relative; }
.service-card .img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.service-card:hover .img img { transform: scale(1.06); }
.service-card .num { position: absolute; top: 16px; left: 16px; background: rgba(255, 255, 255, .92); color: var(--sw-terra-dark); font-weight: 600; font-size: .8rem; letter-spacing: .1em; padding: .35rem .8rem; border-radius: 50px; }
.service-card .body { padding: 1.8rem; display: flex; flex-direction: column; flex: 1; }
.service-card h3 { font-size: 1.4rem; margin-bottom: .8rem; }
.service-card .link-arrow { margin-top: auto; padding-top: .6rem; }

/* ---------- Stats + features (dark) ---------- */
.stat { text-align: center; padding: 2rem 1rem; border-radius: var(--sw-radius); background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .08); height: 100%; }
.stat .num { font-family: var(--sw-font-head); font-size: clamp(2.8rem, 5vw, 3.8rem); color: var(--sw-blush); line-height: 1; font-weight: 600; }
.stat p { margin: .8rem 0 0; font-size: .95rem; }
.feature { display: flex; gap: 1rem; align-items: flex-start; }
.feature .ic { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; font-size: 1.3rem; flex: none; background: rgba(127, 214, 211, .14); color: var(--sw-blush); }
.feature h4 { font-family: var(--sw-font-body); font-size: 1.02rem; font-weight: 600; margin: .2rem 0 .3rem; }
.feature p { font-size: .92rem; margin: 0; }
.bg-ink .deco-emblem { position: absolute; right: -120px; top: 50%; transform: translateY(-50%); width: 520px; opacity: .05; pointer-events: none; }

/* ---------- Process ---------- */
.process { position: relative; }
.process::before { content: ""; position: absolute; top: calc(var(--bs-gutter-y) + 36px); left: 12.5%; right: 12.5%; height: 2px; background: repeating-linear-gradient(90deg, var(--sw-terra) 0 8px, transparent 8px 16px); opacity: .5; }
.process-step { text-align: center; position: relative; padding: 0 .6rem; }
.process-step .circle { width: 72px; height: 72px; border-radius: 50%; margin: 0 auto 1.3rem; display: grid; place-items: center; background: #fff; border: 2px solid var(--sw-terra); color: var(--sw-terra-dark); font-family: var(--sw-font-head); font-size: 1.5rem; font-weight: 600; box-shadow: 0 0 0 8px var(--sw-light); position: relative; z-index: 1; transition: all .3s; }
.process-step:hover .circle { background: var(--sw-terra-dark); color: #fff; border-color: var(--sw-terra-dark); }
.process-step h4 { font-size: 1.3rem; margin-bottom: .4rem; }
.process-step p { font-size: .93rem; margin: 0; }
@media (max-width: 767.98px) { .process::before { display: none; } }

/* ---------- Testimonials ---------- */
.testi-card { background: #fff; border-radius: 24px; padding: 3rem; box-shadow: var(--sw-shadow); position: relative; max-width: 860px; margin: 0 auto; }
.testi-card .qmark { position: absolute; top: -26px; left: 3rem; width: 56px; height: 56px; border-radius: 16px; background: var(--sw-terra-dark); color: #fff; display: grid; place-items: center; font-size: 1.6rem; }
.testi-card blockquote { font-family: var(--sw-font-head); font-size: clamp(1.1rem, 1.8vw, 1.35rem); line-height: 1.65; color: var(--sw-ink); margin: .6rem 0 2rem; }
.testi-person { display: flex; align-items: center; gap: 1rem; }
.testi-person .av { width: 54px; height: 54px; border-radius: 50%; background: var(--sw-sand); color: var(--sw-terra-dark); display: grid; place-items: center; font-weight: 600; }
.testi-person strong { display: block; }
.testi-person span { font-size: .88rem; color: var(--sw-muted); }
.testi-controls { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-top: 2.5rem; }
.testi-controls button.arrow { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--sw-line); background: #fff; color: var(--sw-ink); transition: .25s; }
.testi-controls button.arrow:hover { background: var(--sw-ink); color: #fff; }
.testi-controls .carousel-indicators { position: static; margin: 0; gap: .4rem; }
.testi-controls .carousel-indicators [data-bs-target] { width: 10px; height: 10px; border-radius: 50%; background: var(--sw-terra); border: 0; margin: 0; opacity: .3; }
.testi-controls .carousel-indicators .active { opacity: 1; width: 28px; border-radius: 6px; }
@media (max-width: 575.98px) { .testi-card { padding: 2.6rem 1.5rem 2rem; } .testi-card .qmark { left: 1.5rem; } }

/* ---------- CTA band ---------- */
.cta-band { background: linear-gradient(135deg, var(--sw-ink) 0%, #155A85 60%, #2E8B8A 100%); border-radius: 28px; overflow: hidden; color: #fff; position: relative; }
.cta-band h2 { color: #fff; }
.cta-band p { color: rgba(255, 255, 255, .78); }
.cta-band .cta-body { padding: clamp(2.5rem, 5vw, 4.5rem); position: relative; z-index: 1; }
.cta-band .col-lg-5 { position: relative; min-height: 340px; }
.cta-band .cta-img { position: absolute; inset: 0; }
.cta-band .cta-img img { width: 100%; height: 100%; object-fit: cover; }
.cta-band .deco-emblem { position: absolute; left: -80px; bottom: -110px; width: 360px; opacity: .07; }

/* ---------- Page hero (inner pages) ---------- */
.page-hero { background: var(--sw-ink); color: #fff; padding: 90px 0 100px; position: relative; overflow: hidden; }
.page-hero::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 80% 20%, rgba(46, 139, 138, .35), transparent 50%); pointer-events: none; }
.page-hero .container { position: relative; z-index: 1; }
.page-hero h1 { color: #fff; max-width: 18ch; }
.page-hero .lead { color: rgba(255, 255, 255, .75); max-width: 60ch; }
.page-hero .deco-emblem { position: absolute; right: -60px; bottom: -90px; width: 440px; opacity: .08; z-index: 0; }
.breadcrumb { font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 1.4rem; }
.breadcrumb a { color: var(--sw-blush); }
.breadcrumb-item.active { color: rgba(255, 255, 255, .6); }
.breadcrumb-item + .breadcrumb-item::before { color: rgba(255, 255, 255, .4); }

/* ---------- Meet Aruna ---------- */
.aruna-hero { padding: 80px 0 0; }
.aruna-portrait { position: relative; max-width: 440px; margin: 0 auto; }
.aruna-portrait .disc { position: absolute; left: 6%; right: 6%; bottom: 0; aspect-ratio: 1; border-radius: 50%; background: linear-gradient(160deg, var(--sw-blush), var(--sw-terra)); }
.aruna-portrait img { position: relative; display: block; width: 100%; }
.aruna-portrait .badge-years { position: absolute; left: -10px; bottom: 60px; background: #fff; color: var(--sw-ink); border-radius: 16px; padding: .9rem 1.2rem; box-shadow: var(--sw-shadow); line-height: 1.2; }
.aruna-portrait .badge-years strong { font-family: var(--sw-font-head); font-size: 1.8rem; color: var(--sw-terra-dark); display: block; }
.aruna-portrait .badge-years span { font-size: .8rem; color: var(--sw-muted); }
.cert-pills { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.6rem; }
.cert-pills span { border: 1px solid rgba(255, 255, 255, .25); color: #fff; border-radius: 50px; padding: .35rem .9rem; font-size: .82rem; }
.mini-stat { border-left: 3px solid var(--sw-terra); padding-left: 1rem; }
.mini-stat strong { font-family: var(--sw-font-head); font-size: 2.3rem; display: block; line-height: 1.1; color: var(--sw-ink); }
.mini-stat span { font-size: .88rem; color: var(--sw-muted); }
.country-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.country-chips span { background: var(--sw-light); border-radius: 50px; padding: .4rem .95rem; font-size: .88rem; border: 1px solid var(--sw-line); }
.country-chips .bi { color: var(--sw-terra-dark); margin-right: .3rem; }

.timeline { position: relative; }
.timeline::before { content: ""; position: absolute; left: 0; right: 0; top: 34px; height: 2px; background: linear-gradient(90deg, var(--sw-blush), var(--sw-terra-dark)); }
.tl-item { position: relative; padding-top: 2.2rem; }
.tl-item::before { content: ""; position: absolute; top: 2px; left: 0; width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 4px solid var(--sw-terra-dark); }
.tl-item small { font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; color: var(--sw-terra-dark); font-weight: 600; }
.tl-item h4 { font-size: 1.15rem; margin: .3rem 0 .3rem; }
.tl-item p { font-size: .9rem; margin: 0; }
@media (max-width: 767.98px) {
  .timeline::before { left: 9px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; background: linear-gradient(180deg, var(--sw-blush), var(--sw-terra-dark)); }
  .tl-item { padding: 0 0 0 2.4rem; }
}

.info-card { background: #fff; border-radius: var(--sw-radius); padding: 2rem; height: 100%; box-shadow: 0 1px 0 var(--sw-line), var(--sw-shadow); border-top: 4px solid var(--c, var(--sw-terra)); transition: transform .3s; }
.info-card:hover { transform: translateY(-6px); }
.info-card .ic { width: 54px; height: 54px; border-radius: 14px; display: grid; place-items: center; font-size: 1.4rem; margin-bottom: 1.2rem; background: color-mix(in srgb, var(--c, var(--sw-terra)) 14%, #fff); color: var(--c, var(--sw-terra-dark)); }
.info-card h3 { font-size: 1.25rem; margin-bottom: .6rem; }
.info-card p { font-size: .95rem; margin: 0; }

.cred-card { background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1); border-radius: 16px; padding: 1.5rem; height: 100%; transition: background .3s, border-color .3s; }
.cred-card:hover { background: rgba(127, 214, 211, .1); border-color: rgba(127, 214, 211, .4); }
.cred-card small { color: var(--sw-blush); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.cred-card h4 { font-family: var(--sw-font-body); font-size: 1rem; font-weight: 500; line-height: 1.5; margin: .5rem 0 0; color: #fff; }

.check-list { list-style: none; padding: 0; margin: 1.4rem 0 0; display: grid; gap: .8rem; }
.check-list li { display: flex; gap: .8rem; align-items: flex-start; color: var(--sw-ink); }
.check-list li::before { content: "\F26E"; font-family: 'bootstrap-icons'; flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--sw-sand); color: var(--sw-terra-dark); font-size: 1rem; margin-top: 1px; }
.bg-ink .check-list li, .cta-band .check-list li { color: rgba(255, 255, 255, .88); }
.bg-ink .check-list li::before, .cta-band .check-list li::before { background: rgba(255, 255, 255, .12); color: var(--sw-blush); }

.img-rounded { border-radius: 24px; overflow: hidden; box-shadow: var(--sw-shadow-lg); }
.img-rounded img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- Experience ---------- */
.program-card { background: #fff; border-radius: var(--sw-radius); padding: 2rem; height: 100%; border: 1px solid var(--sw-line); transition: all .3s; display: flex; flex-direction: column; }
.program-card:hover { border-color: var(--sw-terra); box-shadow: var(--sw-shadow); transform: translateY(-6px); }
.program-card .top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.3rem; }
.program-card .ic { width: 52px; height: 52px; border-radius: 14px; background: var(--sw-light); color: var(--sw-terra-dark); display: grid; place-items: center; font-size: 1.35rem; }
.program-card .no { font-family: var(--sw-font-head); font-size: 1.5rem; color: rgba(16, 67, 124, .15); font-weight: 700; }
.program-card h3 { font-size: 1.25rem; margin-bottom: .7rem; }
.program-card p { font-size: .94rem; }
.program-card .outcome { margin-top: auto; padding-top: 1rem; border-top: 1px dashed var(--sw-line); font-size: .88rem; color: var(--sw-ink); }
.program-card .outcome b { color: var(--sw-terra-dark); font-weight: 600; }
.program-card.featured { background: var(--sw-ink); border-color: var(--sw-ink); color: #fff; }
.program-card.featured h3 { color: #fff; font-size: 1.6rem; }
.program-card.featured p { color: rgba(255, 255, 255, .75); }
.program-card.featured .ic { background: rgba(127, 214, 211, .16); color: var(--sw-blush); }
.program-card.featured .no { color: rgba(255, 255, 255, .15); }

.accordion-warm .accordion-item { border: 1px solid var(--sw-line); border-radius: 16px !important; margin-bottom: .8rem; overflow: hidden; background: #fff; }
.accordion-warm .accordion-button { font-family: var(--sw-font-head); font-weight: 600; font-size: 1.15rem; color: var(--sw-ink); padding: 1.3rem 1.5rem; background: #fff; box-shadow: none; }
.accordion-warm .accordion-button:not(.collapsed) { color: var(--sw-terra-dark); background: var(--sw-light); }
.accordion-warm .accordion-button:focus { box-shadow: none; }
.accordion-warm .accordion-button::after { background-image: none; content: "\F4FE"; font-family: 'bootstrap-icons'; font-size: 1.2rem; transform: none; width: auto; height: auto; }
.accordion-warm .accordion-button:not(.collapsed)::after { content: "\F2EA"; }
.accordion-warm .accordion-body { padding: 0 1.5rem 1.4rem; background: var(--sw-light); color: var(--sw-muted); }

.workshop-card { position: relative; border-radius: var(--sw-radius); overflow: hidden; aspect-ratio: 5 / 5; display: block; color: #fff; }
.workshop-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.workshop-card:hover img { transform: scale(1.06); }
.workshop-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(16, 67, 124, .9)); }
.workshop-card .cap { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.4rem; z-index: 1; }
.workshop-card .cap small { color: var(--sw-blush); font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.workshop-card .cap h3 { color: #fff; font-size: 1.4rem; margin: .3rem 0 0; }

.team-card { text-align: center; }
.team-card .ph { aspect-ratio: 1; border-radius: 50%; overflow: hidden; margin: 0 auto 1.3rem; max-width: 210px; border: 6px solid rgba(255, 255, 255, .08); box-shadow: 0 0 0 2px var(--sw-terra); }
.team-card .ph img { width: 100%; height: 100%; object-fit: cover; transform: scale(var(--z, 1)); object-position: var(--pos, 50% 20%); }
.team-card h3 { font-size: 1.2rem; margin-bottom: .4rem; }
.team-card p { font-size: .88rem; margin: 0 auto; max-width: 28ch; }

/* ---------- Women leadership ---------- */
.women-hero { background: linear-gradient(140deg, var(--sw-ink) 0%, #145A7A 70%, #2E8B8A 100%); text-align: center; padding: 110px 0 120px; }
.women-hero h1 { max-width: none; margin: 0 auto; font-size: clamp(2.6rem, 6vw, 4.6rem); }
.women-hero .lead { margin-left: auto; margin-right: auto; }
.women-hero .strike { position: relative; color: rgba(255, 255, 255, .55); }
.women-hero .strike::after { content: ""; position: absolute; left: -2%; right: -2%; top: 55%; height: 4px; background: var(--sw-blush); border-radius: 4px; transform: rotate(-3deg); }
.hero-tag { display: inline-block; margin-top: 2rem; border: 1px solid rgba(255, 255, 255, .25); border-radius: 50px; padding: .5rem 1.2rem; font-size: .85rem; color: #fff; }
.voice-card { border-radius: var(--sw-radius); padding: 2.2rem; height: 100%; }
.voice-card small { font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.voice-card p { font-family: var(--sw-font-head); font-size: 1.3rem; line-height: 1.55; margin: .8rem 0 0; }
.voice-card.whisper { background: var(--sw-sand); }
.voice-card.whisper small { color: var(--sw-muted); }
.voice-card.whisper p { color: var(--sw-muted); font-style: italic; }
.voice-card.shift { background: var(--sw-terra-dark); color: #fff; }
.voice-card.shift small { color: var(--sw-sun); }
.voice-card.shift p { color: #fff; }
.big-stat { font-family: var(--sw-font-head); font-size: clamp(5rem, 11vw, 8rem); line-height: 1; color: var(--sw-terra-dark); font-weight: 700; }
.num-list { list-style: none; padding: 0; margin: 1.2rem 0 0; }
.num-list li { display: flex; justify-content: space-between; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--sw-line); font-weight: 500; }
.num-list li span { font-size: .8rem; color: var(--sw-terra-dark); letter-spacing: .1em; }
.path-card { background: #fff; border-radius: var(--sw-radius); padding: 2.2rem; height: 100%; box-shadow: var(--sw-shadow); position: relative; overflow: hidden; }
.path-card .stage { display: inline-block; background: var(--sw-sand); color: var(--sw-terra-dark); font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; padding: .35rem .9rem; border-radius: 50px; margin-bottom: 1.2rem; }
.path-card h3 { font-size: 1.4rem; margin-bottom: .8rem; }
.path-card .steps-ic { display: flex; gap: 4px; align-items: flex-end; margin-top: 1.5rem; }
.path-card .steps-ic i { width: 14px; border-radius: 4px; background: var(--sw-blush); }
.path-card .steps-ic i.on { background: var(--sw-terra-dark); }

/* ---------- Gallery ---------- */
.filter-bar { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-bottom: 2.5rem; }
.filter-bar button { border: 1px solid var(--sw-line); background: #fff; color: var(--sw-ink); border-radius: 50px; padding: .55rem 1.2rem; font-size: .9rem; font-weight: 500; transition: .25s; }
.filter-bar button:hover { border-color: var(--sw-terra); color: var(--sw-terra-dark); }
.filter-bar button.active { background: var(--sw-ink); border-color: var(--sw-ink); color: #fff; }
.masonry { column-count: 3; column-gap: 1.2rem; }
@media (max-width: 991.98px) { .masonry { column-count: 2; } }
@media (max-width: 575.98px) { .masonry { column-count: 1; } }
.g-tile { break-inside: avoid; margin: 0 0 1.2rem; border-radius: 16px; overflow: hidden; position: relative; cursor: zoom-in; display: block; }
.g-tile img { width: 100%; display: block; transition: transform .7s; }
.g-tile:hover img { transform: scale(1.05); }
.g-tile figcaption { position: absolute; inset: auto 0 0 0; padding: 2.5rem 1.1rem 1rem; background: linear-gradient(transparent, rgba(16, 67, 124, .88)); color: #fff; font-size: .9rem; opacity: 0; transform: translateY(10px); transition: .35s; }
.g-tile figcaption small { display: block; color: var(--sw-blush); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; }
.g-tile:hover figcaption { opacity: 1; transform: none; }
.g-tile.d-none-f { display: none; }
#lightbox .modal-content { background: transparent; border: 0; }
#lightbox img { max-height: 80vh; width: auto; max-width: 100%; margin: 0 auto; display: block; border-radius: 12px; }
#lightbox .lb-cap { color: #fff; text-align: center; margin-top: 1rem; }
#lightbox .lb-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 50px; height: 50px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .15); color: #fff; font-size: 1.3rem; }
#lightbox .lb-btn:hover { background: var(--sw-terra-dark); }
#lightbox .lb-prev { left: -10px; } #lightbox .lb-next { right: -10px; }
#lightbox .btn-close { position: absolute; top: -40px; right: 0; }

/* ---------- Contact ---------- */
.contact-info { background: var(--sw-ink); color: #fff; border-radius: 24px; padding: 2.5rem; height: 100%; position: relative; overflow: hidden; }
.contact-info .deco-emblem { position: absolute; right: -90px; bottom: -90px; width: 300px; opacity: .07; }
.contact-info h3 { color: #fff; }
.contact-info p { color: rgba(255, 255, 255, .72); }
.c-item { display: flex; gap: 1rem; align-items: flex-start; padding: 1.2rem 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.c-item .ic { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: rgba(127, 214, 211, .15); color: var(--sw-blush); font-size: 1.2rem; flex: none; }
.c-item small { display: block; color: rgba(255, 255, 255, .55); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; }
.c-item a, .c-item strong { color: #fff; font-weight: 500; font-size: 1.05rem; }
.c-item a:hover { color: var(--sw-blush); }
.form-card { background: #fff; border-radius: 24px; padding: 2.5rem; box-shadow: var(--sw-shadow); height: 100%; }
.form-label { font-size: .82rem; font-weight: 600; color: var(--sw-ink); margin-bottom: .4rem; }
.form-control, .form-select { border-radius: 12px; padding: .8rem 1rem; border-color: var(--sw-line); background: var(--sw-light); font-size: .95rem; }
.form-control:focus, .form-select:focus { border-color: var(--sw-terra); box-shadow: 0 0 0 4px rgba(46, 139, 138, .18); background: #fff; }
.chip-check { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip-check input { position: absolute; opacity: 0; pointer-events: none; }
.chip-check label { cursor: pointer; border: 1px solid var(--sw-line); border-radius: 50px; padding: .45rem 1rem; font-size: .86rem; background: #fff; transition: .2s; }
.chip-check label:hover { border-color: var(--sw-terra); }
.chip-check input:checked + label { background: var(--sw-terra-dark); color: #fff; border-color: var(--sw-terra-dark); }
.chip-check input:focus-visible + label { outline: 2px solid var(--sw-terra); outline-offset: 2px; }
.form-success { display: none; text-align: center; padding: 3rem 1rem; }
.form-success.show { display: block; }
.form-success .tick { width: 80px; height: 80px; border-radius: 50%; background: var(--sw-sand); color: var(--sw-terra-dark); display: grid; place-items: center; font-size: 2.4rem; margin: 0 auto 1.4rem; }

/* ---------- Booking modal ---------- */
#bookModal .modal-content { border: 0; border-radius: 24px; overflow: hidden; }
#bookModal .book-side { background: var(--sw-ink); color: #fff; padding: 2.5rem; height: 100%; }
#bookModal .book-side h3 { color: #fff; font-size: 1.7rem; }
#bookModal .book-side p { color: rgba(255, 255, 255, .72); }
#bookModal .coach { display: flex; align-items: center; gap: .9rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .88rem; line-height: 1.4; }
#bookModal .coach img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; object-position: top; background: var(--sw-sand); }
#bookModal .coach span { color: rgba(255, 255, 255, .6); }
#bookModal .book-main { padding: 2.5rem; }
#bookModal .btn-close { position: absolute; top: 1rem; right: 1rem; z-index: 2; }
.day-pick { display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .3rem; }
.day-pick button, .slot-pick button { border: 1px solid var(--sw-line); background: #fff; border-radius: 12px; transition: .2s; color: var(--sw-ink); }
.day-pick button { flex: none; width: 62px; padding: .5rem 0; line-height: 1.25; }
.day-pick button small { display: block; font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: var(--sw-muted); }
.day-pick button b { font-size: 1.15rem; }
.slot-pick { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; }
.slot-pick button { padding: .5rem 0; font-size: .88rem; }
.day-pick button.on, .slot-pick button.on { background: var(--sw-terra-dark); border-color: var(--sw-terra-dark); color: #fff; }
.day-pick button.on small { color: rgba(255, 255, 255, .7); }
@media (max-width: 575.98px) { .slot-pick { grid-template-columns: repeat(2, 1fr); } #bookModal .book-main, #bookModal .book-side { padding: 1.8rem; } }

/* ---------- Footer ---------- */
.site-footer { background: #0B2F57; color: rgba(255, 255, 255, .7); padding: 80px 0 0; position: relative; overflow: hidden; }
.site-footer h5 { color: #fff; font-size: .85rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; margin-bottom: 1.3rem; }
.site-footer p { color: rgba(255, 255, 255, .62); font-size: .93rem; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; font-size: .93rem; }
.site-footer a { color: rgba(255, 255, 255, .72); }
.site-footer a:hover { color: var(--sw-blush); }
.footer-cta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.5rem; padding-bottom: 3.5rem; margin-bottom: 3.5rem; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.footer-cta h2 { color: #fff; font-size: clamp(1.7rem, 3vw, 2.4rem); margin: 0; max-width: 22ch; }
.social a { width: 40px; height: 40px; border-radius: 50%; display: inline-grid; place-items: center; border: 1px solid rgba(255, 255, 255, .18); margin-right: .4rem; }
.social a:hover { background: var(--sw-terra-dark); border-color: var(--sw-terra-dark); color: #fff; }
.footer-bottom { margin-top: 3.5rem; padding: 1.4rem 0; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .85rem; color: rgba(255, 255, 255, .5); }
.footer-contact li { display: flex; gap: .7rem; }
.footer-contact .bi { color: var(--sw-blush); }

/* ---------- Floating buttons ---------- */
.fab-wrap { position: fixed; right: 20px; bottom: 20px; z-index: 1030; display: flex; flex-direction: column; gap: .7rem; }
.fab { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; font-size: 1.4rem; color: #fff; box-shadow: 0 12px 26px -10px rgba(0, 0, 0, .45); transition: transform .25s, opacity .3s; border: 0; }
.fab:hover { transform: translateY(-3px); color: #fff; }
.fab-wa { background: #25D366; }
.fab-top { background: var(--sw-ink); opacity: 0; pointer-events: none; }
.fab-top.show { opacity: 1; pointer-events: auto; }

/* ---------- Reveal on scroll (only when JS runs) ---------- */
.js .reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s ease; }
.js .reveal.in { opacity: 1; transform: none; }
.js .reveal.d1 { transition-delay: .1s; } .js .reveal.d2 { transition-delay: .2s; } .js .reveal.d3 { transition-delay: .3s; }
@media (prefers-reduced-motion: reduce) { .js .reveal { opacity: 1; transform: none; transition: none; } .marquee-track, .float-card { animation: none; } }

/* Keep large gutters from pushing past the viewport on phones */
@media (max-width: 767.98px) { .row.g-5 { --bs-gutter-x: 1.5rem; } }
html, body { overflow-x: clip; }

/* ---------- Small-screen polish ---------- */
.timeline::before { left: calc(var(--bs-gutter-x) * .5); right: calc(var(--bs-gutter-x) * .5); }
@media (max-width: 575.98px) {
  .container { padding-left: 1rem; padding-right: 1rem; }
  .btn-lg { padding: .85rem 1.4rem; font-size: .95rem; }
  .hero { padding: 40px 0 70px; }
  .hero-trust { gap: 1.4rem; }
  .float-card { padding: .6rem .8rem; font-size: .78rem; }
  .float-card .ic { width: 34px; height: 34px; font-size: 1rem; }
  .float-card.fc-1 { left: 0; bottom: 40px; }
  .float-card.fc-2 { right: 0; top: 70px; }
  .hero-visual .ring { width: 110px; height: 110px; inset: -24px auto auto -12px; }
  .mini-stat strong { font-size: 1.7rem; }
  .mini-stat span { font-size: .78rem; }
  .meaning-gloss { gap: 1.4rem; }
  .cta-band { border-radius: 20px; }
  .fab { width: 46px; height: 46px; font-size: 1.2rem; }
}


/* ==========================================================================
   Update 2 — wider container, illustrated pillars, modal fixes
   ========================================================================== */
body { letter-spacing: -.003em; }

/* Wider layout with generous side space (like the reference samples) */
@media (min-width: 992px) { .container { padding-left: 3rem; padding-right: 3rem; } }
@media (min-width: 1200px) { .container { max-width: 1440px; padding-left: 4.5rem; padding-right: 4.5rem; } }
@media (min-width: 1600px) { .container { max-width: 1600px; padding-left: 6rem; padding-right: 6rem; } }
@media (min-width: 768px) and (max-width: 991.98px) { .container { padding-left: 2rem; padding-right: 2rem; } }

/* Vision / mission / values — all visible, illustrated */
.pillars-grid { margin-top: 3.5rem; }
.pillar-card { background: #fff; border: 1px solid var(--sw-line); border-radius: 24px; padding: 2rem; height: 100%; display: flex; gap: 1.8rem; align-items: flex-start; transition: transform .35s, box-shadow .35s, border-color .35s; }
.pillar-card:hover { transform: translateY(-6px); box-shadow: var(--sw-shadow); border-color: transparent; }
.pillar-illus { flex: none; width: 150px; }
.pillar-illus svg { width: 100%; height: auto; display: block; transition: transform .5s; }
.pillar-card:hover .pillar-illus svg { transform: scale(1.06) rotate(-2deg); }
.pillar-label { display: flex; align-items: center; gap: .6rem; font-size: .76rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sw-terra-dark); margin-bottom: .6rem; }
.pillar-label b { width: 28px; height: 28px; border-radius: 50%; background: var(--sw-sand); display: grid; place-items: center; font-size: .7rem; letter-spacing: 0; }
.pillar-card h3 { font-size: 1.5rem; margin-bottom: .7rem; }
.pillar-card p { margin-bottom: 0; font-size: .96rem; }
.pillar-card .value-chips span { font-size: .82rem; padding: .35rem .85rem; }
@media (max-width: 1199.98px) and (min-width: 768px) { .pillar-card { flex-direction: column; } .pillar-illus { width: 120px; } }
@media (max-width: 575.98px) { .pillar-card { flex-direction: column; padding: 1.6rem; } .pillar-illus { width: 110px; } }

/* Darker overlays */
.modal-backdrop { --bs-backdrop-bg: #061628; --bs-backdrop-opacity: .72; }
#lightbox { background: rgba(6, 22, 40, .9); }
#lightbox.show ~ .modal-backdrop, .lb-open .modal-backdrop { --bs-backdrop-opacity: .9; }
#lightbox .lb-cap { font-size: .95rem; opacity: .85; }

/* Booking modal — readable checklist on dark side */
#bookModal .book-side .check-list li { color: rgba(255, 255, 255, .88); }
#bookModal .book-side .check-list li::before { background: rgba(127, 214, 211, .16); color: var(--sw-blush); }

/* ---------- Update 3: Meet Aruna photo hero ---------- */
.aruna-hero { padding: 80px 0 90px; }
.aruna-photo { position: relative; max-width: 420px; margin: 0 auto; }
.aruna-photo .arch { border-radius: 240px 240px 24px 24px; overflow: hidden; aspect-ratio: 3 / 4; border: 6px solid rgba(255, 255, 255, .1); box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .6); }
.aruna-photo .arch img { width: 100%; height: 100%; object-fit: cover; }
.aruna-photo .badge-years { position: absolute; left: -24px; bottom: 50px; background: #fff; color: var(--sw-ink); border-radius: 16px; padding: .9rem 1.2rem; box-shadow: var(--sw-shadow); line-height: 1.2; }
.aruna-photo .badge-years strong { font-family: var(--sw-font-head); font-size: 1.8rem; color: var(--sw-terra-dark); display: block; }
.aruna-photo .badge-years span { font-size: .8rem; color: var(--sw-muted); }
@media (max-width: 575.98px) { .aruna-photo .badge-years { left: 0; } }


/* ---------- Meet Aruna: formal portrait in the arch ---------- */
.aruna-photo .arch-formal { background: radial-gradient(circle at 50% 30%, #FFF8F0 0%, #7FD6D3 55%, #2E8B8A 100%); }
.aruna-photo .arch-formal img { object-fit: cover; object-position: 50% 0; }


/* ==========================================================================
   Hero v2 (index-v2.html) — full-width slider with curved base like swadhyay.life
   ========================================================================== */
.hero-v2 { position: relative; overflow: hidden; background: var(--sw-ink); margin-bottom: clamp(28px, 4vw, 56px);
  border-bottom-left-radius: 50% clamp(48px, 16vw, 260px); border-bottom-right-radius: 50% clamp(48px, 16vw, 260px); }
.hero-v2 .carousel-item { height: clamp(560px, 86vh, 780px); position: relative; }
.hero-v2 .hv2-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 7s ease; }
.hero-v2 .carousel-item.active .hv2-bg { transform: scale(1); }
.hero-v2 .hv2-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9, 40, 76, .92) 0%, rgba(16, 67, 124, .78) 38%, rgba(16, 67, 124, .25) 68%, rgba(16, 67, 124, .05) 100%), linear-gradient(0deg, rgba(9, 40, 76, .35), transparent 40%); }
.hero-v2 .hv2-content { position: relative; z-index: 2; height: 100%; display: flex; align-items: center; padding-bottom: clamp(40px, 8vw, 120px); }
.hero-v2 .hv2-copy { max-width: 620px; color: #fff; }
.hero-v2 .hv2-title { color: #fff; font-size: clamp(2.4rem, 5vw, 4.2rem); line-height: 1.08; margin: 1.3rem 0 1.2rem; letter-spacing: -.015em; }
.hero-v2 .hv2-lead { color: rgba(255, 255, 255, .85); font-size: clamp(1.02rem, 1.4vw, 1.2rem); line-height: 1.75; max-width: 54ch; margin: 0; }
.hero-v2 .pron-chip { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .25); color: rgba(255, 255, 255, .8); box-shadow: none; backdrop-filter: blur(6px); }
.hero-v2 .pron-chip .deva { color: var(--sw-gold); }
.hero-v2 .pron-chip em { color: #fff; }
.hv2-kicker { display: inline-flex; align-items: center; gap: .6rem; font-size: .8rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--sw-blush); }
.hv2-kicker::before { content: ""; width: 34px; height: 2px; background: currentColor; }
.hero-v2 .accent-gold { color: var(--sw-gold); font-style: italic; }
.hero-v2 .carousel-item .hv2-copy > * { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
.hero-v2 .carousel-item.active .hv2-copy > * { opacity: 1; transform: none; }
.hero-v2 .carousel-item.active .hv2-copy > *:nth-child(2) { transition-delay: .12s; }
.hero-v2 .carousel-item.active .hv2-copy > *:nth-child(3) { transition-delay: .24s; }
.hero-v2 .carousel-item.active .hv2-copy > *:nth-child(4) { transition-delay: .36s; }
.hero-v2 .hv2-dots { bottom: clamp(40px, 6vw, 90px); margin-bottom: 0; gap: .5rem; z-index: 3; }
.hero-v2 .hv2-dots [data-bs-target] { width: 10px; height: 10px; border-radius: 10px; border: 0; margin: 0; background: #fff; opacity: .45; transition: width .3s, opacity .3s; }
.hero-v2 .hv2-dots .active { width: 30px; opacity: 1; background: var(--sw-gold); }
@media (max-width: 767.98px) {
  .hero-v2 .carousel-item { height: auto; min-height: 640px; }
  .hero-v2 .hv2-overlay { background: linear-gradient(180deg, rgba(9, 40, 76, .55) 0%, rgba(9, 40, 76, .88) 55%, rgba(9, 40, 76, .95) 100%); }
  .hero-v2 .hv2-content { min-height: 640px; align-items: flex-end; padding-top: 80px; padding-bottom: 110px; }
  .hero-v2 .hv2-dots { bottom: 46px; }
}
@media (prefers-reduced-motion: reduce) { .hero-v2 .hv2-bg, .hero-v2 .hv2-copy > * { transition: none !important; } }


/* ==========================================================================
   index-v2: transparent header over the hero, turns white on scroll (like swadhyay.life)
   ========================================================================== */
.nav-overlay .topbar { position: absolute; top: 0; left: 0; right: 0; z-index: 1031; background: transparent; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.nav-overlay .site-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 1030; background: transparent; backdrop-filter: none; border-bottom: 1px solid rgba(255, 255, 255, .22); padding: 1rem 0;
  transition: background .35s ease, box-shadow .35s ease, padding .35s ease, top .35s ease, border-color .35s ease; }
@media (min-width: 768px) { .nav-overlay .site-nav { top: 37px; } }
.nav-overlay .site-nav.scrolled { top: 0; background: rgba(255, 255, 255, .97); backdrop-filter: blur(12px); border-bottom-color: var(--sw-line); padding: .55rem 0; }
.nav-overlay .navbar-brand .logo-on-light { display: none; }
.nav-overlay .site-nav.scrolled .logo-on-dark { display: none; }
.nav-overlay .site-nav.scrolled .logo-on-light { display: inline-block; }
.nav-overlay .site-nav:not(.scrolled) .navbar-toggler { color: #fff; }
@media (min-width: 1200px) {
  .nav-overlay .site-nav:not(.scrolled) .nav-link { color: #fff; }
  .nav-overlay .site-nav:not(.scrolled) .nav-link::after { display: none; }
  .nav-overlay .site-nav:not(.scrolled) .nav-link:hover { color: var(--sw-sun); }
  .nav-overlay .site-nav:not(.scrolled) .nav-link.active { background: var(--sw-sun); color: var(--sw-ink); border-radius: 50px; }
}
/* hero clears the overlaid header; darker top edge keeps menu text readable on bright photos */
.nav-overlay .hero-v2 .hv2-content { padding-top: 120px; }
@media (min-width: 768px) { .nav-overlay .hero-v2 .hv2-content { padding-top: 150px; } }
.nav-overlay .hero-v2 .hv2-overlay::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 220px; background: linear-gradient(180deg, rgba(8, 32, 60, .7), transparent); }
@media (min-width: 768px) { .nav-overlay .hero-v2 .carousel-item { height: clamp(640px, 92vh, 860px); } }


/* ==========================================================================
   Swadhyay brand guideline colours
   Deep Serenity Blue #10437C · Teal Essence #2E8B8A · Soft Sand #EAD9C7 · Ivory Mist #FFF8F0
   Gradient stroke #10437C → #20CECF → #41AF7B → #FFB61C → #FB4516
   ========================================================================== */
:root {
  --sw-grad-stroke: linear-gradient(90deg, #10437C 0%, #20CECF 30%, #41AF7B 55%, #FFB61C 78%, #FB4516 100%);
  --sw-grad-deep: linear-gradient(120deg, #10437C 0%, #165A86 55%, #2E8B8A 100%);
  --bs-body-color: #24313F;
  --bs-link-color: #23706F; --bs-link-color-rgb: 35, 112, 111; --bs-link-hover-color: #10437C;
}
body { color: #24313F; }
h1, h2, h3, h4, .font-head { color: #10437C; }
.bg-ink h1, .bg-ink h2, .bg-ink h3, .bg-ink h4, .page-hero h1, .cta-band h2, .hero-v2 .hv2-title, .contact-info h3, #bookModal .book-side h3, .program-card.featured h3, .workshop-card h3, .site-footer h2 { color: #fff; }
.accent { color: #2E8B8A; }
.petal-bar { background: var(--sw-grad-stroke); }

/* Buttons: primary in Deep Serenity Blue, teal on hover */
.btn-primary { --bs-btn-bg: #10437C; --bs-btn-border-color: #10437C; --bs-btn-hover-bg: #2E8B8A; --bs-btn-hover-border-color: #2E8B8A; --bs-btn-active-bg: #0D3866; --bs-btn-active-border-color: #0D3866; box-shadow: 0 12px 28px -12px rgba(16, 67, 124, .6); }
.btn-outline-dark { --bs-btn-color: #10437C; --bs-btn-border-color: rgba(16, 67, 124, .35); --bs-btn-hover-bg: #10437C; --bs-btn-hover-border-color: #10437C; --bs-btn-hover-color: #fff; }
.btn-light-warm { background: #FFF8F0; color: #10437C; }
.btn-light-warm:hover { background: #fff; color: #2E8B8A; }

/* Bars and dark sections */
.topbar, .site-footer { background: #0B2F57; }
.logo-strip { background: #10437C; }
.bg-ink, .page-hero, .cta-band, .contact-info, #bookModal .book-side { background: var(--sw-grad-deep); }
.program-card.featured { background: var(--sw-grad-deep); border-color: transparent; }
.women-hero { background: linear-gradient(130deg, #2E8B8A 0%, #165A86 55%, #10437C 100%); }
.page-hero::after { background: radial-gradient(circle at 85% 15%, rgba(32, 206, 207, .22), transparent 50%); }
.hero { background: radial-gradient(circle at 85% 30%, rgba(46, 139, 138, .16), transparent 45%), radial-gradient(circle at 10% 90%, rgba(234, 217, 199, .6), transparent 40%), #FFF8F0; }
.voice-card.whisper { background: #F3E8DC; }
.voice-card.shift { background: var(--sw-grad-deep); }

/* Navigation */
.site-nav .nav-link { color: #10437C; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: #2E8B8A; }
.site-nav .nav-link::after { background: var(--sw-grad-stroke); }
.nav-overlay .site-nav:not(.scrolled) .nav-link.active { background: #FFF8F0; color: #10437C; }

/* Details */
.chip-check input:checked + label, .day-pick button.on, .slot-pick button.on { background: #10437C; border-color: #10437C; }
.meaning-word .p1 { color: #2E8B8A; } .meaning-word .p2 { color: #10437C; }
.stat .num { color: #7FD6D3; }
.big-stat { color: #10437C; }
.process-step .circle { color: #10437C; border-color: #2E8B8A; }
.process-step:hover .circle { background: #10437C; border-color: #10437C; color: #fff; }
.testi-card .qmark { background: #10437C; }
.fab-top { background: #10437C; }
.aruna-photo .arch-formal { background: radial-gradient(circle at 50% 30%, #FFF8F0 0%, #EAD9C7 55%, #CDB59C 100%); }

/* Text wordmark in the "Trusted by" strip (temporary until the official Arivi logo file is supplied) */
.marquee-track .logo-word { font-family: var(--sw-font-head); font-size: 1.6rem; font-weight: 600; letter-spacing: .22em; color: rgba(255, 255, 255, .85); white-space: nowrap; line-height: 84px; }


/* ---------- Shared header/footer partials ---------- */
.site-header-slot { min-height: 117px; }                       /* reserve space while the header loads */
.nav-overlay .site-header-slot { min-height: 0; }
.navbar-brand .logo-on-dark { display: none; }                  /* white logo only over the v2 hero */
.nav-overlay .site-nav:not(.scrolled) .logo-on-dark { display: inline-block; }
.site-credit a { color: rgba(255, 255, 255, .75); text-decoration: underline; text-underline-offset: 3px; }
.site-credit a:hover { color: #fff; }
.form-error { margin: 1rem 0 0; padding: .8rem 1rem; border-radius: 12px; background: #FDECEA; color: #8A1C12; font-size: .92rem; }
.form-error a { color: #8A1C12; font-weight: 600; }
@media (min-width: 768px) { .site-credit { margin-right: 64px; } }
