/* WordPress-specific additions: skip link, CF7 states, editor content, pagination. */
.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:4px}
.skip-link:focus{left:16px}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}

/* Contact Form 7 inside the designed form.enq grid */
.wpcf7 form.enq .hidden-fields-container{display:none}
.wpcf7-form-control-wrap{display:block}
.wpcf7-not-valid-tip{color:#B3412F;font-size:.82rem;margin-top:6px}
.field .wpcf7-not-valid{border-color:#B3412F}
.wpcf7 form.enq .wpcf7-response-output{grid-column:1/-1;margin:0;padding:16px 18px;border:1px solid var(--line);border-radius:4px;background:var(--surface);font-size:.95rem}
.wpcf7 form.enq.sent .wpcf7-response-output{border-color:var(--ok)}
.wpcf7 form.enq.invalid .wpcf7-response-output,.wpcf7 form.enq.unaccepted .wpcf7-response-output,.wpcf7 form.enq.failed .wpcf7-response-output{border-color:#B3412F;color:#B3412F}
.wpcf7-spinner{margin:0 0 0 12px;vertical-align:middle}
.wpcf7 form.enq .btn[disabled]{opacity:.6}

/* Editor content (articles, generic pages) */
.prose img{height:auto;border-radius:4px}
.prose figure{margin:1.6em 0}
.prose figcaption{font-size:.85rem;color:var(--muted);margin-top:8px}
.prose .wp-block-image{margin:1.6em 0}
.prose table{width:100%;border-collapse:collapse}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left}

/* Pagination */
.pagination .nav-links{display:flex;gap:8px;flex-wrap:wrap}
.pagination .page-numbers{padding:8px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink)}
.pagination .page-numbers.current{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pc-cover img,.feat-cover img{width:100%;height:100%;object-fit:cover;display:block}

/* Header spans the full viewport width (content sections keep the 1180px wrap). */
header.site .wrap.bar{max-width:none}

/* Header CTA: roomier, gold on hover */
nav.main a.cta{padding:10px 22px;transition:background-color .2s ease,color .2s ease}
nav.main a.cta:hover,nav.main a.cta:focus-visible{background:var(--accent);color:var(--bg)}

/* Header dropdown (menu items with children) */
nav.main a{transition:color .2s ease,background-color .2s ease}
nav.main a.is-current-parent{color:var(--ink);background:var(--accent-soft)}
.nav-dd{position:relative;display:flex;align-items:center}
.dd-caret{display:inline-block;width:6px;height:6px;margin-left:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.7;transition:transform .2s ease}
.nav-sub{position:absolute;top:calc(100% + 10px);left:50%;z-index:30;min-width:210px;display:flex;flex-direction:column;gap:2px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 44px -22px rgba(14,26,43,.45);opacity:0;visibility:hidden;transform:translate(-50%,6px);transition:opacity .18s ease,transform .18s ease,visibility .18s}
.nav-sub::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.nav-dd:hover .nav-sub,.nav-dd:focus-within .nav-sub{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-dd:hover .dd-caret,.nav-dd:focus-within .dd-caret{transform:translateY(1px) rotate(225deg)}
nav.main .nav-sub a{border-radius:9px;padding:10px 14px}
nav.main .nav-sub a:hover{background:var(--accent-soft);color:var(--ink)}
@media (max-width:1140px){
  .nav-dd{flex-direction:column;align-items:stretch}
  .dd-caret{display:none}
  .nav-sub{position:static;min-width:0;padding:0 0 4px 16px;background:none;border:0;box-shadow:none;opacity:1;visibility:visible;transform:none}
  .nav-sub::before{display:none}
  nav.main .nav-sub a{font-size:.88rem;padding:10px 14px}
}

/* Clarity Corner: Series / Articles / Stories as links */
.filters a{font:500 .88rem var(--f-body);background:transparent;border:1px solid var(--line);color:var(--muted);padding:7px 14px;border-radius:999px;text-decoration:none;transition:color .2s,border-color .2s}
.filters a:hover{color:var(--ink);border-color:var(--ink)}
.filters a[aria-current="page"]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.cia-areas a{font:500 .85rem var(--f-body);background:transparent;border:1px solid var(--line);color:var(--muted);padding:6px 13px;border-radius:999px;text-decoration:none}
.cia-areas a:hover{color:var(--ink)}
.cia-areas a[aria-current="page"]{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.blog-head .shelf-thesis{margin:0}
.shelf-head h3 a{color:inherit;text-decoration:none}
.shelf-head h3 a:hover{color:var(--accent)}
.side-box h4 a{color:inherit;text-decoration:none}

/* Home hero: animation bleeds to the right edge, fades out behind the copy */
@media (min-width:861px){
  .hero{isolation:isolate}
  .hero-grid>.stack{position:relative;z-index:1}
  .hero canvas{position:absolute;top:0;right:0;width:72%;height:100%;z-index:0;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 22%,#000 46%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 22%,#000 46%)}
  .hero .legend{position:absolute;left:56%;right:max(40px,env(safe-area-inset-right,0px));bottom:clamp(20px,3vw,36px);margin:0;z-index:1}
}

/* One vertical rhythm for every content section */
:root{--section-pad:clamp(56px,9vw,112px)}
main .band,main .ag,main .cx-framed,main .cs{padding-top:var(--section-pad)!important;padding-bottom:var(--section-pad)!important}
main .cia-band{padding-block:clamp(16px,3vw,32px)!important}
@media (max-width:860px){main .cs{padding-top:0!important}}

/* Light / dark switch */
header.site .brand{margin-right:auto}
.theme-btn{display:inline-grid;place-items:center;width:38px;height:38px;flex:0 0 38px;margin-left:10px;padding:0;background:none;border:1px solid var(--line);border-radius:50%;color:var(--ink);cursor:pointer;transition:border-color .2s,color .2s}
.theme-btn:hover,.theme-btn:focus-visible{border-color:var(--accent);color:var(--accent)}
.theme-btn svg{width:18px;height:18px;grid-area:1/1}
.theme-btn .i-sun{display:none}
:root[data-theme="dark"] .theme-btn .i-sun{display:block}
:root[data-theme="dark"] .theme-btn .i-moon{display:none}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .theme-btn .i-sun{display:block}
  :root:not([data-theme="light"]) .theme-btn .i-moon{display:none}
}
@media (max-width:1140px){
  .theme-btn{order:1;margin-left:0}
  .menu-btn{order:2}
}
@media (max-width:560px){
  header.site .bar{gap:8px}
  .theme-btn{width:34px;height:34px;flex-basis:34px}
  .menu-btn{padding:7px 12px}
}

/* ===================== Motion ===================== */
/* Hero/banner copy pre-hidden only while animations.js takes over (see inc/setup.php). */
.cc-anim .hero .eyebrow,.cc-anim .hero h1,.cc-anim .hero .htag,.cc-anim .hero .pillars,.cc-anim .hero .lede,.cc-anim .hero .btns>*,.cc-anim .hero canvas,.cc-anim .hero .legend,
.cc-anim .phead .crumbs,.cc-anim .phead .eyebrow,.cc-anim .phead h1,.cc-anim .phead .sub,.cc-anim .phead .lede,.cc-anim .phead .creds-line,.cc-anim .phead .btns,.cc-anim .phead .filters,.cc-anim .phead .bh-img img{opacity:0}
/* GSAP drives the page entrance now; skip the old whole-page rise. */
.page{animation:none}

/* Six-step path: progress line + steps activate as you scroll */
.track .track-progress{position:absolute;left:calc(100%/12);right:calc(100%/12);top:calc(34px + 17px);height:2px;background:var(--deep-accent);transform-origin:left center;transform:scaleX(var(--progress,0));z-index:0;pointer-events:none}
.track.is-animated::after{display:none}
.track.is-animated li{opacity:.45;transition:opacity .45s ease}
.track.is-animated li .dot{transition:background-color .45s ease,border-color .45s ease,color .45s ease}
.track.is-animated li.is-on{opacity:1}
.track.is-animated li.is-on .dot{border-color:var(--deep-accent);color:var(--deep-accent)}
@media (max-width:860px){
  .track .track-progress{left:17px;right:auto;top:20px;bottom:20px;width:2px;height:auto;transform-origin:center top;transform:scaleY(var(--progress,0))}
}
.bracket span::after{content:attr(data-label)}

/* Micro-interactions (CSS only) */
.btn .arrow,.go .arrow,.cs-ar,.cp-go span,.cia-go,.sc-go,.readmore .arrow,.tl-more-a,.minirow .arrow,.bv-go,.pa-fwbox a i,.rn-next .pc-k{display:inline-block;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.btn:hover .arrow,.aud a:hover .go .arrow,.cs-t:hover .cs-ar,.cp-card:hover .cp-go span,.cia-link:hover .cia-go,.scard:hover .sc-go,.feat:hover .readmore .arrow,.tl-more:hover .tl-more-a,.minirow a:hover .arrow,.bv-card:hover .bv-go,.pa-fwbox a:hover i,.rn-next:hover .pc-k{transform:translateX(5px)}
.pc-cover svg,.pc-cover img,.feat-cover svg,.feat-cover img{transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.pcard:hover .pc-cover svg,.pcard:hover .pc-cover img,.feat:hover .feat-cover svg,.feat:hover .feat-cover img{transform:scale(1.025)}
.prose a,.fx-copy a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .35s ease}
.prose a:hover,.fx-copy a:hover{background-size:100% 1px}

/* Mobile menu: short slide/fade when opened */
@keyframes ccMenuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (max-width:1140px){nav.main.open{animation:ccMenuIn .22s ease-out}}

/* Dark sections: very slow, low-opacity light shift */
@keyframes ccAmbient{from{transform:translate3d(-6%,-4%,0)}to{transform:translate3d(6%,4%,0)}}
main .band.deep{position:relative;isolation:isolate;overflow-x:clip}
main .band.deep::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(38% 55% at 18% 22%,color-mix(in srgb,var(--deep-accent) 7%,transparent),transparent 72%),radial-gradient(30% 45% at 85% 80%,color-mix(in srgb,var(--deep-accent) 5%,transparent),transparent 70%);animation:ccAmbient 26s ease-in-out infinite alternate}

@media (prefers-reduced-motion:reduce){
  main .band.deep::before,nav.main.open{animation:none}
  .btn .arrow,.go .arrow,.cs-ar,.cp-go span,.cia-go,.sc-go,.readmore .arrow,.tl-more-a,.minirow .arrow,.bv-go,.pa-fwbox a i,.pc-cover svg,.pc-cover img,.feat-cover svg,.feat-cover img,.nav-sub,.track li{transition:none}
}

/* Footer spans the full viewport width, matching the header. */
footer > .wrap{max-width:none}
