/* CoreKnowledge UI system v2: quantum buttons, pathway colour tokens, accessibility, display modes. Loaded after site.css on every page. */

/* ---------- tokens: one pathway colour set per pathway (all pass WCAG AA with white text) ---------- */
:root{--pw:#283888;--pw2:#4A68EA;--pwbg:#EEF0F8;--pwink:#1B2766;--cta:#D61F1F;--cta2:#B91C1C;--cta-edge:#8F1414;--focus:#1B6FEB}
body[data-path="ACCA"]{--pw:#283888;--pw2:#4A68EA;--pwbg:#EEF0F8;--pwink:#1B2766}
body[data-path="CIMA"]{--pw:#0F766E;--pw2:#0D9488;--pwbg:#F0FDFA;--pwink:#0B3A42}
body[data-path="IFRS"]{--pw:#6D28D9;--pw2:#8B5CF6;--pwbg:#F5F3FF;--pwink:#3B1D8A}
body[data-pw="acca"]{--pw:#283888;--pw2:#4A68EA;--pwbg:#EEF0F8;--pwink:#1B2766}
body[data-pw="cima"]{--pw:#0F766E;--pw2:#0D9488;--pwbg:#F0FDFA;--pwink:#0B3A42}
body[data-pw="cpd"]{--pw:#6D28D9;--pw2:#8B5CF6;--pwbg:#F5F3FF;--pwink:#3B1D8A}

/* ---------- quantum buttons: tactile key, layered light, press depth ---------- */
.btn{position:relative;isolation:isolate;overflow:hidden;min-height:48px;padding:0 24px;border-radius:14px;font-weight:800;letter-spacing:.01em;
  border:0;border-bottom:3px solid rgba(0,0,0,.28);box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 10px 22px -10px rgba(27,39,102,.45);
  transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s,filter .16s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.34) 50%,transparent 65%);transform:translateX(-120%);transition:transform .6s}
.btn:hover::before{transform:translateX(120%)}
.btn:hover{transform:translateY(-2px);filter:saturate(1.08)}
.btn:active{transform:translateY(1px);border-bottom-width:1px;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 3px 8px -4px rgba(27,39,102,.5)}
.btn-red{background:linear-gradient(180deg,#E8302F 0%,var(--cta) 55%,var(--cta2) 100%);color:#fff;border-bottom-color:var(--cta-edge)}
.btn-red:hover{box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 16px 30px -12px rgba(214,31,31,.7)}
.btn-blue{background:linear-gradient(180deg,#3446A8 0%,#283888 55%,#1B2766 100%);color:#fff;border-bottom-color:#0F1745}
.btn-green{background:linear-gradient(180deg,#059669 0%,#047857 60%,#065F46 100%);color:#fff;border-bottom-color:#04382C}
.btn-pw{background:linear-gradient(180deg,var(--pw2) 0%,var(--pw) 100%);color:#fff;border-bottom-color:rgba(0,0,0,.35)}
.btn-white{background:linear-gradient(180deg,#fff,#F1F3FC);color:var(--navy);border-bottom-color:#B9C2E6}
.btn-line{background:#fff;color:var(--navy);border:2px solid #B9C2E6;border-bottom-width:3px;box-shadow:0 6px 14px -10px rgba(27,39,102,.35)}
.btn-line:hover{border-color:var(--pw);color:var(--pwink);box-shadow:0 12px 24px -12px rgba(27,39,102,.45)}
.btn-ghost{border:2px solid rgba(255,255,255,.55);border-bottom-width:3px;color:#fff;background:rgba(255,255,255,.08);box-shadow:none}
.btn-ghost:hover{background:rgba(255,255,255,.2)}
.btn[disabled],.btn[aria-disabled=true]{opacity:.55;pointer-events:none;filter:grayscale(.3)}
/* arrow that nudges forward on hover (add class "go" or the arrow glyph) */
.btn.go::after{content:"\203A";font-size:1.35em;line-height:1;margin-left:10px;transition:transform .16s}
.btn.go:hover::after{transform:translateX(4px)}

/* ---------- navigation: pill links with a pathway underline ---------- */
.site-head nav a{position:relative;padding:8px 14px;border-radius:12px;transition:background .15s,color .15s}
.site-head nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--pw2),var(--cta));transform:scaleX(0);transform-origin:left;transition:transform .2s}
.site-head nav a:hover{background:var(--pwbg);color:var(--pwink)}
.site-head nav a:hover::after,.site-head nav a[aria-current=page]::after{transform:scaleX(1)}
body[data-path] .site-head{border-top:5px solid var(--pw);box-shadow:0 1px 0 var(--line)}

/* ---------- accessibility: focus, touch targets, reduced motion ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px;box-shadow:0 0 0 6px rgba(255,255,255,.9)}
.btn,button,select,input[type=checkbox]+label{min-height:44px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;color:#1B2766;padding:10px 16px;border-radius:10px;font-weight:800;z-index:100000}.skip:focus{left:8px}
@supports (padding:max(0px)){.wrap{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}.site-foot{padding-bottom:env(safe-area-inset-bottom)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.btn::before{display:none}}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (max-width:640px){.btn{min-height:48px}.site-head nav a{padding:10px 12px}}

/* ---------- display modes toolbar ---------- */
#ckm-fab{position:fixed;left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));z-index:99990;width:52px;height:52px;border-radius:16px;border:0;border-bottom:3px solid #0F1745;cursor:pointer;color:#fff;font:800 17px/1 "Public Sans",Segoe UI,sans-serif;background:linear-gradient(180deg,#3446A8,#1B2766);box-shadow:0 10px 24px -8px rgba(10,14,60,.6)}
#ckm-fab:hover{transform:translateY(-2px)}
#ckm-panel{position:fixed;left:max(14px,env(safe-area-inset-left));bottom:calc(max(14px,env(safe-area-inset-bottom)) + 62px);z-index:99991;width:min(320px,calc(100vw - 28px));background:#fff;color:#232A4D;border:2px solid #1B2766;border-radius:20px;padding:18px;box-shadow:0 24px 60px rgba(8,12,56,.45);font:600 14px/1.4 "Public Sans",Segoe UI,sans-serif;display:none}
#ckm-panel.on{display:block}
#ckm-panel h2{margin:0 0 4px;font:800 17px/1.2 "Cabin","Public Sans",sans-serif;color:#1B2766}
#ckm-panel .g{margin-top:12px}#ckm-panel .g b{display:block;margin-bottom:6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#5A6185}
#ckm-panel .r{display:flex;gap:6px;flex-wrap:wrap}
#ckm-panel .r button{flex:1 1 auto;min-height:44px;padding:0 12px;border-radius:12px;border:2px solid #B9C2E6;background:#fff;color:#1B2766;font:800 14px inherit;cursor:pointer}
#ckm-panel .r button[aria-pressed=true]{background:linear-gradient(135deg,#1B2766,#4A68EA);color:#fff;border-color:#1B2766}
#ckm-panel .x{margin-top:12px;display:flex;justify-content:space-between;align-items:center}
#ckm-panel .x button{min-height:40px;padding:0 14px;border-radius:10px;border:2px solid #B9C2E6;background:#fff;color:#1B2766;font:800 13px inherit;cursor:pointer}
html[data-text="lg"] body{zoom:1.12}html[data-text="xl"] body{zoom:1.28}
@-moz-document url-prefix(){html[data-text="lg"] body{zoom:1.12}}

/* ---------- DARK mode ---------- */
html[data-theme="dark"]{color-scheme:dark;--ink:#E7EBFB;--muted:#AEB8DC;--line:#36427A;--soft:#131A40;--pale:#1B2352;--navy:#E7EBFB;--blue:#8FA2FF;--pwink:#E7EBFB;--pwbg:#1B2352;--focus:#8DB8FF}
html[data-theme="dark"] body{background:#0C1233;color:var(--ink)}
html[data-theme="dark"] .site-head{background:#0F1640!important;border-bottom-color:#36427A}
html[data-theme="dark"] .site-head .logo img,html[data-theme="dark"] .site-foot .lg img{background:#fff;border-radius:8px;padding:5px 8px}
html[data-theme="dark"] .site-head nav a{color:#E7EBFB}
html[data-theme="dark"] :is(.card,.panel,.kcard,.doors,.door,.paper,.prod,.pwc,.helpbar,.rl,.login,.mock,.big div,.rcard,.ac,details.faq,.chosen,.steps li,.pane,.tabs2,.ktabs,.kp,.legal,.hubgrid a,.stats .grid>div,.band,.vs-col,.tutor,.tour-frame,.mastery,.flowcta){background:#151C48!important;color:var(--ink)!important;border-color:#36427A!important}
html[data-theme="dark"] :is(.ktabs,.tabs2){background:#0F1640!important}
html[data-theme="dark"] :is(.field input,.field select,select,input[type=text],input[type=email],input[type=password]){background:#0C1233!important;color:#E7EBFB!important;border-color:#4A5894!important}
html[data-theme="dark"] .btn-line,html[data-theme="dark"] .btn-white{background:#1B2352;color:#E7EBFB;border-color:#4A5894}
html[data-theme="dark"] .btn-white{background:linear-gradient(180deg,#2A346E,#1F2860)}
html[data-theme="dark"] :is(.tabs2 button,.ktabs button,.pc,#ckm-panel .r button){background:#1B2352;color:#E7EBFB;border-color:#4A5894}
html[data-theme="dark"] :is(.tabs2 button,.ktabs button,.pc,#ckm-panel .r button)[aria-selected=true],html[data-theme="dark"] .pc.on,html[data-theme="dark"] #ckm-panel .r button[aria-pressed=true]{background:linear-gradient(135deg,#4457D4,#7A3FB8);color:#fff;border-color:#8FA2FF}
html[data-theme="dark"] #ckm-panel{background:#151C48;color:#E7EBFB;border-color:#8FA2FF}html[data-theme="dark"] #ckm-panel h2{color:#E7EBFB}html[data-theme="dark"] #ckm-panel .g b{color:#AEB8DC}
html[data-theme="dark"] :is(.paper.soon,.ac.soon){opacity:.7}
html[data-theme="dark"] :is(.paper .pn,.door b,.prod h4,.panel h2,.kp h3,.lg li strong,.pwc b,.pane h2,.legal h1,.legal h2,.legal h3,.hubgrid a strong,h1.h2,h2.h2){color:#E7EBFB!important}
html[data-theme="dark"] .legal a,html[data-theme="dark"] main a:not(.btn){color:#9DB2FF}
html[data-theme="dark"] .site-foot{background:#070B24}
html[data-theme="dark"] :is(.ph-hero,.hero,.gw,.ready){filter:brightness(.92)}
html[data-theme="dark"] .msg{background:#4A1D22;color:#FFD3D3}
html[data-theme="dark"] table,html[data-theme="dark"] th,html[data-theme="dark"] td{border-color:#36427A!important}
html[data-theme="dark"] th{background:#1B2352!important;color:#E7EBFB!important}
html[data-theme="dark"] .mock .nav,html[data-theme="dark"] .mock .foot,html[data-theme="dark"] .mock .o{background:#1B2352;border-color:#36427A;color:#E7EBFB}

/* ---------- HIGH CONTRAST mode ---------- */
html[data-theme="contrast"]{--ink:#000;--muted:#111;--line:#000;--soft:#fff;--pale:#fff;--navy:#000;--blue:#00007A;--cta:#B00000;--cta2:#B00000;--cta-edge:#000;--pw:#00007A;--pw2:#00007A;--pwink:#000;--pwbg:#fff;--focus:#FF7A00}
html[data-theme="contrast"] body{background:#fff;color:#000}
html[data-theme="contrast"] a{color:#00007A;text-decoration:underline}
html[data-theme="contrast"] :is(.hero,.gw,.ph-hero,.ready,.site-foot,.clk,.mock .bar){background:#000!important;background-image:none!important;color:#fff}
html[data-theme="contrast"] :is(.hero,.gw,.ph-hero,.ready,.site-foot,.clk) a{color:#FFEB3B}
html[data-theme="contrast"] .btn{border:3px solid #000!important;box-shadow:none;background:#FFEB3B;color:#000}
html[data-theme="contrast"] .btn-red{background:#B00000;color:#fff}
html[data-theme="contrast"] .btn-ghost,html[data-theme="contrast"] .btn-white{background:#fff;color:#000}
html[data-theme="contrast"] :is(.card,.panel,.kcard,.doors,.door,.paper,.prod,.pwc,.helpbar,.rl,.login,.ac,details.faq,.chosen,.steps li){border:2px solid #000!important;background:#fff!important;box-shadow:none!important}
html[data-theme="contrast"] :is(.tabs2 button,.ktabs button,.pc)[aria-selected=true],html[data-theme="contrast"] .pc.on{background:#000;color:#fff;border-color:#000}
html[data-theme="contrast"] :is(.field input,.field select){border:2px solid #000}
html[data-theme="contrast"] .paper.soon,html[data-theme="contrast"] .ac.soon{opacity:1;border-style:dashed}
html[data-theme="contrast"] :is(.paper .st,.ac .tag){background:#000!important;color:#fff!important}
html[data-theme="contrast"] #ckm-panel{border-color:#000}

@media print{#ckm-fab,#ckm-panel{display:none!important}}

/* modes must beat the pathway tokens set on body */
html[data-theme="dark"] body,html[data-theme="dark"] body[data-path],html[data-theme="dark"] body[data-pw]{--pwink:#E7EBFB;--pwbg:#1B2352}
html[data-theme="contrast"] body,html[data-theme="contrast"] body[data-path],html[data-theme="contrast"] body[data-pw]{--pw:#00007A;--pw2:#00007A;--pwink:#000;--pwbg:#fff}

/* practice-only ribbon and footer notice (every page) */
.pribbon{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:9px 18px;background:#fff;border-bottom:1px solid var(--line);font-size:14px;line-height:1.4;color:#232A4D;text-align:center}
.pribbon b{background:linear-gradient(180deg,#E8302F,#D61F1F);color:#fff;border-radius:8px;padding:3px 10px;font-size:12px;letter-spacing:.12em}
.pribbon a{color:#1F3496;font-weight:800;text-decoration:underline}
.pdisc{width:100%;margin:6px 0 4px;padding:14px 18px;border:1px solid rgba(255,255,255,.3);border-left:5px solid #D61F1F;border-radius:12px;background:rgba(255,255,255,.07);color:#E6EBFF;font-size:14px;line-height:1.6}
.pdisc strong{color:#fff}.pdisc a{color:#fff;text-decoration:underline;font-weight:700}
html[data-theme="dark"] .pribbon{background:#0F1640;color:#E7EBFF;border-color:#36427A}html[data-theme="dark"] .pribbon a{color:#9DB2FF}
html[data-theme="contrast"] .pribbon{background:#fff;color:#000;border-bottom:2px solid #000}html[data-theme="contrast"] .pribbon b{background:#000}
html[data-theme="dark"] .pcol{background:#161C45;border-color:#3A4580}
html[data-theme="dark"] .pgrid .bmrow{background:#1F2860;border-color:#3A4580;color:#E7EBFB}
html[data-theme="dark"] .pgrid .bmrow.soon{background:#191F4D;opacity:.85}
html[data-theme="dark"] .pgrid .qst.soon{background:#2A346E;color:#C9D0F0;border-color:#4A5894}
html[data-theme="dark"] .pgrid .qst.live{background:#0E3B2C;color:#6EE7B7}
html[data-theme="contrast"] :is(.pcol,.pgrid .bmrow){border:2px solid #000!important;background:#fff!important;box-shadow:none!important}
html[data-theme="contrast"] .pcol header{background:#000!important}
html[data-theme="contrast"] .pgrid .bmrow.soon{border-style:dashed!important}
html[data-theme="contrast"] .pgrid :is(.qmc,.qst){background:#000!important;color:#fff!important;border-color:#000!important}
