/* ===== application pages: shared presentation (app) ===== */
body:has(.ap-page){counter-reset:apch;background:#FBF8F3}
body:has(.ap-page) .abx{background:#FBF8F3}
body:has(.ap-page) .abx.bg-camel{background:#F1E9DE}
body:has(.ap-page) .abx.bg-dark{background:#151311}

/* chapter headings: numbered eyebrow + hairline */
body:has(.ap-page) .abx[data-ch]{counter-increment:apch}
body:has(.ap-page) .abx[data-ch] .ax-eyebrow{width:100%;gap:14px;margin-bottom:22px;color:#8a8279;font-size:12px;letter-spacing:.16em}
body:has(.ap-page) .abx[data-ch] .ax-eyebrow::before{content:counter(apch,decimal-leading-zero);width:auto;height:auto;background:none;color:var(--e-global-color-accent);font-family:var(--e-global-typography-primary-font-family),sans-serif;font-size:22px;font-weight:700;letter-spacing:0;line-height:1}
body:has(.ap-page) .abx[data-ch] .ax-eyebrow::after{content:'';flex:1 1 auto;height:1px;min-width:40px;background:currentColor;opacity:.35;transform-origin:0 50%;transform:scaleX(var(--ln,1));transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
body:has(.ap-page) .abx.bg-dark[data-ch] .ax-eyebrow{color:rgba(255,255,255,.55)}
body:has(.ap-page) .abx[data-ch] .ax-h2{font-size:clamp(36px,4.2vw,56px);line-height:1}

/* ---------- hero ---------- */
body:has(.ap-page) #ap-hero{background:#F1E9DE}
#ap-hero{padding:clamp(24px,3vw,40px) 0 0;color:var(--e-global-color-primary)}
#ap-hero .ap-top{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin-bottom:clamp(32px,5vw,72px)}
#ap-hero .ap-crumb{display:flex;gap:10px;color:#8a8279;font-family:var(--e-global-typography-t0small-font-family),sans-serif;font-size:14px}
#ap-hero .ap-crumb a{all:unset;cursor:pointer;color:#8a8279}
#ap-hero .ap-crumb a:hover{color:var(--e-global-color-primary)}
#ap-hero .ap-idx{display:flex;align-items:center;gap:10px;color:var(--e-global-color-primary);font-family:var(--e-global-typography-t0eyeb-font-family),sans-serif;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
#ap-hero .ap-idx b{color:var(--e-global-color-accent)}
#ap-hero .ap-idx a{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid rgba(17,17,17,.2);border-radius:50%;transition:background .25s ease,color .25s ease,border-color .25s ease}
#ap-hero .ap-idx a:hover{background:var(--e-global-color-primary);border-color:var(--e-global-color-primary);color:#fff}
#ap-hero .ap-idx svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#ap-hero .ap-hd{position:relative;display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:28px clamp(32px,5vw,80px);align-items:end}
#ap-hero .ap-no{position:absolute;right:-1%;top:-.32em;z-index:0;color:transparent;-webkit-text-stroke:1px rgba(168,100,58,.22);font-family:var(--e-global-typography-primary-font-family),sans-serif;font-size:clamp(150px,19vw,300px);font-weight:700;line-height:1;pointer-events:none;user-select:none}
#ap-hero .ap-kick{position:relative;z-index:1;display:flex;align-items:center;gap:12px;margin-bottom:18px;color:var(--e-global-color-accent);font-family:var(--e-global-typography-t0eyeb-font-family),sans-serif;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
#ap-hero .ap-kick::before{content:'';width:34px;height:1px;background:currentColor}
#ap-hero h1{position:relative;z-index:1;margin:0;color:var(--e-global-color-primary);font-family:var(--e-global-typography-primary-font-family),sans-serif;font-size:clamp(54px,8.4vw,140px);font-weight:700;line-height:.9;letter-spacing:-.005em;text-transform:uppercase}
#ap-hero h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.04em}
#ap-hero h1 .w>span{display:inline-block}
#ap-hero .ap-side{position:relative;z-index:1;padding-bottom:10px}
#ap-hero .ap-side p{margin:0 0 26px;color:var(--e-global-color-text);font-family:var(--e-global-typography-text-font-family),sans-serif;font-size:18px;line-height:1.6}
#ap-hero .ap-tag{display:flex;align-items:center;gap:10px;margin-top:18px;color:#6b645c;font-family:var(--e-global-typography-t0small-font-family),sans-serif;font-size:14px}
#ap-hero .ap-tag i{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--e-global-color-accent)}
#ap-hero .ap-fr{position:relative;height:min(74vh,760px);min-height:380px;margin-top:clamp(36px,5vw,64px)}
#ap-hero .ap-im{position:absolute;inset:0;overflow:hidden;background:#d9cfc2;clip-path:inset(0 var(--px) 0 var(--px) round 16px)}
#ap-hero .ap-im img{position:absolute;left:0;top:-12%;display:block;width:100%;height:124%;max-width:none;object-fit:cover}
#ap-hero .ap-im::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(17,17,17,.45) 0%,rgba(17,17,17,0) 40%)}
#ap-hero .ap-chips{position:absolute;z-index:2;left:calc(var(--px) + 28px);bottom:28px;display:flex;flex-wrap:wrap;gap:8px}
#ap-hero .ap-chips span{padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--e-global-color-primary);font-family:var(--e-global-typography-t0eyeb-font-family),sans-serif;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;backdrop-filter:blur(6px)}

/* ---------- chapter rail ---------- */
#ap-rail{position:fixed;z-index:40;left:14px;top:50%;display:flex;flex-direction:column;gap:4px;color:#fff;mix-blend-mode:difference;transform:translate(-12px,-50%);opacity:0;visibility:hidden;transition:opacity .4s ease,transform .4s ease,visibility .4s}
#ap-rail.on{opacity:1;visibility:visible;transform:translate(0,-50%)}
#ap-rail a{all:unset;cursor:pointer;position:relative;display:flex;align-items:center;gap:7px;height:24px;font-family:var(--e-global-typography-primary-font-family),sans-serif;font-size:12px;font-weight:700;opacity:.45;transition:opacity .3s ease}
#ap-rail a::before{content:'';display:block;width:8px;height:1px;background:currentColor;transition:width .4s cubic-bezier(.2,.7,.2,1)}
#ap-rail a span{font-family:var(--e-global-typography-t0eyeb-font-family),sans-serif;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;opacity:0;transform:translateX(-6px);transition:opacity .3s ease,transform .3s ease}
#ap-rail a.on,#ap-rail a:hover{opacity:1}
#ap-rail a.on::before{width:18px}
#ap-rail a span{position:absolute;left:100%;margin-left:10px;padding:5px 9px;border-radius:6px;background:#fff;color:#111;mix-blend-mode:normal}
#ap-rail a:hover span{opacity:1;transform:none}
#ap-rail a:focus-visible{outline:1px solid currentColor;outline-offset:4px}

/* ---------- horizontal material strip (desktop) ---------- */
@media (min-width:1101px){
body:has(.ap-page) .abx[data-hs]{display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - var(--wp-admin--admin-bar--height,0px));padding:96px 0 40px;overflow:hidden}
body:has(.ap-page) .abx[data-hs] .ax-head{margin-bottom:32px}
body:has(.ap-page) .abx[data-hs] ul{display:flex!important;gap:28px;width:max-content;will-change:transform}
body:has(.ap-page) .abx[data-hs] ul>li{width:min(560px,40vw,calc((100vh - 430px) * 1.6));flex:0 0 auto}
body:has(.ap-page) .abx[data-hs] ul>li [class$='-ci']{aspect-ratio:16/9}
body:has(.ap-page) .abx[data-hs] ul>li img{height:124%;top:-12%}
body:has(.ap-page) .abx[data-hs] .ap-hsbar{position:relative;height:2px;margin-top:40px;background:rgba(17,17,17,.12)}
body:has(.ap-page) .abx[data-hs] .ap-hsbar i{position:absolute;inset:0;background:var(--e-global-color-accent);transform:scaleX(0);transform-origin:0 50%}
}

/* ---------- editorial FAQ ---------- */
body:has(.ap-page) #mf-faq .mf-fl{gap:0;border-top:1px solid rgba(17,17,17,.16)}
body:has(.ap-page) #mf-faq details{border-radius:0;background:transparent;border-bottom:1px solid rgba(17,17,17,.16);box-shadow:none!important}
body:has(.ap-page) #mf-faq summary{padding:28px 0;font-size:clamp(20px,1.8vw,26px)}
body:has(.ap-page) #mf-faq summary:hover{color:var(--e-global-color-accent)}
body:has(.ap-page) #mf-faq .mf-a{padding:0 64px 30px 0;font-size:17px}
body:has(.ap-page) #mf-faq .mf-pm{background:transparent;border:1px solid rgba(17,17,17,.25)}
body:has(.ap-page) #mf-faq details[open] .mf-pm{border-color:var(--e-global-color-accent)}
@media (min-width:901px){body:has(.ap-page) #mf-faq .mf-fg>div:first-child{position:sticky;top:120px}}

/* ---------- next application ---------- */
body:has(.ap-page) #ap-next{background:#151311}
#ap-next{padding:clamp(72px,8vw,120px) 0;color:#fff}
#ap-next a.ap-nx{all:unset;cursor:pointer;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.16)}
#ap-next .ap-nk{grid-column:1/-1;display:flex;align-items:center;gap:12px;color:#e0a679;font-family:var(--e-global-typography-t0eyeb-font-family),sans-serif;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
#ap-next .ap-nk b{font-family:var(--e-global-typography-primary-font-family),sans-serif;font-size:18px}
#ap-next .ap-nt{position:relative;z-index:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.7);font-family:var(--e-global-typography-primary-font-family),sans-serif;font-size:clamp(52px,8vw,128px);font-weight:700;line-height:.92;text-transform:uppercase;background:linear-gradient(90deg,#fff 50%,transparent 50%) right/200% 100% no-repeat;-webkit-background-clip:text;background-clip:text;transition:background-position .7s cubic-bezier(.2,.7,.2,1)}
#ap-next a.ap-nx:hover .ap-nt,#ap-next a.ap-nx:focus-visible .ap-nt{background-position:left}
#ap-next .ap-na{display:flex;align-items:center;justify-content:center;width:88px;height:88px;border-radius:50%;background:var(--e-global-color-accent);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
#ap-next .ap-na svg{width:30px;height:30px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#ap-next a.ap-nx:hover .ap-na{transform:rotate(-45deg) scale(1.06)}
#ap-next .ap-ni{position:absolute;z-index:0;right:140px;bottom:20px;width:min(300px,26vw);aspect-ratio:4/5;border-radius:12px;overflow:hidden;opacity:0;transform:translateY(30px) rotate(-4deg) scale(.9);transition:opacity .5s ease,transform .7s cubic-bezier(.2,.7,.2,1);pointer-events:none}
#ap-next .ap-ni img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover}
#ap-next a.ap-nx:hover .ap-ni{opacity:1;transform:translateY(0) rotate(-4deg) scale(1)}
#ap-next ol.ap-all{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 24px}
#ap-next ol.ap-all li{margin:0;list-style:none}
#ap-next ol.ap-all a{all:unset;cursor:pointer;display:flex;align-items:baseline;gap:12px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.6);font-family:var(--e-global-typography-t0h3-font-family),sans-serif;font-size:18px;font-weight:600;text-transform:uppercase;transition:color .25s ease}
#ap-next ol.ap-all a b{color:rgba(255,255,255,.35);font-family:var(--e-global-typography-primary-font-family),sans-serif;font-size:13px}
#ap-next ol.ap-all a:hover{color:#fff}
#ap-next ol.ap-all a.on{color:#e0a679}
#ap-next ol.ap-all a.on b{color:#e0a679}
#ap-next .ap-prev{display:inline-flex;align-items:center;gap:10px;margin-top:28px;color:rgba(255,255,255,.6);font-family:var(--e-global-typography-t0eyeb-font-family),sans-serif;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
#ap-next .ap-prev:hover{color:#fff}

/* ---------- responsive ---------- */
@media (max-width:1279px){#ap-rail{display:none}}
@media (max-width:1100px){
#ap-hero .ap-hd{grid-template-columns:minmax(0,1fr)}
#ap-hero .ap-fr{height:min(62vh,560px)}
#ap-rail{display:none}
#ap-next ol.ap-all{grid-template-columns:repeat(2,minmax(0,1fr))}
#ap-next .ap-ni{display:none}
}
@media (max-width:600px){
#ap-hero .ap-im{clip-path:inset(0 14px 0 14px round 12px)}
#ap-hero .ap-chips{left:30px;bottom:20px}
#ap-hero .ap-chips span{padding:8px 12px;font-size:11px}
#ap-next .ap-na{width:60px;height:60px}
#ap-next ol.ap-all{grid-template-columns:minmax(0,1fr)}
body:has(.ap-page) #mf-faq .mf-a{padding-right:0}
}
@media (prefers-reduced-motion:reduce){#ap-next .ap-nt{transition:none}}
