/* Brand fonts, self-hosted (same subsets the PCI World pages serve; regenerate with
   tools/fetch-brand-fonts.sh). Without these the whole marketing site silently fell back
   to system-ui because no page ever declared the faces styles.css asks for. */
@font-face{font-family:'Archivo';font-style:normal;font-weight:700 900;font-display:swap;src:url(/assets/fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700 900;font-display:swap;src:url(/assets/fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/inter-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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}
:root{color-scheme:light;}

:root{--crimson:#C13329;--red:#1D4ED8;--err:#C2410C;--red-700:#1E3A8A;--magenta:#3B82F6;--ink:#0F172A;--paper:#FFFFFF;--paper-2:#F1F5F9;--noir:#0E1525;--line:#E3E8EF;--slate:#475569;--mist:#64748B;--maxw:1380px;--display:'Archivo',system-ui,sans-serif;--sans:'Inter',system-ui,sans-serif;}
*{box-sizing:border-box;}html{scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
h1,h2,h3,h4{font-family:var(--display);font-weight:800;line-height:1.03;margin:0;letter-spacing:-.022em;}
a{color:inherit;text-decoration:none;cursor:pointer;}img{display:block;max-width:100%;}
:focus-visible{outline:2.5px solid var(--red);outline-offset:3px;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 30px;}
.ph-hero{background-image:url(../images/bg-01.jpg);}
.ph-ctrl{background-image:url(../images/bg-02.jpg);}
.ph-fin{background-image:url(../images/bg-03.jpg);}
.ph-ai{background-image:url(../images/bg-04.jpg);}
.ph-it{background-image:url(../images/bg-05.jpg);}
.ph-epc{background-image:url(../images/bg-06.jpg);}
.ph-en{background-image:url(../images/bg-07.jpg);}
.ph-method{background-image:url(../images/bg-09.jpg);}.ph-fc{background-image:url(../images/bg-10.jpg);}.ph-std{background-image:url(../images/bg-11.jpg);}.ph-aiband{background-image:url(../images/bg-12.jpg);}
.cover{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s cubic-bezier(.22,1,.36,1);}
.ph{position:relative;overflow:hidden;}
.fcard:hover .cover,.itile:hover .cover,.story:hover .cover,.mem .ph:hover .cover{transform:scale(1.06);}
.eyebrow{font-family:var(--sans);font-weight:600;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--crimson);}
.uline{width:60px;height:4px;background:linear-gradient(90deg,var(--crimson),var(--magenta));margin:20px 0 0;border-radius:2px;}
.btn{display:inline-flex;align-items:center;gap:11px;font-family:var(--sans);font-weight:600;font-size:15.5px;padding:17px 32px;border:2px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s;}
.btn svg{width:16px;height:16px;}
.btn-red{background:var(--red);color:#fff;}.btn-red:hover{background:var(--red-700);}
.btn-out{background:transparent;color:var(--ink);border-color:#d6d0c8;}.btn-out:hover{border-color:var(--ink);}
.btn-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.6);}.btn-light:hover{background:#fff;color:var(--ink);border-color:#fff;}
.btn-white{background:#fff;color:var(--red);border-color:#fff;}.btn-white:hover{background:#EEF2F7;}
.dlink{font-family:var(--sans);font-weight:600;color:var(--red);display:inline-flex;align-items:center;gap:8px;font-size:15px;border-bottom:2px dotted var(--red);padding-bottom:4px;transition:gap .18s;width:fit-content;}
.dlink svg{width:15px;height:15px;}.dlink:hover{gap:12px;}
.dlink.w{color:#fff;border-bottom-color:rgba(255,255,255,.65);}
.sec{padding:112px 0;}.sec-sm{padding:84px 0;}.sec-2{background:var(--paper-2);}.sec-dark{background:var(--noir);color:#fff;}
.hblock{margin-bottom:52px;max-width:62ch;}
.hblock h2{font-size:clamp(32px,4.6vw,52px);margin-top:18px;}
.hblock p{color:var(--slate);font-size:18px;margin-top:22px;max-width:56ch;}
.reveal{}
.page{display:none;}.page.active{display:block;animation:pgin .45s ease both;}
@keyframes pgin{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.promo{background:var(--ink);color:#fff;}
.promo-in{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;font-size:13px;font-weight:500;padding:8px 18px;text-align:center;}
.promo-in .dot{width:7px;height:7px;border-radius:50%;background:var(--crimson);flex:0 0 auto;}
.promo-in a{border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:1px;font-weight:600;white-space:nowrap;}
.hdr{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line);}
.hdr-in{display:flex;align-items:center;justify-content:space-between;height:76px;}
.brand{display:flex;align-items:center;gap:13px;}.brand .mk{width:40px;height:40px;flex:0 0 auto;}
.brand b{font-family:var(--display);font-weight:800;font-size:15.5px;line-height:1.04;}
.nav{display:flex;align-items:center;gap:25px;}
.nav a{font-family:var(--sans);font-weight:500;font-size:15px;position:relative;padding:4px 0;}
.nav a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--crimson);transition:width .22s;}
.nav a:hover::after,.nav a.on::after{width:100%;}.nav a.on{color:var(--red);}
.hdr-r{display:flex;align-items:center;gap:16px;}
.ic{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink);padding:6px;min-width:44px;min-height:44px;}.burger{display:none;}
.hero{position:relative;min-height:700px;display:flex;align-items:center;overflow:hidden;background:#120d0b;}
.hero-bg{z-index:0;}
.hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(9,7,6,.95) 0%,rgba(9,7,6,.68) 46%,rgba(9,7,6,.32) 100%),linear-gradient(to top,rgba(9,7,6,.55),transparent 38%);}
.hero-in{position:relative;z-index:2;color:#fff;padding:110px 0;max-width:700px;}
.hero .eyebrow{color:#fff;display:inline-block;}
.hero .euline{width:56px;height:4px;background:var(--red);margin:16px 0 28px;}
.hero h1{font-size:clamp(44px,6.6vw,78px);font-weight:900;line-height:.99;letter-spacing:-.032em;}
.hero h1 .dot{color:transparent;display:inline-block;width:.17em;height:.17em;border-radius:50%;background:#DC2626;vertical-align:baseline;margin-left:.04em;line-height:0;}
.hero p{font-size:19.5px;color:#ECF0F5;margin:28px 0 0;max-width:44ch;line-height:1.54;}
.hero-cta{display:flex;gap:15px;margin-top:38px;flex-wrap:wrap;}
.hero-iso{margin-top:30px;font-size:13.5px;color:#CFC8C1;display:flex;align-items:center;gap:10px;}
.hero-iso .pip{width:8px;height:8px;border-radius:50%;background:var(--red);}
.phead{padding:92px 0 54px;background:var(--paper-2);border-bottom:1px solid var(--line);position:relative;}
.phead+.sec,.phead+.sec-2,.phead+.sec-dark{padding-top:86px;}
.phead h1{font-size:clamp(38px,5.6vw,66px);margin-top:16px;max-width:20ch;}
.phead .lead{color:var(--slate);font-size:19px;margin-top:22px;max-width:88ch;}
.phead-dark{background:#120d0b;overflow:hidden;padding:118px 0 92px;border-bottom:0;}
.phead-dark::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(9,7,6,.95),rgba(9,7,6,.6) 60%,rgba(9,7,6,.35));}
.phead-dark .cover{z-index:0;}.phead-dark .wrap{position:relative;z-index:2;}
.phead-dark h1{color:#fff;}.phead-dark .lead{color:#E8EDF3;}.phead-dark .eyebrow{color:#fff;}
.quote{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.quote-in{padding:84px 0;max-width:1000px;}
.quote blockquote{font-family:var(--display);font-weight:800;font-size:clamp(30px,4.2vw,48px);line-height:1.1;letter-spacing:-.022em;margin:18px 0 0;max-width:20ch;}
.quote blockquote em{font-style:normal;color:var(--red);}
.quote .src{font-weight:600;font-size:15px;color:var(--slate);margin-top:28px;}
/* legacy .feat/.feat-2 grid containers removed — the live container is .feats (below); .feat is now
   an individual card, so forcing display:grid here stacked every card into 3 stray columns. */
.fcard{position:relative;overflow:hidden;min-height:460px;display:flex;flex-direction:column;justify-content:flex-end;padding:32px;color:#fff;}
.fcard .sc{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(7,5,4,.93) 6%,rgba(7,5,4,.5) 46%,rgba(7,5,4,.12));}
.fcard .cap{position:relative;z-index:2;}
.fcard .ce{font-size:12px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;opacity:.85;}
.fcard h3{font-size:25px;margin:11px 0 12px;color:#fff;letter-spacing:-.02em;}
.fcard p{font-size:15px;color:#E9EEF4;line-height:1.5;margin:0 0 20px;}
.cert{display:grid;grid-template-columns:1.3fr .7fr;gap:64px;align-items:start;}
.cert h2{font-size:clamp(32px,4.6vw,52px);margin:16px 0 0;}
.cert .pn{font-family:var(--display);font-weight:800;color:var(--red);font-size:18px;margin-top:14px;}
.cert p{color:var(--slate);font-size:18px;margin:22px 0 0;max-width:48ch;line-height:1.6;}
.facts{margin:32px 0 0;border-top:1px solid var(--line);}
.facts .row{display:grid;grid-template-columns:200px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--line);align-items:baseline;}
.facts .k{font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--mist);font-weight:600;}
.facts .v{font-family:var(--display);font-weight:700;font-size:17px;}
.cta-row{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap;}
.badge{background:var(--noir);padding:52px 32px;text-align:center;position:sticky;top:100px;}
.badge .bt{font-family:var(--display);font-weight:800;color:#fff;font-size:21px;line-height:1.12;margin-top:24px;}
.badge .bp{font-family:var(--display);font-weight:800;color:var(--red);letter-spacing:.06em;font-size:15px;margin-top:12px;}
.badge .bm{color:#9A938C;font-size:12px;margin-top:16px;line-height:1.7;}
.ind{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:54px;}
.itile{position:relative;overflow:hidden;min-height:420px;display:flex;flex-direction:column;justify-content:flex-end;padding:30px;color:#fff;}
.itile .sc{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(7,5,4,.86),rgba(7,5,4,.1) 60%);}
.itile .cap{position:relative;z-index:2;}
.itile .cat{font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;opacity:.85;}
.itile h3{font-size:23px;margin-top:9px;letter-spacing:-.02em;color:#fff;}
.redband{background:var(--red);color:#fff;}
.redband-in{padding:88px 0;display:grid;grid-template-columns:1.5fr 1fr;gap:44px;align-items:center;}
.redband h2{color:#fff;font-size:clamp(30px,4.2vw,48px);max-width:17ch;}
.redband p{color:rgba(255,255,255,.92);font-size:18.5px;margin-top:20px;max-width:52ch;line-height:1.55;}
.redband .cta{display:flex;gap:14px;justify-content:flex-end;flex-wrap:wrap;}
.ai{position:relative;overflow:hidden;}
.ai-bgwrap .cover{opacity:.2;z-index:0;}
.ai-in{padding:120px 0;position:relative;z-index:2;}
.ai .eyebrow{color:#93B4FF;}
.ai h2{color:#fff;font-size:clamp(32px,4.8vw,58px);max-width:17ch;margin-top:18px;}
.ai .q{font-family:var(--display);font-weight:800;font-size:clamp(26px,3.6vw,42px);color:#fff;margin-top:30px;line-height:1.14;letter-spacing:-.02em;}
.ai .q em{font-style:normal;color:#93B4FF;}
.ai p{color:#CDC6BF;font-size:18px;max-width:58ch;margin-top:24px;line-height:1.65;}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:54px;border-top:2px solid var(--ink);}
.steps.s4{grid-template-columns:repeat(4,1fr);}
.step{padding:30px 18px 30px 0;border-right:1px solid var(--line);}
.steps .step:last-child{border-right:0;}
.step .sn{font-family:var(--display);font-weight:800;color:var(--red);font-size:32px;}
.step h3{font-size:18px;margin:13px 0 8px;letter-spacing:-.02em;}
.step p{font-size:14px;color:var(--slate);line-height:1.5;}
.mem{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.mem .ph{aspect-ratio:5/4;}
.mem h2{font-size:clamp(30px,4.2vw,48px);margin-top:16px;}
.mem p{color:var(--slate);font-size:18px;margin:20px 0 0;max-width:42ch;line-height:1.6;}
.clist{list-style:none;padding:0;margin:26px 0 0;}
.clist li{display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--line);font-size:16px;font-weight:500;align-items:flex-start;}
.clist li:last-child{border-bottom:1px solid var(--line);}
.clist li svg{width:19px;height:19px;flex:0 0 auto;margin-top:3px;}
.ins{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 26px;margin-top:54px;}
.story{display:flex;flex-direction:column;}
.story .ph{aspect-ratio:16/10;}
.story .cat{font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--red);margin:22px 0 10px;}
.story h3{font-size:20px;line-height:1.2;letter-spacing:-.02em;}
.story .dlink{margin-top:16px;}
.boxes{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.obox{border:1.5px solid var(--ink);padding:44px;}
.obox h3{font-size:25px;letter-spacing:-.02em;margin-top:10px;}
.obox p{color:var(--slate);font-size:16px;margin:16px 0 24px;max-width:42ch;line-height:1.55;}
.doms{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink);margin-top:50px;}
.dom{padding:30px 26px 30px 0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);}
.doms .dom:nth-child(3n){border-right:0;padding-right:0;}
.dom .dn{font-family:var(--display);font-weight:800;color:var(--red);font-size:13px;letter-spacing:.1em;}
.dom h3{font-size:20px;margin:13px 0 12px;letter-spacing:-.02em;}
.dom ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
.dom li{font-size:14.5px;color:var(--slate);padding-left:16px;position:relative;line-height:1.45;}
.dom li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;background:var(--red);}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.grid2 h2{font-size:clamp(28px,3.6vw,42px);}
.grid2 p{color:var(--slate);font-size:17px;margin-top:18px;line-height:1.62;}
.roles{columns:2;column-gap:40px;margin-top:26px;}
.roles div{break-inside:avoid;display:flex;gap:12px;padding:11px 0;font-size:16px;font-weight:500;align-items:flex-start;}
.roles svg{width:18px;height:18px;flex:0 0 auto;margin-top:3px;}
.qcards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;}
.qcard{border:1.5px solid var(--line);padding:34px;background:#fff;}
.qcard .n{font-family:var(--display);font-weight:800;color:var(--red);font-size:15px;}
.qcard h3{font-size:21px;margin:12px 0 10px;letter-spacing:-.02em;}
.qcard p{color:var(--slate);font-size:15px;line-height:1.55;}
.form{max-width:720px;margin-top:8px;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.field{margin-bottom:20px;display:flex;flex-direction:column;}
.field label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mist);margin-bottom:9px;}
.field input,.field select,.field textarea{font-family:var(--sans);font-size:16px;padding:15px 16px;border:1.5px solid var(--line);background:#fff;color:var(--ink);border-radius:0;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--red);}
.field textarea{min-height:140px;resize:vertical;}
.pnote{font-size:13px;color:var(--mist);margin-top:8px;}
.verifybox{max-width:720px;border:1.5px solid var(--ink);padding:40px;}
.vrow{display:flex;gap:12px;flex-wrap:wrap;}
.vrow input{flex:1;min-width:220px;font-family:var(--sans);font-size:16px;padding:15px 16px;border:1.5px solid var(--line);}
.vrow input:focus{outline:none;border-color:var(--red);}
.vresult{margin-top:26px;border:1px solid var(--line);padding:28px;display:none;background:var(--paper-2);}
.vresult.show{display:block;}
.vresult .vstat{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:#1a7d3c;font-size:14px;}
.vresult h3{font-size:22px;margin:14px 0 4px;}
.vresult .vmeta{color:var(--slate);font-size:14px;margin-top:14px;display:grid;gap:6px;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;}
.cinfo h3{font-size:18px;margin:0 0 6px;}
.cinfo .crow{padding:18px 0;border-top:1px solid var(--line);}
.cinfo .crow:last-child{border-bottom:1px solid var(--line);}
.cinfo a{color:var(--red);font-weight:600;}
footer{background:var(--noir);color:#94A3B8;padding:78px 0 38px;}
.ft-top{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:36px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.12);}
.ft-brand b{color:#fff;font-family:var(--display);font-weight:800;font-size:18px;}
.ft-brand p{font-size:14px;margin:14px 0 0;line-height:1.6;max-width:32ch;}
.ft-iso{display:inline-flex;align-items:center;gap:9px;margin-top:18px;font-size:11.5px;color:#64748B;border:1px solid rgba(255,255,255,.16);padding:9px 13px;}
footer h4{font-family:var(--display);font-weight:700;color:#fff;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 16px;}footer h4::before{content:"";display:inline-block;width:7px;height:7px;background:var(--crimson);margin-right:8px;border-radius:1px;}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:12px;}
footer ul a{font-size:14.5px;opacity:.82;}footer ul a:hover{opacity:1;color:#fff;}
/* ---- footer social bar (server-rendered from social_accounts via <!--PCI-SOCIAL-->) ---- */
.ft-social{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:22px 0 2px;}
.ft-social-lnk{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;color:#94A3B8;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);transition:color .16s,background .16s,border-color .16s,transform .16s;}
.ft-social-lnk:hover{color:#fff;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);transform:translateY(-1px);}
.ft-social-lnk:focus-visible{outline:2px solid var(--crimson);outline-offset:2px;color:#fff;}
.ft-social-lnk svg{width:20px;height:20px;display:block;}
.ft-bottom{padding-top:24px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12.5px;color:#8A93A1;}
.disc{font-size:11.5px;line-height:1.7;color:var(--mist);text-align:center;padding:28px 18px 42px;max-width:1000px;margin:0 auto;}
@media (max-width:1000px){.feat,.feat-2{grid-template-columns:1fr;}.cert{grid-template-columns:1fr;gap:42px;}.badge{position:static;max-width:380px;}.ind{grid-template-columns:1fr;}.redband-in{grid-template-columns:1fr;gap:28px;}.redband .cta{justify-content:flex-start;}.mem{grid-template-columns:1fr;gap:36px;}.steps,.steps.s4{grid-template-columns:1fr 1fr;}.step{border-right:0;border-bottom:1px solid var(--line);}.ins{grid-template-columns:1fr;}.boxes{grid-template-columns:1fr;}.doms{grid-template-columns:1fr 1fr;}.grid2,.contact-grid{grid-template-columns:1fr;gap:36px;}.qcards{grid-template-columns:1fr;}}
@media (max-width:640px){.nav{display:none;}.burger{display:flex;}.wrap{padding:0 22px;}.sec{padding:70px 0;}.facts .row{grid-template-columns:140px 1fr;}.ft-top{grid-template-columns:1fr;}.frow{grid-template-columns:1fr;}.roles{columns:1;}.doms{grid-template-columns:1fr;}.dom{border-right:0!important;padding-right:0!important;}}
.faqwrap{max-width:860px;}
.faqgroup{margin-top:48px;}
.faqgroup:first-child{margin-top:0;}
.faqgroup .eyebrow{display:block;margin-bottom:8px;}
.faqgroup-t{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.02em;margin:0 0 10px;}
details.faq{border-top:1px solid var(--line);}
.faqgroup details.faq:last-of-type{border-bottom:1px solid var(--line);}
details.faq summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:22px 2px;font-family:var(--sans);font-weight:600;font-size:18px;color:var(--ink);line-height:1.42;transition:color .15s ease;}
details.faq summary::-webkit-details-marker{display:none;}
details.faq summary:hover{color:var(--red);}
.faq-ic{flex:0 0 auto;width:22px;height:22px;margin-top:1px;position:relative;}
.faq-ic::before,.faq-ic::after{content:"";position:absolute;background:var(--red);border-radius:2px;transition:transform .22s ease,opacity .22s ease;}
.faq-ic::before{top:9.8px;left:1px;right:1px;height:2.4px;}
.faq-ic::after{left:9.8px;top:1px;bottom:1px;width:2.4px;}
details[open].faq .faq-ic::after{transform:scaleY(0);opacity:0;}
details.faq .faq-a{color:var(--slate);font-size:16.5px;line-height:1.66;padding:0 44px 26px 2px;max-width:66ch;}
details.faq .faq-a a{color:var(--red);font-weight:600;}
.faq-still{margin-top:50px;border:1.5px solid var(--line);background:#fff;padding:34px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.faq-still h3{font-size:21px;margin:0 0 4px;}
.faq-still p{margin:0;color:var(--slate);font-size:15.5px;}
@media (max-width:640px){.faq-still{padding:26px 22px;}details.faq summary{font-size:16.5px;}}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:11px 18px;z-index:300;font-family:var(--sans);font-weight:600;font-size:14px;border-radius:0 0 7px 0;}
.skip:focus{left:0;}
.blueprint{margin-top:40px;display:grid;gap:13px;max-width:740px;}
.wrow{display:grid;grid-template-columns:1fr 150px 50px;align-items:center;gap:20px;}
.wrow .wn{font-weight:600;font-size:15.5px;color:var(--ink);}
.wtrack{display:block;height:9px;background:var(--paper-2);border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.wfill{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--magenta));border-radius:6px;}
.wrow .wp{font-weight:700;font-size:14px;color:var(--slate);text-align:right;}
.roadmap{margin-top:38px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.rstep{position:relative;padding-right:24px;}
.rk{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.rnum{width:32px;height:32px;border-radius:50%;background:var(--red);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.rline{flex:1;height:2px;background:var(--line);}
.rstep:last-child .rline{display:none;}
.rstep h4{font-family:var(--display);font-weight:800;font-size:17px;margin:0 0 7px;letter-spacing:-.01em;}
.rstep p{margin:0;color:var(--slate);font-size:14.5px;line-height:1.55;}
.rnow{display:inline-block;margin-top:8px;color:var(--red);font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--red);border-radius:20px;padding:2px 10px;}
.pnom{display:inline-block;margin-top:10px;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.07em;color:var(--red);border:1px solid var(--line);border-radius:5px;padding:4px 9px;}
@media(max-width:760px){.roadmap{grid-template-columns:1fr 1fr;gap:30px 18px;}.rline{display:none;}}
@media(max-width:640px){.wrow{grid-template-columns:1fr 78px 40px;gap:12px;}.wrow .wn{font-size:14px;}}
@media(max-width:430px){.roadmap{grid-template-columns:1fr;gap:24px;}}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line);}.btn-ghost:hover{border-color:var(--ink);background:#fff;}.dwrap{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;}.donate-card{border:1.5px solid var(--line);background:#fff;padding:32px;box-shadow:0 22px 60px -34px rgba(20,17,15,.45);}.dfreq{display:inline-flex;border:1.5px solid var(--line);border-radius:9px;padding:4px;gap:4px;margin-bottom:22px;}.dfreq button{border:0;background:transparent;font-family:var(--sans);font-weight:600;font-size:14px;padding:9px 20px;border-radius:6px;cursor:pointer;color:var(--slate);}.dfreq button.on{background:var(--ink);color:#fff;}.dtiers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}.dtier{border:1.5px solid var(--line);background:#fff;font-family:var(--display);font-weight:800;font-size:18px;color:var(--ink);padding:16px 8px;border-radius:9px;cursor:pointer;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;}.dtier:hover{border-color:var(--ink);}.dtier.on{border-color:var(--red);background:var(--red);color:#fff;box-shadow:0 10px 24px -12px rgba(29,78,216,.7);}.dother{margin-top:14px;display:none;}.dother.show{display:block;}.dother input{width:100%;font-family:var(--display);font-weight:700;font-size:20px;padding:13px 16px;border:1.5px solid var(--line);border-radius:9px;}.dsum{margin:22px 0 18px;font-size:13.5px;color:var(--slate);}.dsum b{font-family:var(--display);font-size:28px;color:var(--ink);font-weight:800;display:block;margin-bottom:2px;letter-spacing:-.02em;}.givelist{list-style:none;padding:0;margin:18px 0 0;}.givelist li{padding:14px 0;border-bottom:1px solid var(--line);color:var(--slate);font-size:15.5px;line-height:1.55;}.givelist li:last-child{border-bottom:0;}.givelist strong{color:var(--ink);}@media(max-width:860px){.dwrap{grid-template-columns:1fr;gap:34px;}}.hdr .btn{white-space:nowrap;}.hdr-r .btn{padding-left:18px;padding-right:18px;}@media(max-width:640px){.hdr-r .btn-ghost{display:none;}}.dom li.ai-ka{color:var(--red);font-weight:600;}.qcard-link{display:block;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s,box-shadow .15s;}.qcard-link:hover{border-color:var(--ink);transform:translateY(-3px);box-shadow:0 18px 40px -28px rgba(20,17,15,.5);}.qcard-link h3{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}.qcard-link h3 svg{width:18px;height:18px;color:var(--red);flex:0 0 auto;margin-top:3px;}.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;}.chip{border:1.5px solid var(--line);border-radius:30px;padding:9px 16px;font-weight:600;font-size:14px;color:var(--ink);background:#fff;}.cf{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:8px;}.citem{border:1.5px solid var(--line);border-radius:10px;padding:18px;background:#fff;display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:start;}
.citem .cn{grid-column:1;grid-row:1 / span 2;}
.citem h4{grid-column:2;grid-row:1;margin:0;}
.citem p,.citem .cdesc{grid-column:2;grid-row:2;}.citem .cn{font-family:var(--display);font-weight:800;font-size:14px;color:var(--crimson);flex:0 0 auto;}.citem h4{font-size:15px;margin:0;font-weight:600;line-height:1.3;}.citem.ai{border-color:var(--red);background:rgba(29,78,216,.05);}.ftcols{display:grid;grid-template-columns:repeat(5,1fr);gap:30px 24px;}@media(max-width:1000px){.ftcols{grid-template-columns:repeat(3,1fr);}}@media(max-width:900px){.cf{grid-template-columns:repeat(2,1fr);}}@media(max-width:560px){.ftcols{grid-template-columns:repeat(2,1fr);}.cf{grid-template-columns:1fr;}}.ft-top{grid-template-columns:1.25fr 3fr!important;align-items:start;}.ftcols h4{margin:0 0 14px;}@media(max-width:900px){.ft-top{grid-template-columns:1fr!important;gap:38px;}}
/* ===== RESPONSIVE / MOBILE REFINEMENTS ===== */
@media(max-width:1024px){
 .nav{display:none;}
 .burger{display:flex;}
 html.menu-open .nav{display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 26px 44px -26px rgba(0,0,0,.30);padding:4px 0;max-height:82vh;overflow-y:auto;z-index:70;}
 html.menu-open .nav a{padding:15px 30px;font-size:17px;font-weight:600;border-bottom:1px solid var(--line);}
 html.menu-open .nav a:last-child{border-bottom:0;}
}
@media(max-width:760px){
 .hero h1{font-size:clamp(30px,8.4vw,46px)!important;line-height:1.05;letter-spacing:-.02em;}
 .hero p{font-size:16.5px!important;margin-top:20px!important;max-width:48ch;}
 .hero-cta,.cta{flex-wrap:wrap;}
 .phead h1{font-size:clamp(27px,7.2vw,40px)!important;line-height:1.07;}
 .phead .lead{font-size:16.5px!important;margin-top:16px!important;}
 h2{font-size:clamp(23px,6vw,34px)!important;}
 .sec{padding:58px 0!important;}
 .phead{padding:50px 0 36px!important;}
 .wrap{padding:0 20px!important;}
 .hdr-in{height:64px;}
 .promo-in{flex-wrap:wrap;gap:2px 10px;font-size:12px;padding:7px 16px;line-height:1.3;min-height:0;}
 .qcards{grid-template-columns:1fr!important;gap:16px;margin-top:30px;}
 .cf{grid-template-columns:1fr 1fr;}
 .steps,.steps.s4{grid-template-columns:1fr!important;}
 .doms{grid-template-columns:1fr!important;}
}
@media(max-width:440px){
 .hero h1{font-size:30px!important;}
 .phead h1{font-size:26px!important;}
 h2{font-size:24px!important;}
 .cf{grid-template-columns:1fr;}
 .dtiers{grid-template-columns:1fr 1fr;}
 .chip{font-size:13px;padding:8px 13px;}
 .roles{columns:1;}
 .hdr-r .btn-red{padding:9px 15px!important;font-size:14px;}
 .ftcols{grid-template-columns:1fr 1fr;gap:26px 18px;}
}
.boxes>*,.qcards>*,.grid2>*,.ftcols>*,.cf>*,.dwrap>*{min-width:0;}.btn{max-width:100%;}.crow a,.cinfo a,.givelist a{overflow-wrap:anywhere;}.form input,.form textarea,.field input,.field textarea{box-sizing:border-box;width:100%;max-width:100%;}@media(max-width:440px){.btn{white-space:normal;}.obox{padding:24px;}}.ph-energy{background-image:url(../images/bg-13.jpg);}.ph-aero{background-image:url(../images/bg-14.jpg);}.ph-rail{background-image:url(../images/bg-15.jpg);}.ph-qatar{background-image:url(../images/bg-16.jpg);}.ph-oman{background-image:url(../images/bg-17.jpg);}.ph-contact{background-image:url(../images/bg-18.jpg);}.ph-member{background-image:url(../images/bg-19.jpg);}.ph-regional{background-image:url(../images/bg-20.jpg);}.ph-saudi{background-image:url(../images/bg-21.jpg);}.ph-usa{background-image:url(../images/bg-22.jpg);}.ph-uk{background-image:url(../images/bg-23.jpg);}.citytiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:8px;}.citytile{aspect-ratio:4/3;border-radius:12px;background-size:cover;background-position:center;position:relative;overflow:hidden;border:1px solid var(--line);}.citytile span{position:absolute;left:0;right:0;bottom:0;padding:14px;color:#fff;font-weight:700;font-size:15px;background:linear-gradient(transparent,rgba(0,0,0,.72));}@media(max-width:640px){.citytiles{grid-template-columns:1fr 1fr;}}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;}.logo-pci{font-family:var(--display);font-weight:900;font-size:22px;line-height:.9;color:var(--ink);letter-spacing:-.035em;white-space:nowrap;}.logo-bar{width:2px;height:31px;background:var(--crimson);border-radius:2px;flex:0 0 auto;opacity:.85;}.logo-name{font-family:var(--sans);font-weight:600;font-size:12.5px;line-height:1.2;color:var(--ink);letter-spacing:-.003em;white-space:nowrap;}.ft-logo{display:flex;align-items:center;gap:12px;margin-bottom:16px;}.ft-logo .logo-name{color:#fff;}.ft-logo .logo-bar{background:var(--crimson);opacity:.9;}@media(max-width:560px){.logo-name,.logo-bar{display:none;}}@media(min-width:901px){.ft-top{display:grid!important;grid-template-columns:minmax(280px,1.3fr) 3fr!important;gap:44px;align-items:start;}.ft-brand p{max-width:42ch;}}.ft-brand{max-width:none;margin-bottom:34px;}.ftcols{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(158px,1fr))!important;gap:26px 22px!important;}.policy-index{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:26px 30px;}.pgrp h3{font-size:15px;font-weight:800;color:var(--ink);margin:0 0 12px;letter-spacing:.01em;}.pgrp ul{list-style:none;padding:0;margin:0;display:grid;gap:9px;}.pgrp a{color:var(--slate);text-decoration:none;font-size:14.5px;border-bottom:1px solid transparent;}.pgrp a:hover{color:var(--red);border-bottom-color:var(--red);}.btn-certuvo{background:#1f5bff;color:#fff;border:0;}.btn-certuvo:hover{background:#1747cc;color:#fff;}.certuvo-lock{display:flex;flex-direction:column;align-items:flex-start;gap:16px;background:#f5f8ff;border:1px solid #dbe4ff;border-radius:16px;padding:30px 32px;margin:0 0 22px;max-width:560px;}.certuvo-lock p{margin:0;color:#3a4a6b;font-weight:600;font-size:15px;}.cmatrix{width:100%;border-collapse:collapse;margin:4px 0;font-size:15.5px;}.cmatrix th,.cmatrix td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);}.cmatrix th{font-family:var(--display);font-weight:800;color:var(--ink);font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;}.cmatrix td:first-child{font-weight:800;color:var(--ink);white-space:nowrap;}.cmatrix tr.hl td{background:#fff5f6;}.cmatrix tr.hl td:first-child{color:var(--red);}.crumbbar{border-bottom:1px solid var(--line);background:#fff;}.crumbbar .wrap{padding:11px 0;}.crumbbar nav{font-size:13px;color:var(--slate);}.crumbbar nav a{color:var(--slate);text-decoration:none;}.crumbbar nav a:hover{color:var(--red);}.crumbbar .sep{margin:0 8px;opacity:.5;}.crumbbar.hide{display:none;}.article{max-width:var(--maxw);}.article p,.article li{max-width:82ch;}.article p{font-size:17px;line-height:1.75;color:#2a2a28;margin:0 0 18px;}.article h2{font-family:var(--display);font-size:clamp(24px,3vw,32px);font-weight:800;color:var(--ink);margin:40px 0 14px;letter-spacing:-.01em;}.article h3{font-size:20px;font-weight:800;color:var(--ink);margin:26px 0 10px;}.article ul{margin:0 0 18px;padding-left:22px;}.article li{font-size:17px;line-height:1.7;color:#2a2a28;margin:0 0 9px;}.article a{color:var(--red);text-decoration:underline;text-underline-offset:2px;}.a-meta{font-size:13px;color:var(--slate);text-transform:uppercase;letter-spacing:.06em;margin:0 0 26px;font-weight:700;}
/* ===== Desktop header de-crowding (QA fix) ===== */
@media (min-width:1025px){
  .hdr-in{height:74px;}
  .nav{gap:18px;}
  .nav a{font-size:14.5px;letter-spacing:-.004em;}
  .hdr-r{gap:12px;}
  .hdr-r .btn{padding-left:16px!important;padding-right:16px!important;}
  .hdr-r .btn-red{font-size:14.5px!important;}
  .brand .logo-name{font-size:12px;}
}
/* keep only the primary CTA in the bar until the screen is genuinely wide */
@media (max-width:1300px){ .hdr .btn-ghost{display:none!important;} }
/* Keep the horizontal menu on real laptops (incl. Windows display-scaling, which renders a
   1366/1920 screen at ~1090–1200 effective CSS px). Only collapse to the overlay menu at ≤1024,
   and tighten the nav gap/size through the 1025–1559 band so the links stay comfortable.
   The band used to stop at 1240, which left 1241–1559 — 1366, the commonest laptop width of all —
   rendering the roomy nav in a header that needs ~1383px. "Enrol now" was clipped there with no
   scrollbar to reach it, exactly the fault fixed at 1440–1526 earlier, one band down. It now runs
   to 1559 because the roomy nav must not return until the 1560 block widens .hdr>.wrap to match:
   above 1439 the roomy nav squeezed the brand instead, re-wrapping the strapline from three lines
   to six and overflowing the fixed 74px header. Measured with the DB-driven 12-item nav, which is
   wider than the static fallback these rules were written against. */
@media (min-width:1081px) and (max-width:1559px){
  .nav{gap:13px;}
  .nav a{font-size:13.5px;letter-spacing:-.01em;}
  .hdr-r{gap:8px;}
  .hdr-r .btn{padding-left:13px!important;padding-right:13px!important;font-size:13.5px!important;}
}
/* Below 1080 the eight-item menu can no longer sit on one row without crowding — collapse it. */
@media (max-width:1080px){
  .nav{display:none;}
  .burger{display:flex;}
  html.menu-open .nav{display:flex;}
}
/* 1081-1200 is the tightest the horizontal menu ever has to be: the nav is 20-140px above its own
   collapse point while still carrying all 12 links (the 10 main ones plus Log in / Donate, which
   move INTO the nav below 1300). Even with the duplicate right-hand links gone, "Enrol now" still
   ran 40px past the viewport at 1100. One more step down in gap and size clears it with room to
   spare, and keeps the horizontal menu on the display-scaled laptops the band exists for. */
@media (min-width:1081px) and (max-width:1200px){
  .nav{gap:10px;}
  .nav a{font-size:13px;}
}
/* The bottom 60px of the horizontal-menu range is tighter still: at 1082 — one pixel above the
   collapse point — the CTA landed exactly on the viewport edge, eating the wrap's 30px gutter. */
@media (min-width:1081px) and (max-width:1140px){
  .nav{gap:8px;}
  .nav a{font-size:12.5px;}
}
/* the "PCI Global" wordmark carries the brand on its own in the top bar;
   the footer keeps the full institute-name lockup */
.hdr .logo-name,.hdr .logo-bar,.hdr .logo-tagline{display:none;}
/* QA issue 4 — the organisation tagline sits beside the mark, in the same lockup.
   .logo-lines stacks the lockup's text lines so the tagline reads BELOW the "PCI AI" wordmark
   (the ACCA placement) without turning .brand into a second row. It is revealed at 1400 and up
   (see the block at the end of this file); on narrower headers the lockup collapses to the
   wordmark exactly as before and nothing is crowded. */
.logo-lines{display:inline-flex;flex-direction:column;justify-content:center;gap:1px;min-width:0;}
.hdr .brand{flex:0 0 auto;}
.hdr .logo-lines{flex:0 0 auto;}
.logo-tagline{font-family:var(--sans);font-weight:500;font-size:9.5px;line-height:1.24;
  color:var(--slate);letter-spacing:.004em;max-width:23ch;text-wrap:balance;}


/* ===== Account / auth pages ===== */
.auth{min-height:calc(100vh - 74px);display:flex;align-items:flex-start;justify-content:center;padding:60px 22px 90px;background:var(--paper-2);}
.auth-card{width:100%;max-width:452px;background:#fff;border:1.5px solid var(--line);padding:44px 40px;box-shadow:0 34px 80px -46px rgba(20,17,15,.45);}
.auth-card .eyebrow{display:block;margin-bottom:11px;}
.auth-card h1{font-family:var(--display);font-weight:800;font-size:28px;line-height:1.1;letter-spacing:-.02em;margin:0 0 8px;}
.auth-sub{color:var(--slate);font-size:15px;margin:0 0 24px;line-height:1.55;}
.btn-google{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;padding:13px 16px;border:1.5px solid var(--line);background:#fff;font-family:var(--sans);font-weight:600;font-size:15px;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s;}
.btn-google:hover{border-color:var(--ink);background:#faf9f7;}
.btn-google svg{width:18px;height:18px;flex:0 0 auto;}
.auth-or{display:flex;align-items:center;gap:14px;margin:22px 0;color:var(--mist);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;}
.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--line);}
.auth-card .field{margin-bottom:18px;}
.pw-wrap{position:relative;}
.pw-wrap input{width:100%;}
.pw-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;color:var(--mist);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:6px;}
.pw-toggle:hover{color:var(--ink);}
.pw-hint{font-size:12.5px;color:var(--mist);margin:-8px 0 18px;}
.auth-row{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:-2px 0 20px;}
.auth-row label{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--slate);text-transform:none;letter-spacing:0;font-weight:500;margin:0;}
.auth-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--red);flex:0 0 auto;}
.auth-link{font-size:13.5px;font-weight:600;color:var(--red);white-space:nowrap;}
.auth-link:hover{color:var(--red-700);}
.btn-auth{display:flex;width:100%;justify-content:center;padding:14px;font-size:15.5px;}
.auth-alt{text-align:center;margin:22px 0 0;font-size:14px;color:var(--slate);}
.auth-foot{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);font-size:12.5px;color:var(--mist);line-height:1.5;}
.auth-msg{display:none;margin-top:18px;padding:14px 16px;border:1.5px solid var(--line);border-left:3px solid var(--red);background:var(--paper-2);font-size:13.5px;color:var(--ink);line-height:1.5;}
.auth-msg.show{display:block;}
.hdr-login{font-family:var(--sans);font-weight:600;font-size:14.5px;color:var(--ink);white-space:nowrap;}
.hdr-login:hover{color:var(--red);}
@media(max-width:560px){.auth-card{padding:34px 24px;}.auth{padding:34px 16px 70px;min-height:calc(100vh - 64px);}}

/* ============================================================
   PREMIUM / LUXURY LAYER — gradient system, glow, depth
   ============================================================ */
:root{
  --g1:#1D4ED8; --g2:#3B82F6; --g3:#3B82F6;
  --grad-brand:linear-gradient(160deg,#3B82F6 0%,#1D4ED8 50%,#1E3A8A 100%);
  --grad-brand-deep:linear-gradient(160deg,#1D4ED8 0%,#1E40AF 100%);
}

/* smoother transitions everywhere a button lives */
.btn{transition:background .25s ease,color .2s ease,border-color .2s ease,box-shadow .3s ease,transform .25s ease;}

/* PRIMARY BUTTON — gradient fill + colored glow */
.btn-red{background:var(--grad-brand)!important;color:#fff!important;border-color:transparent!important;
  box-shadow:0 12px 30px -12px rgba(29,78,216,.55), inset 0 1px 0 rgba(255,255,255,.16);}
.btn-red:hover{background:linear-gradient(135deg,#3B82F6 0%,#3B82F6 100%)!important;
  box-shadow:0 18px 44px -14px rgba(29,78,216,.62), inset 0 1px 0 rgba(255,255,255,.2);
  transform:translateY(-2px);}
.hdr-r .btn-red{box-shadow:0 8px 20px -10px rgba(29,78,216,.5);}

/* WHITE BUTTON (on red band) — add depth */
.btn-white{box-shadow:0 10px 26px -12px rgba(0,0,0,.34);}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 16px 34px -14px rgba(0,0,0,.4);}

/* LOGO — gradient wordmark */
.logo-pci{color:#1D4ED8;-webkit-text-fill-color:#1D4ED8;background:none;-webkit-background-clip:border-box;background-clip:border-box;}

/* SECTION DIVIDER — glow */
.uline{background:var(--grad-brand);box-shadow:0 3px 12px -3px rgba(29,78,216,.45);}

/* RED BAND — rich gradient + light bloom */
.redband{background:var(--grad-brand-deep)!important;position:relative;overflow:hidden;}
.redband::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(1100px 420px at 12% -10%,rgba(255,255,255,.18),transparent 60%),
             radial-gradient(900px 540px at 102% 115%,rgba(59,130,246,.5),transparent 58%);}
.redband-in{position:relative;z-index:1;}

/* DARK HEROES — add a warm brand bloom to the cinematic overlay */
.hero::after{background:
  linear-gradient(90deg,rgba(9,7,6,.95) 0%,rgba(9,7,6,.66) 46%,rgba(9,7,6,.3) 100%),
  linear-gradient(to top,rgba(9,7,6,.55),transparent 38%),
  radial-gradient(820px 480px at 84% 22%,rgba(29,78,216,.24),transparent 60%)!important;}
.phead-dark::after{background:
  linear-gradient(90deg,rgba(9,7,6,.95),rgba(9,7,6,.58) 60%,rgba(9,7,6,.32)),
  radial-gradient(720px 420px at 88% 18%,rgba(29,78,216,.22),transparent 60%)!important;}

/* LIGHT PAGE HEADERS — soft gradient wash + corner brand glow */
.phead:not(.phead-dark){position:relative;overflow:hidden;
  background:linear-gradient(180deg,#F8FAFC 0%,var(--paper) 72%);}
.phead:not(.phead-dark)::before{content:"";position:absolute;top:-160px;right:-100px;width:560px;height:560px;
  pointer-events:none;background:radial-gradient(circle,rgba(29,78,216,.08),transparent 66%);}
.phead:not(.phead-dark) .wrap{position:relative;z-index:1;}

/* ALTERNATE SECTIONS — subtle gradient instead of flat */
.sec-2{background:linear-gradient(180deg,#F4F7FB 0%,#EEF2F7 100%)!important;}

/* CARDS — premium hover lift + soft brand-tinted shadow */
.qcard-link,.fcard,.story,.itile{transition:border-color .2s ease,transform .25s ease,box-shadow .3s ease;}
.qcard-link:hover{border-color:transparent;transform:translateY(-5px);
  box-shadow:0 26px 56px -30px rgba(20,17,15,.5), 0 0 0 1px rgba(29,78,216,.14);}
.qcard{transition:box-shadow .3s ease,transform .25s ease,border-color .2s ease;}
.qcard:hover{transform:translateY(-3px);box-shadow:0 22px 48px -32px rgba(20,17,15,.42);}

/* CHIPS — subtle gradient on hover */
.chip{transition:border-color .18s,color .18s,box-shadow .25s,transform .2s;}
.chip:hover{border-color:transparent;color:#fff;background:var(--grad-brand);box-shadow:0 10px 24px -12px rgba(29,78,216,.5);transform:translateY(-1px);}

/* AUTH CARD — premium gradient accent bar */
.auth-card{position:relative;}
.auth-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad-brand);}
.btn-google{transition:border-color .18s,background .18s,box-shadow .25s,transform .2s;}
.btn-google:hover{box-shadow:0 12px 28px -16px rgba(20,17,15,.4);transform:translateY(-1px);}

/* refined focus ring with brand tint */
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 3px rgba(29,78,216,.12);}

/* ===== Mobile QA fixes: logo clip + login visibility ===== */
.logo-pci{line-height:1;}                     /* fix gradient-clip glyph cut-off */
.nav-acct{display:none;}                        /* account links: hamburger menu only */
@media (max-width:1300px){ .nav a.nav-acct{display:block;} }
/* ...and the right-hand copies must go when they do. Below 1300 the header sheds its right side
   into the nav: .btn-ghost hides and .nav a.nav-acct appears. But .hdr-login / .hdr-donate — the
   SAME two links on the right — kept displaying until 640, so every width from 641 to 1300 rendered
   "Log in" and "Donate" TWICE. The duplicates cost ~110px, which is what pushed "Enrol now" clean
   off the right edge at 1100 (measured enrolRight 1252 at a 1100 viewport, with no horizontal
   scrollbar to reach it) and wrapped the nav's own "Log in" onto two lines. Same fault as the
   1440-1526 clipping fixed earlier, in a much commoner band. */
@media (max-width:1300px){ .hdr-r .hdr-login{display:none!important;} }
/* On phones the top bar holds brand + search + Enrol + burger; 'Log in' lives in the drawer menu.
   Hiding it here prevents the header from overflowing the viewport (which cut off the logo). */
@media (max-width:640px){ .hdr-login{display:none;} }

/* ===== ACCA-style warm-red accent (sitewide) ===== */
:root{
  --red:#1D4ED8; --red-700:#1E3A8A; --magenta:#3B82F6;
  --g1:#1D4ED8; --g2:#1E3A8A; --g3:#3B82F6;
  --grad-brand:linear-gradient(160deg,#3B82F6 0%,#1D4ED8 50%,#1E3A8A 100%);
  --grad-brand-deep:linear-gradient(160deg,#1D4ED8 0%,#1E40AF 100%);
}
.btn-red{box-shadow:0 12px 30px -12px rgba(29,78,216,.5), inset 0 1px 0 rgba(255,255,255,.16);}
.btn-red:hover{background:linear-gradient(135deg,#1E3A8A 0%,#3B82F6 100%)!important;box-shadow:0 18px 44px -14px rgba(29,78,216,.6), inset 0 1px 0 rgba(255,255,255,.2);}
.hdr-r .btn-red{box-shadow:0 8px 20px -10px rgba(29,78,216,.5);}
.uline{box-shadow:0 3px 12px -3px rgba(29,78,216,.42);}
.redband::before{background:radial-gradient(1100px 420px at 12% -10%,rgba(255,255,255,.18),transparent 60%),radial-gradient(900px 540px at 102% 115%,rgba(59,130,246,.5),transparent 58%);}
.hero::after{background:linear-gradient(90deg,rgba(9,7,6,.95) 0%,rgba(9,7,6,.66) 46%,rgba(9,7,6,.3) 100%),linear-gradient(to top,rgba(9,7,6,.55),transparent 38%),radial-gradient(820px 480px at 84% 22%,rgba(29,78,216,.22),transparent 60%)!important;}
.phead-dark::after{background:linear-gradient(90deg,rgba(9,7,6,.95),rgba(9,7,6,.58) 60%,rgba(9,7,6,.32)),radial-gradient(720px 420px at 88% 18%,rgba(29,78,216,.2),transparent 60%)!important;}
.phead:not(.phead-dark)::before{background:radial-gradient(circle,rgba(29,78,216,.07),transparent 66%);}
.qcard-link:hover{box-shadow:0 26px 56px -30px rgba(20,17,15,.5), 0 0 0 1px rgba(29,78,216,.14);}
.chip:hover{box-shadow:0 10px 24px -12px rgba(29,78,216,.45);}
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 3px rgba(29,78,216,.12);}

/* hero trust pills */
.hero-trust{display:flex;flex-wrap:wrap;gap:10px 18px;margin:22px 0 12px;}
.hero-trust span{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.92);}
.hero-trust span::before{content:"\2713";color:#fff;font-weight:800;background:var(--red);width:19px;height:19px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;flex:0 0 auto;}
@media(max-width:560px){.hero-trust{gap:8px 14px;}.hero-trust span{font-size:12.5px;}}

/* ---- newsletter band ---- */
.nl-band{background:#0f1319;color:#fff;padding:46px 0}
.nl-in{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.nl-in h3{font-size:24px;margin:0 0 6px;font-weight:800;letter-spacing:-.02em}
.nl-in p{margin:0;color:#aeb5bf;font-size:14px;max-width:48ch;line-height:1.5}
.nl-form{display:flex;gap:10px;flex-wrap:wrap}
.nl-form input{height:48px;border-radius:10px;border:1px solid #2a3340;background:#161b22;color:#fff;padding:0 14px;font-size:14px;min-width:260px}
.nl-form input:focus{outline:0;border-color:#1D4ED8}
.nl-form button{height:48px;border-radius:10px;border:0;background:#1D4ED8;color:#fff;font-weight:700;padding:0 22px;font-size:14px;cursor:pointer}
.nl-form button:hover{background:#1E40AF}
.nl-msg{font-size:13px;font-weight:600;margin-top:10px;width:100%;min-height:18px}
/* ---- cookie banner ---- */
.ck-banner{position:fixed;left:16px;right:16px;bottom:16px;max-width:540px;margin:0 auto;background:#fff;border:1px solid #e7e9ee;border-radius:14px;box-shadow:0 18px 50px rgba(16,22,30,.22);padding:18px 20px;z-index:9000;display:none}
.ck-banner.show{display:block;animation:ckin .3s ease}
@keyframes ckin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.ck-banner h4{margin:0 0 6px;font-size:15px;font-weight:800;color:#11151C}
.ck-banner p{margin:0 0 14px;font-size:13px;color:#5c6672;line-height:1.55}
.ck-banner a{color:#1D4ED8}
.ck-row{display:flex;gap:10px;flex-wrap:wrap}
.ck-row button{height:40px;border-radius:9px;font-weight:650;font-size:13px;padding:0 16px;cursor:pointer;border:1px solid #e7e9ee;background:#fff;color:#11151C}
.ck-row .ck-accept{background:#1D4ED8;border-color:#1D4ED8;color:#fff}.ck-row .ck-accept:hover{background:#1E40AF}
.ck-row button:hover{border-color:#d3d8df}
/* ---- search modal ---- */
.sx-scrim{position:fixed;inset:0;background:rgba(13,17,23,.5);z-index:9500;display:none;align-items:flex-start;justify-content:center;padding:78px 16px}
.sx-scrim.show{display:flex}
.sx-box{width:100%;max-width:640px;background:#fff;border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden}
.sx-top{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid #eef0f4}
.sx-top input{flex:1;border:0;outline:0;font-size:17px;color:#11151C;background:transparent}
.sx-close{border:0;background:#f2f3f5;border-radius:8px;width:30px;height:30px;cursor:pointer;color:#5c6672;font-size:15px}
.sx-results{max-height:52vh;overflow-y:auto;padding:8px}
.sx-results a{display:block;padding:11px 12px;border-radius:9px;text-decoration:none;color:#11151C}
.sx-results a:hover{background:#f6f7f9}
.sx-results .st{font-weight:650;font-size:14px}
.sx-results .su{font-size:12px;color:#8a929e;font-family:ui-monospace,Menlo,monospace}
.sx-results .sd{font-size:12.5px;color:#5c6672;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sx-empty{padding:24px;text-align:center;color:#8a929e;font-size:13px}
.sx-hint{padding:9px 16px 14px;font-size:11.5px;color:#aab1bb}
/* ---- downloads ---- */
.dl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:14px}
.dl-card{border:1px solid #e7e9ee;border-radius:12px;padding:16px;display:flex;gap:13px;align-items:flex-start;background:#fff;transition:.15s}
.dl-card:hover{border-color:#d3d8df;box-shadow:0 6px 18px rgba(16,22,30,.07)}
.dl-ic{width:42px;height:42px;border-radius:10px;background:#EEF3FF;color:#1E40AF;display:flex;align-items:center;justify-content:center;flex:none;font-weight:800;font-size:11px;font-family:ui-monospace,monospace}
.dl-meta{flex:1;min-width:0}.dl-meta .dt{font-weight:650;font-size:14px;color:#11151C;line-height:1.3}.dl-meta .dd{font-size:12px;color:#8a929e;margin-top:3px}
.dl-card a{display:inline-flex;align-items:center;gap:6px;margin-top:9px;font-size:12.5px;font-weight:700;color:#1D4ED8;text-decoration:none}
.dl-soon{display:inline-flex;align-items:center;gap:6px;margin-top:9px;font-size:12px;font-weight:700;color:#5A6678;background:#F1F5F9;border:1px solid #e2e8f0;border-radius:999px;padding:3px 10px}

/* --- visual components (feature grids) --- */
.feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(256px,1fr));gap:20px;margin-top:42px;}
.feat{border:1px solid var(--line);background:var(--paper);padding:26px 24px;transition:box-shadow .25s,transform .2s,border-color .18s;}
.feat:hover{box-shadow:0 18px 44px -26px rgba(7,5,4,.28);transform:translateY(-3px);border-color:#dcd5cc;}
.feat .fi{display:block;width:40px;height:40px;color:var(--red);}
.feat h4{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.01em;margin:16px 0 8px;color:var(--ink);}
.feat h4 a{color:inherit;text-decoration:none;}
.feat h4 a:hover{color:var(--red);}
.feat p{color:var(--slate);font-size:14.5px;line-height:1.62;margin:0;}
.steps.s3{grid-template-columns:repeat(3,1fr);}
.steps.s2{grid-template-columns:repeat(2,1fr);}
@media(max-width:760px){.steps.s3,.steps.s2{grid-template-columns:1fr;}}

/* --- competency tile grid --- */
.cgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(184px,1fr));gap:14px;margin-top:40px;}
.ctile{border:1px solid var(--line);background:#FCFBF9;padding:18px 16px;transition:border-color .18s,box-shadow .25s,transform .2s;}
.ctile:hover{border-color:#dcd5cc;box-shadow:0 14px 32px -24px rgba(7,5,4,.3);transform:translateY(-2px);}
.ctile .cn{font-family:var(--display);font-weight:800;color:var(--red);font-size:13px;letter-spacing:.06em;}
.ctile h5{font-family:var(--display);font-weight:800;font-size:15px;margin:7px 0 5px;letter-spacing:-.01em;color:var(--ink);}
.ctile p{color:var(--slate);font-size:12.5px;line-height:1.5;margin:0;}

/* --- process flow --- */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:46px;border:1px solid var(--line);}
.fnode{padding:24px 22px;border-right:1px solid var(--line);position:relative;background:var(--paper);}
.fnode:last-child{border-right:0;}
.fnode .fk{font-family:var(--display);font-weight:800;color:var(--red);font-size:13px;letter-spacing:.05em;}
.fnode h4{font-family:var(--display);font-weight:800;font-size:16.5px;margin:8px 0 7px;letter-spacing:-.01em;color:var(--ink);}
.fnode p{color:var(--slate);font-size:13px;line-height:1.55;margin:0;}
.fnode:not(:last-child):after{content:"\2192";position:absolute;right:-12px;top:50%;transform:translateY(-50%);color:#fff;font-weight:800;font-size:14px;background:var(--red);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:2;}
.flow-out{margin-top:20px;font-family:var(--display);font-weight:800;font-size:clamp(18px,2.2vw,25px);color:var(--ink);letter-spacing:-.012em;}
.flow-out em{color:var(--red);font-style:normal;}
@media(max-width:760px){.flow{grid-template-columns:1fr;}.fnode{border-right:0;border-bottom:1px solid var(--line);}.fnode:last-child{border-bottom:0;}.fnode:not(:last-child):after{content:"\2193";right:50%;top:auto;bottom:-12px;transform:translateX(50%);}}

/* ===== premium reveal system ===== */
html.js-reveal .feat,html.js-reveal .ctile,html.js-reveal .step,html.js-reveal .fnode,html.js-reveal .qcard,html.js-reveal .vstat,html.js-reveal .dl-card,html.js-reveal .lead,html.js-reveal .flow-out,html.js-reveal .givelist>li,html.js-reveal .quote blockquote,html.js-reveal .sec .wrap>h2,html.js-reveal .sec .wrap>p,html.js-reveal .hero-in h1,html.js-reveal .hero-in p,html.js-reveal .hero-in .hero-cta,html.js-reveal .ph-hero h1,html.js-reveal .ph-hero p{opacity:0;translate:0 22px;transition:opacity .8s cubic-bezier(.22,1,.36,1),translate .8s cubic-bezier(.22,1,.36,1);}
html.js-reveal .uline{opacity:1;scale:0 1;transform-origin:left;transition:scale .7s cubic-bezier(.22,1,.36,1);}
html.js-reveal .in{opacity:1 !important;translate:0 0 !important;scale:1 1 !important;}
@media (prefers-reduced-motion: reduce){html.js-reveal .feat,html.js-reveal .ctile,html.js-reveal .step,html.js-reveal .fnode,html.js-reveal .qcard,html.js-reveal .vstat,html.js-reveal .dl-card,html.js-reveal .lead,html.js-reveal .flow-out,html.js-reveal .givelist>li,html.js-reveal .quote blockquote,html.js-reveal .uline,html.js-reveal .sec .wrap>h2,html.js-reveal .sec .wrap>p,html.js-reveal .hero-in h1,html.js-reveal .hero-in p,html.js-reveal .hero-in .hero-cta,html.js-reveal .ph-hero h1,html.js-reveal .ph-hero p{opacity:1!important;translate:none!important;scale:none!important;transition:none!important;}}
/* ===== visual refinements ===== */
@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth;}}
.feat{position:relative;overflow:hidden;}
.feat::after{content:"";position:absolute;top:0;left:0;height:3px;width:0;background:var(--red);transition:width .45s cubic-bezier(.22,1,.36,1);}
.feat:hover::after{width:100%;}
.feat .fi{transition:transform .4s cubic-bezier(.22,1,.36,1);}
.feat:hover .fi{transform:scale(1.1);}
.feat:hover{box-shadow:0 26px 60px -30px rgba(7,5,4,.34);}
.ctile{position:relative;}
.ctile:hover{border-color:var(--red);}
.qcard.qcard-link{transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s cubic-bezier(.22,1,.36,1),border-color .25s;}
.qcard.qcard-link:hover{transform:translateY(-4px);box-shadow:0 28px 62px -34px rgba(7,5,4,.36);border-color:#d9d2c9;}
.step .sn{display:inline-block;transition:transform .4s cubic-bezier(.22,1,.36,1);}
.step:hover .sn{transform:translateY(-3px);}
.fnode{transition:background .3s ease;}
.fnode:hover{background:#FCFBF9;}

/* ===== ux polish ===== */
.skip{position:absolute;left:-9999px;top:0;z-index:1300;background:var(--ink);color:#fff;padding:12px 18px;font-family:var(--sans);font-weight:600;font-size:14px;text-decoration:none;}
.skip:focus{left:12px;top:12px;}
.scrollbar{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;z-index:1200;pointer-events:none;will-change:transform;}
.hdr{transition:background .3s ease,box-shadow .3s ease,-webkit-backdrop-filter .3s ease,backdrop-filter .3s ease;}
.hdr.scrolled{background:rgba(255,255,255,.82);-webkit-backdrop-filter:saturate(1.5) blur(14px);backdrop-filter:saturate(1.5) blur(14px);box-shadow:0 1px 0 rgba(18,14,12,.05),0 20px 44px -36px rgba(18,14,12,.55);}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;}
.btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px;}
.nav a:focus-visible,.brand:focus-visible{outline:2px solid var(--red);outline-offset:4px;}
summary:focus-visible{outline:2px solid var(--red);outline-offset:3px;}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--red);outline-offset:2px;}
.btn{transition:background .18s,color .18s,border-color .18s,transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s cubic-bezier(.22,1,.36,1);}
.btn svg{transition:transform .3s cubic-bezier(.22,1,.36,1);}
.btn:hover svg{transform:translateX(3px);}
.btn-red:hover{box-shadow:0 16px 34px -16px rgba(29,78,216,.6);transform:translateY(-2px);}
.btn-white:hover,.btn-out:hover,.btn-light:hover{transform:translateY(-2px);}
.hero{overflow:hidden;}
@media (prefers-reduced-motion: no-preference){.hero-bg{animation:heroZoom 1.5s cubic-bezier(.22,1,.36,1) both;}}
@keyframes heroZoom{from{transform:scale(1.08);}to{transform:scale(1);}}
@media (prefers-reduced-motion: reduce){.btn:hover,.btn:hover svg{transform:none!important;}}

/* ===== enrollment system ===== */
.enr-trust{display:inline-flex;align-items:flex-start;gap:9px;background:#EFF6FF;border:1px solid #cfe3fb;color:#0a4a8a;font-size:13px;font-weight:600;padding:11px 16px;border-radius:10px;margin-top:24px;max-width:560px;line-height:1.45;}
.enr-trust svg{width:16px;height:16px;flex:0 0 auto;margin-top:1px;}
.pcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(288px,1fr));gap:22px;margin-top:44px;align-items:stretch;}
.pcard{border:1px solid var(--line);background:var(--paper);padding:32px 28px;display:flex;flex-direction:column;position:relative;border-radius:3px;transition:box-shadow .3s,transform .25s,border-color .2s;}
.pcard:hover{box-shadow:0 30px 70px -42px rgba(7,5,4,.4);transform:translateY(-4px);border-color:#dcd5cc;}
.pcard.feat{border-color:var(--red);box-shadow:0 26px 64px -40px rgba(29,78,216,.5);overflow:visible;}
.pcard .ptag{position:absolute;top:-12px;left:28px;background:var(--crimson);color:#fff;font-family:var(--display);font-weight:800;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;border-radius:3px;}
.pcard h3{font-family:var(--display);font-weight:800;font-size:21px;letter-spacing:-.01em;margin:0;color:var(--ink);}
.pcard .pwho{color:var(--mist);font-size:13px;margin:6px 0 18px;min-height:34px;}
.pcard .pprice{font-family:var(--display);font-weight:800;font-size:36px;letter-spacing:-.02em;color:var(--ink);line-height:1;}
.pcard .pprice span{font-size:15px;font-weight:600;color:var(--mist);letter-spacing:0;}
.pcard .pnote{font-size:11.5px;color:var(--mist);margin-top:6px;}
.pcard ul{list-style:none;margin:22px 0;padding:18px 0 0;border-top:1px solid var(--line);display:grid;gap:11px;flex:1;}
.pcard li{position:relative;padding-left:25px;color:var(--slate);font-size:14px;line-height:1.5;}
.pcard li:before{content:"\2713";position:absolute;left:0;top:0;color:var(--red);font-weight:800;}
.pcard .pdis{font-size:11px;color:var(--mist);margin:14px 0 18px;line-height:1.45;}
.pcard .btn{width:100%;justify-content:center;}
.steps-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:42px;counter-reset:ef;}
.eflow{border:1px solid var(--line);border-radius:3px;padding:22px 18px;position:relative;}
.eflow .en{font-family:var(--display);font-weight:800;color:var(--red);font-size:26px;line-height:1;}
.eflow h4{font-family:var(--display);font-weight:800;font-size:15px;margin:10px 0 6px;letter-spacing:-.01em;}
.eflow p{color:var(--slate);font-size:13px;line-height:1.5;margin:0;}
.trust-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:40px;}
@media(max-width:700px){.trust-cols{grid-template-columns:1fr;}}
.tcol{border:1px solid var(--line);border-radius:3px;padding:24px;}
.tcol.does{border-top:3px solid #1a7d3c;}
.tcol.not{border-top:3px solid var(--red);}
.tcol h4{font-family:var(--display);font-weight:800;font-size:16px;margin:0 0 14px;}
.tcol ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.tcol li{position:relative;padding-left:24px;color:var(--slate);font-size:14px;line-height:1.5;}
.tcol.does li:before{content:"\2713";position:absolute;left:0;color:#1a7d3c;font-weight:800;}
.tcol.not li:before{content:"\2715";position:absolute;left:0;color:var(--red);font-weight:800;}
/* wizard */
.wizwrap{max-width:840px;margin:0 auto;}
.wiz-steps{display:flex;align-items:flex-start;margin-bottom:40px;}
.wiz-s{flex:1;text-align:center;position:relative;color:var(--mist);font-size:11.5px;font-weight:600;line-height:1.3;}
.wiz-s .wdot{width:36px;height:36px;border-radius:50%;border:2px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 9px;font-family:var(--display);font-weight:800;font-size:14px;color:var(--mist);transition:all .35s cubic-bezier(.22,1,.36,1);position:relative;z-index:1;}
.wiz-s:not(:last-child):after{content:"";position:absolute;top:18px;left:50%;width:100%;height:2px;background:var(--line);z-index:0;}
.wiz-s.active .wdot{border-color:var(--red);color:var(--red);transform:scale(1.08);}
.wiz-s.done .wdot{border-color:var(--red);background:var(--red);color:#fff;}
.wiz-s.done:not(:last-child):after{background:var(--red);}
.wiz-s.active{color:var(--ink);}
.wiz-panel{display:none;}
.wiz-panel.show{display:block;animation:wzIn .45s cubic-bezier(.22,1,.36,1);}
@keyframes wzIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.wiz-panel h2{font-family:var(--display);font-weight:800;font-size:clamp(22px,3vw,30px);letter-spacing:-.018em;margin:0 0 6px;}
.wiz-panel .wsub{color:var(--slate);font-size:15px;margin:0 0 26px;}
.field{margin-bottom:18px;}
.field label{display:block;font-weight:600;font-size:13px;color:var(--ink);margin-bottom:7px;}
.field label .req{color:var(--red);}
.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--line);background:#fff;padding:13px 15px;font-family:var(--sans);font-size:15px;color:var(--ink);border-radius:3px;transition:border-color .2s,box-shadow .2s;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(29,78,216,.12);}
.field .err{color:var(--err);font-size:12px;margin-top:6px;display:none;}
.field.invalid input,.field.invalid select{border-color:var(--err);}
.field.invalid .err{display:block;}
.field .hint{color:var(--mist);font-size:12px;margin-top:6px;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:620px){.frow{grid-template-columns:1fr;}}
.pwbar{height:5px;background:var(--line);border-radius:4px;overflow:hidden;margin-top:8px;}
.pwbar i{display:block;height:100%;width:0;background:var(--red);transition:width .3s,background .3s;}
.wiz-nav{display:flex;justify-content:space-between;gap:14px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line);}
.mcards{display:grid;gap:14px;}
.mcard{border:1.5px solid var(--line);padding:20px 22px;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-radius:3px;transition:border-color .2s,box-shadow .2s,background .2s;}
.mcard:hover{border-color:#cfc8bf;}
.mcard.sel{border-color:var(--red);background:#F4F7FF;box-shadow:0 0 0 3px rgba(29,78,216,.1);}
.mcard .mcl{display:flex;gap:15px;align-items:flex-start;}
.mcard h4{font-family:var(--display);font-weight:800;font-size:17px;margin:0 0 4px;}
.mcard p{color:var(--slate);font-size:13px;margin:0;}
.mcard .mp{font-family:var(--display);font-weight:800;font-size:21px;color:var(--ink);white-space:nowrap;text-align:right;}
.mcard .mp span{display:block;font-size:11.5px;color:var(--mist);font-weight:600;}
.mradio{width:22px;height:22px;border:2px solid var(--line);border-radius:50%;flex:0 0 auto;margin-top:2px;position:relative;}
.mcard.sel .mradio{border-color:var(--red);}
.mcard.sel .mradio:after{content:"";position:absolute;inset:4px;background:var(--red);border-radius:50%;}
.consent{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--line);background:#FCFBF9;margin-bottom:14px;border-radius:3px;}
.consent input{margin-top:2px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--red);}
.consent label{font-size:13px;color:var(--slate);line-height:1.55;}
.rev{border:1px solid var(--line);border-radius:3px;overflow:hidden;margin-bottom:24px;}
.rev .rrow{display:flex;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--line);font-size:14px;gap:16px;}
.rev .rrow:last-child{border-bottom:0;}
.rev .rrow span:first-child{color:var(--mist);}
.rev .rrow span:last-child{color:var(--ink);font-weight:600;text-align:right;}
.rev .rtot{background:#FCFBF9;font-family:var(--display);font-weight:800;font-size:16px;}
/* checkout */
.cogrid{display:grid;grid-template-columns:1.35fr 1fr;gap:40px;align-items:start;}
@media(max-width:820px){.cogrid{grid-template-columns:1fr;}}
.cosum{border:1px solid var(--line);padding:28px;border-radius:3px;}
.secure-badge{display:inline-flex;align-items:center;gap:8px;color:#1a7d3c;font-size:13px;font-weight:600;margin-top:16px;}
.secure-badge svg{width:15px;height:15px;}
.paylogos{display:flex;gap:10px;align-items:center;margin-top:14px;opacity:.6;font-size:12px;font-weight:600;color:var(--mist);}
.notice{background:#FFF8E6;border:1px solid #f0e2b8;color:#7a5b00;font-size:13px;padding:13px 16px;border-radius:3px;margin:18px 0;display:flex;gap:10px;align-items:flex-start;line-height:1.5;}
.notice svg{width:16px;height:16px;flex:0 0 auto;margin-top:1px;}
/* results */
.result{text-align:center;max-width:620px;margin:0 auto;padding:24px 0;}
.result .ricon{width:84px;height:84px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 26px;}
.result .ricon.ok{background:#e7f6ec;color:#1a7d3c;}
.result .ricon.no{background:#FBEEE6;color:#C2410C;}
.result .ricon svg{width:42px;height:42px;}
.result h1{font-family:var(--display);font-weight:800;font-size:clamp(26px,4vw,38px);letter-spacing:-.02em;margin:0 0 14px;}
.rbox{border:1px solid var(--line);border-radius:3px;padding:20px 24px;margin:26px 0;text-align:left;}
.rbox .rrow{display:flex;justify-content:space-between;padding:8px 0;font-size:14px;border-bottom:1px solid var(--line);}
.rbox .rrow:last-child{border-bottom:0;}
.rbox .rrow span:first-child{color:var(--mist);}
.rbtns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:8px;}
/* dashboard */
.dashbar{background:var(--noir);color:#fff;}
.dashbar .wrap{padding:30px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;}
.dashbar h1{font-family:var(--display);font-weight:800;font-size:26px;margin:0;letter-spacing:-.02em;color:#fff;}
.dashbar .dmeta{color:rgba(255,255,255,.6);font-size:13.5px;margin-top:4px;}
.dpill{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);padding:8px 14px;border-radius:30px;font-size:13px;font-weight:600;}
.dpill .dot{width:8px;height:8px;border-radius:50%;background:#36d07f;}
.dashgrid{display:grid;grid-template-columns:1fr 330px;gap:30px;align-items:start;margin-top:40px;}
@media(max-width:900px){.dashgrid{grid-template-columns:1fr;}}
.dcard{border:1px solid var(--line);border-radius:3px;padding:26px;margin-bottom:22px;}
.dcard h3{font-family:var(--display);font-weight:800;font-size:17px;margin:0 0 16px;letter-spacing:-.01em;}
.checklist{list-style:none;margin:0;padding:0;display:grid;gap:11px;}
.checklist li{display:flex;gap:11px;align-items:center;font-size:14px;color:var(--slate);}
.checklist .ck{width:20px;height:20px;border:2px solid var(--line);border-radius:6px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:800;}
.checklist li.done .ck{background:var(--red);border-color:var(--red);}
.checklist li.done span{color:var(--ink);}
.pbar{height:9px;background:var(--line);border-radius:6px;overflow:hidden;}
.pbar i{display:block;height:100%;background:var(--red);}
.path{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;}
.ptile{border:1px solid var(--line);border-radius:3px;padding:16px;font-size:13.5px;font-weight:600;color:var(--ink);transition:border-color .2s,transform .2s;}
.ptile:hover{border-color:var(--red);transform:translateY(-2px);}
.ptile small{display:block;font-weight:500;color:var(--mist);font-size:12px;margin-top:4px;}
.dlinks{list-style:none;margin:0;padding:0;display:grid;gap:1px;}
.dlinks a{display:flex;justify-content:space-between;padding:12px 0;font-size:14px;color:var(--ink);border-bottom:1px solid var(--line);}
.dlinks a:hover{color:var(--red);}
.login-card{max-width:430px;margin:0 auto;border:1px solid var(--line);border-radius:4px;padding:38px 34px;box-shadow:0 30px 70px -50px rgba(7,5,4,.4);}
.admintable{width:100%;border-collapse:collapse;font-size:13.5px;}
.admintable th,.admintable td{text-align:left;padding:12px 12px;border-bottom:1px solid var(--line);white-space:nowrap;}
.admintable th{font-family:var(--display);font-weight:800;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--mist);}
.admintable tbody tr:hover{background:#FCFBF9;}
.badge-st{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:700;}
.badge-st.active{background:#e7f6ec;color:#1a7d3c;}
.badge-st.failed{background:#FBEEE6;color:#C2410C;}
.badge-st.pending{background:#FFF8E6;color:#7a5b00;}
.adstat{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:28px;}
.adstat .as{border:1px solid var(--line);border-radius:3px;padding:18px 20px;}
.adstat .as b{font-family:var(--display);font-weight:800;font-size:28px;display:block;color:var(--ink);}
.adstat .as span{color:var(--mist);font-size:13px;}

/* ===== professional enrollment wizard ===== */
.wizgrid{display:grid;grid-template-columns:288px 1fr;gap:48px;align-items:start;max-width:1000px;margin:0 auto;}
.wizrail{position:sticky;top:104px;}
.rl-step{display:flex;gap:14px;align-items:flex-start;position:relative;padding-bottom:26px;}
.rl-step:last-child{padding-bottom:0;}
.rl-step:not(:last-child):before{content:"";position:absolute;left:17px;top:34px;bottom:2px;width:2px;background:var(--line);}
.rl-step.done:not(:last-child):before{background:var(--red);}
.rl-num{width:36px;height:36px;border-radius:50%;border:2px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:14px;color:var(--mist);flex:0 0 auto;z-index:1;transition:all .3s cubic-bezier(.22,1,.36,1);}
.rl-step.active .rl-num{border-color:var(--red);color:var(--red);box-shadow:0 0 0 4px rgba(29,78,216,.12);}
.rl-step.done .rl-num{background:var(--red);border-color:var(--red);color:#fff;}
.rl-lab{padding-top:7px;}
.rl-lab b{display:block;font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.2;}
.rl-lab span{font-size:11.5px;color:var(--mist);}
.rl-step.active .rl-lab b{color:var(--red);}
.wiztrust{margin-top:28px;padding:18px 18px 6px;border:1px solid var(--line);border-radius:10px;background:#fff;}
.wiztrust h5{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--mist);margin:0 0 13px;font-weight:700;}
.wiztrust ul{margin:0;padding:0;list-style:none;}
.wiztrust li{display:flex;gap:9px;align-items:flex-start;font-size:12px;color:var(--slate);margin-bottom:12px;line-height:1.45;}
.wiztrust svg{width:15px;height:15px;color:var(--red);flex:0 0 auto;margin-top:1px;}
.wizmain{min-width:0;}
.wizprog{height:5px;background:var(--line);border-radius:5px;overflow:hidden;margin-bottom:10px;}
.wizprog i{display:block;height:100%;background:var(--grad-brand);width:16.6%;transition:width .45s cubic-bezier(.22,1,.36,1);}
.stepmeta{font-size:11.5px;color:var(--mist);font-weight:700;text-transform:uppercase;letter-spacing:.07em;margin:0 0 18px;}
.wizcard{border:1px solid var(--line);border-radius:12px;padding:32px 34px;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.05);}
.wiz-panel h2{font-family:var(--display);font-weight:800;font-size:23px;margin:0 0 6px;letter-spacing:-.01em;}
.wsub{color:var(--slate);font-size:14px;margin:0 0 24px;line-height:1.5;}
.telgrp{display:grid;grid-template-columns:178px 1fr;gap:10px;}
.telgrp select{text-overflow:ellipsis;}
@media(max-width:560px){.telgrp{grid-template-columns:128px 1fr;}.wizcard{padding:24px 20px;}}
@media(max-width:880px){.wizgrid{grid-template-columns:1fr;gap:0;}.wizrail{display:none;}}

/* == polish layer == */
.btn{transition:background .15s,color .15s,border-color .15s,transform .15s,box-shadow .15s;}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(29,78,216,.18);}
.btn:active{transform:translateY(0);box-shadow:0 3px 10px rgba(29,78,216,.15);}
a{text-underline-offset:3px;}
main a:not(.btn):hover{text-decoration-thickness:2px;}
::selection{background:#1D4ED8;color:#fff;}
[id]{scroll-margin-top:92px;}
.feat>*{transition:transform .18s,box-shadow .18s;}
.feat>*:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(15,23,42,.10);}
:focus-visible{outline:3px solid #1D4ED8;outline-offset:2px;border-radius:4px;}
img{height:auto;}
.trust-strip{background:#F3F7FE;border-block:1px solid #E0E9FB;}
.ts-in{display:flex;align-items:center;gap:14px;padding:16px 0;flex-wrap:wrap;}
.ts-dot{width:10px;height:10px;border-radius:50%;background:#1D4ED8;box-shadow:0 0 0 4px #DBE7FC;flex:0 0 auto;}
.ts-in p{margin:0;font-size:15px;color:#334155;flex:1 1 320px;}
.ts-link{font-weight:700;color:#1D4ED8;white-space:nowrap;}
.nf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:34px;}
.nf-card{display:block;background:#fff;border:1px solid #E3E8EF;border-radius:14px;padding:18px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;}
.nf-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,23,42,.10);border-color:#C7D6F5;}
.nf-card strong{display:block;color:#0F172A;margin-bottom:4px;}
.nf-card span{color:#64748B;font-size:13.5px;}
@media (prefers-reduced-motion:reduce){.btn,.feat>*,.nf-card{transition:none;} .btn:hover,.feat>*:hover,.nf-card:hover{transform:none;}}

.rr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:28px;}
.rr-card{display:block;background:#fff;border:1px solid #E3E8EF;border-radius:14px;padding:18px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;}
.rr-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,23,42,.10);border-color:#C7D6F5;}
.rr-card strong{display:block;color:#0F172A;margin-bottom:5px;line-height:1.35;}
.rr-card span{color:#64748B;font-size:13px;line-height:1.5;}
@media (prefers-reduced-motion:reduce){.rr-card{transition:none;}.rr-card:hover{transform:none;}}

/* ---- Certification catalogue (backend-driven; injected server-side into #certifications) ---- */
.cert-cat{grid-template-columns:repeat(3,1fr);}
.cert-card{display:flex;flex-direction:column;gap:14px;}
.cert-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.cert-card-code{align-self:flex-start;font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.06em;color:var(--red);background:rgba(29,78,216,.08);border:1px solid rgba(29,78,216,.18);padding:5px 11px;border-radius:999px;}
.cert-card-status{font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--crimson);background:rgba(193,51,41,.08);border:1px solid rgba(193,51,41,.22);padding:5px 10px;border-radius:999px;white-space:nowrap;}
.cert-card-name{font-family:var(--display);font-weight:700;font-size:20px;line-height:1.25;color:var(--ink);margin:0;}
.cert-card-desc{color:var(--slate);font-size:15px;line-height:1.55;margin:0;}
.cert-card-meta{list-style:none;margin:0;padding:14px 0 0;border-top:1px solid var(--line);display:grid;gap:7px;}
.cert-card-meta li{color:var(--mist);font-size:14px;}
.cert-card-meta li strong{color:var(--ink);font-size:16px;}
.cert-card-cta{margin-top:auto;justify-content:center;font-size:14.5px;padding:13px 22px;}
.cert-card-empty{color:var(--slate);}
@media (max-width:900px){.cert-cat{grid-template-columns:1fr;}}

/* Header nav dropdown submenus — a top item whose label matches a nav group (Membership, Certifications, Resources) reveals its sub-pages */
.nav .nav-item.has-sub{position:relative;display:inline-flex;align-items:center;}
.nav .nav-item.has-sub>a::after{content:"\25BE";margin-left:5px;font-size:11px;opacity:.55;}
.nav .sub-toggle{display:none;}   /* desktop reveals on hover; the caret button is the mobile accordion control */
.nav .submenu{position:absolute;top:100%;left:0;min-width:232px;background:#fff;border:1px solid var(--line,#e2e8f0);border-radius:12px;box-shadow:0 22px 44px -22px rgba(0,0,0,.30);padding:8px 0;display:none;z-index:90;}
.nav .submenu a{display:block;padding:10px 18px;font-size:14.5px;font-weight:500;white-space:nowrap;border:0;color:var(--ink,#0f172a);}
.nav .submenu a:hover{background:var(--paper-2,#f1f5f9);}
.nav .nav-item.has-sub:hover>.submenu,.nav .nav-item.has-sub:focus-within>.submenu{display:block;}
@media (max-width:1024px){
  /* Mobile drawer (burger shows at <=1024px): each parent is a tap-to-expand accordion.
     Label stays a link; the caret toggles. */
  .nav .nav-item.has-sub{display:flex;flex-wrap:wrap;align-items:stretch;}
  .nav .nav-item.has-sub>a{flex:1 1 auto;}
  .nav .nav-item.has-sub>a::after{display:none;}
  .nav .sub-toggle{display:flex;align-items:center;justify-content:center;flex:0 0 58px;background:transparent;
    border:0;border-bottom:1px solid var(--line,#e2e8f0);border-left:1px solid var(--line,#e2e8f0);color:var(--ink,#0f172a);cursor:pointer;padding:0;}
  .nav .sub-toggle::before{content:"\25BE";font-size:14px;transition:transform .2s ease;}
  .nav .nav-item.has-sub.open>.sub-toggle{color:var(--red,#1d4ed8);}
  .nav .nav-item.has-sub.open>.sub-toggle::before{transform:rotate(180deg);}
  /* Collapsed by default; no hover-open on touch — only the 'open' class reveals the panel */
  .nav .submenu{position:static;flex-basis:100%;min-width:0;border:0;border-radius:0;box-shadow:none;padding:0;background:var(--paper-2,#f1f5f9);display:none;}
  .nav .nav-item.has-sub:hover>.submenu,.nav .nav-item.has-sub:focus-within>.submenu{display:none;}
  .nav .nav-item.has-sub.open>.submenu{display:block;}
  html.menu-open .nav .submenu a{padding:13px 30px 13px 46px;font-size:15px;font-weight:500;color:var(--ink,#0f172a);border-bottom:1px solid var(--line,#e2e8f0);white-space:normal;}
  html.menu-open .nav .submenu a:hover,html.menu-open .nav .submenu a:active{background:#e6ecf4;color:var(--red,#1d4ed8);}
}

/* ===== public language switcher (multilingual / i18n) ===== */
.nav .langsw{position:relative;display:inline-flex;align-items:center;}
.nav .langsw>summary{list-style:none;cursor:pointer;font-family:var(--sans);font-weight:500;font-size:15px;display:inline-flex;align-items:center;gap:6px;padding:4px 0;color:inherit;}
.nav .langsw>summary::-webkit-details-marker{display:none;}
.nav .langsw>summary::after{content:"\25BE";margin-left:4px;font-size:11px;opacity:.55;}
.nav .langsw>summary:focus-visible{outline:2px solid var(--red);outline-offset:4px;}
.nav .langsw-globe{font-size:15px;line-height:1;}
.nav .langsw-menu{position:absolute;top:100%;right:0;min-width:158px;background:#fff;border:1px solid var(--line,#e2e8f0);border-radius:12px;box-shadow:0 22px 44px -22px rgba(0,0,0,.30);padding:8px 0;z-index:90;}
.nav .langsw-menu a{display:block;padding:9px 18px;font-size:14.5px;font-weight:500;white-space:nowrap;border:0;color:var(--ink,#0f172a);}
.nav .langsw-menu a::after{display:none;}
.nav .langsw-menu a:hover{background:var(--paper-2,#f1f5f9);}
.nav .langsw-menu a[aria-current="true"]{color:var(--red);font-weight:700;}
[dir="rtl"] .nav .langsw-menu{right:auto;left:0;}
[dir="rtl"] .nav .langsw>summary::after{margin-left:0;margin-right:4px;}
@media (max-width:1024px){
  html.menu-open .nav .langsw{display:block;}
  html.menu-open .nav .langsw>summary{padding:15px 30px;font-size:17px;font-weight:600;border-bottom:1px solid var(--line,#e2e8f0);}
  html.menu-open .nav .langsw-menu{position:static;display:block;min-width:0;border:0;border-radius:0;box-shadow:none;padding:0;background:var(--paper-2,#f1f5f9);}
  html.menu-open .nav .langsw-menu a{padding:12px 30px 12px 46px;font-size:15px;color:var(--ink,#0f172a);border-bottom:1px solid var(--line,#e2e8f0);}
}

/* ===== PCI-LANGBAR: top-bar language button (added for the top-of-page language switcher) ===== */
.promo.has-langbtn{position:relative;z-index:70;}/* z-index, not just position: .hdr below is `position:sticky; z-index:60` WITH a backdrop-filter, so it forms its own stacking context and painted over the language menu — which lives in this bar and could never escape, whatever z-index .pci-langmenu carried. 70 matches the mobile nav overlay and keeps the bar (and its dropdown) above the header. */
.pci-langwrap{position:relative;display:inline-flex;margin-left:14px;vertical-align:middle;}
.promo .pci-langwrap{position:absolute;right:14px;top:50%;transform:translateY(-50%);margin:0;z-index:2;}
/* reserve room on the right so the centred promo text never runs under the absolute language button */
/* Lay the promo bar out as a row instead of reserving space for an absolutely-positioned button.
   The old approach padded .promo-in by a hand-measured 78px (60px under 640) to clear the language
   button — but `@media (max-width:760px){ .wrap{padding:0 20px !important} }` overrides it, so on
   every phone the padding vanished and the announcement ran underneath the button. Even where it
   did apply the number was short: the button plus its offset needs ~77px at mobile size against
   the 60px reserved. A flex row cannot overlap by construction, needs no magic number, and mirrors
   for RTL on its own. */
.promo.has-langbtn{display:flex;align-items:center;}
.promo.has-langbtn .promo-in{flex:1 1 auto;min-width:0;}
/* position stays relative, not static: .pci-langmenu is absolutely positioned against this wrap,
   and letting it resolve against .promo instead would misplace the open menu. */
.promo.has-langbtn .pci-langwrap{position:relative;top:auto;right:auto;transform:none;flex:0 0 auto;margin:0 14px 0 0;}
[dir="rtl"] .promo.has-langbtn .pci-langwrap{margin:0 0 0 14px;}
@media(max-width:640px){
  .promo .pci-langwrap{right:10px;}
  .pci-langbtn{padding:6px 10px;font-size:11px;}   /* >= the 24px WCAG 2.2 minimum target */
}
.pci-langfixed{position:fixed;top:8px;right:10px;z-index:1200;}
.pci-langbtn{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.03em;padding:6px 10px;cursor:pointer;line-height:1;transition:background .18s,border-color .18s;}
.pci-langbtn:hover{background:rgba(255,255,255,.2);border-color:var(--crimson);}
.pci-langbtn svg{width:13px;height:13px;opacity:.9;}
.pci-langcaret{font-size:8px;opacity:.75;}
.pci-langfixed .pci-langbtn{background:var(--ink);border-color:rgba(255,255,255,.25);box-shadow:0 6px 18px -8px rgba(0,0,0,.5);}
.pci-langmenu{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 20px 44px -20px rgba(15,23,42,.4);padding:5px;min-width:150px;display:none;z-index:1250;}
.pci-langmenu.open{display:block;}
.pci-langmenu a{display:block;padding:7px 11px;font-family:var(--sans);font-size:13px;color:var(--ink);text-decoration:none;border-radius:5px;white-space:nowrap;}
.pci-langmenu a:hover{background:#F1F5F9;}
.pci-langmenu a[aria-current="true"]{color:var(--crimson);font-weight:700;}


/* ===== Wordmark logo — BLUE at the top, turns CRIMSON on scroll ===== */
.brand{gap:12px;}
.logo-pci{
  background:none!important;
  color:var(--red)!important;            /* --red is the brand blue #1D4ED8 */
  -webkit-text-fill-color:var(--red)!important;
  transition:color .35s ease,-webkit-text-fill-color .35s ease;
}
.logo-pci .lp-p,.logo-pci .lp-g{background:none!important;color:inherit!important;-webkit-text-fill-color:inherit!important;}
/* scrolled header → wordmark + divider go crimson */
.hdr.pv-scrolled .logo-pci{color:var(--crimson)!important;-webkit-text-fill-color:var(--crimson)!important;}
.hdr.pv-scrolled .logo-bar{background:var(--crimson)!important;}
/* footer: brighter blue so the wordmark reads on the dark navy bar */
footer .logo-pci,.ft-logo .logo-pci{
  background:none!important;color:#6E9BFF!important;-webkit-text-fill-color:#6E9BFF!important;
}
/* keep the footer subtitle legible on dark */
.ft-logo .logo-name{color:#fff;}

/* ===== Premium divider line — a single precise hairline (blue at top, crimson on scroll) ===== */
.logo-bar{
  width:1px!important;height:30px;border-radius:0;flex:0 0 auto;opacity:1;
  background:var(--red)!important;margin:0 15px;transition:background .35s ease;
}
.ft-logo .logo-bar{background:#6E9BFF!important;opacity:.9;}

/* de-clutter the header actions: Donate is now a light text link, not a bordered button */
.hdr-donate{margin-left:2px;}

/* Wide desktop gives the header lockup its full treatment. This block also widens .hdr>.wrap to
   1560 and the nav gap to 24, and the resulting header needs 1527px of room — between 1440 and
   1526 "Enrol now" overflowed the viewport and was clipped with no scrollbar to reach it, and the
   brand butted into the first nav link. Hence 1560, the width this block already assumes.

   .logo-name is deliberately NOT revealed here. It is the legal entity line ("Project Controls
   Institute Global, Inc.") and the tagline is the strapline; showing both stacked the lockup five
   lines deep in a 74px header, at ~9.5px, and neither line could be read. The tagline is the one
   asked for, so it takes the slot; the legal name still appears in the footer lockup, which is
   where the reference build carries it too. Reversing this is one selector. */
@media(min-width:1560px){
  .hdr .logo-bar{display:inline-block!important;}
  .hdr .logo-tagline{display:block!important;}
  .hdr .logo-bar{height:26px;}
  .hdr .brand{gap:10px;}
  /* give the wide header more room so the subtitle + full nav breathe */
  .hdr>.wrap{max-width:1560px;}
  /* 24px here overflowed by 7px at exactly 1560 once the strapline (141px) took the slot the
     shorter institute-name line used to hold, and the carets widened the nav. 16px restores a
     65px gutter at 1560 and still reads as the roomy wide-desktop nav by 1920. */
  .hdr .nav{gap:16px;}
  .hdr .nav a{font-weight:500;}
}
/* a little more red, tastefully */
.btn-red,.btn-primary{--btnbg:var(--crimson);}          /* keep existing where set; harmless token */
.eyebrow{color:var(--crimson);}                          /* section eyebrows in crimson */
.promo .dot,.hero .dot,.hero-in .dot{background:var(--crimson);}
.nav a.on{color:var(--crimson);}                         /* active nav item */
.footer-note a,.ft a:hover{color:var(--crimson);}

/* ===== Multi-certification public pages (Phase 2) ===== */
.cert-catalogue{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;margin-top:8px;}
.phead-lead{font-size:20px;line-height:1.5;color:var(--ink);max-width:60ch;margin:14px 0 0;font-weight:600;}
.phead-sub{font-size:16px;line-height:1.6;color:var(--slate);max-width:62ch;margin:12px 0 0;}
.phead-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;}
.crumbbar-inline{font-size:13px;color:var(--slate);margin-bottom:14px;letter-spacing:.02em;}
.crumbbar-inline a{color:var(--slate);text-decoration:none;}
.crumbbar-inline a:hover{color:var(--crimson);}
.cert-status-pill{display:inline-block;margin:0 0 4px;font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--crimson);background:rgba(193,51,41,.08);border:1px solid rgba(193,51,41,.22);padding:5px 12px;border-radius:999px;}
.sec-alt{background:var(--paper-2,#f1f5f9);}
.komp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:10px;}
.komp{display:flex;align-items:flex-start;gap:12px;border:1.5px solid var(--line);border-radius:12px;background:#fff;padding:16px 18px;}
.komp-n{font-family:var(--display);font-weight:800;font-size:14px;color:var(--crimson);flex:0 0 auto;line-height:1.4;}
.komp-l{font-weight:600;font-size:15.5px;color:var(--ink);line-height:1.35;}
.cert-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:10px;}
.cert-fact{border:1.5px solid var(--line);border-radius:12px;background:#fff;padding:20px 22px;}
.cert-fact-v{display:block;font-family:var(--display);font-weight:800;font-size:26px;color:var(--ink);letter-spacing:-.02em;line-height:1.1;}
.cert-fact-k{display:block;margin-top:6px;font-size:13px;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;font-weight:600;}
.cert-routes{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:12px;max-width:70ch;}
.cert-routes li{padding-left:22px;position:relative;font-size:16px;line-height:1.6;color:#2a2a28;}
.cert-routes li::before{content:"";position:absolute;left:0;top:10px;width:8px;height:8px;border-radius:50%;background:var(--crimson);}
.cert-routes strong{color:var(--ink);}
.cert-final-cta{text-align:center;padding:20px 0;}
.cert-final-cta h2{font-family:var(--display);font-size:clamp(24px,3vw,32px);font-weight:800;color:var(--ink);margin:0 0 20px;}

/* multi-cert catalogue card actions (Learn more + Apply now) */
.cert-card-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;}
.cert-card-actions .btn{flex:1 1 auto;justify-content:center;padding-left:16px;padding-right:16px;}
.cert-card-name a{color:inherit;text-decoration:none;}
.cert-card-name a:hover{color:var(--crimson);}

/* Emblem mark in the lockups + calmer heading rag */
.brand .mk,.ft-logo .mk{width:40px;height:40px;flex:0 0 auto;display:block}
.ft-logo .mk{width:36px;height:36px}
.hblock h1,.hblock h2,.hero h1{text-wrap:balance}

/* The dropdown caret must own its whole box. `.nav a::after` is the hover UNDERLINE
   (position:absolute; bottom:-2px; height:2px; background:crimson) and the has-sub caret rule
   only overrode `content`, so the glyph inherited that absolute 2px bar and rendered as a
   stray dash BELOW each dropdown label instead of inline after it. Nothing could hit the
   selector until the has-sub markup existed (QA issue 2), which is why it was never seen —
   the reference build shows the same artifact. A has-sub link trades the underline for the
   caret; it has a dropdown to signal instead. */
.nav .nav-item.has-sub>a::after{content:"▾";position:static;display:inline;width:auto;height:auto;background:none;margin-left:5px;font-size:11px;opacity:.55;transition:none;}

/* The organisation tagline is the line that should be read next to the mark, so it appears as
   early as the header can carry it: 1400px. Not lower. The strapline is a fixed 141px block (it
   must not shrink, or it re-wraps from three lines to six and outgrows the 74px header), so the
   12-item nav has to fit around it: at 1300 that overran the viewport by 25px and at 1366 it left
   only 25px, which a classic 15px Windows scrollbar all but eats. Below 1400 the mark plus the
   "PCI AI" wordmark carry the brand on their own, exactly as they did before.
   Measured at 1081/1100/1240/1300/1366/1400/1440/1560/1920 against documentElement.clientWidth
   (innerWidth hides the scrollbar): nothing clipped, brand 40px inside a 74px header throughout. */
@media(min-width:1400px){
  .hdr .logo-bar{display:inline-block!important;}
  .hdr .logo-tagline{display:block!important;}
}
/* 1400-1559 carries the strapline AND the roomy-enough nav AND the carets, and measured -7 live at
   1400 / +13 at 1440 — positive only because this browser draws overlay scrollbars; a classic 15px
   Windows scrollbar would have clipped both. One step down in gap and size restores a real gutter
   across the band without pushing the strapline any further up the width ladder. */
@media (min-width:1400px) and (max-width:1559px){
  .nav{gap:10px;}
  .nav a{font-size:13px;}
}

/* The four "has-sub" carets add ~45px to the real nav — they exist only on the DEPLOYED nav, whose
   dropdown children come from migration 0053, so a local database without it measures a header 45px
   narrower than production and hides this entirely. Below 1240 that 45px is the difference between
   a 30px gutter and a clipped CTA (1081 measured -10 live). The caret is decoration: the submenu
   still opens on hover, on :focus-within, and from the .sub-toggle button, so dropping the glyph
   in the narrow bands costs nothing and buys back the whole overflow.
   Placed at the END of the file on purpose: the caret is declared in the last block above with
   the same specificity, so an override earlier in the sheet loses the cascade and silently does
   nothing — which is exactly what the first attempt did. */
@media (max-width:1240px){
  .nav .nav-item.has-sub>a::after{display:none;}
}

/* The skip-to-content link is parked off-screen at left:-9999px and pulled back on :focus. That is
   harmless left-to-right, where the browser will not scroll left of the origin — but in a
   right-to-left document the scroll origin flips, the parked link becomes reachable, and the whole
   page gains 9,999px of horizontal scroll (measured: scrollWidth 11439 against a 1440 viewport on
   /?lang=ar). Park it on the matching side instead; both rules above are overridden, and nothing
   changes for LTR. */
[dir="rtl"] .skip{left:auto;right:-9999px;}
[dir="rtl"] .skip:focus{left:auto;right:0;}

/* The cookie banner is a legal control and it is the first thing a visitor must be able to act on,
   so nothing may cover it. It sits at z-index 9000; the chat bubble injected by chat.js claims
   2147483000 and painted straight over the button row — on a 390px viewport the bubble covered the
   right end of "Essential only", making it partly untappable. Lift the banner above the bubble, and
   hide the bubble entirely while consent is still pending: chat before the visitor has answered the
   cookie question is not something to offer anyway. Both revert the moment .show is removed. */
.ck-banner.show{z-index:2147483600;}
.ck-banner.show ~ .pci-chat-bubble{opacity:0;pointer-events:none;}
