/* Avatar Learning Center theme
   Roboto, 1170px container, white and #FAFCFF bands, navy headings, blue buttons,
   white cards with a soft shadow. */

:root{
  --bg:#ffffff; --band:#FAFCFF; --fg:#031220; --text:#49535B; --muted:#7A7A7A; --line:#e6ebf2; --card:#ffffff;
  --blue:#13498B; --blue-dark:#0f3b73; --navy:#031220; --green:#61CE70; --green-dark:#45b857; --peach:#fbe5d2; --tint:#eaf1fb;
  --shadow:0 1px 0 rgba(3,18,32,.04),0 6px 18px rgba(3,18,32,.05); --shadow-lift:0 14px 34px rgba(3,18,32,.12);
  --font:"Roboto","Segoe UI",Helvetica,Arial,sans-serif;
  --wrap:1170px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:17px;line-height:1.65}
img,svg{max-width:100%;height:auto}
img{display:block}
a{color:var(--blue)}
h1,h2,h3,h4{color:var(--fg);line-height:1.15;margin:0;font-weight:700}
h1{font-size:clamp(2.4rem,5.4vw,4.2rem);line-height:1.04;font-weight:900;letter-spacing:-.015em}
h2{font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:800;letter-spacing:-.01em}
h3{font-size:1.25rem}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:20px}
.sub{color:var(--blue);font-weight:500;font-size:1.05rem;margin-bottom:10px}
.lede{font-size:1.15rem;max-width:50ch}
.section{padding-block:90px}
.band{background:var(--band)}
.center{text-align:center}
.center .lede{margin-inline:auto}
.title{margin-bottom:44px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:-999px;top:8px;background:var(--navy);color:#fff;padding:8px 14px;z-index:1000}
.skip-link:focus{left:8px}
:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.ic{width:1em;height:1em;vertical-align:-.15em;flex:none}
.ic-fill{fill:currentColor;stroke:none}

/* buttons */
.btn{display:inline-block;padding:15px 28px;border-radius:6px;font-weight:500;font-size:1rem;text-decoration:none;border:0;cursor:pointer;font-family:var(--font);line-height:1.2;transition:background .15s,transform .15s;color:#fff}
.btn-blue{background:var(--green);color:var(--fg)}.btn-blue:hover{background:var(--green-dark)}
.btn-navy{background:transparent;color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy)}.btn-navy:hover{background:var(--navy);color:#fff}
.btn-green{background:var(--green);color:var(--fg)}.btn-green:hover{background:var(--green-dark)}
.btn-lg{padding:17px 32px;font-size:1.08rem;font-weight:700}
.link-arrow{font-weight:700;color:var(--blue);text-decoration:none;display:inline-block;padding:14px 4px}
.link-arrow:hover{text-decoration:underline}
.link-arrow .ic{transition:transform .2s;margin-left:2px}.link-arrow:hover .ic{transform:translateX(4px)}
.btn-sm{padding:10px 18px;font-size:.9rem}
.btn-outline{background:transparent;color:var(--blue);box-shadow:inset 0 0 0 2px var(--blue)}.btn-outline:hover{background:var(--blue);color:#fff}

/* top bar + header */
.topbar{background:var(--band);border-bottom:1px solid var(--line);font-size:.85rem}
.topbar .wrap{display:flex;gap:24px;padding-block:6px}
.topbar a{color:var(--text);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.site-header{background:#fff;position:relative;z-index:50}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:18px}
.site-logo img{height:50px;width:auto}
.site-nav{display:flex;align-items:center;gap:18px;flex:1;justify-content:flex-end}
.site-nav .menu{list-style:none;margin:0;padding:0;display:flex;gap:4px;align-items:center}
.site-nav .menu>li{position:relative}
.site-nav .menu a{display:block;padding:10px 12px;color:var(--fg);text-decoration:none;font-weight:500;font-size:.95rem;text-transform:uppercase;letter-spacing:.02em;border-radius:6px;white-space:nowrap}
.site-nav .menu a:hover{color:var(--blue);background:var(--band)}
.ic-menu-caret{width:.85em;height:.85em;margin-left:3px;vertical-align:-.1em;transition:transform .2s}
.site-nav .menu>li:hover>a .ic-menu-caret,.site-nav .menu>li.open>a .ic-menu-caret{transform:translateY(2px)}
.site-nav .sub-menu{list-style:none;margin:0;padding:8px;position:absolute;left:0;top:100%;min-width:240px;background:#fff;border-radius:10px;box-shadow:var(--shadow-lift);display:none;z-index:60}
.site-nav .sub-menu a{text-transform:none;letter-spacing:0;font-weight:400;padding:9px 12px}
.site-nav .menu>li:hover>.sub-menu,.site-nav .menu>li:focus-within>.sub-menu,.site-nav .menu>li.open>.sub-menu{display:block}
.nav-actions{display:flex;align-items:center;gap:10px}
.nav-actions .btn{padding:11px 18px;font-size:.9rem;white-space:nowrap}
.nav-actions .btn.btn-navy{box-shadow:none;background:none;padding-inline:8px}
.nav-actions .btn.btn-navy:hover{background:none;color:var(--blue)}
.nav-actions .btn.btn-navy.is-cta{background:var(--green);color:var(--fg);box-shadow:none;padding:11px 18px;font-weight:700}
.nav-actions .btn.btn-navy.is-cta:hover{background:var(--green-dark)}
.portal-menu .btn-green{background:transparent;box-shadow:inset 0 0 0 2px var(--navy);color:var(--navy)}
.portal-menu .btn-green:hover{background:var(--navy);color:#fff}
.portal-menu{position:relative}
.portal-menu button .ic{margin-left:4px}
.portal-list{list-style:none;margin:0;padding:8px;position:absolute;right:0;top:calc(100% + 6px);min-width:200px;background:#fff;border-radius:10px;box-shadow:var(--shadow-lift);z-index:60}
.portal-list a{display:block;padding:9px 12px;color:var(--fg);text-decoration:none;border-radius:6px}
.portal-list a:hover{background:var(--band);color:var(--blue)}
.nav-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer;color:var(--fg)}
.nav-toggle .ic{width:28px;height:28px}
.nav-toggle .ic-close{display:none}
.nav-open .nav-toggle .ic-menu{display:none}
.nav-open .nav-toggle .ic-close{display:inline}

/* page band (plain pages, posts, archives) */
.page-band{background:var(--band);border-bottom:1px solid var(--line);padding-block:48px}
.page-title{font-size:clamp(1.9rem,3.6vw,2.8rem)}
.page-content{padding-block:50px}
.plain-page--tool .page-content{padding-block:56px 30px}
@media (max-width:640px){.plain-page--tool .page-content{padding-top:32px}}
.entry{max-width:none}
.plain-page:not(.plain-page--tool) .entry>*,.single-post .entry>*{max-width:820px}
.entry>p,.entry>ul,.entry>ol,.entry>h2,.entry>h3{margin-block:0 1em}
.entry h1{font-size:2rem;margin-bottom:.6em}
.entry h2{font-size:1.6rem;margin-top:1.6em}
.entry h3{margin-top:1.4em}
.entry img{border-radius:10px}
.entry .alignfull,.entry .alignwide,.entry .wp-block-table,.entry table{max-width:none}
.post-body{padding-block:40px 70px;display:grid;gap:30px}
.post-hero img{border-radius:14px;box-shadow:var(--shadow);width:100%;max-height:520px;object-fit:cover}
.post-nav{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:24px;font-weight:500}
/* blog listing: one column of large post cards with a sidebar (the layout of the old blog page) */
.blog-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;align-items:start}
.post-list{display:grid;gap:36px}
.post-card{background:var(--card);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.post-card-img{display:block;background:var(--band)}
.post-card-img img,.post-card-img .card-img-empty{display:block;width:100%;aspect-ratio:16/8.5;object-fit:cover}
.post-card-body{padding:30px 34px 34px}
.post-card-meta{margin:0 0 10px;font-size:.92rem;color:var(--muted)}
.post-card-meta a{color:var(--blue);text-decoration:none}
.post-card-title{font-size:1.75rem;line-height:1.2;margin:0 0 14px;letter-spacing:-.01em}
.post-card-title a{color:var(--fg);text-decoration:none}
.post-card-title a:hover{color:var(--blue)}
.post-card-text{color:var(--muted);margin:0 0 22px}
.post-card .btn,.side-search .btn{background:var(--navy);color:#fff;box-shadow:none}
.post-card .btn:hover,.side-search .btn:hover{background:var(--blue);color:#fff}
.blog-side{display:grid;gap:34px;position:sticky;top:88px}
.side-block h3{font-size:1.2rem;margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.side-search form{display:flex;gap:0}
.side-search input[type=search]{flex:1;min-width:0;padding:12px 14px;border:1px solid var(--line);border-right:0;border-radius:8px 0 0 8px;background:var(--band);font:inherit;font-size:.95rem}
.side-search .btn{border-radius:0 8px 8px 0;padding-inline:20px}
.side-recent ul,.side-cats ul{list-style:none;margin:0;padding:0}
.side-recent li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.side-recent li:last-child{border-bottom:0}
.side-recent-img img,.side-recent-img .card-img-empty{display:block;width:72px;height:72px;object-fit:cover;border-radius:8px;background:var(--band)}
.side-recent-date{display:block;font-size:.8rem;color:var(--muted);margin-bottom:2px}
.side-recent-title{display:block;font-weight:600;line-height:1.3;color:var(--fg);text-decoration:none;font-size:.95rem}
.side-recent-title:hover{color:var(--blue)}
.side-cats li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line)}
.side-cats li:last-child{border-bottom:0}
.side-cats a{color:var(--fg);text-decoration:none}
.side-cats a:hover{color:var(--blue)}
.side-cats .count{color:var(--muted);font-size:.9rem}
.tag-cloud{display:flex;flex-wrap:wrap;gap:8px}
.tag-cloud a{display:inline-block;background:var(--band);color:var(--fg);padding:6px 12px;border-radius:8px;font-size:.9rem;text-decoration:none}
.tag-cloud a:hover{background:var(--blue);color:#fff}
@media (max-width:960px){.blog-layout{grid-template-columns:1fr;gap:40px}.blog-side{position:static}}
@media (max-width:640px){.post-card-body{padding:22px 20px 26px}.post-card-title{font-size:1.4rem}}
.pagination{margin-top:40px;text-align:center}
.pagination .nav-links{display:inline-flex;gap:6px}
.pagination a,.pagination span{padding:8px 14px;border-radius:6px;background:var(--band);color:var(--fg);text-decoration:none}
.pagination .current{background:var(--blue);color:#fff}

/* cards */
.cards{display:grid;gap:30px}
.cards-3{grid-template-columns:repeat(3,1fr)}
.card{background:var(--card);border-radius:10px;box-shadow:var(--shadow);overflow:hidden;display:grid;grid-template-rows:auto 1fr;min-width:0;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lift)}
.card-img{display:block;aspect-ratio:2/1;overflow:hidden;background:var(--tint)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card:hover .card-img img{transform:scale(1.04)}
.card-img-empty{width:100%;height:100%;background:linear-gradient(135deg,var(--tint),var(--band))}
.card-body{padding:24px 26px 28px;display:grid;grid-template-rows:auto 1fr auto;gap:10px;align-content:start}
.card-title{font-size:1.45rem;min-height:2.3em;display:flex;align-items:flex-end}
.card-title a{color:var(--fg);text-decoration:none}
.card-title a:hover{color:var(--blue)}
.card-body p{font-size:.95rem;color:var(--text)}
.card-meta{font-size:.85rem;color:var(--muted)}
.card-more{font-weight:500;text-decoration:none;font-size:.95rem;margin-top:4px;align-self:end}

/* icon boxes */
.boxes{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.boxes-4{grid-template-columns:repeat(4,1fr)}
.boxes-2{grid-template-columns:repeat(2,1fr)}
.box{background:var(--card);border-radius:10px;box-shadow:var(--shadow);padding:34px 30px;display:grid;gap:12px;align-content:start;min-width:0;transition:transform .25s,box-shadow .25s}
.box:hover{transform:translateY(-8px);box-shadow:var(--shadow-lift)}
.box .icw{width:60px;height:60px;border-radius:12px;background:var(--tint);display:grid;place-items:center;transition:background .25s}
.box .icw .ic{width:28px;height:28px;color:var(--blue);transition:color .25s}
.box:hover .icw{background:var(--blue)}
.box:hover .icw .ic{color:#fff}
.box p{font-size:1rem}
.box .n{width:48px;height:48px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;font-size:1.2rem;display:grid;place-items:center;transition:background .25s,transform .25s}
.box:hover .n{background:var(--green);color:var(--fg);transform:scale(1.08)}

/* alternating photo + text rows */
.row2{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.row2+.row2{margin-top:80px}
.row2.flip .pic{order:2}
.pic{overflow:hidden;border-radius:14px}
.pic img{border-radius:14px;box-shadow:var(--shadow);transition:transform .4s;width:100%}
.pic img:hover{transform:scale(1.03)}
.row2 h2{margin:10px 0 18px;font-size:clamp(1.5rem,2.6vw,2.1rem)}
.checks{list-style:none;margin:22px 0 28px;padding:0;display:grid;gap:10px}
.checks li{display:flex;gap:14px;align-items:flex-start;font-size:1.02rem;color:var(--fg)}
.checks .ic{flex:none;width:26px;height:26px;padding:5px;border-radius:7px;background:var(--tint);color:var(--blue);margin-top:1px;box-sizing:border-box}

/* home: hero */
.hero{background:linear-gradient(180deg,var(--band) 0%,#fff 100%)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;padding-block:40px 10px}
.hero h1{margin:14px 0 22px}
.hero .lede{margin-bottom:34px}
.hero-btns{display:flex;flex-wrap:wrap;gap:14px}
.hero-pic{position:relative;min-width:0;display:flex;justify-content:center;align-items:flex-end;min-height:440px}
.hero-pic::before{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(460px,90%);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fdf1e4,var(--peach))}
.hero-pic img{position:relative;width:min(420px,85%);border-radius:0 0 210px 210px}
.hero-tag{position:absolute;right:0;top:30px;background:#fff;border-radius:10px;box-shadow:0 14px 34px rgba(3,18,32,.14);padding:10px;width:120px;transition:transform .25s}
.hero-tag:hover{transform:translateY(-4px)}
.hero-tag img{width:100%}
.hero-perf{position:absolute;left:0;bottom:20px;background:#fff;border-radius:10px;box-shadow:0 14px 34px rgba(3,18,32,.14);padding:14px 16px;width:230px;font-size:.8rem;transition:transform .25s}
.hero-perf:hover{transform:translateY(-4px)}
.hero-perf b{display:block;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500;font-size:.7rem;margin-bottom:8px}
.hero-perf .rings{display:flex;justify-content:space-between;margin-bottom:8px}
.hero-perf .ring{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.7rem;color:var(--fg)}
.hero-perf svg.line{width:100%;height:40px;display:block}

/* home: bold hero, press band, thesis, grade bands, how list, results, split heads */
.hero--bold .wrap{padding-block:56px 36px}
.hero--bold .hero-btns{align-items:center}
.hero-note{margin-top:22px;font-size:.95rem;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.hero-grades{display:inline-flex;gap:6px;flex-wrap:wrap}
.hero-grades a{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 10px;border-radius:999px;background:var(--tint);color:var(--blue);font-weight:700;font-size:.85rem;text-decoration:none;transition:background .2s,color .2s}
.hero-grades a:hover{background:var(--blue);color:#fff}
.press-band{background:var(--navy);color:#c9d3e0}
.press-band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px 44px;padding-block:18px}
.press-label{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--green)}
.press-band img{height:26px;width:auto;filter:brightness(0) invert(1);opacity:.85}
.thesis{padding-block:80px}
.thesis p{max-width:980px;margin:0 auto;text-align:center;font-size:clamp(1.5rem,2.8vw,2.25rem);line-height:1.3;font-weight:700;color:var(--fg);letter-spacing:-.01em}
.split-head{display:grid;grid-template-columns:1fr 1fr;gap:30px 60px;align-items:end;margin-bottom:40px}
.split-head .lede{max-width:none;align-self:center}
.split-head .link-arrow{justify-self:end}
.bands{display:grid;grid-template-columns:repeat(5,1fr);gap:22px}
.band-tile{display:grid;grid-template-rows:auto auto 1fr;gap:4px;text-decoration:none;color:var(--fg);min-width:0;align-content:start}
.band-pic{display:block;aspect-ratio:1;border-radius:10px;overflow:hidden;margin-bottom:10px;background:var(--tint)}
.band-pic img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.band-tile:hover .band-pic img{transform:scale(1.05)}
.band-name{font-weight:800;font-size:1.15rem;color:var(--blue);white-space:nowrap}
.band-sub{font-size:.9rem;color:var(--muted);line-height:1.35}
.band-tile:hover .band-name{text-decoration:underline}
.how-list{list-style:none;margin:26px 0 10px;padding:0;display:grid;gap:18px;counter-reset:how}
.how-list li{display:grid;grid-template-columns:44px 1fr;column-gap:14px;row-gap:2px;align-items:start}
.how-list li::before{grid-row:1/3}
.how-list b,.how-list span{grid-column:2}
.how-list li::before{counter-increment:how;content:counter(how);width:40px;height:40px;border-radius:50%;background:var(--green);color:var(--fg);font-weight:800;display:grid;place-items:center;font-size:1.05rem}
.how-list b{display:block;color:var(--fg);font-size:1.1rem}
.how-list span{display:block;color:var(--text);font-size:1rem;margin-top:2px}
.results{background:var(--navy);color:#c9d3e0}
.results h2,.results .sub{color:#fff}
.results .sub{color:var(--green)}
.results .lede{color:#c9d3e0}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.stat{background:var(--blue);color:#fff;border-radius:10px;padding:34px 26px 30px;display:grid;gap:10px;align-content:start;min-width:0}
.stat b{font-size:clamp(2.6rem,4.4vw,3.6rem);font-weight:900;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat span{font-size:1rem;line-height:1.35;color:#e6eefb}
.awards--row{margin-top:50px;padding-top:40px;border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr)}
.awards--row .award img{width:84px}
.awards--row .award span{font-size:.9rem;color:var(--muted);font-weight:400}
.faq-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:start}
.faq-split .faq{max-width:none;margin:0}
.cta.cta--green{background:var(--green);color:var(--fg)}
.cta.cta--green h2{color:var(--fg)}
.cta.cta--green .lede{color:var(--fg)}
.cta.cta--green .btn-navy{background:var(--navy);color:#fff;box-shadow:none}
.cta.cta--green .btn-navy:hover{background:#0b2238}
@media (max-width:1023px){.bands{grid-template-columns:repeat(3,1fr)}.stats{grid-template-columns:1fr 1fr}.split-head,.faq-split{grid-template-columns:1fr}.split-head .link-arrow{justify-self:start}}
@media (max-width:640px){.bands{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr}.awards--row{grid-template-columns:1fr 1fr}.press-band img{height:20px}}

.hero--cutout .hero-pic{min-height:520px;align-items:flex-end}
.hero--cutout .hero-pic::before{width:min(470px,92%);bottom:40px}
.hero--cutout .hero-pic img{width:min(400px,80%);border-radius:0;box-shadow:none;position:relative}
.hero--cutout .hero-tag{right:8px;top:36px}
.hero--photo .hero-pic::before{display:none}
.hero--photo .hero-pic{min-height:0;align-items:center}
.hero--photo .hero-pic img{width:min(440px,88%);border-radius:22px;box-shadow:0 26px 60px rgba(3,18,32,.18);aspect-ratio:4/5;object-fit:cover}
.hero--photo .hero-tag{right:4px;top:24px}
.band-tile .band-pic img{object-position:center top}

/* home hero, as on the live site: circle, student, report card, performance card, cap shapes */
.hero--live .wrap{padding-block:30px 0;align-items:center}
.hero-pic--live{position:relative;min-height:560px;display:block}
.hero-pic--live::before{content:"";position:absolute;left:50%;top:70px;transform:translateX(-38%);width:470px;height:470px;border-radius:50%;background:radial-gradient(circle at 22% 18%,rgba(253,243,230,0) 0,#fdf1e2 38%,#fae2c8 72%,#f7d9bc 100%)}
.hero-pic--live .hero-girl{position:absolute;left:50%;bottom:0;transform:translateX(-46%);width:470px;max-width:none;height:auto;border-radius:0;box-shadow:none}
.hero-pic--live .hero-tag{position:absolute;right:-10px;top:36px;width:126px;padding:0;background:none;box-shadow:0 14px 34px rgba(3,18,32,.16);border-radius:8px;transition:transform .25s}
.hero-pic--live .hero-tag img{display:block;width:100%;border-radius:8px}
.hero-pic--live .hero-perf{position:absolute;left:-18px;bottom:6px;width:230px;background:#fff;border-radius:6px;box-shadow:0 22px 46px rgba(3,18,32,.13);padding:18px 18px 12px;z-index:2}
.hero-perf b{display:block;letter-spacing:.22em;text-transform:uppercase;color:#49535B;font-weight:500;font-style:italic;font-size:.66rem;margin-bottom:14px}
.hero-perf .rings{display:flex;justify-content:space-between;margin-bottom:6px}
.hero-perf .ring{width:48px;height:48px;border-radius:50%;display:grid;place-items:center}
.hero-perf .ring i{width:36px;height:36px;border-radius:50%;background:#fff;display:grid;place-items:center;font-style:normal;font-weight:700;font-size:.66rem;color:var(--fg)}
.hero-perf svg.line{width:100%;height:60px;display:block;margin-top:6px;filter:drop-shadow(0 6px 6px rgba(97,206,112,.25))}
.hero-pic--live .cap{position:absolute;height:auto;opacity:.95;border-radius:0;box-shadow:none;transform:none;animation:capfloat 6s ease-in-out infinite}
.hero-pic--live .cap-1{left:4%;top:0;width:66px}
.hero-pic--live .cap-2{right:-26px;top:44%;width:84px;animation-delay:2s}
.hero-pic--live .cap-3{left:-44px;bottom:196px;width:64px;animation-delay:4s;z-index:3}
@keyframes capfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media (max-width:1023px){.hero-pic--live{min-height:480px;margin-top:10px}.hero-pic--live::before{width:400px;height:400px;top:50px}.hero-girl{width:400px}.cap-2{right:0}}
@media (max-width:640px){.hero-pic--live{min-height:400px}.hero-pic--live::before{width:300px;height:300px;top:60px}.hero-girl{width:300px}.hero-pic--live .hero-tag{width:90px;right:0;top:20px}.hero-pic--live .hero-perf{width:190px;left:0}.cap{display:none}}

/* home: sample tests */
.samples{padding-block:30px 0}
.samples .inner{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:22px 26px}
.samples h2{font-size:1.2rem;margin-right:auto}
.samples .pills{display:flex;flex-wrap:wrap;gap:10px}
.samples .pill{display:inline-block;padding:9px 16px;border-radius:6px;background:var(--band);color:var(--fg);font-weight:500;font-size:.9rem;text-decoration:none;box-shadow:inset 0 0 0 1px var(--line);transition:background .2s,color .2s,transform .2s}
.samples .pill:hover{background:var(--blue);color:#fff;transform:translateY(-2px)}
.samples .dae-wrap{display:inline-block}

/* home: numbers */
.numbers{background:var(--band);border:2px solid var(--blue);border-radius:18px;padding:46px 30px 40px;text-align:center;margin-top:50px}
.numbers h2{margin-bottom:34px}
.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.num .ic{width:30px;height:30px;color:var(--blue);margin:0 auto 10px;display:block;transition:transform .25s}
.num:hover .ic{transform:translateY(-4px)}
.num b{display:block;font-size:2.1rem;font-weight:700;color:var(--fg);line-height:1.1;font-variant-numeric:tabular-nums}
.num span{display:block;color:var(--muted);font-size:1.05rem;margin-top:6px;line-height:1.3}

/* home: course grid with filters */
.filters{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-bottom:18px}
.filters:last-of-type{margin-bottom:40px}
.filters-label{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-right:6px}
.filters-empty{text-align:center;color:var(--muted);margin-bottom:30px}
.filters button{font:inherit;font-weight:500;font-size:.95rem;padding:10px 22px;border-radius:6px;border:0;background:#fff;color:var(--fg);box-shadow:var(--shadow);cursor:pointer;transition:background .2s,color .2s,transform .2s}
.filters button:hover{transform:translateY(-2px)}
.filters button.is-active{background:var(--blue);color:#fff}
.course-card .card-title{font-size:1.5rem}

/* home: excellence (text + 2x2 boxes) */
.excel{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center}
.excel h2{font-size:clamp(1.9rem,3.4vw,2.8rem);margin:10px 0 18px}
.excel .btn{margin-top:26px}

/* home: team strip */
.team{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:center}
.team img{border-radius:14px;box-shadow:var(--shadow);max-width:460px;width:100%}

/* home: difference */
.diff-intro{max-width:820px;margin:0 auto 44px;text-align:center}

/* home: steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;counter-reset:step}
.step{display:grid;gap:10px;min-width:0;align-content:start;background:#fff;border-radius:10px;box-shadow:var(--shadow);padding:34px 30px;transition:transform .25s,box-shadow .25s}
.step:hover{transform:translateY(-8px);box-shadow:var(--shadow-lift)}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);font-size:2.4rem;font-weight:900;color:var(--blue);line-height:1}
.step p{font-size:1rem}

/* home: awards + press */
.awards{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;text-align:center;margin-top:10px}
.award img{width:130px;margin:0 auto 12px;transition:transform .3s}
.award:hover img{transform:scale(1.08) rotate(-3deg)}
.award span{display:block;font-weight:500;color:var(--fg);font-size:1rem;line-height:1.3}
.press{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:30px 48px;margin-top:40px;padding-top:40px;border-top:1px solid var(--line)}
.press img{height:34px;width:auto;filter:grayscale(1);opacity:.7;transition:filter .25s,opacity .25s}
.press img:hover{filter:none;opacity:1}

/* home: testimonials */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.quote{background:var(--card);border-radius:10px;box-shadow:var(--shadow);padding:32px 30px;display:grid;gap:12px;align-content:start;min-width:0;transition:transform .25s,box-shadow .25s}
.quote:hover{transform:translateY(-8px);box-shadow:var(--shadow-lift)}
.stars{color:#f5b301;display:flex;gap:2px}.stars .ic{width:18px;height:18px}
.quote h3{font-size:1.1rem}
.quote p{font-size:1rem;font-style:italic}
.quote .by{font-style:normal;font-weight:500;color:var(--fg);font-size:.95rem}
.quote .by small{display:block;font-weight:400;color:var(--muted)}

/* home: faq */
.faq{display:grid;gap:14px;max-width:860px;margin-inline:auto}
.faq details{background:var(--card);border-radius:8px;box-shadow:var(--shadow);padding:0 24px;transition:box-shadow .25s}
.faq details:hover{box-shadow:0 14px 34px rgba(3,18,32,.1)}
.faq summary{cursor:pointer;padding:20px 0;font-weight:500;font-size:1.1rem;color:var(--fg);list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--blue);font-size:1.6rem;line-height:1;font-weight:300}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 0 22px;max-width:70ch}

/* cta band */
.cta{background:var(--navy);color:#c9d3e0;text-align:center}
.cta h2{color:#fff;margin-bottom:12px}
.cta .lede{margin-inline:auto}
.cta .btn{margin-top:26px}
.cta .btn-navy{color:#fff;box-shadow:inset 0 0 0 2px #fff}
.cta .btn-navy:hover{background:#fff;color:var(--navy)}

/* footer */
.site-footer{background:var(--navy);color:#c9d3e0;font-size:.95rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-block:60px 40px}
.footer-brand img{height:44px;width:auto;margin-bottom:18px;background:#fff;padding:10px 14px;border-radius:10px;box-sizing:content-box}
.footer-brand p{max-width:34ch}
.social{list-style:none;margin:20px 0 0;padding:0;display:flex;gap:10px}
.social a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;transition:background .2s}
.social a:hover{background:var(--blue)}
.social .ic{width:18px;height:18px}
.footer-col h3{color:#fff;font-size:1.05rem;margin-bottom:16px}
.footer-menu{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.footer-menu a{color:#c9d3e0;text-decoration:none}
.footer-menu a:hover{color:#fff}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:20px;border-top:1px solid rgba(255,255,255,.1);font-size:.85rem}
.footer-bottom a{color:#fff;text-decoration:none}

/* program pages (inc/sections.php) */
.p-hero{background:linear-gradient(180deg,var(--band) 0%,#fff 100%)}
.p-hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;padding-block:40px 30px}
.p-hero h1{margin:14px 0 22px;font-size:clamp(2.1rem,4.4vw,3.4rem)}
.p-hero .lede{margin-bottom:30px}
.p-hero .note{margin-top:12px;color:var(--muted)}
.p-hero-pic img{width:100%;max-width:560px;margin:0 auto}
.p-hero-graphic svg{width:100%;max-width:560px;height:auto;display:block;margin:0 auto;border-radius:18px;box-shadow:0 24px 50px rgba(3,18,32,.14)}
.pic-plain img.photo{border-radius:16px}
.p-hero-photo img{border-radius:16px;box-shadow:0 24px 50px rgba(3,18,32,.16)}
.btns{display:flex;flex-wrap:wrap;gap:14px}
.center .btns,.cta .btns{justify-content:center}
.entry-text{display:grid;gap:14px;margin:16px 0 22px}
.entry-text p{font-size:1.05rem}
.pic-plain{overflow:visible;border-radius:0}
.pic-plain img{box-shadow:none;border-radius:0;width:100%;max-width:560px;margin:0 auto}
.pic-plain img[src$='.jpg'],.pic-plain img[src$='.jpeg']{border-radius:16px;box-shadow:var(--shadow)}
.box.feat .icw{width:72px;height:72px;background:var(--tint)}
.box.feat .icw .ic{width:34px;height:34px}
.icw.step-ic{width:60px;height:60px;border-radius:14px;background:var(--tint);display:grid;place-items:center;margin-bottom:4px;transition:background .25s}
.step-ic .ic{width:30px;height:30px;color:var(--blue)}
.step:hover .step-ic{background:var(--blue)}.step:hover .step-ic .ic{color:#fff}
.steps-2{grid-template-columns:repeat(2,1fr)}
.steps-4{grid-template-columns:repeat(4,1fr)}
.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0}
.specs-col{grid-template-columns:1fr}
.spec{background:var(--band);border-radius:10px;padding:16px 18px;border-left:4px solid var(--blue)}
.spec b{display:block;color:var(--fg);font-size:1.15rem;line-height:1.25}
.spec span{display:block;font-size:.9rem;color:var(--muted);margin-top:4px;line-height:1.35}
.pillars{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:center}
.pillars.flip .pillars-pic{order:-1}
.pillar-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 30px;margin:26px 0}
.pillar h3{font-size:1.1rem;margin-bottom:6px;padding-left:14px;border-left:4px solid var(--green)}
.pillar p{font-size:.98rem}
.pillars-pic img{width:100%;max-width:520px;margin:0 auto}
.know{background:var(--navy);color:#c9d3e0}
.know h2,.know .sub{color:#fff}
.know .sub{color:var(--green)}
.know .entry-text p{color:#c9d3e0}
.subjects-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:start}
.subjects{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.subjects-wide{grid-template-columns:repeat(6,1fr);margin-bottom:34px}
.subject{background:#fff;border-radius:10px;box-shadow:var(--shadow);padding:18px 12px;text-align:center;display:grid;gap:10px;justify-items:center;align-content:start;transition:transform .25s,box-shadow .25s}
.subject:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
.subject img{width:64px;height:64px;padding:16px;border-radius:16px;background:var(--tint);object-fit:contain;box-sizing:border-box}
.subject .icw{width:64px;height:64px;border-radius:16px;background:var(--tint);display:grid;place-items:center;transition:background .25s}
.subject .icw .ic{width:30px;height:30px;color:var(--blue)}
.subject:hover .icw{background:var(--blue)}.subject:hover .icw .ic{color:#fff}
.subject span{font-weight:500;color:var(--fg);font-size:.92rem;line-height:1.3}
.labs-title{text-align:center;margin:10px 0 18px;color:var(--blue)}
.plans{display:grid;gap:30px}
.plans-2{grid-template-columns:repeat(2,1fr)}
.plans-3{grid-template-columns:repeat(3,1fr)}
.plans-4{grid-template-columns:repeat(2,1fr)}
.plan{background:#fff;border-radius:10px;box-shadow:var(--shadow);padding:30px 28px;display:flex;flex-direction:column;gap:14px;transition:transform .25s,box-shadow .25s}
.plan>p{flex:0 0 auto}
.plan .checks{flex:1 0 auto;margin-top:6px;align-content:start}
.plan .specs{flex:0 0 auto}
.plan .btns{margin-top:auto;padding-top:14px}
.plan .topics-label{margin:8px 0 0;color:var(--muted);font-size:.95rem}
.plan:hover{transform:translateY(-8px);box-shadow:var(--shadow-lift)}
.plan-img{width:120px;height:120px;object-fit:contain;margin:0 auto}
.plan h3{text-align:center}
.plan .price{text-align:center;margin-top:6px}
.plan .price b{display:block;font-size:2rem;color:var(--blue)}
.plan .price span{display:block;color:var(--muted);font-size:.9rem}
.plan .btns{justify-content:center}
.nums-2{grid-template-columns:repeat(2,1fr)}.nums-3{grid-template-columns:repeat(3,1fr)}
.counters-img{width:150px;height:150px;object-fit:contain;margin:0 auto 28px}
.video{aspect-ratio:16/9;max-width:900px;margin:0 auto;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-lift)}
.video iframe{width:100%;height:100%;border:0;display:block}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.gallery.cols-3{grid-template-columns:repeat(3,1fr);gap:22px}
.gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;box-shadow:var(--shadow)}
@media (max-width:1023px){
  .p-hero .wrap,.pillars,.subjects-wrap{grid-template-columns:1fr}
  .pillars.flip .pillars-pic{order:0}
  .subjects,.gallery{grid-template-columns:repeat(3,1fr)}
  .subjects-wide{grid-template-columns:repeat(3,1fr)}
  .plans-3,.plans-4,.steps-4{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .subjects,.subjects-wide,.gallery{grid-template-columns:1fr 1fr}
  .specs,.pillar-grid,.plans-2,.plans-3,.plans-4,.steps-2,.steps-4,.nums-2,.nums-3{grid-template-columns:1fr}
}

/* the homework screen, drawn as the student sees it */
.hw{background:var(--card);border-radius:10px;box-shadow:0 20px 50px rgba(3,18,32,.12);padding:22px 24px;display:grid;gap:14px;font-size:1rem;min-width:0;max-width:520px;width:100%}
.hw .hd{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.hw .q{color:var(--fg);font-weight:500}
.hw .bx{display:inline-block;min-width:4.5em;padding:4px 12px;border:1.5px solid var(--line);border-radius:6px;background:var(--band);color:var(--fg);font-variant-numeric:tabular-nums}
.hw .bx.ok{background:#dff5e4;border-color:#258E46}.hw .bx.bad{background:#fde3e6;border-color:#b3303f}
.hw .r{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.pill{display:inline-block;padding:7px 14px;border-radius:6px;font-weight:500;font-size:.9rem}
.pill.ok{background:#258E46;color:#fff}.pill.bad{background:#b3303f;color:#fff}.pill.hand{background:var(--band);border:1px solid var(--line);color:var(--fg)}
.hw .note{font-size:.85rem;color:var(--muted)}
.hw .nv{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;font-size:.9rem;color:var(--muted)}
.hw .nv b{color:#258E46;font-weight:500}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.member{background:#fff;border-radius:10px;box-shadow:var(--shadow);padding:28px 24px;display:grid;gap:10px;align-content:start;justify-items:center;text-align:center;transition:transform .25s,box-shadow .25s}
.member:hover{transform:translateY(-8px);box-shadow:var(--shadow-lift)}
.member img{width:150px;height:150px;border-radius:50%;object-fit:cover;object-position:top;box-shadow:0 8px 20px rgba(3,18,32,.12)}
.member h3{font-size:1.15rem}
.member .role{color:var(--blue);font-weight:500;font-size:.9rem;margin-top:-4px}
.member p{font-size:.93rem}
.member-link{font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
@media (max-width:1023px){.team-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.team-grid{grid-template-columns:1fr}}
.lightbox[hidden]{display:none}
.lightbox{position:fixed;inset:0;background:rgba(3,18,32,.88);display:grid;grid-template-columns:minmax(0,1fr);place-items:center;z-index:1000;padding:52px 64px 24px;cursor:zoom-out;--cap:0px}
.lightbox-fig{margin:0;width:100%;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px}
.lightbox img{max-width:min(100%,1100px);max-height:calc(100vh - 92px - var(--cap));width:auto;height:auto;border-radius:10px;background:#fff}
.lightbox-cap{cursor:auto;max-height:30vh;overflow:auto;background:#fff;color:var(--text);border-radius:10px;padding:10px 16px;font-size:1rem;line-height:1.5;text-align:center;max-width:min(100%,760px);box-sizing:border-box}
.lightbox-cap[hidden]{display:none}
.lightbox-cap b{color:var(--navy);margin-right:.25em}
.lightbox-close{position:absolute;top:14px;right:18px;background:none;border:0;color:#fff;font-size:2.4rem;line-height:1;cursor:pointer}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:64px;background:rgba(255,255,255,.12);border:0;border-radius:10px;color:#fff;font-size:2.6rem;line-height:1;cursor:pointer}
.lightbox-nav:hover{background:rgba(255,255,255,.24)}
.lightbox-nav[hidden]{display:none}
.lightbox-prev{left:10px}
.lightbox-next{right:10px}
.lightbox-count{position:absolute;left:64px;right:64px;top:22px;text-align:center;color:rgba(255,255,255,.75);font-size:.9rem;pointer-events:none}
.lightbox-count[hidden]{display:none}
@media (max-width:600px){.lightbox{padding:44px 8px 16px}.lightbox-nav{width:36px;height:52px;font-size:2rem;background:rgba(255,255,255,.2)}.lightbox img{max-height:calc(100vh - 76px - var(--cap))}.lightbox-cap{font-size:.92rem}.lightbox-count{left:48px;right:48px;top:18px}}
.contact-boxes .box p a{text-decoration:none;font-weight:500;font-size:1.15rem}
.contact-boxes .note{color:var(--muted);font-size:.95rem}
.contact-follow{margin-top:50px;text-align:center}
.contact-follow h3{margin-bottom:14px}
.social-dark{justify-content:center}
.social-dark a{background:var(--tint);color:var(--blue)}
.social-dark a:hover{background:var(--blue);color:#fff}

/* course syllabus + topics */
.syllabus{display:grid;gap:14px;max-width:960px;margin-inline:auto}
.unit{background:#fff;border-radius:10px;box-shadow:var(--shadow);padding:0 26px}
.unit summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:20px 0;font-weight:500;color:var(--fg)}
.unit summary::-webkit-details-marker{display:none}
.unit-n{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);font-weight:700}
.unit-t{font-size:1.15rem}
.unit-w{font-size:.9rem;color:var(--muted);white-space:nowrap}
.unit-body{padding:0 0 22px;border-top:1px solid var(--line)}
.unit-sum{padding:16px 0 6px;color:var(--text)}
.weeks{margin:0;padding-left:1.4em;display:grid;gap:12px}
.weeks{list-style:disc}
.weeks li{padding-left:6px}
.unit--extras{padding:20px 26px}
.unit--extras .unit-n{margin-bottom:10px}
.extras{margin:0;padding-left:1.2em;columns:2;column-gap:40px;color:var(--text)}
.extras li{break-inside:avoid;padding:3px 0}
@media (max-width:640px){.extras{columns:1}}
.weeks li::marker{color:var(--blue);font-weight:700}
.weeks b{display:block;color:var(--fg);font-weight:500}
.weeks span{font-size:.95rem;color:var(--text)}
.topics{columns:2;column-gap:40px;max-width:900px;margin:0 auto;padding-left:1.4em;font-size:1.05rem;color:var(--fg)}
.topics li{break-inside:avoid;padding:6px 0}
@media (max-width:640px){.unit summary{grid-template-columns:1fr;gap:6px}.topics{columns:1}}

/* sample-test download pages: the Download After Email form, restyled */
.sample{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:start}
.sample-form{background:#fff;border-radius:10px;box-shadow:var(--shadow);padding:32px;min-width:0}
.sample-form .dae-shortcode-wrapper,.sample-form .dae-shortcode-register-wrapper{max-width:none}
.sample-form h1,.sample-form h2,.sample-form h3,.sample-form .dae-shortcode-title{font:700 1.5rem/1.2 var(--font);color:var(--fg);margin:0 0 18px}
.sample-form .dae-shortcode-download-button,.sample-form a.dae-shortcode-download-button{display:inline-flex;align-items:center;gap:10px;background:var(--band);color:var(--fg);border:1px solid var(--line);border-radius:8px;padding:14px 22px;font:700 1rem var(--font);text-transform:none;text-decoration:none;margin-bottom:22px}
.sample-form .dae-shortcode-register-form,.sample-form form{display:block}
.sample-form label,.sample-form .dae-shortcode-register-label{display:block;font-weight:500;color:var(--fg);margin:0 0 8px;text-align:left}
.sample-form .dae-shortcode-register-field-wrapper{display:block}
.sample-form .dae-shortcode-register-field-icon,.sample-form .dae-shortcode-register-icon{display:none}
.sample-form input[type=email],.sample-form input[type=text]{width:100%;max-width:440px;font:1rem var(--font);padding:14px 16px;border:1px solid var(--line);border-radius:6px;background:var(--band);margin:0 0 14px;box-sizing:border-box;color:var(--fg)}
.sample-form input[type=checkbox]{margin:3px 8px 0 0}
.sample-form .dae-shortcode-register-subscribe,.sample-form .dae-shortcode-register-checkbox-label{display:flex;align-items:flex-start;gap:0;font-size:.9rem;color:var(--text);margin:0 0 18px;text-align:left}
.sample-form input[type=submit],.sample-form button[type=submit],.sample-form .dae-shortcode-register-submit{display:inline-block;background:var(--green);color:var(--fg);border:0;border-radius:6px;padding:14px 28px;font:700 1rem var(--font);cursor:pointer;margin:0}
.sample-form input[type=submit]:hover,.sample-form .dae-shortcode-register-submit:hover{background:var(--green-dark)}
.sample-form .note{margin-top:16px}
.sample-side h3{margin:0 0 12px}
.sample-side .how-list{margin:0 0 30px}
.pills{display:flex;flex-wrap:wrap;gap:10px}
.pills .pill{display:inline-block;padding:9px 16px;border-radius:6px;background:var(--band);color:var(--fg);font-weight:500;text-decoration:none;box-shadow:inset 0 0 0 1px var(--line)}
.pills .pill:hover{background:var(--blue);color:#fff}
@media (max-width:860px){.sample{grid-template-columns:1fr}}

/* pathway + schedule tables */
.pathway-wrap{max-width:900px;margin:0 auto;border-radius:10px;box-shadow:var(--shadow);background:#fff;overflow:hidden}
.pathway{width:100%;border-collapse:collapse;background:#fff;font-size:1rem}
.pathway th{background:var(--navy);color:#fff;text-align:left;padding:14px 18px;font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.pathway td{padding:12px 18px;border-top:1px solid var(--line);color:var(--fg)}
.pathway td.g{font-weight:800;color:var(--blue);white-space:nowrap;width:1%}
.pathway a{color:var(--fg);text-decoration:none;font-weight:500}
.pathway a:hover{color:var(--blue);text-decoration:underline}
.pathway tr:hover td{background:var(--band)}
.pathway .muted{color:var(--muted)}
.schedule-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center}
.schedule{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;box-shadow:var(--shadow);overflow:hidden;font-size:1.02rem}
.schedule td{padding:18px 22px;border-top:1px solid var(--line);color:var(--fg)}
.schedule tr:first-child td{border-top:0}
.schedule td.g{font-weight:800;color:var(--blue);white-space:nowrap;width:1%}
@media (max-width:860px){.schedule-wrap{grid-template-columns:1fr}.pathway-wrap{overflow-x:auto}.pathway th,.pathway td{padding:10px 12px}}

.pathway-wrap.comps{max-width:1100px}
.comps .pathway td{vertical-align:top;font-size:.95rem}
.comps .pathway td.g{white-space:normal;width:24%;color:var(--fg)}
.comps .tag{display:inline-block;margin-top:6px;background:var(--green);color:var(--fg);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:4px}
.comps tr.we-prep td{background:#f3fbf4}

/* programs filters on phones: two dropdowns */
.filters-mobile{display:none;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px}
.filters-mobile label{display:grid;gap:6px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.filters-mobile select{font:inherit;font-size:1rem;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--fg)}
@media (max-width:640px){.filters-mobile{display:grid}.filters{display:none}}

/* responsive */
@media (max-width:1180px){
  .site-nav .menu a{padding:10px 8px;font-size:.88rem}
  .nav-actions .btn{padding:10px 14px;font-size:.85rem}
}
@media (max-width:1023px){
  .nav-toggle{display:block}
  .site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;box-shadow:var(--shadow-lift);padding:16px 20px 24px;flex-direction:column;align-items:stretch;gap:16px}
  .nav-open .site-nav{display:flex}
  .site-nav .menu{flex-direction:column;align-items:stretch;gap:0}
  .site-nav .sub-menu{position:static;box-shadow:none;padding:0 0 0 16px;display:none}
  .site-nav .menu>li.open>.sub-menu{display:block}
  .site-nav .menu>li:hover>.sub-menu{display:none}
  .site-nav .menu>li.open:hover>.sub-menu{display:block}
  .nav-actions{flex-wrap:wrap}
  .portal-list{position:static;box-shadow:none;padding:4px 0 0}
  .hero .wrap,.row2,.excel,.team{grid-template-columns:1fr}
  .row2.flip .pic{order:0}
  .boxes,.boxes-4,.quotes,.cards-3,.steps{grid-template-columns:1fr 1fr}
  .nums,.awards{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .hero-pic{min-height:360px}
}
@media (max-width:640px){
  body{font-size:16px}
  .section{padding-block:60px}
  .topbar{display:none}
  .boxes,.boxes-4,.boxes-2,.quotes,.cards-3,.steps,.nums{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .site-logo img{height:40px}
  .hero-tag,.hero-perf{display:none}
  .samples .inner{padding:18px}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}

/* ===================== 2026 pass: typography, surfaces, header, motion ===================== */
:root{
  --display:"Plus Jakarta Sans","Roboto","Segoe UI",Helvetica,Arial,sans-serif;
  --radius:18px; --radius-sm:12px;
  --shadow:0 1px 2px rgba(3,18,32,.04),0 10px 28px rgba(3,18,32,.06);
  --shadow-lift:0 22px 48px rgba(3,18,32,.12);
  --ring:0 0 0 1px rgba(3,18,32,.06);
  --navy-grad:linear-gradient(135deg,#0b2347 0%,#031220 70%);
}
h1,h2,h3,h4,.stat b,.num b,.card-title,.unit-t,.thesis p,.spec b,.how-list b,.pathway td.g,.schedule td.g{font-family:var(--display)}
h1{letter-spacing:-.025em;font-weight:800}
h2{letter-spacing:-.02em;font-weight:800}
h3{letter-spacing:-.01em;font-weight:700}
.lede{font-weight:400}
.sub{display:inline-flex;align-items:center;gap:10px;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--blue)}
.sub::before{content:"";width:18px;height:3px;border-radius:2px;background:var(--green);flex:none}
.center .sub{justify-content:center}

/* buttons: pills */
.btn{border-radius:999px;padding:14px 26px;font-weight:700;font-family:var(--display);letter-spacing:-.005em}
.btn-lg{padding:17px 32px}
.btn-sm{padding:10px 18px}
.btn-green{box-shadow:0 8px 20px rgba(97,206,112,.28)}
.btn-green:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(97,206,112,.34)}
.nav-actions .btn.btn-navy.is-cta{box-shadow:0 6px 16px rgba(97,206,112,.28)}

/* header: sticky, glass, sentence-case nav, no top bar */
.topbar{display:none}
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.82);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid rgba(3,18,32,.06)}
.site-header .wrap{padding-block:12px}
.site-logo img{height:44px}
.site-nav .menu a{text-transform:none;letter-spacing:0;font-weight:600;font-size:1rem;font-family:var(--display);padding:10px 12px}
.site-nav .menu a:hover{background:transparent;color:var(--blue)}
.site-nav .menu>li.current-menu-item>a,.site-nav .menu>li.current_page_item>a{color:var(--blue)}
.site-nav .sub-menu{border-radius:14px;box-shadow:var(--shadow-lift),var(--ring);padding:10px}
.portal-list{border-radius:14px;box-shadow:var(--shadow-lift),var(--ring)}

/* surfaces: hairline + soft shadow, larger radius */
.card,.box,.quote,.plan,.unit,.faq details,.pathway-wrap,.schedule,.sample-form,.numbers,.member,.hw,.step,.band-pic,.pic img,.p-hero-photo img,.pic-plain img[src$='.jpg'],.samples .inner,form{border-radius:var(--radius);box-shadow:var(--shadow),var(--ring)}
.band-pic{box-shadow:none}
.card:hover,.box:hover,.quote:hover,.plan:hover,.member:hover,.step:hover{box-shadow:var(--shadow-lift),var(--ring)}
.card-img{border-radius:0}
.unit{border-radius:var(--radius-sm)}
.faq details{border-radius:var(--radius-sm)}
.box .icw{border-radius:14px}
.box .n{box-shadow:0 6px 14px rgba(19,73,139,.25)}
.spec{border-left-width:3px;border-radius:12px}

/* hero and bands */
.hero,.hero--live,.hero--bold{background:radial-gradient(900px 420px at 88% -10%,#e3edfb 0,rgba(227,237,251,0) 62%),linear-gradient(180deg,var(--band),#fff 100%)}
.p-hero{background:radial-gradient(900px 420px at 88% -10%,#e3edfb 0,rgba(227,237,251,0) 62%),linear-gradient(180deg,var(--band),#fff 100%)}
.press-band{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted)}
.press-band .wrap{padding-block:16px}
.press-label{color:var(--muted)}
.press-band img{filter:grayscale(1);opacity:.55;height:22px}
.press-band img:hover{opacity:.9}
.thesis{padding-block:72px}
.thesis p{font-weight:700;letter-spacing:-.015em;max-width:900px}
.results,.cta,.know{background:var(--navy-grad)}
.cta.cta--green{background:linear-gradient(135deg,#74dc82 0%,#55c966 100%)}
.stat{background:rgba(255,255,255,.06);box-shadow:none;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);backdrop-filter:blur(2px)}
.stat b{background:linear-gradient(90deg,#b9f0c2,#61CE70);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{color:#d5deeb}
.hero-perf,.hero-tag{border-radius:14px}

/* tables */
.pathway th{background:var(--navy-grad)}
.pathway td.g,.schedule td.g{font-weight:800}

/* footer */
.site-footer{background:var(--navy-grad)}
.footer-brand img{border-radius:12px}
.social a{background:rgba(255,255,255,.08)}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}.reveal.d5{transition-delay:.4s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.btn-green:hover{transform:none}}
@media (max-width:1023px){.site-nav{border-radius:0 0 18px 18px}}

/* phone hero: the picture sits below the text, never over it */
@media (max-width:640px){
  .hero--live .wrap{padding-block:28px 0}
  .hero-pic--live{min-height:0;margin-top:26px;height:340px;overflow:hidden}
  .hero-pic--live::before{width:300px;height:300px;top:40px;transform:translateX(-50%)}
  .hero-pic--live .hero-girl{width:300px;transform:translateX(-50%)}
  .hero-pic--live .hero-tag{width:84px;right:6px;top:10px}
  .hero-pic--live .hero-perf{width:180px;left:0;bottom:0;padding:12px 14px 8px}
  .hero-perf .ring{width:40px;height:40px}.hero-perf .ring i{width:30px;height:30px;font-size:.6rem}
  .hero-note{font-size:.9rem}
}
/* menu labels in sentence case whatever the stored title's case */
.site-nav .menu>li>a{text-transform:lowercase}
.site-nav .menu>li>a::first-letter{text-transform:uppercase}

/* thesis band under the hero; press logos as a quiet row before the testimonials */
.thesis-band{background:var(--navy-grad);color:#fff;padding-block:56px}
.thesis-band p{max-width:980px;margin:0 auto;text-align:center;font-family:var(--display);font-size:clamp(1.4rem,2.6vw,2.05rem);line-height:1.3;font-weight:700;letter-spacing:-.015em}
.press-row .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px 40px;padding-block:28px 8px}
.press-row .press-label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.press-row a{display:inline-flex;align-items:center}
.press-row img{height:20px;width:auto;filter:grayscale(1);opacity:.5;transition:opacity .2s,filter .2s}
.press-row a:hover img{opacity:1;filter:none}
@media (max-width:640px){.thesis-band{padding-block:40px}.press-row img{height:16px}}

/* anchors land clear of the sticky header */
[id]{scroll-margin-top:96px}

/* awards: issuer named, badges link to the Parent Picks page */
.awards-block{margin-top:50px;padding-top:40px;border-top:1px solid var(--line)}
.awards-head{text-align:center;font-family:var(--display);font-weight:700;font-size:1.1rem;color:var(--fg);max-width:60ch;margin:0 auto 26px}
.awards--row{margin-top:0;padding-top:0;border-top:0}
a.award{text-decoration:none;color:inherit;display:block}
.awards--row .award img{width:84px;filter:saturate(1.15)}
.awards--row .award span{font-weight:500;color:var(--text)}
a.award:hover span{color:var(--blue)}

/* plan cards: topic list in two columns when the card is wide */
.plans-2 .plan .checks,.plans-4 .plan .checks{grid-template-columns:1fr 1fr;column-gap:18px}
.plans-2 .plan .checks li,.plans-4 .plan .checks li{font-size:.98rem}
@media (max-width:640px){.plans-2 .plan .checks,.plans-4 .plan .checks{grid-template-columns:1fr}}


/* course card: a green strip drops from the picture onto the white body on hover, carrying "Course details" */
.course-card{position:relative}
.course-card .card-img{position:relative;z-index:1}
.course-card .card-body{position:relative;padding-top:34px}
.card-wave{position:absolute;left:0;right:0;top:0;height:34px;background:var(--green);z-index:2;transform:translateY(-100%);opacity:0;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s;pointer-events:none;text-decoration:none;cursor:pointer}
.card-wave-label{position:absolute;left:0;right:0;top:9px;text-align:center;color:#fff;font-family:var(--display);font-weight:800;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px 2px rgba(3,18,32,.18)}
.course-card:hover .card-wave,.course-card:focus-within .card-wave{transform:none;opacity:1;pointer-events:auto}
.course-card:hover .card-img img{transform:scale(1.04)}
.course-card .card-more{display:none}
@media (hover:none){.card-wave{display:none}.course-card .card-more{display:inline-block}}
@media (prefers-reduced-motion:reduce){.card-wave{transition:none}}

/* course tile: the usual grade, above the title */
.card-grade{display:block;font-family:var(--display);font-weight:700;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.course-card .card-body{gap:6px;grid-template-rows:auto auto 1fr auto}
.course-card .card-title{margin-top:2px;align-items:flex-start}

/* shortcode tools (enrollment, assessment, portals, consultation) keep the plugin's own look: no theme heading face, no shadow on <form> */
.plain-page--tool .entry form{box-shadow:none;border-radius:0}
.plain-page--tool .entry :is(h1,h2,h3,h4,h5,h6){font-family:inherit;letter-spacing:0}

/* phones narrower than 480px: the headline must fit the column ("Skills. Confident" clipped at ~400px) */
@media (max-width:480px){h1{font-size:clamp(1.85rem,8.4vw,2.4rem)}.hero h1{margin-top:10px}.sub{letter-spacing:.06em;font-size:.74rem}}

/* hero, calmer (owner review 2026-10-09): two-line headline, two-fact lede, one proof card, no caps, sample tests in a strip below */
.hero--live h1{font-size:clamp(2.4rem,4.5vw,3.9rem)}
@media (min-width:641px){.hero--live .h1-line{display:block}}
.hero--live .wrap{padding-bottom:36px}
.samples-strip{background:#fff;border-bottom:1px solid var(--line)}
.samples-strip .wrap{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;padding-block:14px;font-size:.95rem;color:var(--muted)}
@media (max-width:480px){.hero--live h1{font-size:clamp(1.85rem,8.4vw,2.4rem)}}

/* awards section (PTA page): press logos in a row under the badges */
.press-row--inline{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px 40px;padding-top:28px}
.press-row--inline img{height:20px;width:auto;filter:grayscale(1);opacity:.5;transition:opacity .2s,filter .2s}
.press-row--inline a:hover img{opacity:1;filter:none}

@media (max-width:480px){.p-hero h1{font-size:clamp(1.85rem,8.4vw,2.4rem)}}

/* cookie consent (inc/consent.php, assets/js/consent.js) */
.cookie-bar{position:fixed;left:0;right:0;bottom:0;z-index:900;background:#fff;color:var(--fg);box-shadow:0 -6px 24px rgba(3,18,32,.12);border-top:1px solid var(--line);font-size:.95rem;line-height:1.5}
.cookie-bar-inner{max-width:var(--wrap);margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:24px}
.cookie-bar-text{flex:1;margin:0}
.cookie-bar-text a{color:var(--blue)}
.cookie-bar-actions{display:flex;gap:10px;flex-shrink:0}
.cookie-btn{padding:11px 20px;border-radius:999px;font-size:.92rem;font-weight:600;white-space:nowrap}
.cookie-btn-manage{background:#fff;color:var(--blue);box-shadow:inset 0 0 0 2px var(--blue)}.cookie-btn-manage:hover{background:var(--tint)}
.cookie-btn-decline{background:var(--navy);color:#fff}.cookie-btn-decline:hover{background:var(--blue-dark)}
.cookie-btn-accept{background:var(--green);color:var(--fg)}.cookie-btn-accept:hover{background:var(--green-dark)}
.cookie-dialog{border:0;border-radius:14px;padding:0;max-width:560px;width:calc(100% - 32px);box-shadow:var(--shadow-lift);color:var(--text)}
.cookie-dialog::backdrop{background:rgba(3,18,32,.55)}
.cookie-dialog-form{padding:28px 28px 24px;position:relative}
.cookie-dialog h2{font-size:1.5rem;margin-bottom:8px}
.cookie-dialog-lede{font-size:.95rem;margin-bottom:18px}
.cookie-cats{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:10px}
.cookie-cat label{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--band);cursor:pointer}
.cookie-cat input{margin:4px 0 0;width:18px;height:18px;flex-shrink:0;accent-color:var(--blue)}
.cookie-cat input:disabled{cursor:default}
.cookie-cat-body{display:grid;gap:2px}
.cookie-cat-label{font-weight:700;color:var(--fg)}
.cookie-cat-label small{font-weight:400;color:var(--muted);margin-left:6px}
.cookie-cat-text{font-size:.9rem}
.cookie-dialog-actions{display:flex;gap:10px;flex-wrap:wrap}
.cookie-dialog-close{position:absolute;right:12px;top:10px;background:none;border:0;font-size:1.8rem;line-height:1;color:var(--muted);cursor:pointer;padding:4px 8px;border-radius:6px}.cookie-dialog-close:hover{color:var(--fg);background:var(--band)}
.footer-bottom .cookie-settings{background:none;border:0;padding:0;font:inherit;color:#fff;cursor:pointer;text-decoration:none}
.footer-bottom .cookie-settings:hover{text-decoration:underline}
@media (max-width:760px){
  .cookie-bar-inner{flex-direction:column;align-items:stretch;gap:12px;padding-block:14px 16px}
  .cookie-bar-actions{flex-wrap:wrap}
  .cookie-bar-actions .cookie-btn{flex:1 1 auto;text-align:center}
  .cookie-dialog-form{padding:22px 18px 18px}
}

/* one icon family (inc/icons.php): the holder tints, the icon pops on hover */
.icw .ic{transition:transform .35s cubic-bezier(.34,1.56,.64,1),color .25s}
.box:hover .icw .ic,.step:hover .icw .ic,.subject:hover .icw .ic{transform:scale(1.15) rotate(-8deg)}
.pill.hand .ic{width:1.1em;height:1.1em;color:var(--blue)}
.hw .nv .ic{width:1em;height:1em}
.pagination .ic,.post-nav .ic{width:1em;height:1em}
@media (prefers-reduced-motion:reduce){.icw .ic,.link-arrow .ic,.ic-menu-caret{transition:none}.box:hover .icw .ic,.step:hover .icw .ic,.subject:hover .icw .ic,.link-arrow:hover .ic{transform:none}}

/* portal pages: app chrome. No site header at all: the portal's own banner is the header, and it sticks while the page scrolls. */
.is-portal .page-content{padding-top:0}
.is-portal .ama-student-shell,.is-portal .ama-parent-shell,.is-portal #ama-instructor-portal,.is-portal #ama-admin-portal{overflow:visible;border-top-left-radius:0;border-top-right-radius:0}
.is-portal .ama-student-topbar,.is-portal .ama-parent-topbar,.is-portal header.ama-topbar,.is-portal .ama-admin-topbar{position:sticky;top:0;z-index:50;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 6px 18px rgba(3,18,32,.18)}
.portal-back{position:absolute;right:22px;bottom:6px;font-family:var(--display);font-weight:600;color:#fff;text-decoration:none;font-size:.72rem;opacity:.75;white-space:nowrap;line-height:1.2}
.portal-back::before{content:"←";margin-right:6px}
.portal-back:hover{opacity:1;text-decoration:underline}
.site-main--portal{min-height:60vh}
.portal-footer .footer-bottom{padding-block:16px;font-size:.9rem;border-top:0}
.is-portal .site-main{padding-bottom:0}
/* portal sign-in: the blue screen fills the window edge to edge and down to the footer. The plugin draws it as a
   rounded 1600px card with a margin; here the card becomes the page. Only the sign-in state (the auth wrap) is
   changed, the dashboards keep the plugin's layout. The flex chain hands the spare height down to the wrap. */
body.is-portal{min-height:100vh;display:flex;flex-direction:column}
.is-portal .site-main--portal{flex:1 0 auto;display:flex;flex-direction:column}
.is-portal .site-main--portal>.plain-page,.is-portal .site-main--portal>.plain-page>.page-content{flex:1 0 auto;display:flex;flex-direction:column}
.is-portal .page-content{padding-bottom:0}
.is-portal :is(#ama-student-portal,#ama-parent-portal,#ama-instructor-portal,#ama-admin-portal):has(>:is(.ama-auth-wrap,.ama-student-auth-wrap,.ama-parent-auth-wrap,.ama-admin-auth-wrap)){flex:1 0 auto;display:flex;flex-direction:column;position:relative;width:100vw;max-width:none;left:50%;margin:0 0 0 -50vw;border-radius:0;box-shadow:none}
.is-portal :is(.ama-auth-wrap,.ama-student-auth-wrap,.ama-parent-auth-wrap,.ama-admin-auth-wrap){flex:1 0 auto}
/* laptop widths: the student header's children were 3px wider than the bar, which pushed Log out to a second line */
@media (min-width:641px){.is-portal .ama-student-topbar{gap:12px}.is-portal .ama-student-nav{gap:3px}}
@media (max-width:1199px){.portal-back{display:none}}
