
/* ============ DEEKSHALAYA DESIGN SYSTEM ============ */
:root{
  --teal-deep:#0F5C56;
  --teal:#189389;
  --teal-bright:#1AB0A3;
  --teal-pale:#E8F4F2;
  --coral:#F2637A;
  --coral-dark:#D6435C;
  --coral-pale:#FDEBEF;
  --maroon:#7A231F;
  --gold:#C89B3C;
  --ink:#20302C;
  --ink-soft:#516662;
  --paper:#FAF7F1;
  --paper-dim:#F1EADC;
  --line:#E3DBC8;
  --white:#FFFFFF;
  --shadow: 0 20px 50px -25px rgba(15,42,38,0.35);
  --shadow-sm: 0 8px 20px -12px rgba(15,42,38,0.28);
  --radius: 18px;
  --radius-sm: 10px;
  --maxw: 1180px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html{overflow-x:hidden;width:100%;}
body{
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  width:100%;
}
img{max-width:100%;display:block;}
svg{width:1em;height:1em;flex-shrink:0;vertical-align:-0.15em;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  line-height:1.12;
  margin:0 0 .5em;
  letter-spacing:-0.01em;
}
p{line-height:1.7;color:var(--ink-soft);margin:0 0 1em;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--coral-dark);margin-bottom:14px;
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--coral);display:inline-block;border-radius:2px;}
:focus-visible{outline:3px solid var(--teal-bright);outline-offset:3px;border-radius:4px;}
@media (prefers-reduced-motion: reduce){ *{animation:none !important;transition:none !important;scroll-behavior:auto !important;} }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:'Manrope',sans-serif;font-weight:700;font-size:.94rem;
  padding:14px 26px;border-radius:100px;border:2px solid transparent;
  cursor:pointer;transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  white-space:nowrap;
}
.btn svg{width:18px;height:18px;flex-shrink:0;}
.btn-primary{background:var(--coral);color:#fff;box-shadow:0 14px 28px -14px rgba(214,67,92,.65);}
.btn-primary:hover{background:var(--coral-dark);transform:translateY(-2px);box-shadow:0 18px 30px -12px rgba(214,67,92,.75);}
.btn-teal{background:var(--teal-deep);color:#fff;box-shadow:0 14px 28px -14px rgba(15,92,86,.6);}
.btn-teal:hover{background:#0b4642;transform:translateY(-2px);}
.btn-outline{background:transparent;border-color:var(--line);color:var(--ink);}
.btn-outline:hover{border-color:var(--teal);color:var(--teal-deep);background:var(--teal-pale);}
.btn-outline-light{background:transparent;border-color:rgba(255,255,255,.5);color:#fff;}
.btn-outline-light:hover{background:rgba(255,255,255,.14);border-color:#fff;}
.btn-block{width:100%;}
.btn-lg{padding:17px 34px;font-size:1.02rem;}
.btn-sm{padding:10px 18px;font-size:.85rem;}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none !important;}

/* ---------- Top notice bar ---------- */
.topbar{background:var(--teal-deep);color:#EAF6F4;font-size:.8rem;}
.topbar .container{display:flex;align-items:center;justify-content:space-between;padding:8px 28px;gap:12px;flex-wrap:wrap;}
.topbar-links{display:flex;gap:18px;align-items:center;flex-wrap:wrap;min-width:0;}
.topbar-links a{display:inline-flex;align-items:center;gap:6px;opacity:.92;transition:opacity .2s;white-space:nowrap;min-width:0;}
.topbar-links a span{overflow:hidden;text-overflow:ellipsis;}
.topbar-links a:hover{opacity:1;text-decoration:underline;}
.topbar svg{width:14px;height:14px;}

/* Collapse the topbar to compact icon buttons on mobile — avoids the
   long address/email text being squeezed into a narrow, word-wrapped
   column (the cause of the broken mobile header). Full contact details
   remain available in the footer and on the Contact page. */
@media(max-width:860px){
  .topbar .container{padding:8px 18px;gap:8px;}
}
@media(max-width:680px){
  .topbar .container{flex-wrap:nowrap;justify-content:flex-start;}
  .topbar-links{gap:14px;flex-wrap:nowrap;}
  .topbar-links:last-child{margin-left:auto;}
  .topbar-links a.tb-email,.topbar-links a.tb-address{display:none;}
  .topbar-links a.tb-phone span,.topbar-links a.tb-whatsapp span{display:none;}
  .topbar-links a{padding:4px;}
}

/* ---------- Nav ---------- */
.nav-wrap{position:sticky;top:0;z-index:200;background:rgba(250,247,241,.98);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;max-width:var(--maxw);margin:0 auto;gap:10px;}
.brand{display:flex;align-items:center;gap:12px;font-family:'Manrope',sans-serif;font-weight:800;font-size:1.05rem;color:var(--ink);flex-shrink:0;white-space:nowrap;min-width:0;}
.brand img{height:44px;width:auto;flex-shrink:0;}
.brand small{display:block;font-weight:600;font-size:.66rem;letter-spacing:.09em;color:var(--teal-deep);text-transform:uppercase;margin-top:2px;}
@media(max-width:600px){
  .nav{padding:10px 18px;gap:6px;}
  .brand{gap:8px;font-size:.92rem;}
  .brand img{height:34px;}
}
@media(max-width:360px){
  .brand small{display:none;}
}
.nav-links{display:flex;align-items:center;gap:2px;flex-wrap:wrap;justify-content:flex-end;}
.nav-links a{padding:10px 13px;border-radius:100px;font-weight:600;font-size:.88rem;color:var(--ink-soft);transition:all .2s;white-space:nowrap;}
.nav-links a:hover,.nav-links a.active{background:var(--teal-pale);color:var(--teal-deep);}
.nav-cta{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;flex-shrink:0;}
@media(max-width:420px){
  .nav-cta{gap:6px;}
  .nav-cta .btn-sm{padding:9px 12px;font-size:.78rem;}
  .nav-toggle{padding:6px 4px 6px 8px;}
  .nav-toggle svg{width:22px;height:22px;}
}
.nav-toggle svg{width:26px;height:26px;color:var(--ink);}
.user-chip{display:none;align-items:center;gap:8px;background:var(--teal-pale);padding:7px 14px 7px 7px;border-radius:100px;font-weight:700;font-size:.85rem;color:var(--teal-deep);}
.user-chip .avatar{width:28px;height:28px;border-radius:50%;background:var(--teal-deep);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.78rem;}
.user-chip.show{display:inline-flex;}
.guest-only.hide{display:none !important;}
.nav-links .guest-only{display:none;}
.mobile-auth-row{gap:10px;margin-top:18px;}
#navExploreDesktop{display:none;}

@media(max-width:1220px){
  .nav-links{position:fixed;top:0;right:-100%;height:100vh;width:min(320px,84vw);background:var(--paper);z-index:200;
    flex-direction:column;align-items:stretch;padding:100px 26px 26px;gap:4px;transition:right .35s ease;box-shadow:-20px 0 50px rgba(0,0,0,.15);}
  .nav-links.open{right:0;}
  .nav-links a{padding:14px 16px;font-size:1rem;}
  .nav-links .guest-only{display:flex;}
  .nav-toggle{display:block;z-index:210;}
  .nav-cta .guest-only{display:none;}
  .nav-cta .user-chip{display:none;}
  .nav-overlay{position:fixed;inset:0;background:rgba(20,30,28,.45);opacity:0;pointer-events:none;transition:opacity .3s;z-index:150;}
  .nav-overlay.show{opacity:1;pointer-events:auto;}
}

/* ---------- Hero ---------- */
.hero{position:relative;padding:64px 0 100px;overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.hero-tag{display:inline-flex;align-items:center;gap:10px;background:var(--white);border:1px solid var(--line);padding:8px 16px 8px 8px;border-radius:100px;font-size:.82rem;font-weight:700;color:var(--teal-deep);box-shadow:var(--shadow-sm);margin-bottom:22px;}
.hero-tag .stars{color:var(--gold);display:flex;gap:2px;}
.hero-tag .stars svg{width:13px;height:13px;}
.hero h1{font-size:clamp(2.3rem,4.6vw,3.6rem);color:var(--ink);}
.hero h1 em{font-style:normal;color:var(--teal-deep);position:relative;}
.hero h1 .hl-coral{color:var(--coral-dark);}
.hero p.lead{font-size:1.12rem;max-width:520px;margin-bottom:28px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:36px;}
.hero-stats{display:flex;gap:30px;flex-wrap:wrap;}
.hero-stats div{display:flex;flex-direction:column;}
.hero-stats strong{font-family:'Manrope',sans-serif;font-size:1.7rem;font-weight:800;color:var(--ink);}
.hero-stats span{font-size:.8rem;color:var(--ink-soft);font-weight:600;}
.hero-media{position:relative;}
.hero-photo-card{position:relative;border-radius:26px;overflow:hidden;box-shadow:var(--shadow);}
.hero-photo-card img{width:100%;height:520px;object-fit:cover;}
.hero-float{position:absolute;background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:14px 16px;display:flex;align-items:center;gap:12px;}
.hero-float.f1{top:26px;left:-36px;}
.hero-float.f2{bottom:26px;right:-30px;}
.hero-float .ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.hero-float .ic.teal{background:var(--teal-pale);color:var(--teal-deep);}
.hero-float .ic.coral{background:var(--coral-pale);color:var(--coral-dark);}
.hero-float .ic svg{width:22px;height:22px;}
.hero-float strong{display:block;font-size:.92rem;font-family:'Manrope',sans-serif;}
.hero-float span{font-size:.76rem;color:var(--ink-soft);}
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-media{order:-1;}
  .hero-float{display:none;}
  .hero-photo-card img{height:340px;}
}

/* ---------- Arc Divider (signature element) ---------- */
.arc-divider{width:100%;height:64px;display:block;}
.section{padding:96px 0;}
.section-tight{padding:64px 0;}
.section-head{max-width:640px;margin:0 auto 52px;text-align:center;}
.section-head.left{margin:0 0 52px;text-align:left;}
.section-head h2{font-size:clamp(1.7rem,3vw,2.4rem);}
.on-teal{background:var(--teal-deep);color:#fff;}
.on-teal p{color:#CFE9E4;}
.on-teal h2{color:#fff;}
.on-maroon{background:var(--maroon);color:#fff;}
.on-maroon p{color:#E9C9C4;}
.on-paper-dim{background:var(--paper-dim);}

/* ---------- Cards generic ---------- */
.grid{display:grid;gap:26px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:960px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.grid-3,.grid-4,.grid-2{grid-template-columns:1fr;}}

.service-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;transition:transform .28s ease, box-shadow .28s ease, border-color .28s;position:relative;}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent;}
.service-card .ic{width:52px;height:52px;border-radius:14px;background:var(--teal-pale);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.service-card:nth-child(3n+2) .ic{background:var(--coral-pale);color:var(--coral-dark);}
.service-card:nth-child(3n) .ic{background:#FBF1DD;color:var(--gold);}
.service-card .ic svg{width:26px;height:26px;}
.service-card h3{font-size:1.08rem;margin-bottom:8px;}
.service-card p{font-size:.92rem;margin-bottom:0;}
.service-card ul{margin-top:14px;display:flex;flex-direction:column;gap:8px;}
.service-card ul li{display:flex;gap:8px;font-size:.86rem;color:var(--ink-soft);align-items:flex-start;}
.service-card ul li svg{width:15px;height:15px;color:var(--teal);flex-shrink:0;margin-top:3px;}

/* ---------- Team ---------- */
.team-card{background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);transition:transform .3s,box-shadow .3s;}
.team-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.team-card .photo{aspect-ratio:4/5;overflow:hidden;}
.team-card .photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.team-card:hover .photo img{transform:scale(1.05);}
.team-card .info{padding:22px 22px 26px;}
.team-card .info .role{color:var(--coral-dark);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;display:block;}
.team-card .info h3{font-size:1.18rem;margin-bottom:8px;}
.team-card .info p{font-size:.88rem;margin-bottom:14px;}
.team-tags{display:flex;flex-wrap:wrap;gap:6px;}
.team-tags span{background:var(--teal-pale);color:var(--teal-deep);font-size:.72rem;font-weight:700;padding:5px 10px;border-radius:100px;}

/* ---------- Testimonials ---------- */
.testi-track{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:960px){.testi-track{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.testi-track{grid-template-columns:1fr;}}
.testi-card{background:#fff;border-radius:var(--radius);padding:28px;border:1px solid var(--line);position:relative;}
.testi-card .quote-mark{font-family:'Fraunces',serif;font-size:3rem;color:var(--coral-pale);position:absolute;top:10px;right:20px;line-height:1;}
.testi-card .stars{display:flex;gap:3px;color:var(--gold);margin-bottom:14px;}
.testi-card .stars svg{width:15px;height:15px;}
.testi-card p{font-family:'Fraunces',serif;font-style:italic;font-size:1rem;color:var(--ink);margin-bottom:18px;}
.testi-who{display:flex;align-items:center;gap:12px;}
.testi-who .av{width:42px;height:42px;border-radius:50%;background:var(--teal-deep);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Manrope';font-weight:800;}
.testi-who strong{display:block;font-size:.92rem;}
.testi-who span{font-size:.76rem;color:var(--ink-soft);}

/* ---------- Gallery ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;gap:14px;}
.gallery-grid a{border-radius:14px;overflow:hidden;position:relative;display:block;}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.gallery-grid a:hover img{transform:scale(1.08);}
.gallery-grid .tall{grid-row:span 2;}
.gallery-grid .wide{grid-column:span 2;}
@media(max-width:860px){.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;}}

/* ---------- CTA band ---------- */
.cta-band{background:var(--coral);border-radius:28px;padding:56px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;color:#fff;position:relative;overflow:hidden;}
.cta-band h2{color:#fff;margin-bottom:6px;font-size:1.9rem;}
.cta-band p{color:#FFE3E8;margin:0;}
.cta-band .btn-primary{background:#fff;color:var(--coral-dark);box-shadow:none;}
.cta-band .btn-primary:hover{background:var(--ink);color:#fff;}

/* ---------- Footer ---------- */
footer{background:var(--ink);color:#C7D3CF;padding:64px 0 0;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.1);}
.foot-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.foot-brand img{height:38px;}
.foot-brand strong{font-family:'Manrope';font-weight:800;color:#fff;font-size:1.05rem;}
footer h4{color:#fff;font-family:'Manrope';font-size:.86rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px;}
footer ul li{margin-bottom:10px;}
footer ul li a{font-size:.9rem;color:#C7D3CF;transition:color .2s;}
footer ul li a:hover{color:var(--coral);}
.foot-contact li{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;margin-bottom:14px;}
.foot-contact svg{width:17px;height:17px;flex-shrink:0;margin-top:2px;color:var(--coral);}
.foot-social{display:flex;gap:10px;margin-top:6px;}
.foot-social a{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;transition:background .2s;}
.foot-social a:hover{background:var(--coral);}
.foot-social svg{width:16px;height:16px;}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding:22px 0;font-size:.82rem;color:#8CA09A;flex-wrap:wrap;gap:10px;}
@media(max-width:860px){.foot-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr;}}

/* ---------- Page header (inner pages) ---------- */
.page-head{padding:56px 0 70px;position:relative;overflow:hidden;background:var(--teal-deep);color:#fff;}
.page-head .container{position:relative;z-index:2;}
.breadcrumb{display:flex;gap:8px;align-items:center;font-size:.85rem;color:#BFE3DD;margin-bottom:16px;}
.breadcrumb svg{width:13px;height:13px;}
.page-head h1{color:#fff;font-size:clamp(1.9rem,4vw,2.7rem);max-width:640px;margin-left:auto;margin-right:auto;text-align:center;}
.page-head p{color:#CDE9E4;max-width:560px;font-size:1.02rem;margin-bottom:0;}
.page-head-deco{position:absolute;right:-60px;top:-60px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(242,99,122,.35),transparent 70%);}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:none;}

/* ---------- Forms (auth) ---------- */
.auth-wrap{min-height:calc(100vh - 400px);display:flex;align-items:center;padding:70px 0;}
.auth-shell{display:grid;grid-template-columns:1fr 1fr;max-width:1000px;margin:0 auto;background:#fff;border-radius:26px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);}
.auth-side{background:var(--teal-deep);color:#fff;padding:52px 42px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;}
.auth-side::after{content:"";position:absolute;right:-70px;bottom:-70px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(242,99,122,.4),transparent 70%);}
.auth-side h3{color:#fff;font-size:1.5rem;position:relative;z-index:2;}
.auth-side p{color:#CDE9E4;position:relative;z-index:2;}
.auth-side .quote{margin-top:auto;position:relative;z-index:2;}
.auth-side .quote p{font-family:'Fraunces',serif;font-style:italic;color:#fff;font-size:1.05rem;}
.auth-side .quote span{font-size:.8rem;color:#BFE3DD;font-weight:700;}
.auth-form{padding:52px 46px;}
.auth-form h2{font-size:1.6rem;margin-bottom:6px;}
.auth-form>p{margin-bottom:28px;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:.84rem;font-weight:700;margin-bottom:7px;color:var(--ink);}
.field>input,.field>textarea,.field>select{
  width:100%;border:1.5px solid var(--line);border-radius:12px;padding:13px 16px;
  font-family:'Inter',sans-serif;font-size:.94rem;color:var(--ink);background:var(--paper);
  transition:border-color .2s ease, box-shadow .2s ease;resize:vertical;
}
.field>input:focus,.field>textarea:focus,.field>select:focus{
  outline:none;border-color:var(--teal);box-shadow:0 0 0 4px var(--teal-pale);
}
.input-wrap{position:relative;}
.input-wrap svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--ink-soft);}
.input-wrap input,.input-wrap select{
  width:100%;padding:13px 16px 13px 44px;border-radius:12px;border:1.5px solid var(--line);
  font-family:'Inter';font-size:.94rem;background:var(--paper);transition:border-color .2s, background .2s;
}
.input-wrap input:focus,.input-wrap select:focus{border-color:var(--teal);background:#fff;outline:none;}
.input-wrap.pw button{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--ink-soft);padding:4px;}
.input-wrap.pw button svg{position:static;width:18px;height:18px;}
.field-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;margin-bottom:22px;}
.check-row{display:flex;align-items:center;gap:8px;}
.check-row input{accent-color:var(--teal-deep);width:16px;height:16px;}
.link-teal{color:var(--teal-deep);font-weight:700;}
.link-teal:hover{text-decoration:underline;}
.divider-or{display:flex;align-items:center;gap:14px;margin:24px 0;color:var(--ink-soft);font-size:.8rem;}
.divider-or::before,.divider-or::after{content:"";flex:1;height:1px;background:var(--line);}
.social-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.social-btn{display:flex;align-items:center;justify-content:center;gap:8px;border:1.5px solid var(--line);border-radius:12px;padding:11px;font-weight:700;font-size:.85rem;cursor:pointer;background:#fff;transition:border-color .2s,background .2s;}
.social-btn:hover{border-color:var(--teal);background:var(--teal-pale);}
.social-btn svg{width:18px;height:18px;}
.switch-line{text-align:center;margin-top:24px;font-size:.9rem;}
.form-msg{display:none;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;font-size:.85rem;font-weight:600;margin-bottom:18px;}
.form-msg svg{width:18px;height:18px;flex-shrink:0;}
.form-msg.show{display:flex;}
.form-msg.success{background:#E5F6EE;color:#187048;}
.form-msg.error{background:var(--coral-pale);color:var(--coral-dark);}
@media(max-width:860px){.auth-shell{grid-template-columns:1fr;}.auth-side{display:none;}}

/* ---------- Courses ---------- */
.course-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:36px;}
.chip{padding:9px 18px;border-radius:100px;border:1.5px solid var(--line);font-size:.85rem;font-weight:700;cursor:pointer;background:#fff;color:var(--ink-soft);transition:all .2s;}
.chip.active,.chip:hover{border-color:var(--teal-deep);background:var(--teal-deep);color:#fff;}
.course-card{background:#fff;border-radius:20px;overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s;position:relative;}
.course-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.course-thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--teal-pale);}
.course-thumb img{width:100%;height:100%;object-fit:cover;}
.course-badge{position:absolute;top:12px;left:12px;background:var(--coral);color:#fff;font-size:.7rem;font-weight:800;padding:5px 12px;border-radius:100px;letter-spacing:.03em;}
.course-cat{position:absolute;bottom:12px;left:12px;background:rgba(15,42,38,.72);color:#fff;font-size:.68rem;font-weight:700;padding:5px 11px;border-radius:100px;backdrop-filter:blur(4px);}
.lock-pill{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);}
.lock-pill svg{width:17px;height:17px;color:var(--maroon);}
.lock-pill.unlocked svg{color:#188053;}
.course-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1;}
.course-meta{display:flex;gap:14px;font-size:.78rem;color:var(--ink-soft);margin-bottom:10px;font-weight:600;}
.course-meta span{display:flex;align-items:center;gap:5px;}
.course-meta svg{width:14px;height:14px;}
.course-card h3{font-size:1.05rem;margin-bottom:8px;}
.course-card .desc{font-size:.86rem;margin-bottom:16px;flex:1;}
.course-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px dashed var(--line);}
.price-row{display:flex;align-items:baseline;gap:8px;}
.price-now{font-family:'Manrope';font-weight:800;font-size:1.2rem;color:var(--ink);}
.price-old{font-size:.85rem;color:var(--ink-soft);text-decoration:line-through;}
.price-save{display:block;font-size:.7rem;color:#188053;font-weight:700;}

/* ---------- Course detail ---------- */
.cd-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:44px;align-items:start;}
@media(max-width:960px){.cd-grid{grid-template-columns:1fr;}}
.cd-hero-img{border-radius:20px;overflow:hidden;margin-bottom:30px;box-shadow:var(--shadow-sm);}
.cd-hero-img img{width:100%;height:380px;object-fit:cover;}
.cd-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:26px;flex-wrap:wrap;}
.cd-tab{padding:12px 6px;margin-right:22px;font-weight:700;font-size:.92rem;color:var(--ink-soft);cursor:pointer;border-bottom:3px solid transparent;}
.cd-tab.active{color:var(--teal-deep);border-color:var(--coral);}
.cd-panel{display:none;}
.cd-panel.active{display:block;}
.curri-item{border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden;background:#fff;}
.curri-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;cursor:pointer;font-weight:700;font-size:.94rem;}
.curri-head .left{display:flex;align-items:center;gap:12px;}
.curri-head .num{width:30px;height:30px;border-radius:50%;background:var(--teal-pale);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-family:'Manrope';}
.curri-head .chev{display:flex;transition:transform .25s;color:var(--ink-soft);}
.curri-head .chev svg{width:18px;height:18px;}
.curri-item.open .chev{transform:rotate(180deg);}
.curri-body{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0 18px;}
.curri-item.open .curri-body{max-height:220px;padding:0 18px 16px 60px;}
.curri-body li{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--ink-soft);padding:6px 0;}
.curri-body li svg{width:15px;height:15px;color:var(--teal);flex-shrink:0;}
.cd-includes li{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--ink-soft);margin-bottom:10px;}
.cd-includes svg{width:17px;height:17px;color:var(--teal-deep);flex-shrink:0;margin-top:2px;}

.buy-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:var(--shadow-sm);position:sticky;top:100px;}
.buy-card .price-row{margin-bottom:4px;}
.buy-card .price-now{font-size:2rem;}
.buy-card .save-badge{display:inline-block;background:#E5F6EE;color:#187048;font-size:.72rem;font-weight:800;padding:4px 10px;border-radius:100px;margin-bottom:18px;}
.buy-card ul{margin:22px 0;display:flex;flex-direction:column;gap:12px;}
.buy-card ul li{display:flex;gap:10px;font-size:.86rem;align-items:flex-start;}
.buy-card ul li svg{width:16px;height:16px;color:var(--teal-deep);flex-shrink:0;margin-top:2px;}
.instructor-mini{display:flex;align-items:center;gap:12px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line);}
.instructor-mini img{width:46px;height:46px;border-radius:50%;object-fit:cover;}
.instructor-mini strong{display:block;font-size:.88rem;}
.instructor-mini span{font-size:.76rem;color:var(--ink-soft);}

/* ---------- Modal (checkout / payment) ---------- */
.modal-overlay{position:fixed;inset:0;background:rgba(20,32,29,.55);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:400;padding:20px;}
.modal-overlay.show{display:flex;}
.modal-card{background:#fff;border-radius:22px;max-width:460px;width:100%;padding:0;box-shadow:var(--shadow);max-height:90vh;overflow-y:auto;}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line);}
.modal-head h3{margin:0;font-size:1.1rem;}
.modal-close{background:var(--paper-dim);border:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-soft);}
.modal-close svg{width:16px;height:16px;}
.modal-body{padding:24px;}
.order-line{display:flex;justify-content:space-between;font-size:.9rem;margin-bottom:10px;color:var(--ink-soft);}
.order-line strong{color:var(--ink);}
.order-total{display:flex;justify-content:space-between;font-size:1.05rem;font-weight:800;padding-top:14px;margin-top:8px;border-top:1px dashed var(--line);}
.pay-methods{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0;}
.pay-method{border:1.5px solid var(--line);border-radius:12px;padding:13px;display:flex;align-items:center;gap:10px;font-weight:700;font-size:.85rem;cursor:pointer;transition:all .2s;}
.pay-method.selected,.pay-method:hover{border-color:var(--teal-deep);background:var(--teal-pale);}
.pay-method svg{width:20px;height:20px;color:var(--teal-deep);}
.pay-form{display:none;}
.pay-form.show{display:block;}
.processing{display:none;flex-direction:column;align-items:center;text-align:center;padding:30px 10px;}
.processing.show{display:flex;}
.spinner{width:46px;height:46px;border:4px solid var(--teal-pale);border-top-color:var(--teal-deep);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:18px;}
@keyframes spin{to{transform:rotate(360deg);}}
.success-view{display:none;flex-direction:column;align-items:center;text-align:center;padding:30px 10px;}
.success-view.show{display:flex;}
.success-icon{width:70px;height:70px;border-radius:50%;background:#E5F6EE;color:#188053;display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.success-icon svg{width:36px;height:36px;}

/* ---------- Misc pages ---------- */
.info-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;display:flex;gap:16px;align-items:flex-start;}
.info-card .ic{width:46px;height:46px;border-radius:12px;background:var(--teal-pale);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.info-card .ic svg{width:22px;height:22px;}
.info-card h4{font-size:.98rem;margin-bottom:6px;}
.info-card p{font-size:.87rem;margin-bottom:0;}
.map-embed{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);height:100%;min-height:340px;}
.map-embed iframe{width:100%;height:100%;min-height:340px;border:0;display:block;}
.contact-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:var(--shadow-sm);}
.faq-item{border-bottom:1px solid var(--line);padding:18px 0;}
.faq-q{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:700;font-size:.98rem;}
.faq-q svg{width:18px;height:18px;color:var(--coral-dark);transition:transform .25s;flex-shrink:0;}
.faq-item.open .faq-q svg{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;font-size:.9rem;}
.faq-item.open .faq-a{max-height:200px;padding-top:12px;}

.badge-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.badge-pill{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);padding:8px 14px;border-radius:100px;font-size:.78rem;font-weight:700;color:var(--ink-soft);}
.badge-pill svg{width:15px;height:15px;color:var(--teal-deep);}

.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.stat-strip .s{text-align:center;}
.stat-strip strong{display:block;font-family:'Manrope';font-size:2.1rem;font-weight:800;color:#fff;}
.stat-strip span{font-size:.82rem;color:#CDE9E4;font-weight:600;}
@media(max-width:640px){.stat-strip{grid-template-columns:repeat(2,1fr);gap:28px;}}

.value-icon-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;}
.timeline{border-left:2px solid var(--line);padding-left:26px;margin-left:6px;}
.timeline-item{position:relative;padding-bottom:30px;}
.timeline-item::before{content:"";position:absolute;left:-32px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--coral);border:3px solid var(--coral-pale);}
.timeline-item h4{font-size:.98rem;margin-bottom:4px;}
.timeline-item span{font-size:.78rem;color:var(--ink-soft);font-weight:700;}



/* ============ ADDITIONS: mega menu, dropdown, zigzag, careers ============ */

/* ---- Dropdown / mega menu ---- */
.has-dropdown{position:relative;}
.dd-row{display:flex;align-items:center;}
.dd-row>a{flex:1;display:flex;align-items:center;gap:4px;}
.dd-toggle{display:none;background:none;border:none;color:var(--ink-soft);cursor:pointer;padding:8px 10px;}
.dd-toggle svg{width:16px;height:16px;transition:transform .25s ease;}
.has-dropdown.open .dd-toggle svg{transform:rotate(180deg);}
.caret{width:14px;height:14px;flex-shrink:0;transition:transform .25s ease;color:var(--ink-soft);}
.has-dropdown:hover .caret,.dd-row>a.active .caret{transform:rotate(180deg);color:var(--teal-deep);}
/* .mega sits flush against the parent (top:100%, no gap) so the mouse never leaves a
   hoverable box while moving from the nav link down into the panel; the visual gap is
   simulated with padding-top on .mega itself (still part of the hover box) while the
   actual card is the nested .mega-surface. */
.mega{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(4px);width:600px;max-width:88vw;padding-top:14px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease, transform .18s ease, visibility .18s;z-index:250;}
.has-dropdown:hover .mega,.has-dropdown.open .mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.mega-surface{background:#fff;border-radius:18px;box-shadow:var(--shadow);border:1px solid var(--line);padding:20px;}
.mega-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;}
.mega-item{display:flex;gap:12px;align-items:flex-start;padding:10px;border-radius:12px;transition:background .2s;}
.mega-item:hover{background:var(--teal-pale);}
.mega-item .ic{flex-shrink:0;width:38px;height:38px;border-radius:10px;background:var(--teal-pale);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;}
.mega-item:nth-child(3n+2) .ic{background:var(--coral-pale);color:var(--coral-dark);}
.mega-item:nth-child(3n) .ic{background:#FBF1DD;color:var(--gold);}
.mega-item .ic svg{width:18px;height:18px;}
.mega-item strong{display:block;font-size:.86rem;color:var(--ink);font-family:'Manrope',sans-serif;margin-bottom:2px;}
.mega-item span{font-size:.76rem;color:var(--ink-soft);line-height:1.4;}
.mega-foot{margin-top:12px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.mega-foot span{font-size:.82rem;color:var(--ink-soft);font-weight:600;}
@media(max-width:960px){
  .dd-toggle{display:block;}
  .caret{display:none !important;}
  .mega{position:static;width:auto;max-width:none;transform:none;opacity:1;visibility:visible;pointer-events:auto;padding:2px 0 10px 10px;display:none;background:transparent;}
  .has-dropdown:hover .mega{display:none;}
  .has-dropdown.open .mega{display:block;transform:none;}
  .mega-surface{background:transparent;box-shadow:none;border:none;padding:0;}
  .mega-grid{grid-template-columns:1fr;gap:2px;}
  .mega-item{padding:9px 8px;}
  .mega-item .ic{width:32px;height:32px;}
  .mega-item .ic svg{width:16px;height:16px;}
  .mega-foot{display:none;}
}

/* ---- Zigzag team layout (About page) ---- */
.zig-row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;margin-bottom:64px;}
.zig-row:last-child{margin-bottom:0;}
.zig-row.rev .zig-photo{order:2;}
.zig-row.rev .zig-info{order:1;}
.zig-photo{position:relative;}
.zig-photo img{width:100%;height:420px;object-fit:cover;border-radius:22px;box-shadow:var(--shadow);}
.zig-photo .zig-badge{position:absolute;left:-18px;bottom:-18px;background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:12px 16px;display:flex;align-items:center;gap:10px;}
.zig-row.rev .zig-photo .zig-badge{left:auto;right:-18px;}
.zig-photo .zig-badge .ic{width:38px;height:38px;border-radius:10px;background:var(--teal-pale);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.zig-photo .zig-badge .ic svg{width:19px;height:19px;}
.zig-photo .zig-badge strong{display:block;font-size:.86rem;font-family:'Manrope',sans-serif;}
.zig-photo .zig-badge span{font-size:.74rem;color:var(--ink-soft);}
.zig-info .role{color:var(--coral-dark);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;display:block;}
.zig-info h3{font-size:1.5rem;margin-bottom:12px;}
.zig-info p{font-size:.96rem;}
@media(max-width:860px){
  .zig-row,.zig-row.rev{grid-template-columns:1fr;gap:28px;}
  .zig-row .zig-photo,.zig-row.rev .zig-photo{order:1;}
  .zig-row .zig-info,.zig-row.rev .zig-info{order:2;}
  .zig-photo img{height:320px;}
  .zig-photo .zig-badge,.zig-row.rev .zig-photo .zig-badge{left:16px;right:auto;bottom:-16px;}
}

/* ---- Careers: category cards (photo + title + arrow) ---- */
.cat-card{position:relative;border-radius:22px;overflow:hidden;height:340px;display:flex;align-items:flex-end;box-shadow:var(--shadow-sm);transition:transform .3s,box-shadow .3s;}
.cat-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.cat-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.cat-card:hover img{transform:scale(1.06);}
.cat-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,42,38,0) 40%,rgba(15,42,38,.82) 100%);}
.cat-card-body{position:relative;z-index:2;padding:22px;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;}
.cat-card-body strong{color:#fff;font-family:'Manrope',sans-serif;font-size:1.05rem;}
.cat-card-body .go{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.16);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .25s,transform .25s;}
.cat-card:hover .cat-card-body .go{background:var(--coral);transform:translateX(3px);}
.cat-card-body .go svg{width:17px;height:17px;color:#fff;}

/* ---- Careers: job listing cards ---- */
.job-card{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 26px;transition:box-shadow .25s,border-color .25s,transform .25s;}
.job-card:hover{box-shadow:var(--shadow-sm);border-color:transparent;transform:translateY(-2px);}
.job-card .job-main{display:flex;gap:16px;align-items:flex-start;}
.job-card .job-ic{width:48px;height:48px;border-radius:12px;background:var(--teal-pale);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.job-card .job-ic svg{width:23px;height:23px;}
.job-card h3{font-size:1.08rem;margin-bottom:6px;}
.job-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:.82rem;color:var(--ink-soft);}
.job-meta span{display:flex;align-items:center;gap:5px;}
.job-meta svg{width:14px;height:14px;color:var(--teal);}
.job-tag{display:inline-flex;background:var(--coral-pale);color:var(--coral-dark);font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:100px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;}
@media(max-width:640px){.job-card{padding:20px;}.job-card .job-main{width:100%;}.job-card>a{width:100%;justify-content:center;}}

/* ---- Perks grid (Careers) ---- */
.perk-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;text-align:center;transition:transform .25s,box-shadow .25s;}
.perk-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm);}
.perk-card .ic{width:48px;height:48px;border-radius:12px;background:var(--teal-pale);color:var(--teal-deep);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.perk-card:nth-child(3n+2) .ic{background:var(--coral-pale);color:var(--coral-dark);}
.perk-card:nth-child(3n) .ic{background:#FBF1DD;color:var(--gold);}
.perk-card .ic svg{width:24px;height:24px;}
.perk-card h4{font-size:.96rem;margin-bottom:6px;}
.perk-card p{font-size:.84rem;margin-bottom:0;}

/* ---- Application modal (Careers, front-end demo) ---- */
.modal-overlay{position:fixed;inset:0;background:rgba(15,42,38,.55);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s;z-index:500;}
.modal-overlay.show{opacity:1;pointer-events:auto;}
.modal-box{background:#fff;border-radius:22px;max-width:480px;width:100%;padding:32px;position:relative;max-height:90vh;overflow-y:auto;}
.modal-close{position:absolute;top:18px;right:18px;background:var(--paper-dim);border:none;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-soft);}
.modal-close svg{width:16px;height:16px;}
.modal-box h3{font-size:1.3rem;margin-bottom:6px;}
.modal-box .sub{font-size:.88rem;color:var(--ink-soft);margin-bottom:22px;}

/* ---- Services page: "who it's for" pill row + detail rows ---- */
.svc-detail{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.svc-detail.rev .svc-media{order:2;}
.svc-detail.rev .svc-copy{order:1;}
@media(max-width:860px){.svc-detail,.svc-detail.rev{grid-template-columns:1fr;gap:28px;}.svc-detail .svc-media,.svc-detail.rev .svc-media{order:1;}.svc-detail .svc-copy,.svc-detail.rev .svc-copy{order:2;}}
.svc-media img{width:100%;height:340px;object-fit:cover;border-radius:22px;box-shadow:var(--shadow);}
.for-pill-row{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 20px;}
.for-pill{background:var(--paper-dim);border:1px solid var(--line);color:var(--ink-soft);font-size:.8rem;font-weight:600;padding:7px 14px;border-radius:100px;}

/* ---- Show full photos, never crop (About zigzag + homepage therapist cards) ---- */
.zig-photo img{object-fit:contain;background:var(--paper-dim);}
.team-card .photo{background:var(--paper-dim);display:flex;align-items:center;justify-content:center;}
.team-card .photo img{object-fit:contain;}

/* ---- Icon hardening: every icon badge is guaranteed to clip its icon, never let it
   bleed past the rounded edge, and every icon is centered with flexbox (not text
   baseline) so nothing can ever look "misaligned" regardless of the icon's own artwork. ---- */
.ic,.job-ic,.go,.lock-pill,.success-icon,.perk-card .ic,.modal-close,.social-btn,.dd-toggle{
  overflow:hidden;
}
.ic svg,.job-ic svg,.go svg,.lock-pill svg,.success-icon svg,.modal-close svg,
.caret,.dd-toggle svg,.chev svg,.badge-pill svg,.course-meta svg,.job-meta svg,
.topbar svg,.btn svg,.social-btn svg,.faq-q svg,.breadcrumb svg{
  display:block;
  flex-shrink:0;
}
/* Slightly more breathing room inside every round/rounded-square icon badge so the
   glyph never sits flush against the edge. */
.service-card .ic svg{width:24px;height:24px;}
.info-card .ic svg{width:20px;height:20px;}
.mega-item .ic svg{width:17px;height:17px;}
.perk-card .ic svg{width:22px;height:22px;}
.job-card .job-ic svg{width:21px;height:21px;}
.zig-photo .zig-badge .ic svg{width:18px;height:18px;}
.hero-float .ic svg{width:20px;height:20px;}
.cat-card-body .go svg{width:16px;height:16px;}

/* ---- Responsive polish ---- */
@media(max-width:960px){
  .hero-grid,.cd-grid{grid-template-columns:1fr !important;}
  section.section [style*="grid-template-columns:1fr 1fr"],
  section.section [style*="grid-template-columns:1fr 1.2fr"],
  section.section [style*="grid-template-columns:1.2fr 1fr"]{grid-template-columns:1fr !important;}
}
@media(max-width:600px){
  .container{padding:0 18px;}
  .page-head{padding:44px 0 54px;}
  .cat-card{height:260px;}
}

/* ============================================================
   GENERAL SMALL-SCREEN POLISH — applies site-wide so every page
   (not just the homepage) gets tighter, non-overflowing spacing
   on phones.
   ============================================================ */
@media(max-width:600px){
  .section{padding:56px 0;}
  .section-tight{padding:40px 0;}
  h1{font-size:clamp(1.7rem,7vw,2.1rem);}
  h2{font-size:clamp(1.4rem,6vw,1.7rem);}
  .hero{padding:40px 0 56px;}
  .hero-actions{gap:10px;}
  .hero-actions .btn{width:100%;}
  .hero-stats{gap:22px;}
  .cta-band{padding:30px 22px;border-radius:20px;flex-direction:column;text-align:center;}
  .cta-band .btn{width:100%;}
  .assess-card{padding:26px 20px;}
  .assess-result-card{padding:30px 20px;}
  .contact-form{padding:22px 18px;}
  .modal-card{border-radius:18px;}
  .modal-body{padding:18px;}
  .modal-box{padding:24px 20px;}
  .buy-card{padding:20px;position:static;}
  .info-card{padding:20px;flex-direction:column;}
  .job-card{padding:18px;}
  .job-card .job-main{gap:12px;}
  .stat-strip{gap:20px;}
  .foot-bottom{flex-direction:column;text-align:center;gap:6px;}
  .foot-grid{gap:32px;}
  .gallery-grid{grid-auto-rows:120px;gap:10px;}
  .cd-hero-img img{height:220px;}
  .zig-photo img{height:240px;}
  .svc-media img{height:220px;}
}
@media(max-width:400px){
  .hero-tag{font-size:.74rem;padding:7px 12px 7px 6px;}
  .btn-lg{padding:14px 22px;font-size:.94rem;}
  .score-ring{width:150px;height:150px;}
  .assess-option .opt-card{padding:16px 18px;font-size:.94rem;}
}

/* ============================================================
   ADVANCED SCROLL ANIMATIONS (data-anim driven)
   Applied by assets/js/animations.js via IntersectionObserver
   ============================================================ */
[data-anim]{
  opacity:0;
  will-change:transform,opacity;
  transition:opacity .6s ease-out, transform .85s cubic-bezier(.22,1.4,.36,1);
}
[data-anim].in{opacity:1;transform:none !important;}

[data-anim="fade-up"]{transform:translateY(56px);}
[data-anim="fade-down"]{transform:translateY(-56px);}
[data-anim="fade-left"]{transform:translateX(64px);}
[data-anim="fade-right"]{transform:translateX(-64px);}
[data-anim="fade-in"]{transform:none;}
[data-anim="zoom-in"]{transform:scale(.8);}
[data-anim="zoom-out"]{transform:scale(1.15);}
[data-anim="flip-up"]{transform:perspective(800px) rotateX(24deg) translateY(30px);}

/* Stagger children automatically inside a [data-anim-group] */
[data-anim-group] [data-anim]{transition-delay:calc(var(--i,0) * 110ms);}

@media (prefers-reduced-motion: reduce){
  [data-anim]{opacity:1 !important;transform:none !important;transition:none !important;}
}

/* Legacy .reveal kept for back-compat, powered by the same observer */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:none;}

/* Subtle continuous float used on hero chips */
@keyframes deekFloat{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-10px);}
}
.float-loop{animation:deekFloat 5s ease-in-out infinite;}

/* Nav shadow-on-scroll state (toggled by JS) */
.nav-wrap.scrolled{box-shadow:0 12px 30px -18px rgba(15,42,38,.35);}

/* ============================================================
   ALERTS / FLASH MESSAGES
   ============================================================ */
.alert{
  display:flex;align-items:flex-start;gap:12px;
  padding:14px 18px;border-radius:12px;font-size:.92rem;font-weight:600;
  margin-bottom:18px;border:1px solid transparent;
}
.alert-success{background:#E7F6EE;color:#1C6B41;border-color:#BFE6D2;}
.alert-error{background:var(--coral-pale);color:var(--coral-dark);border-color:#F6C6D0;}
.alert-info{background:var(--teal-pale);color:var(--teal-deep);border-color:#CDEAE6;}

/* ============================================================
   FAQ — page-level accordion group wrapper
   ============================================================ */
.faq-list{max-width:820px;margin:0 auto;}
.faq-cat-label{
  font-family:'Manrope',sans-serif;font-weight:800;font-size:.78rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--teal);margin:34px 0 10px;
}
.faq-cat-label:first-child{margin-top:0;}

/* ============================================================
   ASSESSMENT FLOW
   ============================================================ */
.assess-hero{
  background:linear-gradient(180deg, var(--paper-dim), var(--paper));
  padding:60px 0 50px;text-align:center;position:relative;overflow:hidden;
}
.assess-hero h1{font-size:clamp(1.8rem,4vw,2.6rem);}
.assess-hero .age-tag{
  display:inline-block;font-weight:700;color:var(--ink-soft);margin-bottom:6px;
}
.assess-card{
  max-width:760px;margin:0 auto;background:var(--white);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:44px;
}
.assess-steps{list-style:none;margin:0;padding:0;counter-reset:step;}
.assess-steps li{
  counter-increment:step;position:relative;padding:14px 0 14px 44px;
  border-bottom:1px solid var(--line);color:var(--ink-soft);
}
.assess-steps li:last-child{border-bottom:none;}
.assess-steps li::before{
  content:counter(step);position:absolute;left:0;top:12px;
  width:28px;height:28px;border-radius:50%;background:var(--teal-pale);color:var(--teal-deep);
  font-weight:800;font-size:.82rem;display:flex;align-items:center;justify-content:center;
}

.assess-progress-wrap{max-width:760px;margin:0 auto 30px;}
.assess-progress-top{display:flex;justify-content:space-between;font-size:.82rem;font-weight:700;color:var(--ink-soft);margin-bottom:8px;}
.assess-progress-bar{height:8px;border-radius:8px;background:var(--paper-dim);overflow:hidden;}
.assess-progress-fill{height:100%;background:linear-gradient(90deg,var(--teal),var(--teal-bright));border-radius:8px;transition:width .5s cubic-bezier(.16,.8,.3,1);}

.assess-q-wrap{max-width:760px;margin:0 auto;padding:20px 0 80px;}
.assess-q-wrap h2{text-align:center;font-size:clamp(1.4rem,3vw,1.9rem);margin-bottom:36px;}
.assess-options{display:flex;flex-direction:column;gap:14px;}
.assess-option{
  display:block;position:relative;
}
.assess-option input{position:absolute;opacity:0;pointer-events:none;}
.assess-option .opt-card{
  display:flex;align-items:center;gap:16px;background:var(--paper-dim);
  border:2px solid transparent;border-radius:14px;padding:20px 24px;
  cursor:pointer;transition:transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
  font-family:'Manrope',sans-serif;font-weight:700;font-size:1.02rem;
}
.assess-option .radio-dot{
  width:22px;height:22px;border-radius:50%;border:2px solid var(--line);flex-shrink:0;position:relative;
  transition:border-color .2s ease;
}
.assess-option input:checked ~ .opt-card{
  background:var(--teal-pale);border-color:var(--teal);transform:translateX(4px);
  box-shadow:var(--shadow-sm);
}
.assess-option input:checked ~ .opt-card .radio-dot{border-color:var(--teal);}
.assess-option input:checked ~ .opt-card .radio-dot::after{
  content:"";position:absolute;inset:4px;border-radius:50%;background:var(--teal);
}
.assess-option .opt-card:hover{transform:translateX(4px);box-shadow:var(--shadow-sm);}
.assess-nav-row{display:flex;justify-content:space-between;align-items:center;margin-top:36px;max-width:760px;margin-left:auto;margin-right:auto;}

.assess-result-card{
  max-width:640px;margin:0 auto;background:var(--white);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:48px;text-align:center;
}
.score-ring{
  width:180px;height:180px;border-radius:50%;margin:0 auto 24px;
  display:flex;align-items:center;justify-content:center;position:relative;
}
.score-ring svg{position:absolute;inset:0;transform:rotate(-90deg);}
.score-ring .num{font-family:'Manrope';font-weight:800;font-size:2.4rem;color:var(--ink);}
.score-band-pill{
  display:inline-block;padding:8px 20px;border-radius:100px;font-weight:800;font-size:.85rem;
  margin-bottom:18px;
}

/* ============================================================
   DASHBOARD (logged-in user area)
   ============================================================ */
.dash-shell{display:grid;grid-template-columns:260px 1fr;gap:34px;align-items:start;}
.dash-side{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:26px;position:sticky;top:110px;}
.dash-side .who{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
.dash-side .who .av{width:48px;height:48px;border-radius:50%;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;}
.dash-nav a{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:var(--ink-soft);font-weight:700;font-size:.92rem;margin-bottom:4px;}
.dash-nav a.active,.dash-nav a:hover{background:var(--teal-pale);color:var(--teal-deep);}
.dash-main{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:34px;}
.history-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);}
.history-row:last-child{border-bottom:none;}
@media(max-width:860px){.dash-shell{grid-template-columns:1fr;} .dash-side{position:static;}}

/* ============================================================
   COURSE VIDEO PLAYER PAGE
   ============================================================ */
.player-shell{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start;}
.player-video{aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;background:#000;box-shadow:var(--shadow);}
.player-video iframe{width:100%;height:100%;border:0;}
.video-list-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:10px;max-height:560px;overflow:auto;}
.video-list-item{display:flex;gap:12px;padding:14px;border-radius:12px;align-items:flex-start;}
.video-list-item.active{background:var(--teal-pale);}
.video-list-item .vnum{width:26px;height:26px;border-radius:50%;background:var(--paper-dim);display:flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:800;flex-shrink:0;}
@media(max-width:900px){.player-shell{grid-template-columns:1fr;}}
