/* CommerceBuilder360 R5 — reusable responsive, accessible site chrome.
   Source: first-party design system. Inherits typography and brand tokens from R4.
*/
:root{
 --cx-ink:#182532;--cx-muted:#5d6a74;--cx-line:#dce1e4;--cx-panel:#fff;
 --cx-nav-surface:#fbfbfa;--cx-focus:#f59f38;
}
.premium-r4 .cx-container{width:min(100%,calc(1360px + (var(--gut) * 2)));padding-inline:var(--gut);margin-inline:auto}
.premium-r4 .cx-announcement{background:#102236;color:white;font-size:.76rem;font-weight:660;letter-spacing:.02em}
.cx-announcement>.cx-container{display:flex;gap:10px;align-items:center;min-height:36px;padding-block:6px}
.cx-announcement-dot{width:6px;height:6px;border-radius:50%;background:#f0b58d;flex:0 0 6px}
.cx-utility{background:#f3f5f6;color:#40536a;border-bottom:1px solid #e5e9ec}
.cx-utility-content{display:flex;justify-content:space-between;align-items:center;min-height:34px;gap:18px;font-size:.65rem;font-weight:750;letter-spacing:.11em;text-transform:uppercase}
.cx-utility-right{display:flex;align-items:center;gap:16px}
.cx-utility a{padding:8px 0;white-space:nowrap}
.cx-utility a:hover{text-decoration:underline}
.cx-header{position:sticky;top:0;z-index:150;background:rgba(255,255,255,.98);color:var(--cx-ink);border-bottom:1px solid rgba(28,44,56,.13)}
.cx-header-content{display:flex;align-items:center;gap:clamp(20px,3vw,48px);min-height:88px}
.cx-brand{display:inline-flex;align-items:center;gap:12px;max-width:320px;flex:0 1 auto;min-width:0}
.cx-brand-emblem{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid #c9d1d7;font-size:1.15rem;font-weight:730;letter-spacing:-.06em}
.cx-brand-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.cx-brand-text strong{font-size:clamp(1.23rem,1.6vw,1.62rem);line-height:1;letter-spacing:-.07em;font-weight:740;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cx-brand-text>span{font-size:.58rem;line-height:1.3;text-transform:uppercase;letter-spacing:.12em;font-weight:760;color:var(--cx-muted);white-space:nowrap}
.cx-desktop-nav{display:flex;gap:clamp(6px,1vw,15px);align-items:center;justify-content:center;margin-left:auto}
.cx-desktop-nav a,.cx-menu-toggle{display:inline-flex;align-items:center;gap:6px;justify-content:center;min-height:48px;border:0;background:transparent;padding:11px 12px;color:inherit;font-size:.79rem;font-weight:740;line-height:1.35;letter-spacing:-.008em;white-space:nowrap;cursor:pointer;border-radius:3px;transition:background .18s}
.cx-desktop-nav a:hover,.cx-menu-toggle:hover,.cx-menu-toggle[aria-expanded=true]{background:#eef1f2}
.cx-desktop-nav a[aria-current=page]{box-shadow:inset 0 -2px currentColor}
.cx-menu-toggle svg{transition:transform .2s}
.cx-menu-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.cx-header-actions{display:flex;gap:12px;align-items:center}
.cx-contact-action{display:inline-flex;align-items:center;justify-content:center;gap:15px;background:#192b3a;color:#fff!important;min-height:47px;padding:11px 17px;font-size:.76rem;font-weight:760;letter-spacing:.01em;white-space:nowrap;border:1px solid #192b3a}
.cx-contact-action:hover{background:#30445b;border-color:#30445b}
.cx-contact-action span{font-size:1.05rem}
.cx-mobile-trigger{display:none}
.premium-r4 .cx-header a:focus-visible,.premium-r4 .cx-header button:focus-visible,.premium-r4 .cx-footer a:focus-visible{outline:3px solid var(--cx-focus);outline-offset:3px;box-shadow:0 0 0 1px #192b3a}
.cx-mega-panel{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid #d8dfe5;box-shadow:0 22px 35px rgba(15,27,44,.13);z-index:100;color:var(--cx-ink)}
.cx-mega-content{display:grid;grid-template-columns:minmax(220px,1.2fr) repeat(3,minmax(160px,1fr));gap:clamp(20px,3.5vw,56px);padding-top:41px;padding-bottom:52px}
.cx-mega-title{padding-right:30px;border-right:1px solid #e2e6e9}
.cx-mega-title p{font-size:.66rem;font-weight:800;letter-spacing:.15em;color:#607182;margin:0 0 19px}
.cx-mega-title strong{display:block;font:400 clamp(2rem,3vw,3.3rem)/1.03 var(--serif);color:var(--cx-ink);letter-spacing:-.035em}
.cx-mega-title>span{display:block;margin-top:19px;font-size:.88rem;color:#627282;line-height:1.7}
.cx-mega-group h2{font-size:1rem;margin:0 0 5px;letter-spacing:-.02em;font-weight:760}
.cx-mega-group>p{font-size:.77rem;line-height:1.5;color:#526271;margin:0 0 16px}
.cx-mega-group a{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:43px;font-weight:650;font-size:.88rem;border-bottom:1px solid #e8ebee;line-height:1.3}
.cx-mega-group a span:last-child{color:#6a7886}
.cx-mega-group a:hover{color:#244e67;background:#f5f7f8}
.cx-drawer-backdrop{position:fixed;inset:0;background:rgba(8,18,28,.54);z-index:200}
.cx-mobile-drawer{position:fixed;top:0;right:0;bottom:0;width:min(430px,100vw);background:#fff;color:#172634;z-index:210;box-shadow:-20px 0 60px rgba(3,15,28,.25);display:flex;flex-direction:column;height:100dvh}
.cx-drawer-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #dce3e7;gap:15px}
.cx-drawer-brand{font-weight:770;letter-spacing:-.06em;font-size:1.45rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.cx-drawer-brand>span{color:#b37652}
.cx-drawer-close{background:#f1f4f6;color:#172533;display:grid;place-items:center;border:0;width:46px;height:46px;flex:0 0 46px;font-size:2rem;line-height:1;cursor:pointer}
.cx-drawer-scroll{overflow-y:auto;overscroll-behavior:contain;padding:22px 24px 35px;flex:1}
.cx-drawer-overline{font-size:.66rem;font-weight:790;letter-spacing:.16em;color:#6c7a86;margin:0 0 23px;text-transform:uppercase}
.cx-drawer-scroll nav{display:grid}
.cx-drawer-scroll nav a{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:56px;padding:14px 0;border-bottom:1px solid #e1e7eb;font-size:1.12rem;font-weight:670;letter-spacing:-.025em}
.cx-drawer-scroll nav a span:last-child{color:#60758a;font-size:1.05rem}
.cx-drawer-scroll nav a[aria-current=page]{color:#245f78}
.cx-drawer-bottom{margin-top:40px;padding-top:24px;border-top:1px solid #cbd6dc}
.cx-drawer-bottom p{font-size:.93rem;color:#5a6b78;line-height:1.72}
.cx-drawer-bottom a{display:flex;justify-content:space-between;align-items:center;background:#182c3b;color:white!important;margin-top:22px;padding:17px 19px;font-weight:750;font-size:.88rem}
/* Premium footer is editorial, responsive and purposeful. */
.cx-footer{background:#101d28;color:#f1f4f5;position:relative;isolation:isolate}
.cx-footer-cta{padding:clamp(62px,8vw,130px) 0;position:relative;overflow:hidden;background:#172b36;border-bottom:1px solid #ffffff25}
.cx-footer-cta::after{content:"";position:absolute;right:-13%;top:-95%;height:190%;width:61%;border-radius:50%;border:1px solid #ffffff17;box-shadow:0 0 0 75px #ffffff08,0 0 0 170px #ffffff05;pointer-events:none}
.cx-footer-cta-inner{display:flex;align-items:end;justify-content:space-between;gap:clamp(35px,5vw,95px);position:relative;z-index:1}
.cx-footer-cta-inner>div{max-width:850px}
.cx-overline{font-size:.69rem!important;text-transform:uppercase;letter-spacing:.17em;font-weight:760;color:#bac7cb!important;margin:0 0 24px}
.cx-footer-cta h2{font:400 clamp(3.2rem,5.5vw,7.5rem)/.98 var(--serif);letter-spacing:-.044em;max-width:890px;color:#fff;margin:0 0 27px}
.cx-footer-cta p:not(.cx-overline){max-width:590px;font-size:1rem;line-height:1.75;color:#d4dde1;margin:0}
.cx-footer-cta-link{display:inline-flex;justify-content:space-between;align-items:center;gap:25px;white-space:nowrap;padding:16px 20px;background:#fff;color:#182b37!important;font-size:.88rem;font-weight:770;min-height:54px}
.cx-footer-cta-link:hover{background:#e1e8ea}
.cx-footer-content{display:grid;grid-template-columns:minmax(210px,1.5fr) repeat(3,minmax(110px,.72fr)) minmax(175px,.9fr);gap:clamp(24px,3.2vw,60px);padding-top:clamp(65px,7vw,100px);padding-bottom:clamp(65px,7vw,105px)}
.cx-footer-identity{padding-right:25px}
.cx-footer-logo{font-size:clamp(1.9rem,2.4vw,3rem);font-weight:690;letter-spacing:-.07em;line-height:1.1;display:inline-block;margin-bottom:27px;word-break:break-word}
.cx-footer-logo span{color:#d1ae8f}
.cx-footer-identity>p{font-size:.88rem;line-height:1.85;color:#adb9bf;max-width:310px;margin:0 0 28px}
.cx-footer-category{display:inline-block;border:1px solid #677b8477;padding:8px 12px;color:#c0cdd0;font-size:.6rem;letter-spacing:.13em;font-weight:760;line-height:1.4}
.cx-footer-links,.cx-footer-reach{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.cx-footer-links h3,.cx-footer-reach h3{font-size:.8rem;font-weight:750;color:#fff;letter-spacing:.005em;margin:3px 0 10px;line-height:1.4}
.cx-footer-links a{font-size:.85rem;line-height:1.45;color:#bfccd2;min-height:30px;display:inline-flex;align-items:center;word-break:break-word}
.cx-footer-links a:hover,.cx-footer-legal a:hover{text-decoration:underline;color:#fff}
.cx-footer-reach p{font-size:.85rem;line-height:1.8;color:#bfccd2;margin:0 0 5px}
.cx-footer-reach a{border-bottom:1px solid #b9cad0;padding:6px 0;font-size:.85rem;font-weight:740;display:inline-flex;align-items:center;gap:16px}
.cx-footer-bottom{min-height:78px;padding-top:24px;padding-bottom:27px;border-top:1px solid #ffffff24;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:.69rem;color:#adbfc7;letter-spacing:.01em}
.cx-footer-bottom>span{max-width:280px}
.cx-footer-legal{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.cx-footer-legal a{color:#d5e0e3}
.cx-back-to-top{display:flex;align-items:center;gap:8px;font-size:.73rem;font-weight:750;color:#e9f1f2!important;white-space:nowrap;padding:8px 0}
.cx-back-to-top span{font-size:1.2rem}
/* Sector-specific header/footer art direction */
.preset-atelier .cx-header,.preset-escape .cx-header,.preset-spaces .cx-header{background:#fdfbf7;border-color:#e2ded7}
.preset-atelier .cx-brand-emblem,.preset-escape .cx-brand-emblem,.preset-spaces .cx-brand-emblem{display:none}
.preset-atelier .cx-brand-text strong,.preset-escape .cx-brand-text strong,.preset-spaces .cx-brand-text strong{font:400 clamp(1.75rem,2.2vw,2.45rem)/1 var(--serif);letter-spacing:-.04em}
.preset-atelier .cx-footer-cta,.preset-escape .cx-footer-cta,.preset-spaces .cx-footer-cta{background:#272c28}
.preset-atelier .cx-footer,.preset-escape .cx-footer,.preset-spaces .cx-footer{background:#1d2421}
.preset-capital .cx-header,.preset-industrial .cx-header,.preset-studio .cx-header{background:#122235;color:#f7fafc;border-color:#ffffff25}
.preset-capital .cx-brand-emblem,.preset-industrial .cx-brand-emblem,.preset-studio .cx-brand-emblem{border-color:#c5d4df5c}
.preset-capital .cx-brand-text>span,.preset-industrial .cx-brand-text>span,.preset-studio .cx-brand-text>span{color:#c6d1d9}
.preset-capital .cx-desktop-nav a:hover,.preset-capital .cx-menu-toggle:hover,.preset-industrial .cx-desktop-nav a:hover,.preset-studio .cx-desktop-nav a:hover,.preset-capital .cx-menu-toggle[aria-expanded=true]{background:#ffffff24}
.preset-capital .cx-contact-action,.preset-industrial .cx-contact-action,.preset-studio .cx-contact-action{background:#fff;color:#1a2a38!important;border-color:#fff}
.preset-civic .cx-header{background:#123a6d;color:white;border:0}
.preset-civic .cx-brand-text>span{color:#cfdded}
.preset-civic .cx-brand-emblem{border-color:#cddffa}
.preset-civic .cx-contact-action{background:#fff;color:#123a6d!important;border-color:#fff}
.preset-civic .cx-menu-toggle:hover,.preset-civic .cx-desktop-nav a:hover{background:#ffffff22}
.preset-civic .cx-footer-cta{background:#18447a}
.preset-civic .cx-footer{background:#09284e}
.preset-care .cx-footer-cta,.preset-academic .cx-footer-cta,.preset-impact .cx-footer-cta{background:#174136}
.preset-care .cx-footer,.preset-academic .cx-footer,.preset-impact .cx-footer{background:#122a27}
@media(max-width:1360px){
 .cx-desktop-nav{gap:0}
 .cx-desktop-nav a,.cx-menu-toggle{padding-inline:9px}
 .cx-header-content{gap:16px}
 .cx-brand{max-width:270px}
}
@media(max-width:1170px){
 .cx-desktop-nav,.cx-contact-action{display:none}
 .cx-header-content{min-height:74px;gap:16px}
 .cx-brand{max-width:min(63vw,350px)}
 .cx-header-actions{margin-left:auto}
 .cx-mobile-trigger{display:inline-flex;align-items:center;gap:11px;justify-content:center;background:transparent;color:inherit;border:1px solid currentColor;min-height:45px;padding:8px 12px;font-size:.8rem;font-weight:750;cursor:pointer}
 .cx-hamburger{display:grid;gap:4px}
 .cx-hamburger span{display:block;width:18px;height:1.8px;background:currentColor}
 .cx-mega-panel{display:none!important}
 .cx-footer-content{grid-template-columns:minmax(230px,1.3fr) repeat(3,minmax(130px,.7fr));row-gap:46px}
 .cx-footer-reach{grid-column:2/-1}
}
@media(max-width:800px){
 .cx-footer-cta-inner{display:block}
 .cx-footer-cta-link{margin-top:32px}
 .cx-footer-content{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:35px}
 .cx-footer-identity{grid-column:1/-1;padding:0}
 .cx-footer-reach{grid-column:auto}
 .cx-footer-bottom{align-items:flex-start;flex-wrap:wrap;gap:18px}
 .cx-footer-legal{order:3;width:100%}
}
@media(max-width:500px){
 .cx-brand-emblem{flex-basis:34px;height:34px;width:34px}
 .cx-brand{gap:8px;max-width:68vw}
 .cx-brand-text strong{font-size:1.25rem}
 .cx-brand-text>span{font-size:.53rem;max-width:210px;text-overflow:ellipsis;overflow:hidden}
 .preset-atelier .cx-brand-text strong,.preset-escape .cx-brand-text strong,.preset-spaces .cx-brand-text strong{font-size:1.67rem}
 .cx-header-content{min-height:65px}
 .cx-utility-content{font-size:.57rem;letter-spacing:.045em}
 .cx-drawer-head{padding:17px}
 .cx-drawer-scroll{padding:20px 18px 30px}
 .cx-footer-cta{padding:72px 0}
 .cx-footer-cta h2{font-size:clamp(3.1rem,12vw,5.2rem)}
 .cx-footer-cta-link{width:100%}
 .cx-footer-content{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 18px;padding-block:62px}
 .cx-footer-identity{grid-column:1/-1}
 .cx-footer-reach{grid-column:1/-1}
 .cx-footer-links a{font-size:.83rem}
 .cx-footer-bottom{display:flex;flex-direction:column;gap:15px}
 .cx-footer-legal{order:initial;width:auto}
}
@media(prefers-reduced-motion:reduce){.cx-header *, .cx-footer *{transition:none!important}}
@media print{
 .cx-header,.cx-utility,.cx-announcement,.cx-footer-cta,.cx-mega-panel,.cx-mobile-drawer,.cx-drawer-backdrop,.cx-back-to-top{display:none!important}
 .cx-footer{color:#000;background:#fff}
 .cx-footer-content{display:none}
 .cx-footer-bottom{color:#333;border-color:#bbb}
}
html.cx-navigation-locked,body.cx-navigation-locked{overflow:hidden!important}
/* WCAG 2.2 AA contrast corrections discovered by automated audit on R4 content. */
body.premium-r4.preset-care .p-hero-lead .p-hero-kicker{color:#174e42!important}
body.premium-r4.preset-academic .p-hero-lead .p-hero-kicker{color:#203c63!important}
body.premium-r4.preset-impact .p-hero-lead .p-hero-kicker{color:#244d3c!important}
body.premium-r4 .p-civic-search .search-shortcut{color:#344b62}
.cx-brand-logo{display:block;width:auto;height:auto;max-width:min(240px,32vw);max-height:59px;object-fit:contain}
@media(max-width:500px){.cx-brand-logo{max-width:min(220px,58vw);max-height:45px}}
/* R6: actual original scalable vector marks in all template headers and footers. */
.cx-brand-symbol{width:41px;height:41px;flex:0 0 41px;object-fit:contain}
.cx-footer-logo{display:inline-flex;align-items:center;gap:12px;max-width:100%}
.cx-footer-logo-image{display:block;width:min(100%,310px);height:auto;max-height:76px;object-fit:contain;object-position:left center}
.cx-footer-symbol{width:46px;height:46px;flex:0 0 46px;object-fit:contain}
.cx-footer-logo>span{font-size:clamp(1.5rem,2.3vw,2.6rem);font-weight:700;letter-spacing:-.055em;overflow-wrap:anywhere;line-height:1.1}
.cx-brand-logo{max-width:min(275px,35vw);max-height:62px;width:auto;height:auto;object-fit:contain}
@media(max-width:500px){
 .cx-brand-symbol{width:34px;height:34px;flex-basis:34px}
 .cx-brand-logo{max-width:min(245px,60vw);max-height:46px}
 .cx-footer-logo-image{max-width:min(300px,83vw)}
}
