/*
Theme Name: CertsEducation
Theme URI: https://certseducation.com/
Author: CertsEducation
Description: WooCommerce theme for the CertsEducation certification exam study material store. Homepage, exam list, category pages, exam product page, search, cart and checkout.
Version: 1.2.1
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: certseducation
*/
:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  --bg:#f3f6f8; --surface:#ffffff; --ink:#0f2a33; --muted:#52666e; --line:#d9e1e5;
  --brand:#0b6f78; --brand-ink:#ffffff; --signal:#ffc94d; --signal-ink:#2b2100; --soft:#e6f0f2;
  --bar:#0f2a33; --bar-ink:#d8e6ea; --ok:#1c7c4d;
  --head:'Bricolage Grotesque','Segoe UI',Arial,sans-serif;
  --body:'IBM Plex Sans','Segoe UI',Arial,sans-serif;
}
html{scroll-padding-top:calc(90px + env(safe-area-inset-top,0px));height:100%}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.55;min-height:100%}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--head);line-height:1.12;margin:0;letter-spacing:-.01em}
:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:6px;padding:12px 22px;font:600 15px var(--body);cursor:pointer;text-decoration:none;transition:filter .15s}
.btn-primary{background:var(--brand);color:var(--brand-ink)}
.btn-signal{background:var(--signal);color:var(--signal-ink)}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn-lg{padding:15px 26px;font-size:16px}
.btn:hover{filter:brightness(1.07)}
.sr{position:absolute;left:-9999px}

/* utility bar + header */
.util{background:var(--bar);color:var(--bar-ink);font-size:13px}
.util .wrap{display:flex;justify-content:space-between;gap:16px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
.util a{text-decoration:none;margin-left:18px}.util a:hover{text-decoration:underline}
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--surface);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;gap:20px;height:68px}
.logo{font:700 23px var(--head);text-decoration:none;display:flex;align-items:center;gap:9px;flex:none}
.logo svg{width:32px;height:32px;flex:none}.logo b{color:var(--brand);font-weight:700}
@media (max-width:480px){.logo{font-size:19px}.logo svg{width:28px;height:28px}header.top nav.main{display:none}header.top .wrap{gap:10px;justify-content:space-between}header.top .logo{font-size:19px}}
.logo i{display:inline-block;width:24px;height:24px;border-radius:6px;background:var(--brand);position:relative}
.logo i::after{content:"";position:absolute;left:5px;right:5px;top:7px;height:3px;background:var(--signal);box-shadow:0 5px 0 var(--signal)}
.hsearch{flex:1;max-width:460px;position:relative}
.hsearch input{width:100%;font:500 15px var(--body);padding:11px 14px 11px 40px;border-radius:8px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink)}
.hsearch svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;stroke:var(--muted);fill:none;stroke-width:2}
nav.main{display:flex;gap:6px;margin-left:auto}
nav.main a,nav.main button{background:none;border:0;font:500 15px var(--body);color:var(--ink);padding:8px 12px;border-radius:6px;text-decoration:none;cursor:pointer}
nav.main a:hover,nav.main button:hover{background:var(--soft)}
.dd{position:relative}
.ddmenu{position:absolute;right:0;top:calc(100% + 8px);width:300px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.18);padding:8px;display:none}
.dd.open .ddmenu{display:block}
.ddmenu a{display:flex;justify-content:space-between;padding:10px 12px;border-radius:6px;text-decoration:none;font-size:14px}
.ddmenu a:hover{background:var(--soft)}
.ddmenu span{color:var(--muted)}
.cartlink{text-decoration:none;font-weight:600;border:1.5px solid var(--line);border-radius:6px;padding:8px 14px;font-size:14px;flex:none}
.cartlink b{background:var(--signal);color:var(--signal-ink);border-radius:10px;padding:1px 8px;margin-left:6px;font-size:13px}
.srdrop{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.2);max-height:380px;overflow:auto;display:none;z-index:40}
.srdrop.open{display:block}
.srdrop a{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;text-decoration:none;border-bottom:1px solid var(--line);font-size:15px}
.srdrop a:last-child{border-bottom:0}.srdrop a:hover{background:var(--soft)}
.srdrop small{color:var(--muted);display:block}
.empty{padding:28px;text-align:center;color:var(--muted)}

/* hero */
.hero{background:linear-gradient(180deg,var(--surface),var(--bg));border-bottom:1px solid var(--line)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding-top:56px;padding-bottom:56px}
.hero h1{font-size:clamp(34px,5vw,56px)}
.hero p.lead{font-size:18px;color:var(--muted);max-width:33em;margin:18px 0 26px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.hero .mini{margin-top:22px;display:flex;gap:22px;flex-wrap:wrap;color:var(--muted);font-size:14px}
.hero .mini span::before{content:"✓";color:var(--ok);font-weight:700;margin-right:6px}

/* software mock */
.win{background:var(--surface);border:1.5px solid var(--ink);border-radius:12px;box-shadow:10px 10px 0 var(--soft);overflow:hidden}
.win .tb{display:flex;align-items:center;gap:7px;padding:10px 14px;background:var(--ink);color:var(--bg);font-size:12px}
.win .tb i{width:10px;height:10px;border-radius:50%;background:#7b919a;display:inline-block}
.win .tb span{margin-left:8px;opacity:.85}
.win .bd{display:grid;grid-template-columns:1fr 130px}
.win .q{padding:18px}
.win .q small{color:var(--muted)}
.win .q p{margin:8px 0 12px;font-weight:500;font-size:15px}
.opt{display:flex;gap:10px;align-items:center;padding:9px 11px;border:1.5px solid var(--line);border-radius:7px;margin-bottom:7px;font-size:14px}
.opt::before{content:"";width:13px;height:13px;border-radius:50%;border:2px solid var(--muted);flex:none}
.opt.sel{border-color:var(--brand);background:var(--soft)}.opt.sel::before{background:var(--brand);border-color:var(--brand)}
.win .nav{border-left:1px solid var(--line);padding:14px;background:var(--bg)}
.win .nav b{font:700 20px var(--head);display:block}
.win .nav small{color:var(--muted);font-size:11px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:10px}
.grid em{font-style:normal;font-size:11px;text-align:center;padding:4px 0;border-radius:4px;background:var(--line)}
.grid em.d{background:var(--brand);color:var(--brand-ink)}.grid em.f{background:var(--signal);color:var(--signal-ink)}
.win .cap{padding:8px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}

/* trust strip */
.strip{background:var(--surface);border-bottom:1px solid var(--line)}
.strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding-top:20px;padding-bottom:20px}
.strip div{display:flex;gap:12px;align-items:center;font-size:14px}
.strip svg{width:30px;height:30px;stroke:var(--brand);fill:none;stroke-width:1.8;flex:none}
.strip strong{display:block;font-size:15px}.strip span{color:var(--muted)}

section.block{padding:48px 0}
.sec-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.sec-head h2{font-size:30px}.sec-head p{margin:6px 0 0;color:var(--muted)}
.cats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cat{display:flex;gap:14px;align-items:center;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:10px;text-decoration:none}
.cat:hover{border-color:var(--brand);box-shadow:0 10px 24px -18px rgba(8,30,38,.5)}
.cat .ct{flex:1;min-width:0}
.cat .arr{color:var(--brand);font-size:18px;flex:none}
.mono{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;background:var(--soft);flex:none}
.mono svg{width:22px;height:22px;stroke:var(--brand);fill:none;stroke-width:1.8}
.cat strong{display:block}.cat span{color:var(--muted);font-size:14px}

.ledger{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.row{display:grid;grid-template-columns:1fr 230px 100px 60px;gap:16px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);text-decoration:none}
.row:last-child{border-bottom:0}.row:hover{background:var(--soft)}
.row .code{font-weight:600;color:var(--brand);font-size:14px;overflow-wrap:anywhere}
.row .cat2{color:var(--muted);font-size:14px}
.row .price{font:700 18px var(--head);text-align:right}
.row .go{justify-self:end;font-weight:600;font-size:14px;color:var(--brand)}
.row .nm{font-weight:500;min-width:0;overflow-wrap:anywhere}
.cover b.cn{font-size:17px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.hvc .cover b.cn{font-size:15px}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.filters input,.filters select{flex:1 1 240px;min-width:0;padding:11px 14px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:500 15px var(--body)}
.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0 30px;color:var(--muted);font-size:14px}
.btn[disabled]{opacity:.4;cursor:default}
.crow>div:first-child{min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.chip{border:1.5px solid var(--line);background:var(--surface);border-radius:20px;padding:6px 14px;font:500 14px var(--body);color:var(--ink);cursor:pointer}
.chip:hover,.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.steps div{padding:28px;border-right:1px solid var(--line)}.steps div:last-child{border-right:0}
.steps .n{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brand);color:var(--brand-ink);font:700 16px var(--head);margin-bottom:12px}
.steps h3{font-size:20px;margin-bottom:6px}.steps p{margin:0;color:var(--muted)}

details{border-bottom:1px solid var(--line);padding:16px 0}
details summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
details summary::after{content:"+";font-size:22px;line-height:1;color:var(--brand)}
details[open] summary::after{content:"–"}
details p{color:var(--muted);margin:10px 0 0;max-width:46em}

.cta-band{background:var(--ink);color:var(--bg);border-radius:14px;padding:36px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.cta-band h2{font-size:28px}.cta-band p{margin:6px 0 0;opacity:.8}

/* product */
.crumbs{font-size:14px;color:var(--muted);padding:22px 0 10px}.crumbs a{text-decoration:none;color:var(--brand)}
.pgrid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:36px;align-items:start;padding-bottom:40px}
.phead{display:grid;grid-template-columns:200px minmax(0,1fr);gap:26px;align-items:center;margin-bottom:22px}
.cover{aspect-ratio:3/4;border-radius:8px;position:relative;overflow:hidden;color:#fff;padding:16px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:6px 6px 0 var(--soft)}
.cover small{opacity:.85;font-size:11px}.cover b{font:700 28px var(--head);line-height:1.05;overflow-wrap:anywhere}
.cover u{text-decoration:none;font-size:11px;border-top:1px solid rgba(255,255,255,.45);padding-top:8px}
.cover::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.12)}
.tag{display:inline-block;background:var(--soft);color:var(--brand);font-weight:600;font-size:13px;border-radius:4px;padding:3px 10px;margin:0 6px 8px 0}
.phead h1{font-size:clamp(26px,3.6vw,38px);margin:4px 0 10px}
.phead p{margin:0;color:var(--muted);max-width:38em}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;position:sticky;top:calc(68px + env(safe-area-inset-top,0px));background:var(--bg);z-index:5;overflow-x:auto}
.tabs a{padding:12px 16px;text-decoration:none;font-weight:600;font-size:15px;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}
.tabs a:hover{color:var(--ink)}
.buybox{position:sticky;top:calc(88px + env(safe-area-inset-top,0px));background:var(--surface);border:1.5px solid var(--ink);border-radius:12px;padding:24px}
.buybox .price{font:700 46px var(--head)}.buybox .price small{font:500 14px var(--body);color:var(--muted)}
.buybox ul{list-style:none;margin:14px 0;padding:0}
.buybox li{padding:9px 0;border-bottom:1px dashed var(--line);display:flex;justify-content:space-between;gap:10px;font-size:15px}
.buybox li:last-child{border-bottom:0}
.buybox .btn{width:100%;margin-top:10px}
.secure{margin-top:14px;font-size:13px;color:var(--muted);display:flex;gap:8px;align-items:center}
.secure svg{width:16px;height:16px;stroke:var(--ok);fill:none;stroke-width:2;flex:none}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:24px;margin-bottom:20px}
.panel h2{font-size:22px;margin-bottom:12px}
.panel ul{margin:0;padding-left:20px;color:var(--muted)}.panel li{margin:7px 0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fmt{border:1px solid var(--line);border-radius:8px;padding:16px;background:var(--bg)}
.fmt h3{font-size:17px;margin-bottom:6px}.fmt p{margin:0;color:var(--muted);font-size:14px}
table.spec{width:100%;border-collapse:collapse;font-size:15px}
table.spec td{padding:10px 0;border-bottom:1px solid var(--line)}table.spec td:first-child{color:var(--muted);width:42%}

.hv{position:relative;min-height:410px}
.hvc{position:absolute;width:176px}
.hvc.c1{left:0;top:26px;transform:rotate(-6deg)}
.hvc.c2{left:118px;top:0;transform:rotate(4deg)}
.bundle{position:absolute;right:0;bottom:0;width:318px;background:var(--surface);border:1.5px solid var(--ink);border-radius:12px;padding:20px 20px 18px;box-shadow:8px 8px 0 var(--soft)}
.bundle h3{font-size:18px;margin-bottom:12px}
.bundle ul{list-style:none;margin:0 0 14px;padding:0}
.bundle li{display:flex;gap:11px;align-items:flex-start;padding:8px 0;border-bottom:1px dashed var(--line);font-size:14px}
.bundle li:last-child{border-bottom:0}
.bundle svg{width:20px;height:20px;flex:none;margin-top:1px;stroke:var(--ok);fill:none;stroke-width:2.6}
.bundle small{display:block;color:var(--muted);font-size:13px}
.bpr{font:700 30px var(--head)}.bpr s{font:500 16px var(--body);color:var(--muted);margin-right:6px}.bpr small{font:500 13px var(--body);color:var(--muted)}

.why{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.why div{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--brand);border-radius:10px;padding:22px}
.why h3{font-size:19px;margin-bottom:6px}.why p{margin:0;color:var(--muted);font-size:15px}
.assurance{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.assurance div{padding:24px;border-right:1px solid var(--line)}.assurance div:last-child{border-right:0}
.assurance svg{width:30px;height:30px;stroke:var(--brand);fill:none;stroke-width:1.8;margin-bottom:10px}
.assurance h3{font-size:17px;margin-bottom:6px}.assurance p{margin:0;color:var(--muted);font-size:14px}
.demoband{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:28px 30px}
.demoband h2{font-size:26px}.demoband p{margin:6px 0 0;color:var(--muted);max-width:36em}
.assure{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line)}
.assure li{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--muted);padding:5px 0}
.assure svg{width:17px;height:17px;stroke:var(--brand);fill:none;stroke-width:2;flex:none}
.paychips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.paychips span{border:1px solid var(--line);border-radius:5px;padding:3px 10px;font-size:12px;font-weight:600;color:var(--muted);background:var(--bg)}
.site-.site-footer .paychips span{background:transparent;border-color:rgba(255,255,255,.25);color:var(--bar-ink)}
.plan{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.plan div{border:1px solid var(--line);border-radius:8px;padding:16px;background:var(--bg)}
.plan .n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--brand);color:var(--brand-ink);font:700 14px var(--head);margin-bottom:8px}
.plan h3{font-size:16px;margin-bottom:4px}.plan p{margin:0;color:var(--muted);font-size:14px}
.fit{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fit h3{font-size:16px;margin-bottom:6px}
.fit ul{margin:0;padding-left:18px;color:var(--muted);font-size:15px}.fit li{margin:5px 0}
.rv{display:flex;gap:18px;align-items:center}
.rvn{width:64px;height:64px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font:700 22px var(--head);color:var(--muted);flex:none}
.rv p{margin:4px 0 0;color:var(--muted);font-size:15px}
.helpfab{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:26;background:var(--brand);color:var(--brand-ink);border-radius:30px;padding:12px 18px;font-weight:600;font-size:14px;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,.25);display:flex;gap:8px;align-items:center}
.helpfab svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.modal{position:fixed;inset:0;background:rgba(5,15,18,.6);display:none;align-items:center;justify-content:center;z-index:70;padding:20px}
.modal.open{display:flex}
.mbox{background:var(--surface);border-radius:12px;padding:28px;max-width:440px;width:100%;position:relative}
.mbox h2{font-size:24px;margin-bottom:10px}.mbox p{color:var(--muted);margin:0 0 6px}
.mx{position:absolute;right:12px;top:8px;background:none;border:0;font-size:28px;cursor:pointer;color:var(--muted)}
.contactcard{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px;margin:14px 0}
.contactcard p{margin:4px 0}
.sticky-buy{display:none}.sticky-buy{display:none}
.bar{display:block;height:7px;border-radius:4px;background:var(--line);margin:7px 0}
.scn{background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:6px 12px;margin:8px 0}
.ans{border:1.5px solid var(--line);border-radius:7px;padding:8px 12px;margin-bottom:8px}
.ans small{font-size:11px;color:var(--muted)}
.ans.ok{border-color:var(--ok);background:var(--soft)}
.upd{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.tag.upd2{background:transparent;color:var(--ok);border:1px solid var(--ok)}
.updbar{display:flex;gap:10px 24px;flex-wrap:wrap;align-items:center;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:8px;padding:12px 16px;margin-bottom:18px;font-size:14px}
.updbar i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--ok);margin-right:7px}
.price s,.row .price s{color:var(--muted)}
.price s{font:500 20px var(--body);margin-right:6px}
.row .price s{display:block;font:400 13px var(--body)}
.saletag{display:inline-block;background:var(--signal);color:var(--signal-ink);font-weight:600;font-size:13px;border-radius:4px;padding:3px 10px;margin-bottom:8px}
.ends{font-size:13px;color:var(--muted);margin-top:2px}
.fmt.wide{grid-column:1/-1}
.sumline{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--line);font-size:15px}
.sumline.disc{color:var(--ok);font-weight:600}

/* cart / checkout / pages */
.ce-page{padding-top:36px;padding-bottom:20px}.ce-page h1{font-size:36px;margin-bottom:20px}
.copy{max-width:760px}.copy p,.copy li{color:var(--muted)}.copy h2{font-size:22px;margin:26px 0 8px}
.crow{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line)}
.crow:last-child{border-bottom:0}
.rm{background:none;border:0;color:var(--muted);cursor:pointer;text-decoration:underline;font:14px var(--body)}
.total{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:var(--soft);font:700 20px var(--head)}
.cogrid{display:grid;grid-template-columns:1fr 380px;gap:28px;align-items:start}
.form label{display:block;font-weight:600;font-size:14px;margin:14px 0 6px}
.form input,.form select{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:16px var(--body)}
.form .r2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.note{margin-top:16px;padding:14px 16px;border-left:4px solid var(--signal);background:var(--surface);color:var(--muted);font-size:14px}
.paybox{border:1.5px dashed var(--line);border-radius:8px;padding:18px;color:var(--muted);font-size:14px;margin-top:14px;text-align:center}

.site-footer{background:var(--bar);color:var(--bar-ink);margin-top:30px;padding:44px 0 28px;font-size:14px}
.site-footer .cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px;margin-bottom:26px}
.site-footer h4{font-size:15px;color:#fff;margin-bottom:10px}
.site-footer a{display:block;text-decoration:none;margin:6px 0;opacity:.85}.site-footer a:hover{opacity:1;text-decoration:underline}
.site-footer .legal{border-top:1px solid rgba(255,255,255,.15);padding-top:18px;opacity:.75;max-width:70em}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:8px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .2s;z-index:60;max-width:90vw}
.toast.show{opacity:1}


.preview{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.preview>*{min-width:0}
.preview h2{font-size:30px;margin-bottom:10px}.preview p{color:var(--muted);margin:0 0 14px;max-width:34em}
.preview ul{list-style:none;margin:0 0 20px;padding:0}
.preview li{padding:6px 0 6px 26px;position:relative}
.preview li::before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:700}
.opt .bar{flex:1;margin:0}.opt b{font-size:13px;flex:none}
.straight{border:1.5px solid var(--ink);border-radius:12px;padding:28px 30px;background:var(--surface);display:grid;grid-template-columns:1fr 1.4fr;gap:28px;align-items:center}
.straight h2{font-size:26px}.straight ul{margin:0;padding-left:20px;color:var(--muted)}.straight li{margin:7px 0}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.facts span{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:6px 12px;font-size:14px;font-weight:500}
.sample{max-width:520px;margin-bottom:16px}
.sample .lbl{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
@media (max-width:900px){
  .preview,.straight{grid-template-columns:1fr}
  .hsearch,nav.main .hide-m{display:none}
  .why,.assurance,.plan,.fit{grid-template-columns:1fr}
  .assurance div{border-right:0;border-bottom:1px solid var(--line)}.assurance div:last-child{border-bottom:0}
  .helpfab span{display:none}.helpfab{padding:13px}
  .hv{min-height:0}
  .hvc{display:none}
  .bundle{position:static;width:100%}

  .hero .wrap{grid-template-columns:1fr;gap:34px}
  .strip .wrap{grid-template-columns:1fr 1fr}
  .cats{grid-template-columns:1fr}
  .row{grid-template-columns:1fr auto;gap:4px 12px}
  .row .nm{grid-column:1;grid-row:1}.row .cat2{grid-column:1;grid-row:2}
  .row .price{grid-column:2;grid-row:1}.row .go{grid-column:2;grid-row:2;align-self:end}
  .cover b.cn{font-size:12px}
  .steps{grid-template-columns:1fr}.steps div{border-right:0;border-bottom:1px solid var(--line)}.steps div:last-child{border-bottom:0}
  .pgrid,.cogrid{grid-template-columns:minmax(0,1fr)}
  .buybox{position:static}
  .phead{grid-template-columns:110px minmax(0,1fr);gap:14px;align-items:start}
  .phead h1{font-size:24px;overflow-wrap:anywhere}
  .cover{padding:10px}.cover u{font-size:9px;padding-top:6px}.cover small{font-size:9px}
  .panel{padding:18px}
  .buybox{padding:20px}.buybox .price{font-size:40px}
  .crumbs{overflow-wrap:anywhere}
  .pgrid{gap:0}.pgrid>div{display:contents}
  .pgrid .phead{order:-3}.pgrid .updbar{order:-2}.pgrid .buybox{order:-1;margin-bottom:20px}
  body.single-product,body.ce-has-sticky{padding-bottom:76px}
  .single-product .helpfab{bottom:calc(86px + env(safe-area-inset-bottom,0px))}
  .two{grid-template-columns:1fr}
  .site-footer .cols{grid-template-columns:1fr 1fr}
  .sticky-buy{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--surface);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));align-items:center;justify-content:space-between;gap:12px}
  .sticky-buy b{font:700 24px var(--head)}
}
@media (prefers-reduced-motion:reduce){.toast,.btn{transition:none}}

/* ---------- WordPress / WooCommerce additions ---------- */
.herofield{width:100%;font:500 17px var(--body);padding:16px 18px;border-radius:8px;border:2px solid var(--ink);background:var(--surface);color:var(--ink)}
.hsearch{margin:0}
.pager .btn[aria-disabled]{opacity:.4;pointer-events:none}
.about-copy{color:var(--muted)}.about-copy p{margin:0 0 12px}.about-copy p:last-child{margin-bottom:0}.about-copy table{width:100%;border-collapse:collapse;margin:0 0 12px}.about-copy td{padding:8px 0;border-bottom:1px solid var(--line)}
.buybox a.btn,.sticky-buy a.btn{text-align:center}
.screen-reader-text{position:absolute;left:-9999px}
.admin-bar header.top{top:32px}
.admin-bar .tabs{top:calc(68px + 32px)}
.entry{padding-bottom:30px}
.entry h2{font-size:22px;margin:26px 0 8px}
.entry img{max-width:100%;height:auto}
.entry a{color:var(--brand)}
.entry table{width:100%}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.woocommerce a.button.alt,.woocommerce button.button.alt,.wc-block-components-button:not(.is-link){background:var(--brand);color:var(--brand-ink);border-radius:6px;font-family:var(--body);font-weight:600}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{background:var(--ink);color:var(--bg)}
.woocommerce-message,.woocommerce-info{border-top-color:var(--brand)}
.woocommerce-message::before,.woocommerce-info::before{color:var(--brand)}
.woocommerce-message,.woocommerce-info,.woocommerce-error{margin:0 0 18px}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{padding:12px 14px;border:1.5px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font:16px var(--body)}
.woocommerce table.shop_table{background:var(--surface);border:1px solid var(--line);border-radius:10px}
.woocommerce-checkout #payment{background:var(--soft);border-radius:10px}
/* Exams have no product photo: hide the empty image placeholder in cart, checkout and order tables */
.wc-block-components-order-summary-item__image,
.wc-block-cart-item__image,
.wc-block-cart-items__header-image,
.woocommerce-cart-form .product-thumbnail,
.woocommerce table.shop_table .product-thumbnail,
.woocommerce-mini-cart-item img,
.wc-block-mini-cart__products-table .wc-block-cart-item__image{display:none !important}
.wc-block-components-order-summary-item__description{padding-left:0 !important}
/* Any WooCommerce product grid (e.g. "New in store" on the empty cart page): no placeholder image, cards in the theme's style */
.woocommerce-placeholder,
.wc-block-grid__product-image,
.wc-block-components-product-image,
.wp-block-woocommerce-product-image,
.woocommerce ul.products li.product a img{display:none !important}
.wc-block-grid__products{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 !important}
@media (max-width:900px){.wc-block-grid__products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.wc-block-grid__products{grid-template-columns:minmax(0,1fr)}}
.wc-block-grid__product{background:var(--surface);border:1px solid var(--line) !important;border-radius:10px;padding:18px !important;margin:0 !important;max-width:none !important;width:auto !important;flex:none !important;text-align:left !important;display:flex;flex-direction:column;gap:10px}
.wc-block-grid__product:hover{border-color:var(--brand) !important}
.wc-block-grid__product-link{text-decoration:none !important;color:var(--ink) !important;display:block}
.wc-block-grid__product-title{font:600 16px/1.35 var(--body) !important;color:var(--ink);text-decoration:none !important}
.wc-block-grid__product-link:hover .wc-block-grid__product-title{color:var(--brand)}
.wc-block-grid__product-onsale{position:static !important;display:inline-block;margin:0 0 10px !important;background:var(--signal) !important;color:var(--signal-ink) !important;border:0 !important;border-radius:4px !important;padding:3px 10px !important;font:600 12px var(--body) !important;text-transform:none !important}
.wc-block-grid__product-price{font:700 18px var(--head) !important;color:var(--ink) !important;margin:0 !important}
.wc-block-grid__product-price del{font:400 14px var(--body);color:var(--muted);margin-right:6px}
.wc-block-grid__product-price ins{text-decoration:none}
.wc-block-grid__product-add-to-cart{margin:auto 0 0 !important}
.wc-block-grid__product-add-to-cart .wp-block-button__link,.wc-block-grid__product-add-to-cart a.button{background:var(--brand) !important;color:var(--brand-ink) !important;border-radius:6px !important;padding:10px 18px !important;font:600 14px var(--body) !important;text-decoration:none !important;display:inline-block}
.wc-block-grid__product-add-to-cart .wp-block-button__link:hover{background:var(--ink) !important}
.wp-block-woocommerce-empty-cart-block h2{font-size:26px}
.wc-block-cart-items .wc-block-cart-items__row{grid-template-columns:1fr auto !important}
.wc-block-cart-items .wc-block-cart-item__product{padding-left:0 !important}
@media (max-width:782px){.admin-bar header.top{top:46px}.admin-bar .tabs{top:calc(68px + 46px)}}

.entry > .alignwide,.entry > .alignfull{margin-left:0;margin-right:0;max-width:100%}

/* ---------- Motion: restrained hover, focus and reveal ---------- */
:root{--ease:cubic-bezier(.2,.7,.2,1)}
.btn{transition:transform .2s var(--ease),box-shadow .2s var(--ease),filter .15s,background .15s,border-color .15s}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px -12px rgba(8,30,38,.5)}
.btn:active{transform:translateY(0);box-shadow:none}
.btn-ghost:hover{border-color:var(--ink);filter:none}
.btn[disabled]:hover,.btn[aria-disabled]:hover{transform:none;box-shadow:none}
.cat,.why>div{transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .2s}
.cat:hover,.why>div:hover{transform:translateY(-2px);box-shadow:0 16px 30px -24px rgba(8,30,38,.55)}
.cat .arr{transition:transform .25s var(--ease),opacity .2s;opacity:.55}.cat:hover .arr{transform:translateX(3px);opacity:1}
.row{transition:background .15s}
.row .nm{transition:color .15s}.row:hover .nm{color:var(--brand)}
.row .go{transition:transform .25s var(--ease)}.row .go::after{content:" →"}.row:hover .go{transform:translateX(3px)}
.hvc{transition:transform .4s var(--ease)}
.hv:hover .hvc.c1{transform:rotate(-6deg) translateY(-4px)}
.hv:hover .hvc.c2{transform:rotate(4deg) translateY(-4px)}
nav.main a{position:relative}
nav.main a::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
nav.main a:hover::after{transform:scaleX(1)}
nav.main a:hover{background:transparent}
header.top{transition:box-shadow .25s}
header.top.scrolled{box-shadow:0 8px 24px -18px rgba(8,30,38,.55)}
.hsearch input,.filters input,.filters select,.herosearch input,.form input,.form select{transition:border-color .15s,box-shadow .15s}
.hsearch input:focus,.filters input:focus,.filters select:focus,.herosearch input:focus,.form input:focus,.form select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--soft)}
.dd.open .ddmenu,.srdrop.open{animation:cePop .18s var(--ease)}
@keyframes cePop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.modal.open .mbox{animation:cePop .22s var(--ease)}
details summary{transition:color .15s}details summary:hover{color:var(--brand)}
details summary::after{transition:transform .25s var(--ease);display:inline-block}
details[open] summary::after{transform:rotate(180deg)}
.tabs a{transition:color .15s,border-color .2s}
.tabs a.on{color:var(--ink);border-bottom-color:var(--brand)}
.cartlink{transition:border-color .15s}.cartlink:hover{border-color:var(--ink)}
.site-footer a,footer a{transition:opacity .15s}
.reveal{opacity:0;transform:translateY(8px)}
.reveal.in{opacity:1;transform:none;transition:opacity .45s ease-out,transform .45s var(--ease)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
