/* ===========================================================
   Alba English v2 — modern ed-tech system
   Whites + light greys · Indigo/plum ink · Green CTAs · Orchid pop
   Sora (display) + Plus Jakarta Sans (UI/body)
   =========================================================== */
:root{
  /* Neutrals */
  --white:#FFFFFF;
  --grey-50:#F8F9FB;
  --grey-100:#F1F3F7;
  --grey-150:#E9ECF2;
  --grey-200:#E1E5EC;
  --grey-300:#D2D7E1;
  --line:#E6E9F0;
  --line-2:#D7DCE6;
  /* Brand inks */
  --plum:#260F26;
  --indigo:#251F47;
  --indigo-2:#1B1636;
  --blue:#404E7C;
  --body:#534F61;
  --body-soft:#7C7889;
  /* Greens — logo palette */
  --green:#55A630;      /* leaf green (primary CTA) */
  --green-600:#478C28;
  --green-700:#3C7822;
  --emerald:#007E5E;    /* logo wordmark jade */
  --emerald-600:#00684D;
  --emerald-700:#005740;
  --emerald-bg:#E3F1EC;
  --sage:#71B48D;
  --mint:#86CB92;
  --mint-bg:#EAF5EC;
  --mint-bg-2:#DCEFDF;
  /* Logo green gradients */
  --grad-green:linear-gradient(135deg,#007E5E 0%,#55A630 100%);
  --grad-green-700:linear-gradient(135deg,#00684D 0%,#478C28 100%);
  --grad-card:linear-gradient(162deg,#FFFFFF 0%,#FBFEFC 46%,var(--emerald-bg) 132%);
  --grad-card-mint:linear-gradient(162deg,#FFFFFF 0%,#FCFEFB 46%,var(--mint-bg) 130%);
  /* Orchid pop */
  --orchid:#9932CC;
  --orchid-600:#882FB6;
  --orchid-bg:#F3E6F9;
  /* Feedback */
  --err:#C8453B;
  --err-bg:#FBEBEA;
  /* On dark */
  --on-dark:#EDEBF5;
  --on-dark-soft:rgba(237,235,245,.62);
  --on-dark-line:rgba(237,235,245,.14);
  /* Type */
  --display:"Sora",system-ui,-apple-system,Segoe UI,sans-serif;
  --sans:"Plus Jakarta Sans",system-ui,-apple-system,Segoe UI,sans-serif;
  /* Radius */
  --r-xs:8px;
  --r-sm:12px;
  --r:16px;
  --r-lg:22px;
  --r-xl:30px;
  --r-pill:999px;
  /* Shadow — soft */
  --sh-xs:0 1px 2px rgba(38,15,38,.06);
  --sh-sm:0 2px 8px -2px rgba(38,15,38,.10);
  --sh:0 10px 30px -12px rgba(37,31,71,.18);
  --sh-lg:0 30px 60px -24px rgba(37,31,71,.30);
  --sh-green:0 16px 30px -14px rgba(0,126,94,.40);
  --ease:cubic-bezier(.2,.7,.3,1);
  --wrap:1200px;
  --gut:40px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:16px;scroll-behavior:smooth;}
body{font-family:var(--sans);background:var(--white);color:var(--body);line-height:1.6;font-size:1.0625rem;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
::selection{background:var(--mint);color:var(--plum);}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);}

/* ---------- Typography ---------- */
h1,h2,h3,h4{font-family:var(--display);color:var(--plum);line-height:1.08;letter-spacing:-.02em;font-weight:700;}
h1{font-size:clamp(2.6rem,5.4vw,4.3rem);font-weight:800;letter-spacing:-.03em;}
.h2{font-size:clamp(2rem,3.6vw,3rem);font-weight:700;}
.h3{font-size:1.3rem;font-weight:700;letter-spacing:-.01em;}
.it{color:var(--green);font-style:normal;}
.em{color:var(--plum);font-weight:600;}
.body{font-size:1.0625rem;color:var(--body);line-height:1.65;}
.body--measure{max-width:46ch;}
.statement{font-family:var(--display);font-weight:500;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.34;color:var(--plum);letter-spacing:-.01em;}
.statement .em{font-weight:700;}
.statement .un{color:var(--blue);}

.kicker{display:inline-flex;align-items:center;gap:9px;font-family:var(--display);font-weight:600;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--emerald);}
.kicker .no{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--orchid);font-weight:700;font-size:.92em;letter-spacing:.06em;}
.kicker--on-dark{color:var(--mint);}
.kicker--on-dark .no{color:var(--mint);}

.link{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--green-600);transition:gap .2s var(--ease);}
.link .ar{transition:transform .25s var(--ease);}
.ar{display:inline-flex;align-items:center;}
.ar svg{display:block;}
.link:hover{gap:11px;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;font-family:var(--sans);font-weight:700;font-size:.98rem;line-height:1;padding:0 24px;height:52px;border-radius:var(--r-pill);transition:background .2s var(--ease),color .2s,border-color .2s,transform .14s var(--ease),box-shadow .25s var(--ease);}
.btn .ar{transition:transform .25s var(--ease);}
.btn:hover .ar{transform:translateX(3px);}
.btn:active{transform:translateY(1px);}
.btn--sm{height:44px;font-size:.9rem;padding:0 19px;}
.btn--lg{height:58px;font-size:1.05rem;padding:0 30px;}
.btn--block{width:100%;}
.btn-primary{background:var(--green);color:#fff;box-shadow:var(--sh-xs);}
.btn-primary:hover{background:var(--green-600);box-shadow:var(--sh-green);transform:translateY(-2px);}
.btn-primary:active{transform:translateY(0);}
.btn-dark{background:var(--indigo);color:#fff;}
.btn-dark:hover{background:var(--indigo-2);transform:translateY(-2px);box-shadow:var(--sh);}
.btn-line{background:transparent;color:var(--plum);border:1.5px solid var(--line-2);}
.btn-line:hover{border-color:var(--plum);background:var(--grey-150);transform:translateY(-2px);box-shadow:var(--sh);}
.btn-line:active{transform:translateY(0);}
.btn-white{background:#fff;color:var(--indigo);box-shadow:var(--sh-sm);}
.btn-white:hover{transform:translateY(-2px);box-shadow:var(--sh);}
.btn-ghost-light{background:rgba(237,235,245,.08);color:var(--on-dark);border:1.5px solid var(--on-dark-line);}
.btn-ghost-light:hover{border-color:var(--on-dark);background:rgba(237,235,245,.14);transform:translateY(-2px);}
.btn-ghost-light:active{transform:translateY(0);}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}

.stars{color:var(--green);letter-spacing:.08em;font-size:.95rem;}

/* ---------- Header ---------- */
.site-head{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.82);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid transparent;transition:border-color .25s,box-shadow .25s,background .25s;}
.site-head.is-stuck{border-color:var(--line);box-shadow:var(--sh-sm);}
.head-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:104px;}
.brand img{height:72px;width:auto;}
.nav{display:flex;align-items:center;gap:6px;}
.nav a{position:relative;padding:9px 14px;font-weight:600;font-size:.98rem;color:var(--indigo);border-radius:var(--r-xs);transition:background .18s,color .18s;}
.nav a:hover{color:var(--green-600);}
.nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:3px;height:2px;background:var(--green-600);transform:scaleX(0);transform-origin:left;transition:transform .18s;}
.nav a:hover::after{transform:scaleX(1);}
.nav a.active{color:var(--green-600);}
.head-cta{display:flex;align-items:center;gap:14px;}
.head-login{position:relative;font-weight:700;font-size:.95rem;color:var(--indigo);padding:8px 6px;transition:color .18s;}
.head-login::after{content:"";position:absolute;left:6px;right:6px;bottom:3px;height:2px;background:var(--green-600);transform:scaleX(0);transform-origin:left;transition:transform .18s;}
.head-login:hover{color:var(--green-600);}
.head-login:hover::after{transform:scaleX(1);}
.nav-only-mobile{display:none;}
.burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;border-radius:var(--r-xs);}
.burger span{display:block;width:22px;height:2px;background:var(--indigo);border-radius:2px;transition:transform .25s var(--ease),opacity .2s;margin:0 auto;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- Sections ---------- */
.section{padding:clamp(70px,9vw,120px) 0;}
.section--snug{padding:clamp(50px,6vw,80px) 0;}
.section.alt{background:var(--grey-50);}
.section.ruled{border-top:1px solid var(--line);}

.lead-grid{display:grid;grid-template-columns:1fr;gap:clamp(16px,2.2vw,28px);align-items:start;}
.lg-aside{position:static;}
.lg-aside:empty{display:none;}
.lg-aside .kicker{margin-bottom:16px;}
.lg-aside .h2{margin-bottom:0;}
.lead-grid .statement{max-width:48ch;}
.lead-grid .body{max-width:56ch;}
/* Overtitles: drop the leading number/dash */
.kicker .no{display:none;}

/* ---------- Hero ---------- */
.hero{position:relative;padding:clamp(56px,8vw,104px) 0 clamp(60px,8vw,96px);background:
  radial-gradient(120% 120% at 92% 0%,var(--mint-bg) 0%,transparent 46%),
  radial-gradient(90% 90% at 4% 100%,var(--orchid-bg) 0%,transparent 40%),
  var(--white);}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,5vw,72px);align-items:center;}
.hero .kicker{margin-bottom:20px;}
.hero h1{margin-bottom:24px;}
.hero-sub{font-size:1.22rem;color:var(--body);max-width:40ch;line-height:1.55;}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
.hero-meta{display:flex;align-items:center;gap:22px;margin-top:40px;flex-wrap:wrap;}
.hero-meta .mi{display:flex;flex-direction:column;gap:3px;}
.hero-meta .mi span:last-child{font-size:.84rem;color:var(--body-soft);font-weight:500;}
.hero-meta .mi b{font-family:var(--display);font-size:1.5rem;font-weight:700;color:var(--plum);}
.hero-meta .mi>:first-child{display:flex;align-items:center;min-height:2rem;line-height:1;}
.hero-meta .mi .stars{margin-bottom:1px;}
.hero-divider{width:1px;height:38px;background:var(--line-2);}
.tabular{font-variant-numeric:tabular-nums;}

.hero-media{position:relative;}
.hero-media img,.hero-media video{display:block;width:100%;height:clamp(360px,46vw,520px);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-lg);background:var(--grey-100);object-fit:cover;object-position:center 78%;}
.hero-tag{position:absolute;top:20px;left:20px;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);padding:9px 15px;border-radius:var(--r-pill);font-weight:700;font-size:.84rem;color:var(--indigo);box-shadow:var(--sh-sm);}
.hero-tag .dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(85,166,48,.22);animation:pulse 2.4s var(--ease) infinite;}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(85,166,48,.22);}50%{box-shadow:0 0 0 7px rgba(85,166,48,.05);}}
.hero-cred{position:absolute;bottom:20px;right:20px;display:flex;align-items:center;gap:12px;background:#fff;padding:14px 18px;border-radius:var(--r);box-shadow:var(--sh);max-width:78%;}
.hero-cred .seal{width:40px;height:40px;flex-shrink:0;border-radius:12px;background:var(--mint-bg);color:var(--green-600);display:flex;align-items:center;justify-content:center;}
.hero-cred .seal svg{width:22px;height:22px;}
.hero-cred b{display:block;font-family:var(--display);font-size:.96rem;color:var(--plum);font-weight:700;}
.hero-cred span{font-size:.8rem;color:var(--body-soft);}

/* ---------- Exam marquee ---------- */
.exam-marquee{background:var(--grey-50);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:42px 0;display:flex;flex-direction:column;align-items:center;gap:26px;}
.mq-label{font-family:var(--sans);font-weight:700;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--body-soft);}
.mq-viewport{width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.mq-track{display:flex;align-items:center;gap:clamp(40px,6vw,84px);width:max-content;animation:marquee 38s linear infinite;}
.mq-chip img{height:72px;width:auto;opacity:.58;filter:grayscale(1);transition:opacity .2s,filter .2s;}
.mq-chip:hover img{opacity:1;filter:none;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- Programmes ---------- */
.prog-list{display:flex;flex-direction:column;}
.prog-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:24px;padding:26px 0;border-top:1px solid var(--line);transition:padding-left .25s var(--ease);}
.prog-row:last-child{border-bottom:1px solid var(--line);}
.prog-row:hover{padding-left:10px;}
.prog-no{font-family:var(--display);font-weight:700;font-size:.9rem;color:var(--orchid);font-variant-numeric:tabular-nums;}
.prog-main h3{margin-bottom:5px;transition:color .2s;}
.prog-row:hover .prog-main h3{color:var(--green-600);}
.prog-main p{font-size:.96rem;color:var(--body-soft);max-width:52ch;}
.prog-level{font-weight:700;font-size:.82rem;color:var(--blue);background:var(--grey-100);padding:6px 12px;border-radius:var(--r-pill);white-space:nowrap;}
.prog-arrow{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--indigo);transition:all .2s var(--ease);}
.prog-row:hover .prog-arrow{background:var(--green);border-color:var(--green);color:#fff;transform:rotate(-2deg);}

/* ---------- Steps ---------- */
.steps-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,32px);counter-reset:step;}
.step{position:relative;padding:32px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);counter-increment:step;transition:transform .25s var(--ease),box-shadow .25s,border-color .25s;}
.step:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:var(--line-2);}
.step .sn{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;background:var(--mint-bg);color:var(--green-600);font-family:var(--display);font-weight:800;font-size:1.2rem;margin-bottom:20px;}
.step .sn::before{content:counter(step,decimal-leading-zero);}
.step h3{margin-bottom:10px;}
.step p{font-size:.98rem;color:var(--body-soft);}

/* ---------- Principles ---------- */
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,30px);}
.principle{padding:30px;background:var(--grey-50);border:1px solid var(--line);border-radius:var(--r-lg);transition:transform .25s var(--ease),box-shadow .25s,background .25s;}
.principle:hover{transform:translateY(-4px);background:#fff;box-shadow:var(--sh);}
.principle .pico{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:#fff;border:1px solid var(--line);color:var(--green-600);margin-bottom:20px;box-shadow:var(--sh-xs);}
.principle .pico svg{width:26px;height:26px;}
.principle h3{margin-bottom:10px;}
.principle p{font-size:.98rem;color:var(--body-soft);}

/* ---------- Dark band ---------- */
.band{background:
  radial-gradient(90% 120% at 100% 0%,rgba(153,50,204,.20) 0%,transparent 50%),
  radial-gradient(80% 120% at 0% 100%,rgba(113,180,141,.18) 0%,transparent 50%),
  var(--indigo);color:var(--on-dark);}
.band h2,.band .h3{color:#fff;}
.band .body{color:var(--on-dark-soft);}
.exam-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.exam-cell{display:flex;flex-direction:column;text-decoration:none;color:inherit;padding:26px;border:1px solid var(--on-dark-line);border-radius:var(--r);background:rgba(237,235,245,.04);transition:background .25s,transform .25s var(--ease),border-color .25s;}
.exam-cell:hover{background:rgba(237,235,245,.08);transform:translateY(-3px);border-color:rgba(237,235,245,.28);}
.exam-cell h3{margin-bottom:9px;font-size:1.18rem;}
.exam-cell p{font-size:.92rem;color:var(--on-dark-soft);margin-bottom:16px;line-height:1.55;}
.exam-cell .lvl{display:inline-block;font-weight:700;font-size:.76rem;letter-spacing:.04em;color:var(--mint);background:rgba(134,203,146,.12);padding:5px 11px;border-radius:var(--r-pill);}
.exam-cell .ec-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:14px;}
.exam-cell .ec-arrow{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--on-dark-line);display:flex;align-items:center;justify-content:center;color:var(--on-dark);transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease);}
.exam-cell:hover .ec-arrow{background:var(--mint);border-color:var(--mint);color:var(--indigo);transform:translateX(2px);}

/* ---------- Tutors ---------- */
.tutors,.tutor-profiles{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,28px);}
.tutor-card{position:relative;z-index:1;display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:transform .3s var(--ease),border-color .25s;}
.tutor-card:hover,.tutor-card:focus-within{transform:translateY(-6px);border-color:var(--line-2);z-index:3;}
.tutor-card .ph{position:relative;}
.tutor-card .ph img{display:block;width:100%;height:230px;background:var(--grey-100);}
.tutor-card .body-in{padding:22px 22px 16px;display:flex;flex-direction:column;flex:1;}
.tc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.tc-role{font-size:.84rem;color:var(--body-soft);margin-top:2px;}
.tc-online{display:inline-flex;align-items:center;gap:7px;position:relative;font-weight:700;font-size:.78rem;color:var(--green-600);background:var(--mint-bg);padding:6px 11px;border-radius:var(--r-pill);}
.tc-online .dot{width:7px;height:7px;border-radius:50%;background:var(--green);}
@media (prefers-reduced-motion: no-preference){.tc-online .dot{animation:dotPulse 2.2s ease-out infinite;}}
@keyframes dotPulse{0%{box-shadow:0 0 0 0 rgba(85,166,48,.55);}70%{box-shadow:0 0 0 7px rgba(85,166,48,0);}100%{box-shadow:0 0 0 0 rgba(85,166,48,0);}}
.tc-online .tip{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--indigo);color:#fff;font-size:.72rem;font-weight:600;padding:6px 10px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;transform:translateY(4px);}
.tc-online:hover .tip{opacity:1;transform:translateY(0);}
.tc-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.tc-badge{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.76rem;color:var(--blue);background:var(--grey-100);padding:6px 11px;border-radius:var(--r-pill);}
.tc-badge.alt{color:var(--green-600);background:var(--mint-bg);}
.tc-badge svg{width:14px;height:14px;}
.tc-rating{display:flex;align-items:center;gap:8px;margin-bottom:16px;}
.tc-rating b{font-family:var(--display);font-weight:700;color:var(--plum);}
.tc-facts{display:flex;flex-direction:column;gap:0;margin-bottom:0;}
.tc-facts>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:.9rem;}
.tc-facts dt{color:var(--body-soft);font-weight:500;}
.tc-facts dd{font-weight:600;color:var(--plum);}
.tc-facts dd.hl{color:var(--green-600);}
.tutor-card .ft{margin-top:auto;}

/* Custom "View calendar" cursor that follows the pointer over a tutor card. */
.tc-cursor{position:fixed;left:0;top:0;z-index:300;display:flex;align-items:center;gap:8px;
  padding:11px 18px;border-radius:999px;background:var(--green);color:#fff;
  font-family:var(--sans);font-weight:600;font-size:.92rem;letter-spacing:-.01em;white-space:nowrap;
  pointer-events:none;box-shadow:0 10px 28px rgba(20,20,40,.22);opacity:0;
  transform:translate(-50%,-50%) scale(.5);transition:opacity .16s var(--ease),transform .2s var(--ease);}
.tc-cursor.is-on{opacity:1;transform:translate(-50%,-50%) scale(1);}
.tc-cursor.is-down{opacity:0;transform:translate(-50%,-50%) scale(.82);}
.tc-cursor svg{flex-shrink:0;}

/* Offset anchor jumps so the sticky header doesn't cover the calendar. */
#bookingSection{scroll-margin-top:120px;}

/* ---------- Tutor carousel (paged) ---------- */
.tutor-carousel-wrap{--cols:3;--gap:clamp(20px,2.4vw,28px);position:relative;}
.tc-stage{position:relative;}
.tutor-carousel{position:relative;overflow:hidden;padding:26px 0;}
.tutor-track{display:flex;align-items:flex-start;gap:var(--gap);cursor:grab;transition:transform .55s cubic-bezier(.4,0,.2,1);}
.tutor-track:active{cursor:grabbing;}
.tutor-track .tutor-card{flex:0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols));}
@media (max-width:1040px){.tutor-carousel-wrap{--cols:2;}}
@media (max-width:680px){.tutor-carousel-wrap{--cols:1;}}
@media (prefers-reduced-motion: reduce){.tutor-track{transition:none;}}

/* arrows */
.tc-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:48px;border-radius:50%;background:var(--white);border:1px solid var(--line);box-shadow:0 6px 20px rgba(20,20,40,.13);display:flex;align-items:center;justify-content:center;color:var(--plum);cursor:pointer;transition:background .2s,color .2s,border-color .2s,opacity .25s,visibility .25s;}
.tc-nav:hover{background:var(--green);color:#fff;border-color:var(--green);}
.tc-nav svg{width:20px;height:20px;}
.tc-nav.prev{left:-22px;}
.tc-nav.next{right:-22px;}
.tc-nav[disabled]{opacity:0;visibility:hidden;pointer-events:none;}
@media (max-width:1240px){.tc-nav.prev{left:6px;}.tc-nav.next{right:6px;}}

/* dots */
.tc-dots{display:flex;justify-content:center;gap:8px;margin-top:24px;}
.tc-dots button{width:9px;height:9px;border-radius:50%;background:var(--grey-300);cursor:pointer;transition:background .2s,width .2s;}
.tc-dots button[aria-current="true"]{background:var(--green);width:24px;border-radius:5px;}

/* ---------- Split / materials ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px);align-items:center;}
.split-media img,.split-media video{display:block;width:100%;height:clamp(320px,40vw,460px);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-lg);background:var(--grey-100);object-fit:cover;object-position:center;}
.checklist{list-style:none;display:flex;flex-direction:column;gap:16px;margin-top:28px;}
.checklist li{display:flex;gap:14px;align-items:flex-start;font-size:1rem;color:var(--body);}
.checklist .check{flex-shrink:0;width:26px;height:26px;border-radius:8px;background:var(--green);display:flex;align-items:center;justify-content:center;margin-top:1px;}
.checklist .check svg{width:15px;height:15px;color:#fff;}
.checklist b{color:var(--plum);font-weight:700;}
.split-media {
  position: relative;
  overflow: hidden;
  height: clamp(360px, 46vw, 520px);
  border-radius: var(--r-xl);
  box-shadow: var(--sh-lg);
  background: var(--grey-100);
}

.split-media img,
.split-media video,
.split-video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: inherit;
}

/* Video framing — vertical position inside the frame.
   "Who we are": higher % = video moves DOWN (shows lower part). */
.vid-who { object-position: 12% 35%; }
/* "Learning materials": lower % = video moves UP (shows higher part). */
.vid-materials { object-position: 40% 98%; }

/* ---------- Testimonials ---------- */
.quote-block{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,4vw,56px);align-items:stretch;}
.review-feature{position:relative;display:flex;flex-direction:column;justify-content:center;padding:36px 40px;background:var(--indigo);border-radius:var(--r-xl);color:var(--on-dark);box-shadow:var(--sh-lg);overflow:hidden;}
.review-feature::before{content:"\201C";position:absolute;top:-20px;left:24px;font-family:var(--display);font-size:9rem;color:rgba(134,203,146,.16);line-height:1;}
.bigquote{position:relative;font-family:var(--display);font-weight:500;font-size:clamp(1.55rem,2.7vw,2.15rem);line-height:1.4;color:#fff;letter-spacing:-.01em;transition:opacity .4s var(--ease),transform .4s var(--ease);}
.bigquote .em{color:var(--mint);font-weight:700;}
.quote-by{display:flex;align-items:center;gap:14px;margin-top:28px;}
.quote-by .av{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--sage),var(--orchid));background-size:cover;background-position:center;flex-shrink:0;}
/* === FOTOS DE LAS RESEÑAS (Index) — cambia solo las url() === */
.review-feature[data-r="0"]  .av{background-image:url('../images/reviews/saul.jpg?v=2');}
.review-feature[data-r="1"]  .av{background-image:url('../images/reviews/cristina.jpg?v=2');}
.review-feature[data-r="2"]  .av{background-image:url('../images/reviews/lucia-cid.jpg?v=2');}
.review-feature[data-r="3"]  .av{background-image:url('../images/reviews/sokhna.jpg?v=2');}
.review-feature[data-r="4"]  .av{background-image:url('../images/reviews/alba.jpg?v=2');}
.review-feature[data-r="5"]  .av{background-image:url('../images/reviews/antia.jpg?v=2');}
.review-feature[data-r="6"]  .av{background-image:url('../images/reviews/lola.jpg?v=2');}
.review-feature[data-r="7"]  .av{background-image:url('../images/reviews/giulia.jpg?v=2');}
.review-feature[data-r="8"]  .av{background-image:url('../images/reviews/mehmet.jpg?v=2');}
.review-feature[data-r="9"]  .av{background-image:url('../images/reviews/amelie.jpg?v=2');}
.review-feature[data-r="10"] .av{background-image:url('../images/reviews/lukas.jpg?v=2');}
.quote-by b{display:block;color:#fff;font-family:var(--display);font-weight:700;font-size:1rem;}
.quote-by > span > span{font-size:.86rem;color:var(--on-dark-soft);}
.review-feature.is-swapping .bigquote{opacity:0;transform:translateY(8px);}

.review-mini-wrap{display:flex;flex-direction:column;gap:16px;}
.mini-quotes{display:flex;flex-direction:column;gap:16px;}
.mini-quotes blockquote{padding:22px 24px;background:var(--grey-50);border:1px solid var(--line);border-radius:var(--r);transition:opacity .4s var(--ease),transform .4s var(--ease);}
.mini-quotes blockquote.is-swapping{opacity:0;transform:translateY(8px);}
.mini-quotes .stars{display:block;margin-bottom:10px;}
.mini-quotes p{font-size:.98rem;color:var(--plum);line-height:1.55;margin-bottom:12px;}
.mini-quotes footer{font-size:.82rem;color:var(--body-soft);font-weight:600;}
.review-dots{display:flex;gap:8px;flex-wrap:wrap;}
.review-dots button{width:9px;height:9px;border-radius:50%;background:var(--grey-300);transition:background .2s,transform .2s,width .2s;}
.review-dots button[aria-current="true"]{background:var(--green);width:24px;border-radius:5px;}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.faq-item{border:1px solid var(--line);border-radius:var(--r);background:var(--white);overflow:hidden;transition:border-color .2s,box-shadow .2s;}
.faq-item:has(.faq-q[aria-expanded="true"]){border-color:var(--line-2);box-shadow:var(--sh-sm);}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;text-align:left;padding:22px 26px;font-family:var(--display);font-weight:600;font-size:1.1rem;color:var(--plum);}
.faq-ic{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--grey-100);color:var(--green-600);display:flex;align-items:center;justify-content:center;transition:transform .3s var(--ease),background .2s;}
.faq-q[aria-expanded="true"] .faq-ic{transform:rotate(45deg);background:var(--green);color:#fff;}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s var(--ease);}
.faq-a-inner{padding:0 26px 24px;color:var(--body);font-size:1rem;line-height:1.65;}

/* ---------- Contact ---------- */
.contact{background:
  radial-gradient(90% 130% at 100% 0%,rgba(153,50,204,.18) 0%,transparent 52%),
  radial-gradient(80% 130% at 0% 100%,rgba(113,180,141,.16) 0%,transparent 50%),
  var(--indigo);
  border-radius:var(--r-xl);padding:clamp(36px,5vw,64px);color:var(--on-dark);box-shadow:var(--sh-lg);}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,64px);align-items:center;}
.contact-l .kicker{margin-bottom:18px;}
.contact-l h2{color:#fff;margin-bottom:16px;}
.contact-l .body{color:var(--on-dark-soft);}
.contact-points{display:flex;flex-direction:column;gap:14px;margin-top:28px;}
.contact-points a,.contact-points div{display:flex;align-items:center;gap:13px;font-weight:500;color:var(--on-dark);font-size:1rem;transition:color .18s;}
.contact-points a:hover{color:var(--mint);}
.contact-points .ci{width:40px;height:40px;flex-shrink:0;border-radius:11px;background:rgba(237,235,245,.08);border:1px solid var(--on-dark-line);display:flex;align-items:center;justify-content:center;color:var(--mint);}
.contact-points .ci svg{width:19px;height:19px;}
.contact-r{background:#fff;border-radius:var(--r-lg);padding:clamp(28px,3vw,40px);box-shadow:var(--sh);}
.contact-r h3{color:var(--plum);margin-bottom:10px;font-size:1.5rem;}
.contact-r p{font-size:.96rem;color:var(--body-soft);margin-bottom:24px;}

/* ---------- Footer ---------- */
.site-foot{background:var(--indigo-2);color:var(--on-dark);padding:clamp(54px,6vw,80px) 0 32px;}
.foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:clamp(28px,4vw,56px);padding-bottom:44px;border-bottom:1px solid var(--on-dark-line);}
.foot-brand img{height:40px;width:auto;margin-bottom:18px;}
.foot-brand p{font-size:.94rem;color:var(--on-dark-soft);max-width:34ch;margin-bottom:20px;line-height:1.6;}
.foot-soc{display:flex;gap:10px;}
.foot-soc a{width:40px;height:40px;border-radius:11px;background:rgba(237,235,245,.06);border:1px solid var(--on-dark-line);display:flex;align-items:center;justify-content:center;color:var(--on-dark);transition:background .2s,color .2s,transform .2s;}
.foot-soc a:hover{background:var(--green);border-color:var(--green);color:#fff;transform:translateY(-2px);}
.foot-col h4{font-family:var(--display);font-weight:700;font-size:.96rem;color:#fff;margin-bottom:16px;}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:11px;}
.foot-col a{font-size:.94rem;color:var(--on-dark-soft);transition:color .18s;}
.foot-col a:hover{color:var(--mint);}
.foot-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:26px;font-size:.86rem;color:var(--on-dark-soft);}
.foot-legal{display:flex;gap:22px;}
.foot-legal a{transition:color .18s;}
.foot-legal a:hover{color:var(--mint);}

/* ---------- Reveal ---------- */
.reveal{opacity:1;transform:none;}
.anim .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.anim .reveal.in{opacity:1;transform:none;}
.anim .reveal.d1{transition-delay:.08s;}
.anim .reveal.d2{transition-delay:.16s;}
.anim .reveal.d3{transition-delay:.24s;}

/* ---------- Responsive ---------- */
@media (min-width:981px){.nav{display:flex !important;}}

@media (max-width:1080px){
  :root{--gut:28px;}
  .steps-flow,.principles,.tutors,.tutor-profiles{grid-template-columns:repeat(2,1fr);}
  .exam-grid{grid-template-columns:repeat(2,1fr);}
  .tutors .tutor-card:nth-child(3),.tutor-profiles .tutor-card:nth-child(3){grid-column:1 / -1;}
  .tutors .tutor-card:nth-child(3){flex-direction:row;}
  .tutors .tutor-card:nth-child(3) .ph{width:40%;flex-shrink:0;}
  .tutors .tutor-card:nth-child(3) .ph img{height:100%;}
}

@media (max-width:980px){
  .burger{display:flex;}
  .nav{display:none;position:fixed;inset:74px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--sh-lg);padding:10px 28px 24px;}
  .nav.open{display:flex;}
  .nav a{padding:15px 4px;font-size:1.05rem;border-bottom:1px solid var(--line);border-radius:0;}
  .nav a:hover{background:none;color:var(--green-600);}
  .nav-only-mobile{display:block;color:var(--green-600);font-weight:700;}
  .head-login{display:none;}
  .head-cta .btn-primary{display:none;}
  .hero-grid{grid-template-columns:1fr;gap:40px;}
  .hero-media{order:-1;}
  .lead-grid{grid-template-columns:1fr;gap:28px;}
  .lg-aside{position:static;}
  .quote-block{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .split{grid-template-columns:1fr;gap:36px;}
  .split-media{order:-1;}
  .foot-top{grid-template-columns:1fr 1fr;gap:32px;}
  .foot-brand{grid-column:1 / -1;}
}

@media (max-width:640px){
  :root{--gut:20px;}
  .section{padding:62px 0;}
  .steps-flow,.principles,.tutors,.tutor-profiles,.exam-grid{grid-template-columns:1fr;}
  .tutors .tutor-card:nth-child(3){flex-direction:column;}
  .tutors .tutor-card:nth-child(3) .ph{width:100%;}
  .tutors .tutor-card:nth-child(3) .ph img{height:230px;}
  .hero-cta .btn{width:100%;}
  .hero-meta{gap:16px;}
  .hero-divider{display:none;}
  .hero-cred{display:none;}
  .prog-row{grid-template-columns:auto 1fr auto;}
  .prog-row .prog-arrow{display:none;}
  .prog-main{grid-column:span 1;}
  .foot-top{grid-template-columns:1fr;gap:28px;}
  .foot-bottom{flex-direction:column;align-items:flex-start;}
  .faq-q{font-size:1rem;padding:18px 20px;}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;}
  html{scroll-behavior:auto;}
  .reveal{opacity:1 !important;transform:none !important;}
  .mq-track{animation:none !important;}
}

/* ===========================================================
   INNER PAGES — added for v2 sub-pages
   =========================================================== */

/* ---------- Utilities ---------- */
.muted{color:var(--body-soft);}
.small{font-size:.86rem;}
.req{color:var(--orchid);}
.lede{font-size:1.22rem;color:var(--body);line-height:1.6;}

/* ---------- Page head ---------- */
.page-head{position:relative;padding:clamp(54px,7vw,92px) 0 clamp(34px,4vw,52px);
  background:
    radial-gradient(110% 130% at 96% 0%,var(--mint-bg) 0%,transparent 48%),
    radial-gradient(90% 120% at 0% 100%,var(--orchid-bg) 0%,transparent 42%),
    var(--white);}
.page-head .kicker{margin-bottom:18px;}
.page-head h1{margin-bottom:6px;}

/* ---------- Legal / prose pages ---------- */
.legal{display:grid;grid-template-columns:220px 1fr;gap:clamp(32px,5vw,72px);align-items:start;}
.legal-toc{position:sticky;top:104px;}
.legal-toc h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--body-soft);margin-bottom:14px;}
.legal-toc ul{list-style:none;display:flex;flex-direction:column;gap:2px;}
.legal-toc a{display:block;padding:7px 12px;border-radius:9px;font-size:.92rem;color:var(--body-soft);border-left:2px solid transparent;transition:color .18s,background .18s,border-color .18s;}
.legal-toc a:hover{color:var(--plum);background:var(--grey-50);}
.legal-toc a.active{color:var(--plum);border-left-color:var(--green);background:var(--mint-bg);}
.legal-body{max-width:68ch;}
.legal-body .updated{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;color:var(--body-soft);background:var(--grey-50);border:1px solid var(--line);padding:7px 14px;border-radius:var(--r-pill);margin-bottom:38px;}
.legal-body h2{font-size:clamp(1.3rem,2vw,1.6rem);margin:46px 0 14px;scroll-margin-top:100px;}
.legal-body h2:first-of-type{margin-top:0;}
.legal-body h3{font-size:1.06rem;margin:26px 0 8px;color:var(--plum);}
.legal-body p{color:var(--body);line-height:1.7;margin-bottom:16px;}
.legal-body ul{margin:0 0 16px;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:10px;}
.legal-body ul li{position:relative;padding-left:26px;color:var(--body);line-height:1.65;}
.legal-body ul li::before{content:"";position:absolute;left:4px;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--green);}
.legal-body a.inline{color:var(--green-600);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
.legal-body a.inline:hover{color:var(--plum);}
.legal-body .legal-note{background:var(--grey-50);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;margin:8px 0 16px;}
.legal-body .legal-note p:last-child{margin-bottom:0;}
.legal-body table.cookie-table{width:100%;border-collapse:collapse;margin:6px 0 18px;font-size:.94rem;}
.legal-body table.cookie-table th,.legal-body table.cookie-table td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top;}
.legal-body table.cookie-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--body-soft);font-weight:700;}
.legal-body table.cookie-table tr:last-child td{border-bottom:none;}
@media (max-width:860px){
  .legal{grid-template-columns:1fr;}
  .legal-toc{position:static;display:none;}
}

/* ---------- Forms ---------- */
.form-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(28px,3vw,42px);box-shadow:var(--sh);}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}
.field label{font-size:.94rem;font-weight:600;color:var(--plum);}
.field .hint{color:var(--body-soft);font-weight:400;font-size:.82rem;}
.input,.select,.textarea{width:100%;font-family:var(--sans);font-size:1rem;background:var(--grey-50);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:14px 15px;color:var(--plum);transition:border-color .2s,box-shadow .2s,background .2s;}
.input::placeholder,.textarea::placeholder{color:var(--body-soft);}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--green);background:var(--white);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 16%,transparent);}
.textarea{min-height:120px;resize:vertical;line-height:1.55;}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%237C7889' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:42px;cursor:pointer;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field.invalid .input,.field.invalid .select,.field.invalid .textarea{border-color:var(--err);box-shadow:0 0 0 3px color-mix(in srgb,var(--err) 14%,transparent);}
.field-err{font-size:.8rem;color:var(--err);font-weight:600;display:none;}
.field.invalid .field-err{display:block;}
.chips{display:flex;flex-wrap:wrap;gap:10px;}
.chip input{position:absolute;opacity:0;width:0;height:0;}
.chip label{display:inline-flex;align-items:center;cursor:pointer;padding:10px 16px;border:1px solid var(--line-2);border-radius:var(--r-pill);font-size:.92rem;font-weight:600;color:var(--body);background:var(--grey-50);transition:all .18s var(--ease);white-space:nowrap;}
.chip label:hover{border-color:var(--green);color:var(--plum);}
.chip input:checked+label{background:var(--green);border-color:var(--green);color:#fff;}
.chip input:focus-visible+label{outline:2px solid var(--orchid);outline-offset:2px;}
.checkbox-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:22px;}
.checkbox-row input{width:19px;height:19px;margin-top:2px;accent-color:var(--green);flex-shrink:0;}
.checkbox-row label{font-size:.88rem;color:var(--body);line-height:1.5;}
.checkbox-row a{color:var(--green-600);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.checkbox-row.invalid label{color:var(--err);}
.form-success{display:none;text-align:center;padding:18px 0;}
.form-success.show{display:block;}
.form-success .fic{width:66px;height:66px;border-radius:50%;background:var(--mint-bg);color:var(--green-600);display:flex;align-items:center;justify-content:center;margin:0 auto 22px;}

/* Book page aside */
.book-aside .checklist{margin-top:28px;}
.book-trust{margin-top:30px;padding-top:26px;border-top:1px solid var(--line);display:flex;align-items:center;gap:14px;}
.book-trust .av-row{display:flex;}
.book-trust .av-row .a{width:38px;height:38px;border-radius:50%;border:2px solid var(--white);margin-left:-11px;background:linear-gradient(135deg,var(--sage),var(--orchid));background-size:cover;background-position:center;}
/* === 4 AVATARES DE BOOK A FREE TRIAL — cambia solo las url() === */
.book-trust .av-row .a:nth-child(1){background-image:url('../images/reviews/trial-1.jpg?v=2');}
.book-trust .av-row .a:nth-child(2){background-image:url('../images/reviews/trial-2.jpg?v=2');}
.book-trust .av-row .a:nth-child(3){background-image:url('../images/reviews/trial-3.jpg?v=2');}
.book-trust .av-row .a:nth-child(4){background-image:url('../images/reviews/trial-4.jpg?v=2');}
.book-trust .av-row .a:first-child{margin-left:0;}
.book-trust p{font-size:.88rem;color:var(--body);}
.book-trust p b{color:var(--plum);}
.book-trust .stars{display:block;font-size:.82rem;margin-bottom:1px;}
.book-contact .link{color:var(--green-600);}

/* ---------- Auth ---------- */
.auth{display:grid;grid-template-columns:1.05fr .95fr;min-height:calc(100vh - 74px);}
.auth-aside{position:relative;overflow:hidden;color:var(--on-dark);padding:clamp(40px,4vw,64px);display:flex;flex-direction:column;justify-content:space-between;gap:40px;
  background:
    radial-gradient(46vmax 40vmax at 10% 0%,rgba(153,50,204,.32),transparent 60%),
    radial-gradient(40vmax 36vmax at 100% 108%,rgba(113,180,141,.30),transparent 62%),
    var(--indigo);}
.auth-aside .ab img{height:52px;}
.auth-deco{position:absolute;right:-90px;bottom:-90px;width:320px;height:320px;color:rgba(237,235,245,.06);pointer-events:none;}
/* ---------- Brand display font (logo typeface) ---------- */
@font-face{
  font-family:"Traffolight";
  src:url("../images/Traffolight.otf") format("opentype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

.auth-q{position:relative;z-index:1;max-width:34ch;font-family:var(--display);font-weight:500;color:#fff;transition:opacity .5s var(--ease);padding-top:.5em;}
.auth-q.is-fading{opacity:0;}
.auth-q::before{content:"\201C";position:absolute;top:-.42em;left:-.06em;font-family:var(--display);font-weight:700;font-size:clamp(4rem,6vw,6rem);line-height:1;color:var(--mint);opacity:.85;pointer-events:none;}
.auth-q-text{display:block;font-family:"Traffolight",var(--display);font-weight:400;font-size:clamp(1.85rem,2.9vw,3rem);line-height:1.2;letter-spacing:-.01em;text-wrap:balance;}
.auth-q cite{display:block;font-style:normal;font-family:var(--sans);font-size:.92rem;color:var(--mint);margin-top:24px;font-weight:600;letter-spacing:.01em;}
.auth-q cite::before{content:"";display:inline-block;width:22px;height:2px;background:var(--mint);vertical-align:middle;margin-right:10px;opacity:.8;}
.auth-benefits{list-style:none;display:grid;gap:13px;position:relative;z-index:1;}
.auth-benefits li{display:flex;align-items:center;gap:12px;font-size:.95rem;color:var(--on-dark-soft);}
.auth-benefits .check{flex-shrink:0;width:24px;height:24px;border-radius:7px;background:var(--mint);color:var(--indigo);display:flex;align-items:center;justify-content:center;}
.auth-benefits .check svg{width:14px;height:14px;}
.auth-main{display:flex;align-items:center;justify-content:flex-start;padding:clamp(40px,5vw,72px) clamp(40px,6vw,96px);}
.auth-form{width:100%;max-width:420px;}
.auth-logo-sm{display:none;}
.auth-logo-sm img{height:46px;}
.auth-form h1{font-family:"Traffolight",var(--display);font-weight:400;font-size:clamp(2.1rem,3vw,2.7rem);line-height:1.04;letter-spacing:-.02em;margin-bottom:10px;}
.auth-form .sub{color:var(--body);margin-bottom:30px;}
.oauth{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;height:52px;border:1px solid var(--line-2);border-radius:var(--r-pill);background:var(--white);font-family:var(--sans);font-weight:700;font-size:.94rem;color:var(--plum);transition:background .2s,border-color .2s,box-shadow .2s;}
.oauth:hover{background:var(--grey-50);box-shadow:var(--sh-xs);}
.auth-or{display:flex;align-items:center;gap:14px;margin:22px 0;color:var(--body-soft);font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;}
.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--line);}
.auth-alt{margin-top:24px;text-align:center;font-size:.94rem;color:var(--body);}
.auth-alt a{color:var(--green-600);font-weight:700;}
.forgot{font-size:.82rem;color:var(--green-600);font-weight:700;white-space:nowrap;}
.pw-wrap{position:relative;}
.pw-wrap .input{padding-right:48px;}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:var(--r-xs);display:flex;align-items:center;justify-content:center;color:var(--body-soft);transition:color .2s,background .2s;}
.pw-toggle:hover{color:var(--plum);background:var(--grey-100);}
.pw-toggle.on{color:var(--green-600);}
.auth-back{display:none;align-items:center;gap:8px;font-size:.88rem;color:var(--body);margin-bottom:30px;font-weight:600;transition:color .18s;}
@media (min-width:981px){.auth-back{display:none;}}
.auth-back:hover{color:var(--plum);}
.auth-aside-foot{display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--on-dark-soft);position:relative;z-index:1;}

/* ---------- Booking ---------- */
.tutor-profiles{display:grid;gap:clamp(20px,2.4vw,28px);grid-template-columns:repeat(3,1fr);}
.booking{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(28px,3vw,44px);align-items:start;}
.booking-main{min-width:0;}
.tutor-tabs{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:26px;}
.tutor-tab{display:flex;align-items:center;gap:12px;padding:10px 18px 10px 10px;border:1px solid var(--line-2);border-radius:var(--r-pill);background:var(--white);transition:border-color .2s,background .2s,box-shadow .2s;}
.tutor-tab:hover{border-color:var(--green);}
/* Tutor pill avatars — drop a square photo per tutor below and it fills the circle.
   Replace each url() with your own image (e.g. ../images/tutors/vivien.jpg).
   If an image is missing the tutor's initial shows as a fallback. */
.tutor-tab .ta{position:relative;width:40px;height:40px;border-radius:50%;background-color:var(--mint-bg);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;font-size:1.05rem;color:var(--green-600);}
.tutor-tab .ta::after{content:"";position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;}
.tutor-tab[data-tutor="vivien"]   .ta::after{background-image:url('../images/tutors/vivien.jpg');}
.tutor-tab[data-tutor="tamara"]   .ta::after{background-image:url('../images/tutors/tamara.jpg');}
.tutor-tab[data-tutor="kayleigh"] .ta::after{background-image:url('../images/tutors/kayleigh.jpg');}
.tutor-tab[data-tutor="lucia"]    .ta::after{background-image:url('../images/tutors/lucia.jpg');}
.tutor-tab[data-tutor="mateus"]   .ta::after{background-image:url('../images/tutors/mateus.jpg');}
.tutor-tab[data-tutor="daniel"]   .ta::after{background-image:url('../images/tutors/daniel.jpg');}
.tutor-tab[data-tutor="noor"]     .ta::after{background-image:url('../images/tutors/noor.jpg');}
.tutor-tab .tn{text-align:left;line-height:1.15;}
.tutor-tab .tn b{display:block;font-weight:600;font-size:.95rem;color:var(--plum);}
.tutor-tab .tn span{font-size:.76rem;color:var(--body-soft);}
.tutor-tabs .tutor-tab.tab-on{background:var(--green);border-color:var(--green);box-shadow:var(--sh-sm);}
.tutor-tabs .tutor-tab.tab-on .tn b{color:#fff;}
.tutor-tabs .tutor-tab.tab-on .tn span{color:rgba(255,255,255,.8);}
.tutor-tabs .tutor-tab.tab-on .ta{background:rgba(255,255,255,.22);color:#fff;}

.cal-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden;}
.cal-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px clamp(18px,2vw,26px);border-bottom:1px solid var(--line);}
.cal-top .wk{font-family:var(--display);font-weight:700;font-size:1.15rem;color:var(--plum);}
.cal-top .wk span{display:block;font-family:var(--sans);font-size:.74rem;color:var(--body-soft);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;font-weight:600;}
.cal-nav{display:flex;gap:8px;}
.cal-nav button{width:40px;height:40px;border-radius:var(--r-sm);border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--plum);transition:background .2s,border-color .2s,color .2s;}
.cal-nav button:hover:not(:disabled){background:var(--green);color:#fff;border-color:var(--green);}
.cal-nav button:disabled{opacity:.4;cursor:not-allowed;}
.cal-legend{display:flex;align-items:center;gap:18px;padding:14px clamp(18px,2vw,26px);border-bottom:1px solid var(--line);font-size:.78rem;color:var(--body);flex-wrap:wrap;}
.cal-legend .lg{display:inline-flex;align-items:center;gap:7px;}
.cal-legend .sw{width:14px;height:14px;border-radius:4px;border:1px solid var(--line-2);}
.cal-legend .sw.free{background:var(--white);}
.cal-legend .sw.sel{background:var(--green);border-color:var(--green);}
.cal-legend .sw.taken{background:var(--grey-150);border-color:var(--line-2);}

.cal-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.cal-grid{display:grid;grid-template-columns:64px repeat(5,minmax(88px,1fr));min-width:516px;}
.cal-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.cal-grid>.cal-cell:nth-child(6n){border-right:none;}
.cal-colhead{padding:14px 6px;text-align:center;background:var(--grey-50);border-bottom:1px solid var(--line);}
.cal-colhead .dow{font-family:var(--sans);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--body-soft);}
.cal-colhead .dnum{font-family:var(--display);font-weight:700;font-size:1.15rem;color:var(--plum);margin-top:2px;}
.cal-colhead.is-today .dnum,.cal-colhead.is-today .dow{color:var(--green-600);}
.cal-timehead{background:var(--grey-50);border-bottom:1px solid var(--line);border-right:1px solid var(--line);}
.cal-time{display:flex;align-items:flex-start;justify-content:flex-end;padding:8px 10px 0 0;font-family:var(--sans);font-weight:600;font-size:.72rem;color:var(--body-soft);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:52px;}
.slot{width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-weight:600;font-size:.7rem;color:transparent;transition:background .16s,color .16s;position:relative;}
.slot.free{background:var(--white);}
.slot.free::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);opacity:.38;transition:opacity .16s,transform .16s;}
.slot.free:hover{background:var(--mint-bg);}
.slot.free:hover::after{opacity:.8;transform:scale(1.3);}
.slot.taken{background:repeating-linear-gradient(135deg,var(--grey-50),var(--grey-50) 5px,var(--grey-150) 5px,var(--grey-150) 10px);cursor:not-allowed;}
.slot.taken::after{content:"";width:14px;height:1.5px;background:var(--body-soft);opacity:.5;}
.slot.selected{background:var(--green);color:#fff;}
.slot.selected::after{content:"\2713";font-size:.8rem;color:#fff;width:auto;height:auto;background:none;}
.slot:focus-visible{outline:2px solid var(--orchid);outline-offset:-2px;}

.booking-summary{position:sticky;top:96px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);overflow:hidden;}

/* Lesson details form (rendered by script) */
.ld{padding:clamp(22px,2.4vw,30px);}
.ld-title{font-family:var(--display);font-weight:700;font-size:clamp(1.4rem,2vw,1.65rem);color:var(--plum);letter-spacing:-.01em;margin-bottom:20px;}
.ld-tutor{display:flex;align-items:center;gap:13px;padding:14px 16px;background:linear-gradient(110deg,var(--mint-bg),var(--grey-50));border:1px solid var(--line-2);border-radius:var(--r);margin-bottom:16px;}
.ld-ava{position:relative;overflow:hidden;width:46px;height:46px;border-radius:50%;flex-shrink:0;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;font-size:1.15rem;}
.ld-tutor-meta b{display:block;font-weight:700;font-size:1.05rem;color:var(--plum);line-height:1.2;}
.ld-tutor-meta span{font-size:.85rem;color:var(--body-soft);}
.ld-slots{display:flex;align-items:center;gap:12px;padding:13px 16px;background:var(--grey-50);border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px;}
.ld-slots-lbl{font-weight:700;font-size:.9rem;color:var(--plum);}
.ld-dots{display:flex;gap:7px;}
.ld-dots i{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--line-2);background:transparent;transition:background .2s,border-color .2s;}
.ld-dots i.on{background:var(--green);border-color:var(--green);}
.ld-slots-hint{margin-left:auto;font-size:.74rem;color:var(--body-soft);font-weight:600;}
.ld-time{display:flex;align-items:center;gap:10px;padding:13px 16px;border-radius:var(--r);font-size:.92rem;}
.ld-time svg{width:18px;height:18px;flex-shrink:0;}
.ld-time.empty{background:var(--mint-bg);border:1px solid var(--line-2);color:var(--body);font-style:italic;font-weight:500;margin-bottom:22px;}
.ld-time.empty svg{color:var(--green);}
.ld-time-list{display:grid;gap:8px;margin-bottom:22px;max-height:200px;overflow-y:auto;}
.ld-time.filled{background:var(--mint-bg);border:1px solid var(--line-2);}
.ld-time.filled svg{color:var(--green);}
.ld-time.filled .d{font-weight:700;color:var(--plum);}
.ld-time.filled .t{font-size:.8rem;color:var(--body);font-weight:600;}
.ld-time.filled .rm{margin-left:auto;width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--body-soft);transition:background .15s,color .15s;flex-shrink:0;}
.ld-time.filled .rm:hover{background:var(--err-bg);color:var(--err);}
.ld-field{margin-bottom:18px;}
.ld-field>label{display:block;font-weight:700;font-size:.94rem;color:var(--plum);margin-bottom:9px;}
.ld-field>label .opt{font-weight:400;color:var(--orchid);font-size:.84rem;}
.ld-select{position:relative;}
.ld-select svg{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--body-soft);pointer-events:none;}
.ld-field select,.ld-field textarea,.ld-field input[type=email]{width:100%;font-family:var(--sans);font-size:.95rem;color:var(--plum);background:var(--white);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:13px 15px;transition:border-color .15s,box-shadow .15s;}
.ld-field select{appearance:none;-webkit-appearance:none;padding-right:42px;cursor:pointer;}
.ld-field textarea{resize:vertical;min-height:92px;line-height:1.5;}
.ld-field select:focus,.ld-field textarea:focus,.ld-field input[type=email]:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--mint-bg);}
.ld-field input::placeholder,.ld-field textarea::placeholder{color:var(--body-soft);}
.ld-chips{display:flex;flex-wrap:wrap;gap:8px;}
.ld-chip{font-family:var(--sans);font-weight:600;font-size:.86rem;color:var(--body);background:var(--white);border:1px solid var(--line-2);border-radius:var(--r-pill);padding:8px 15px;cursor:pointer;transition:all .15s;}
.ld-chip:hover{border-color:var(--green);color:var(--plum);}
.ld-chip.on{background:var(--green);border-color:var(--green);color:#fff;}
.bs-note{font-size:.78rem;color:var(--body-soft);margin-top:14px;text-align:center;line-height:1.5;}
.booking-success{text-align:center;padding:30px clamp(20px,2vw,26px);}
.booking-success .fic{width:60px;height:60px;border-radius:50%;background:var(--mint-bg);color:var(--green-600);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;}
.booking-success h3{margin-bottom:8px;}
.booking-success p{font-size:.92rem;color:var(--body);line-height:1.6;margin-bottom:20px;}

/* ---------- Exams page ---------- */
.exam-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,22px);}
.exam-card{display:flex;flex-direction:column;padding:28px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);transition:transform .25s var(--ease),box-shadow .25s,border-color .25s;}
.exam-card:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:var(--line-2);}
.exam-card .ec-no{font-family:var(--display);font-weight:700;font-size:.86rem;color:var(--orchid);font-variant-numeric:tabular-nums;margin-bottom:14px;}
.exam-card h3{margin-bottom:9px;}
.exam-card p{font-size:.95rem;color:var(--body-soft);line-height:1.55;margin-bottom:20px;}
.exam-card .ec-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;}
.exam-card .lvl{font-weight:700;font-size:.78rem;color:var(--blue);background:var(--grey-100);padding:6px 12px;border-radius:var(--r-pill);}
.exam-card .ec-arrow{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--indigo);transition:all .2s var(--ease);}
.exam-card:hover .ec-arrow{background:var(--green);border-color:var(--green);color:#fff;}
.conv-note{margin-top:22px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:space-between;padding:clamp(24px,2.6vw,32px);background:var(--orchid-bg);border-radius:var(--r-lg);}
.material{display:flex;gap:18px;align-items:flex-start;padding:20px 0;border-top:1px solid var(--line);}
.material:first-child{border-top:none;}
.material-no{font-family:var(--display);font-weight:700;font-size:.86rem;color:var(--orchid);font-variant-numeric:tabular-nums;padding-top:4px;}
.material h3{margin-bottom:4px;font-size:1.12rem;}
.material p{font-size:.95rem;color:var(--body-soft);}

/* ---------- Contact page ---------- */
.contact-page{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,5vw,72px);align-items:start;}
.contact-info .h2{margin:18px 0 18px;}
.channels{display:grid;gap:14px;margin-top:30px;}
.signup-wrap{max-width:560px;margin:0 auto;}
.channel{display:flex;align-items:center;gap:16px;padding:18px 20px;background:var(--white);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-xs);transition:transform .25s var(--ease),box-shadow .25s,border-color .25s;}
.channel:hover{transform:translateY(-3px);box-shadow:var(--sh);border-color:var(--line-2);}
.channel .ci{width:46px;height:46px;border-radius:var(--r-sm);background:var(--mint-bg);color:var(--green-600);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.channel .ci svg{width:22px;height:22px;}
.channel .cm b{display:block;font-weight:700;font-size:1rem;color:var(--plum);}
.channel .cm span{font-size:.9rem;color:var(--body-soft);}
.hours{margin-top:30px;padding:24px 26px;background:var(--grey-50);border:1px solid var(--line);border-radius:var(--r);}
.hours h4{font-family:var(--sans);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--body-soft);margin-bottom:16px;font-weight:700;}
.hours-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-top:1px solid var(--line);font-size:.92rem;}
.hours-row:first-of-type{border-top:none;}
.hours-row .d{color:var(--plum);font-weight:600;}
.hours-row .t{font-size:.84rem;color:var(--body);font-weight:600;}
.hours-row .t.closed{color:var(--body-soft);}
.map-frame{position:relative;width:100%;height:clamp(340px,38vw,470px);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh);border:1px solid var(--line);background:var(--grey-50);}
.map-frame iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.92);}
.visit-address{display:flex;align-items:center;gap:16px;margin-top:24px;padding:18px 20px;background:var(--white);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-xs);}
.visit-address .ci{width:46px;height:46px;border-radius:var(--r-sm);background:var(--mint-bg);color:var(--green-600);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.visit-address .ci svg{width:22px;height:22px;}
.visit-address b{display:block;font-weight:700;font-size:1rem;color:var(--plum);margin-bottom:3px;}
.visit-address>span span{font-size:.92rem;color:var(--body-soft);line-height:1.5;}

/* WhatsApp FAB */
.wa-fab{position:fixed;right:22px;bottom:22px;z-index:200;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px -8px rgba(37,211,102,.55);transition:transform .2s var(--ease),box-shadow .2s;}
.wa-fab svg{width:30px;height:30px;}
.wa-fab:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 18px 34px -10px rgba(37,211,102,.6);}
.wa-fab .wa-tip{position:absolute;right:calc(100% + 12px);background:var(--indigo);color:#fff;font-size:.82rem;font-weight:600;padding:8px 13px;border-radius:var(--r-pill);white-space:nowrap;opacity:0;pointer-events:none;transform:translateX(6px);transition:opacity .2s,transform .2s;box-shadow:var(--sh);}
.wa-fab:hover .wa-tip{opacity:1;transform:translateX(0);}
/* Occasional attention: the icon traces a small circle + a ring pulses out */
.wa-fab::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;opacity:0;pointer-events:none;}
.wa-fab.is-calling::before{animation:waRing 1.5s ease-out 2;}
.wa-fab.is-calling svg{animation:waOrbit 1.2s ease-in-out 2;}
@keyframes waRing{0%{transform:scale(1);opacity:.5;}100%{transform:scale(1.85);opacity:0;}}
@keyframes waOrbit{
  0%{transform:translate(0,0) rotate(0deg);}
  20%{transform:translate(3px,-2px) rotate(7deg);}
  40%{transform:translate(2px,-4px) rotate(0deg);}
  60%{transform:translate(-2px,-4px) rotate(-7deg);}
  80%{transform:translate(-3px,-2px) rotate(0deg);}
  100%{transform:translate(0,0) rotate(0deg);}
}
@media (prefers-reduced-motion:reduce){.wa-fab.is-calling::before,.wa-fab.is-calling svg{animation:none;}}
.tc-online.is-pinged .dot{animation:tcPing .6s var(--ease);}
@keyframes tcPing{0%{box-shadow:0 0 0 0 rgba(85,166,48,.5);}100%{box-shadow:0 0 0 10px rgba(85,166,48,0);}}

/* ---------- Inner-page responsive ---------- */
@media (max-width:980px){
  .auth{grid-template-columns:1fr;min-height:0;}
  .auth-aside{display:none;}
  .auth-main{padding:clamp(36px,8vw,64px) var(--gut);min-height:calc(100vh - 74px);}
  .auth-logo-sm{display:none;}
  .booking{grid-template-columns:1fr;}
  .booking-summary{position:static;}
  .contact-page{grid-template-columns:1fr;}
  .exam-cards{grid-template-columns:repeat(2,1fr);}
  .tutor-profiles{grid-template-columns:repeat(2,1fr);}
  .tutor-profiles .tutor-card:nth-child(3){grid-column:1 / -1;flex-direction:row;}
  .tutor-profiles .tutor-card:nth-child(3) .ph{width:40%;flex-shrink:0;}
  .tutor-profiles .tutor-card:nth-child(3) .ph img{height:100%;}
}
@media (max-width:640px){
  .field-row{grid-template-columns:1fr;}
  .exam-cards{grid-template-columns:1fr;}
  .tutor-profiles{grid-template-columns:1fr;}
  .tutor-profiles .tutor-card:nth-child(3){flex-direction:column;}
  .tutor-profiles .tutor-card:nth-child(3) .ph{width:100%;}
  .tutor-profiles .tutor-card:nth-child(3) .ph img{height:230px;}
  .conv-note{flex-direction:column;align-items:flex-start;}
  .cal-grid{grid-template-columns:42px repeat(5,minmax(0,1fr));min-width:0;}
  .slot{min-height:48px;font-size:0;}
  .slot.selected::after{font-size:.85rem;}
  .cal-time{font-size:.6rem;padding:6px 5px 0 0;}
}

/* ===========================================================
   ALBA — logo-green gradient layer
   Light surfaces & soft shadows kept (no hard borders / no 3D).
   Subtle gradients from the logo greens — jade #007E5E → leaf
   #55A630 — on backgrounds, cards and accents.  Fonts unchanged.
   =========================================================== */

/* Emphasis word in logo jade */
.it{color:var(--emerald);font-style:normal;}

/* ---------- Buttons: logo-green gradient ---------- */
.btn-primary{background:var(--grad-green);color:#fff;box-shadow:var(--sh-xs);}
.btn-primary:hover{background:var(--grad-green-700);box-shadow:var(--sh-green);transform:translateY(-2px);}
.btn-primary:active{transform:translateY(0);}

/* ---------- Hero: extra green wash (keeps the previous look) ---------- */
.hero{background:
  radial-gradient(120% 120% at 92% 0%,var(--mint-bg) 0%,transparent 46%),
  radial-gradient(115% 100% at 6% 4%,rgba(0,126,94,.10) 0%,transparent 42%),
  radial-gradient(90% 90% at 4% 100%,var(--orchid-bg) 0%,transparent 40%),
  var(--white);}
.hero-cred .seal{background:var(--grad-green);color:#fff;}

/* ---------- Section tint ---------- */
.section.alt{background:linear-gradient(180deg,var(--mint-bg) 0%,var(--grey-50) 56%);}

/* ---------- Steps: gradient card + gradient numeral ---------- */
.step{background:var(--grad-card);}
.step .sn{background:var(--grad-green);color:#fff;}

/* ---------- Principles: minty gradient card ---------- */
.principle{background:var(--grad-card-mint);}
.principle:hover{background:var(--grad-card);}
.principle .pico{background:linear-gradient(150deg,var(--mint-bg),#fff);color:var(--emerald);}

/* ---------- Dark band: green glows inside the indigo ---------- */
.band{background:
  radial-gradient(95% 130% at 100% 0%,rgba(153,50,204,.22) 0%,transparent 52%),
  radial-gradient(95% 130% at 0% 100%,rgba(0,126,94,.32) 0%,transparent 56%),
  var(--indigo);}
.exam-cell:hover{background:linear-gradient(160deg,rgba(0,126,94,.16),rgba(237,235,245,.04));}

/* ---------- Tutors / FAQ: subtle gradient cards ---------- */
.tutor-card{background:var(--grad-card);}
.faq-item{background:var(--grad-card);}

/* ---------- Programmes ---------- */
.prog-row:hover .prog-arrow{background:var(--grad-green);border-color:transparent;color:#fff;}

/* ---------- Materials / checklist ticks ---------- */
.checklist .check{background:var(--grad-green);}

/* ---------- Contact block: greener wash ---------- */
.contact{background:
  radial-gradient(92% 130% at 100% 0%,rgba(153,50,204,.20) 0%,transparent 54%),
  radial-gradient(92% 130% at 0% 100%,rgba(0,126,94,.32) 0%,transparent 58%),
  var(--indigo);}
.contact-points .ci{background:var(--grad-green);color:#fff;}
.contact-r{background:var(--grad-card);}

/* ---------- CTA band (simpler: brand gradient + optional photo) ---------- */
.cta{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--r-xl);
  padding:clamp(48px,7vw,92px) clamp(28px,5vw,64px);text-align:center;color:var(--on-dark);box-shadow:var(--sh-lg);
  background:
    radial-gradient(90% 140% at 100% 0%,rgba(153,50,204,.22) 0%,transparent 55%),
    radial-gradient(92% 150% at 0% 100%,rgba(0,126,94,.34) 0%,transparent 60%),
    var(--indigo);}
.cta .cta-photo{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:-2;}
.cta-photo::part(empty),.cta-photo::part(ring){display:none;}
.cta::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(90% 140% at 100% 0%,rgba(153,50,204,.30) 0%,transparent 55%),
    radial-gradient(95% 150% at 0% 100%,rgba(0,126,94,.42) 0%,transparent 60%),
    linear-gradient(180deg,rgba(18,16,40,.74),rgba(18,16,40,.80));}
.cta-inner{position:relative;z-index:1;max-width:660px;margin:0 auto;display:flex;flex-direction:column;align-items:center;}
.cta-inner .kicker{margin-bottom:18px;}
.cta-inner h2{color:#fff;margin-bottom:16px;}
.cta-inner .body{color:var(--on-dark-soft);max-width:50ch;}
.cta-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:32px;}
.cta-meta{margin-top:26px;display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:center;font-size:.94rem;color:var(--on-dark-soft);}
.cta-meta a{color:var(--on-dark-soft);font-weight:600;transition:color .18s;}
.cta-meta a:hover{color:var(--mint);}

/* CTA variant B: photo-forward (left-aligned, photo more visible) */
.cta--photo{text-align:left;
  background:
    repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 16px,rgba(255,255,255,.09) 16px 32px),
    var(--indigo);}
.cta--photo::after{
  background:linear-gradient(90deg,rgba(16,14,38,.90) 0%,rgba(16,14,38,.74) 44%,rgba(16,14,38,.30) 100%);}
.cta--photo .cta-inner{margin:0;align-items:flex-start;max-width:560px;}
.cta--photo .cta-inner .body{text-align:left;}
.cta--photo .cta-actions{justify-content:flex-start;}
.cta-hint{position:absolute;right:clamp(18px,3vw,32px);bottom:clamp(16px,2.5vw,26px);z-index:1;
  display:inline-flex;align-items:center;gap:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.74rem;letter-spacing:.03em;color:rgba(255,255,255,.6);
  border:1px dashed rgba(255,255,255,.3);border-radius:var(--r-pill);padding:7px 13px;background:rgba(255,255,255,.05);}
.cta--photo:has(.cta-photo[data-filled]) .cta-hint{display:none;}
@media (max-width:600px){.cta-hint{display:none;}}

/* ---------- Forms ---------- */
.form-card{background:var(--grad-card);}
.form-success .fic{background:var(--grad-green);color:#fff;}

/* ---------- Auth ---------- */
.auth-aside{background:
  radial-gradient(46vmax 40vmax at 10% 0%,rgba(153,50,204,.30),transparent 60%),
  radial-gradient(44vmax 40vmax at 100% 108%,rgba(0,126,94,.42),transparent 62%),
  var(--indigo);}
.auth-benefits .check{background:var(--grad-green);color:#fff;}
.oauth:hover{background:var(--grad-card);}

/* ---------- Booking ---------- */
.tutor-tabs .tutor-tab.tab-on{background:var(--grad-green);}
.cal-card,.booking-summary{background:var(--grad-card);}
.ld-ava{background:var(--grad-green);}
.ld-ava::after{content:"";position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;}
.ld-ava[data-tutor="vivien"]::after{background-image:url('../images/tutors/vivien.jpg');}
.ld-ava[data-tutor="tamara"]::after{background-image:url('../images/tutors/tamara.jpg');}
.ld-ava[data-tutor="kayleigh"]::after{background-image:url('../images/tutors/kayleigh.jpg');}
.ld-ava[data-tutor="lucia"]::after{background-image:url('../images/tutors/lucia.jpg');}
.ld-ava[data-tutor="mateus"]::after{background-image:url('../images/tutors/mateus.jpg');}
.ld-ava[data-tutor="daniel"]::after{background-image:url('../images/tutors/daniel.jpg');}
.ld-ava[data-tutor="noor"]::after{background-image:url('../images/tutors/noor.jpg');}
.ld-tutor{background:linear-gradient(110deg,var(--mint-bg),var(--emerald-bg));}
.slot.selected{background:var(--grad-green);}
.ld-chip.on,.chip input:checked+label{background:var(--grad-green);border-color:transparent;}

/* ---------- Exams page: gradient cards, alternating tint ---------- */
.exam-card{background:var(--grad-card);}
.exam-cards .exam-card:nth-child(3n+2){background:var(--grad-card-mint);}
.exam-card:hover .ec-arrow{background:var(--grad-green);border-color:transparent;color:#fff;}
.conv-note{background:linear-gradient(150deg,var(--orchid-bg) 0%,var(--mint-bg) 120%);}

/* ---------- Contact page channels ---------- */
.channel{background:var(--grad-card);}
.visit-address{background:var(--grad-card);}
.channel .ci{background:var(--grad-green);color:#fff;}
.visit-address .ci{background:var(--grad-green);color:#fff;}

/* ---------- WhatsApp FAB stays brand-WhatsApp green (unchanged) ---------- */

.hero-media img,.tutor-card .ph img,.split-media img,.cta .cta-photo{object-fit:cover;}
.hero-media video,.split-media video{object-fit:cover;}
