/* Public courses site. Plain CSS, no build step.
   The palette, type, radii, buttons and cards follow activeperformanceclinic.com.au so the
   courses site reads as part of the clinic's website. Inter Variable (SIL OFL) is self-hosted
   from /static, the same files the clinic site serves. Every text/background pair below was
   checked at WCAG AA (ink on white 16.8:1, blue on white 8.6:1, muted on white 6.1:1,
   orange-text on white 6.3:1, ink on orange 7.6:1, white on blue 8.6:1). */
@font-face{font-family:"Inter Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(static/inter-latin-ext.woff2) format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(static/inter-latin.woff2) format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{--blue:#0a47a7;--blue-dark:#083a87;--blue-soft:#e8eefb;--orange:#f38c00;--orange-dark:#d97b00;--orange-text:#8f4b00;--orange-soft:#fff1dd;--orange-tint:#ffd59a;--green:#3fa585;--green-soft:#e4f5ee;--ink:#1d1b25;--slate:#4a4c67;--muted:#5c5f78;--line:#e3e6ee;--bg:#fff;--bg-soft:#f5f7fb;--radius:14px;--radius-sm:8px;--shadow:0 10px 30px #1d1b2514;--shadow-sm:0 2px 8px #1d1b2514;--max:1140px;--font:"Inter Variable",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif}
*,:before,:after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);color:var(--ink);background:var(--bg);margin:0;font-size:1.0625rem;line-height:1.6}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-underline-offset:2px}
a:hover{color:var(--blue-dark)}
h1,h2,h3,h4{color:var(--ink);letter-spacing:-.01em;margin:0 0 .6em;font-weight:800;line-height:1.15}
h1{font-size:clamp(2rem,4.5vw,3rem)}
h2{font-size:clamp(1.6rem,3vw,2.2rem)}
h3{font-size:1.3rem;font-weight:700}
h4{font-size:1.1rem;font-weight:700}
p{margin:0 0 1em}
ul,ol{padding-left:1.3em}
li{margin-bottom:.35em}
.lead{color:var(--slate);font-size:1.2rem}
.muted{color:var(--muted)}
.meta{color:var(--muted);font-size:.92rem}
.skip-link{background:var(--ink);color:#fff;z-index:1000;padding:.6em 1em;position:absolute;top:0;left:-999px}
.skip-link:focus{top:.5rem;left:.5rem}
.container{width:min(100% - 2.5rem,var(--max));margin-inline:auto}
.section{padding:clamp(2.5rem,6vw,4.5rem) 0}
.section-soft{background:var(--bg-soft)}
.section-title{max-width:760px;margin-bottom:2rem}
.section-title p{color:var(--slate);font-size:1.1rem}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--orange-text);margin-bottom:.6rem;font-size:.78rem;font-weight:700;display:inline-block}
.hero .eyebrow{color:var(--orange);font-size:.82rem}
.grid{gap:1.5rem;display:grid}
.grid>*{min-width:0}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
@media (width>=1000px){.grid-3{grid-template-columns:repeat(3,1fr)}}

/* buttons */
.btn{cursor:pointer;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;min-height:48px;padding:.8rem 1.5rem;font:inherit;font-size:1rem;font-weight:700;line-height:1.2;text-decoration:none;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--orange);color:var(--ink);box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--orange-dark);color:var(--ink)}
.btn-secondary{background:var(--blue);color:#fff}
.btn-secondary:hover{background:var(--blue-dark);color:#fff}
.btn-outline{color:var(--blue);border-color:var(--blue);background:0 0}
.btn-outline:hover{background:var(--blue-soft);color:var(--blue-dark)}
.btn-light{color:var(--blue);background:#fff}
.btn-light:hover{background:var(--blue-soft);color:var(--blue-dark)}
.btn-row{flex-wrap:wrap;gap:.75rem;display:flex;align-items:center}
.buyform{display:inline-block;margin:0}

/* header */
.site-header{z-index:50;backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#fffffff5;position:sticky;top:0}
.site-header .bar{justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0;display:flex;flex-wrap:wrap}
.site-header .logo img{width:auto;height:56px}
.site-nav{flex:1;display:flex;flex-wrap:wrap;gap:.1rem;align-items:center}
.site-nav a{color:var(--ink);border-radius:var(--radius-sm);padding:.6rem .7rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-block;min-height:44px;line-height:1.7}
.site-nav a:hover,.site-nav a[aria-current=page]{background:var(--blue-soft);color:var(--blue-dark)}
.site-header .actions{gap:.5rem;display:flex}
.site-header .actions .btn{min-height:44px;padding:.55rem 1.1rem;font-size:.95rem}
@media (width<=639px){.site-header .logo img{height:44px}.site-nav{order:3;flex-basis:100%}}

/* page hero (catalogue + simple pages) */
.page-hero{background:var(--blue-soft);padding:clamp(2rem,5vw,3.5rem) 0 clamp(1.5rem,4vw,2.5rem)}
.page-hero h1{max-width:820px}
.page-hero .lead{max-width:760px}
.chips{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}
.chips a{background:#fff;color:var(--blue-dark);border:1px solid var(--line);border-radius:999px;padding:.5rem 1rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-block;min-height:44px;line-height:1.7}
.chips a:hover,.chips a.active{background:var(--blue);color:#fff;border-color:var(--blue)}

/* course hero */
.hero{color:#fff;background:var(--ink);position:relative;overflow:hidden}
.hero img.bg{object-fit:cover;object-position:center;opacity:.85;width:100%;height:100%;position:absolute;inset:0}
.hero:after{content:"";background:linear-gradient(90deg,#0a1e46e6 0%,#0a1e46b3 55%,#0a1e4659 100%);position:absolute;inset:0}
.hero .container{z-index:1;max-width:720px;margin-left:max(1.25rem,calc((100% - var(--max)) / 2));padding:clamp(3rem,8vw,6rem) 0;position:relative}
.hero h1{color:#fff;text-transform:uppercase}
.hero .lead,.hero p{color:#eef1f8}
.hero .meta{color:#d7dae6}
.hero .price{color:#fff}
.hero .price small{color:#e3eafc}
.breadcrumbs{color:var(--muted);margin:1rem auto 0;font-size:.9rem}
.breadcrumbs ol{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}
.breadcrumbs li+li:before{content:"/";color:var(--line);margin-right:.35rem}
.breadcrumbs a,.breadcrumbs span{padding:.35rem 0;display:inline-block}
.breadcrumbs a{color:var(--muted);text-decoration:none}
.breadcrumbs a:hover{color:var(--blue);text-decoration:underline}

/* cards */
.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;transition:box-shadow .2s,transform .2s;display:flex;overflow:hidden;color:var(--ink);text-decoration:none}
.card:hover{box-shadow:var(--shadow);transform:translateY(-2px);color:var(--ink)}
.card img.banner,.card .banner{aspect-ratio:4/3;object-fit:cover;width:100%}
.card .banner.placeholder{background:linear-gradient(135deg,var(--blue-soft),var(--orange-soft))}
.card-body{flex-direction:column;flex:1;gap:.5rem;padding:1.25rem;display:flex}
.card-body h3{margin:0}
.card-body p{color:var(--slate);margin:0;font-size:.98rem}
.card-body .eyebrow{margin-bottom:0}
.card-link{white-space:nowrap;margin-top:auto;font-weight:700;text-decoration:none;color:var(--blue)}
.card-link:after{content:"";vertical-align:-.15em;background:currentColor;width:1em;height:1em;margin-left:.4em;transition:transform .15s;display:inline-block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") 50%/contain no-repeat}
.card:hover .card-link{text-decoration:underline}
.card:hover .card-link:after{transform:translate(3px)}

/* prices */
.price{font-weight:800;margin:0;line-height:1.2}
.price small{color:var(--muted);font-size:.85rem;font-weight:500;display:block;margin-top:.3rem}
.price.big{font-size:1.75rem}

/* course page layout */
.with-aside{grid-template-columns:minmax(0,1fr);gap:2.5rem;display:grid}
.with-aside>*{min-width:0}
@media (width>=1100px){.with-aside{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.with-aside>aside{position:sticky;top:100px}}
.side-card{background:var(--blue-soft);border-radius:var(--radius);gap:.8rem;padding:1.25rem 1.4rem;display:grid}
.side-card h2{margin:0;font-size:1.1rem}
.side-card .price{color:var(--blue-dark);font-size:1.75rem}
.side-card .price small{color:var(--slate)}
.side-card .btn,.side-card .buyform{width:100%}
.side-card h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:.4rem 0 0;font-size:.8rem}
.side-card ul.plain{gap:.3rem;margin:0;padding:0;font-size:.95rem;list-style:none;display:grid}
.prose{max-width:760px}
.prose h2{margin-top:2rem;font-size:1.6rem}
.prose h3{margin-top:1.5rem}
.prose img{border-radius:var(--radius)}
.block{margin-top:2.5rem}
.block:first-child{margin-top:0}
.block h2{font-size:1.6rem}

/* feature lists */
.feature-list{gap:.75rem;padding:0;list-style:none;display:grid;margin:0}
.feature-list li{padding-left:2rem;position:relative;margin:0}
.feature-list li:before{content:"✓";color:var(--blue);font-weight:800;position:absolute;top:0;left:0}

/* outline (accordion) */
.faq details{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;margin-bottom:.75rem;padding:.25rem 1rem}
.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;font-weight:700;list-style:none;display:flex;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";color:var(--blue);flex-shrink:0;font-size:1.5rem;line-height:1}
.faq details[open] summary:after{content:"–"}
.faq details ul{color:var(--slate);margin:0 0 1rem}

/* preview teasers */
.teaser{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:#fff;padding:1.25rem;margin-bottom:1rem}
.teaser h3{margin-bottom:.75rem}
.teaser .eyebrow{color:var(--green);margin-bottom:.3rem}
.video{position:relative;padding-top:56.25%;border-radius:var(--radius);overflow:hidden;background:#000}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.teaser video,.teaser img{width:100%;max-height:520px;border-radius:var(--radius);background:#000}
.teaser img{background:var(--bg-soft);object-fit:contain}

/* contents list */
.contents{list-style:none;padding:0;margin:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;overflow:hidden}
.contents li{padding:.8rem 1rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0}
.contents>li:last-child{border-bottom:0}
.contents li.group{display:block;background:var(--bg-soft);padding:0}
.contents li.group>b{display:block;padding:.8rem 1rem}
.contents li.group ul{list-style:none;padding:0;margin:0;background:#fff}
.contents li.group ul li{padding-left:2rem;border-top:1px solid var(--line);border-bottom:0}
.contents .tag{font-size:.8rem;white-space:nowrap;border-radius:999px;padding:.25rem .7rem;font-weight:600;border:1px solid var(--line);color:var(--muted);background:#fff}
.contents li.open .tag{color:#14512f;background:var(--green-soft);border-color:var(--green-soft)}
.contents li.locked .tag:before{content:"🔒 "}

/* notices and CTA */
.notice{background:var(--orange-soft);border-left:4px solid var(--orange);border-radius:var(--radius-sm);padding:1rem 1.25rem;color:var(--ink)}
.notice p:last-child{margin:0}
.cta-panel{background:var(--blue);color:#fff;border-radius:var(--radius);grid-template-columns:1fr;align-items:center;gap:1.5rem;padding:clamp(1.5rem,4vw,3rem);display:grid}
@media (width>=760px){.cta-panel{grid-template-columns:1fr auto}}
.cta-panel h2{color:#fff;margin:0 0 .4rem}
.cta-panel p{color:#e3eafc;margin:0}
.cta-panel .price{color:#fff}
.cta-panel .price small{color:#e3eafc}
.empty{color:var(--muted);text-align:center;padding:3rem 0}

/* footer */
.site-footer{background:var(--ink);color:#d7dae6;margin-top:3rem}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer .top{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:2rem;padding:3rem 0 2rem;display:grid}
.site-footer h3{color:#fff;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.8rem;font-size:1rem}
.site-footer p{font-size:.95rem}
.site-footer .brand img{background:#fff;border-radius:8px;width:auto;height:60px;margin-bottom:1rem;padding:6px}
.site-footer ul{gap:.4rem;margin:0;padding:0;font-size:.95rem;list-style:none;display:grid}
.site-footer .bottom{color:#a7aabb;border-top:1px solid #33313f;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding:1.25rem 0 2rem;font-size:.85rem;display:flex}

:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}
.btn:focus-visible{outline-color:var(--ink);outline-offset:2px}
.site-footer :focus-visible,.hero :focus-visible,.cta-panel :focus-visible{outline-color:#fff}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.card{transition:none}}
