:root{
  --pitch:#17402E; --turf:#2F6B4A; --leather:#B8262F; --chalk:#F2F5EF; --ink:#14211B; --stitch:#E3B341;
  --muted:#55645B; --line:#D6DED6; --white:#fff;
  --display:"Bricolage Grotesque",system-ui,sans-serif; --body:"Atkinson Hyperlegible",system-ui,sans-serif;
  --r-sm:8px; --r-md:14px; --r-lg:22px; --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--chalk);color:var(--ink);font:400 1.0625rem/1.6 var(--body)}
img{max-width:100%;display:block}
a{color:var(--turf)}
:focus-visible{outline:3px solid var(--stitch);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.25rem}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:99}

/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(242,245,239,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:1.5rem;height:68px}
.brand{display:flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--pitch);font:800 1.45rem/1 var(--display);letter-spacing:-.02em}
.brand svg{width:30px;height:30px}
.nav{display:flex;gap:1.25rem;margin-left:auto}
.nav a{color:var(--ink);text-decoration:none;font-weight:700;font-size:.95rem}
.nav a:hover{color:var(--leather)}
.btn{display:inline-flex;align-items:center;gap:.5rem;font:700 1rem/1 var(--body);padding:.95rem 1.35rem;border-radius:999px;text-decoration:none;border:2px solid transparent;cursor:pointer}
.btn-red{background:var(--leather);color:#fff}.btn-red:hover{background:#9c1f27}
.btn-ghost{border-color:var(--pitch);color:var(--pitch);background:transparent}.btn-ghost:hover{background:var(--pitch);color:#fff}
.btn-wa{background:#1F8F4E;color:#fff;padding:.7rem 1.05rem;font-size:.92rem}.btn-wa:hover{background:#18763f}
@media (max-width:820px){.nav{display:none}.top .btn-wa{display:none}}
.btn{white-space:nowrap}

/* hero */
.hero{padding:4.5rem 0 4rem}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:3.5rem;align-items:center}
.hero h1{font:800 clamp(2.6rem,6vw,4.4rem)/1.02 var(--display);letter-spacing:-.035em;color:var(--pitch);margin:0 0 1.25rem}
.hero p.lead{font-size:1.2rem;max-width:34ch;margin:0 0 2rem;color:#2b3a32}
.cta-row{display:flex;flex-wrap:wrap;gap:.85rem}
.note{font-size:.88rem;color:var(--muted);margin-top:1.25rem}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:2.5rem}.hero{padding-top:2.5rem}}

/* scoreboard */
.board{background:var(--pitch);color:var(--chalk);border-radius:var(--r-lg);padding:1.6rem;box-shadow:0 24px 50px -24px rgba(23,64,46,.55);position:relative}
.board::before{content:"";position:absolute;inset:10px;border:2px solid rgba(242,245,239,.18);border-radius:16px;pointer-events:none}
.board-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.1rem;gap:1rem;flex-wrap:wrap}
.board h2{font:800 1.25rem/1.2 var(--display);margin:0}
.toggle{display:inline-flex;background:rgba(0,0,0,.25);border-radius:999px;padding:4px}
.toggle button{font:700 .85rem var(--body);color:var(--chalk);background:none;border:0;padding:.45rem .9rem;border-radius:999px;cursor:pointer}
.toggle button[aria-pressed="true"]{background:var(--chalk);color:var(--pitch)}
.rows{display:grid;gap:.6rem}
.row{display:grid;grid-template-columns:1fr auto;align-items:center;background:rgba(255,255,255,.06);border-radius:10px;padding:.55rem .7rem .55rem 1rem}
.row span{font-weight:700}
.tiles{display:flex;gap:5px}
.tile{width:38px;height:46px;background:#0E2A1E;border-radius:6px;display:grid;place-items:center;font:800 1.45rem var(--display);color:var(--stitch);box-shadow:inset 0 -2px 0 rgba(255,255,255,.08);animation:flip .55s cubic-bezier(.2,.7,.2,1) both}
.row:nth-child(2) .tile{animation-delay:.12s}.row:nth-child(3) .tile{animation-delay:.24s}.row:nth-child(4) .tile{animation-delay:.36s}.row:nth-child(5) .tile{animation-delay:.48s}
@keyframes flip{from{transform:rotateX(90deg);opacity:0}to{transform:none;opacity:1}}
.row.total{background:var(--leather)}
.row.total .tile{background:rgba(0,0,0,.25);color:#fff}
.board-foot{font-size:.88rem;margin:1rem 0 0;color:rgba(242,245,239,.8)}

/* crease divider */
.crease{height:10px;border-top:2px solid var(--line);border-bottom:2px solid var(--line);max-width:var(--max);margin:0 auto}

section{padding:4.5rem 0}
h2.sec{font:800 clamp(1.9rem,3.6vw,2.6rem)/1.08 var(--display);letter-spacing:-.025em;color:var(--pitch);margin:0 0 .75rem}
p.sec-sub{max-width:58ch;margin:0 0 2.25rem;color:#2b3a32}

/* steps */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;counter-reset:s}
.steps li{counter-increment:s;padding-top:1rem;border-top:3px solid var(--pitch)}
.steps li::before{content:counter(s);font:800 2.4rem/1 var(--display);color:var(--leather);display:block;margin-bottom:.5rem}
.steps h3{font:800 1.2rem/1.25 var(--display);margin:0 0 .4rem}
.steps p{margin:0;color:#34443b}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* courses */
.courses{display:grid;grid-template-columns:1.2fr 1fr;gap:1.5rem}
.course{background:#fff;border-radius:var(--r-md);padding:1.75rem;border:1px solid var(--line)}
.course.main{grid-row:span 2;background:var(--pitch);color:var(--chalk);border:0}
.course h3{font:800 1.5rem/1.15 var(--display);margin:0 0 .5rem}
.course.main h3{font-size:2rem}
.course ul{padding-left:1.1rem;margin:.75rem 0 0}
.course li{margin:.3rem 0}
.course a{color:inherit;font-weight:700}
@media (max-width:820px){.courses{grid-template-columns:1fr}.course.main{grid-row:auto}}

/* writing tip */
.tip{background:#fff;border-radius:var(--r-lg);padding:2.25rem;border:1px solid var(--line);display:grid;grid-template-columns:.8fr 1.2fr;gap:2rem;align-items:start}
.tip h2{margin-bottom:.5rem}
.compare{display:grid;gap:.9rem}
.compare blockquote{margin:0;padding:1rem 1.25rem;border-radius:10px;font-size:1.08rem}
.compare .b6{background:#F1F1EE;border-left:5px solid #9AA39C}
.compare .b7{background:#E8F2EC;border-left:5px solid var(--turf)}
.compare cite{display:block;font:700 .85rem var(--body);font-style:normal;margin-bottom:.3rem;color:var(--muted)}
@media (max-width:820px){.tip{grid-template-columns:1fr;padding:1.5rem}}

/* forms */
.book{background:var(--pitch);color:var(--chalk)}
.book h2.sec{color:var(--chalk)}.book p.sec-sub{color:rgba(242,245,239,.85)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.25rem;background:var(--chalk);color:var(--ink);padding:2rem;border-radius:var(--r-lg)}
.field{display:flex;flex-direction:column;gap:.35rem}
.field.full{grid-column:1/-1}
label{font-weight:700;font-size:.95rem}
label small{font-weight:400;color:var(--muted)}
input,select,textarea{font:inherit;padding:.8rem .9rem;border:2px solid var(--line);border-radius:var(--r-sm);background:#fff;color:var(--ink);width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--turf);outline:none;box-shadow:0 0 0 3px rgba(47,107,74,.2)}
.hidden{position:absolute;left:-9999px}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}
.form-foot p{margin:0;font-size:.88rem;color:var(--muted);max-width:46ch}
@media (max-width:700px){.form-grid{grid-template-columns:1fr;padding:1.25rem}}

/* guides */
.guides{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}
.guide-list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}
.guide-list li{display:flex;gap:1rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:1rem 1.15rem}
.guide-list b{display:block;font-family:var(--display);font-size:1.08rem}
.guide-list span{color:var(--muted);font-size:.95rem}
.pdf{flex:none;width:42px;height:50px;border-radius:6px;background:var(--leather);color:#fff;font:800 .72rem var(--display);display:grid;place-items:end center;padding-bottom:6px}
.mini-form{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem;display:grid;gap:.9rem}
@media (max-width:820px){.guides{grid-template-columns:1fr}}

/* centres */
.centres{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.centre{border-top:3px solid var(--leather);padding-top:1rem}
.centre h3{font:800 1.5rem/1.1 var(--display);margin:0 0 .35rem;color:var(--pitch)}
.centre p{margin:0 0 .75rem;color:#34443b}
@media (max-width:760px){.centres{grid-template-columns:1fr}}

/* faq */
.faq{max-width:760px}
details{border-bottom:1px solid var(--line);padding:1rem 0}
summary{cursor:pointer;font:800 1.12rem/1.35 var(--display);list-style:none;display:flex;justify-content:space-between;gap:1rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:1.5rem;line-height:1;color:var(--leather)}
details[open] summary::after{content:"–"}
details p{margin:.6rem 0 0;color:#34443b;max-width:62ch}

/* footer */
footer{background:var(--ink);color:#C9D3CC;padding:3rem 0 2rem;font-size:.92rem}
footer .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:2rem}
footer .brand{color:#fff}
footer a{color:#fff}
footer h3{font:800 1rem var(--display);color:#fff;margin:0 0 .6rem}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}
.aec{display:flex;align-items:center;gap:.75rem;margin-top:1rem}
.aec img{width:44px;height:auto;background:#fff;border-radius:8px;padding:4px}
.legal{grid-column:1/-1;border-top:1px solid #2c3a32;padding-top:1.25rem;font-size:.82rem;color:#9AA89F}
@media (max-width:760px){footer .wrap{grid-template-columns:1fr}}

/* floating whatsapp on mobile */
.fab{display:none}
@media (max-width:820px){.fab{display:flex;position:fixed;right:16px;bottom:16px;z-index:30;box-shadow:0 10px 24px -8px rgba(0,0,0,.4)}}

/* simple pages */
.page{min-height:70vh;padding:5rem 0}
.page h1{font:800 clamp(2.2rem,5vw,3.4rem)/1.05 var(--display);color:var(--pitch);letter-spacing:-.03em;margin:0 0 1rem}
.page p{max-width:56ch}

/* practice portal access */
.btn-practice{display:none;background:var(--pitch);color:#fff;padding:.6rem .95rem;font-size:.9rem;margin-left:auto}
.btn-practice:hover{background:#0f2d20}
@media (max-width:820px){.btn-practice{display:inline-flex}}
.student-strip{background:var(--pitch);color:var(--chalk);padding:1.6rem 0}
.student-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.student-strip h2{font:800 1.35rem/1.2 var(--display);margin:0 0 .3rem;color:#fff}
.student-strip p{margin:0;max-width:60ch;color:rgba(242,245,239,.85)}
.student-strip .btn{flex:none}
@media (max-width:600px){.student-strip .btn{width:100%;justify-content:center}}
@media (max-width:820px){.top .wrap{gap:.75rem}}
@media (max-width:420px){.brand{font-size:1.2rem}.brand svg{width:24px;height:24px}.btn-practice{padding:.55rem .75rem;font-size:.85rem;gap:.35rem}}
@media (max-width:360px){.xs-hide{display:none}}

/* coach widget (aec-global-assistant): quiet secondary launcher, not a second primary CTA */
body .aecw-btn{background:#fff;color:var(--pitch);border:1px solid var(--line);box-shadow:0 6px 16px -8px rgba(20,33,27,.35);animation:coachIn .3s ease-out both}
body .aecw-btn:hover{border-color:var(--pitch)}
@keyframes coachIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* phones: icon-only, stacked above the WhatsApp bubble instead of on top of it */
@media (max-width:820px){
  body .aecw-pill{right:16px;bottom:calc(76px + env(safe-area-inset-bottom,0px));padding:6px;gap:0}
  body .aecw-pill .aecw-ico{width:34px;height:34px}
  body .aecw-pill>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  body .aecw-panel{bottom:calc(136px + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 32px)}
}
.prose h2{font:800 1.4rem/1.2 var(--display);color:var(--pitch);margin:2rem 0 .6rem}
.prose ul{max-width:62ch;padding-left:1.2rem}
.prose li{margin:.35rem 0}
.prose p{max-width:62ch}
