/* ===== SITE-WIDE (v3): loaded after punchy.css on every page ===== */
/* nav pill only in the header, never in footer links */
nav a:last-child{background:none;color:inherit;border-radius:0;padding:inherit;font-weight:inherit;box-shadow:none}
.desktop-nav a:last-child{background:var(--sun);color:var(--ink)!important;border:0;border-radius:999px;padding:12px 26px;font-weight:800;box-shadow:0 6px 18px rgba(255,149,26,.45);transition:transform .2s,box-shadow .2s}
.desktop-nav a:last-child:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(255,149,26,.55);text-decoration:none}
.desktop-nav a,.mobile-menu summary{color:#fff}
/* inner page hero */
.page-hero{position:relative;overflow:hidden;padding-top:90px;padding-bottom:100px;max-width:none}
.page-hero:after{content:"";position:absolute;right:-11%;top:50%;width:36vw;height:36vw;max-width:500px;max-height:500px;transform:translateY(-50%);border-radius:50%;background:url(assets/logo-circular.webp) center/80% no-repeat,var(--blue);box-shadow:0 0 0 12px var(--sun),0 0 0 26px rgba(255,255,255,.16);z-index:0}
.page-hero>*{position:relative;z-index:1}
.page-hero h1,.page-hero .hero-slogan{font-size:clamp(60px,8vw,128px);text-shadow:0 4px 0 rgba(0,70,110,.18);max-width:900px}
.page-hero>p{color:#fff;font-size:20px;max-width:620px}
.page-hero .section-label{color:#fff}
/* buttons everywhere */
.outline-link,.contact-bottom>a{background:var(--sun)!important;color:var(--ink)!important;border:0!important;border-radius:999px!important;font-weight:800;font-size:17px;padding:18px 32px!important;box-shadow:0 10px 26px rgba(0,60,95,.3);transition:transform .2s,box-shadow .2s,background .2s}
.outline-link:hover,.contact-bottom>a:hover{background:#ffa23a!important;color:var(--ink)!important;transform:translateY(-3px);box-shadow:0 16px 34px rgba(0,60,95,.38)}
/* service overview cards */
.service-card{position:relative;overflow:hidden;border:0;border-radius:22px;padding:34px 32px 30px;box-shadow:0 14px 34px rgba(0,60,95,.22);transition:transform .25s,box-shadow .25s,background .25s}
.service-card:before{content:"";position:absolute;right:-60px;top:-60px;width:170px;height:170px;border-radius:50%;background:var(--sun);opacity:.14;transition:transform .35s,opacity .25s}
.service-card:hover{transform:translateY(-8px);background:var(--sun);box-shadow:0 24px 46px rgba(0,60,95,.35)}
.service-card:hover:before{transform:scale(2.6);background:#fff;opacity:.16}
.service-card .section-label{font:700 60px/1 'Brand Condensed','Arial Narrow',Arial,sans-serif;letter-spacing:0;color:var(--sun)!important}
.service-card .section-label span{font:700 22px Arial,sans-serif;color:var(--blue)}
.service-card h2{color:var(--blue)!important;font-size:40px}
.service-card h2 .heading-accent{color:var(--sun)!important}
.service-card p{color:#35505e}
.service-card .text-link{color:var(--blue);font-weight:800}
.service-card:hover *{color:#fff!important}
/* editorial + principle blocks */
.editorial-split h2{font-size:clamp(46px,5.4vw,84px)}
.editorial-split p{color:#fff}
.light-panel{border-top:8px solid var(--sun)}
.light-panel p{color:var(--ink)}
.principles{background:linear-gradient(135deg,var(--sun),var(--hot));padding-top:100px;padding-bottom:100px}
.principles .section-label{color:#fff!important}
.principles h3{color:#fff!important;font-size:44px}
.principles h3 .heading-accent{color:transparent!important;-webkit-text-stroke:2px #fff}
.principles h3 .heading-dot{color:#fff!important}
.principles p{color:#fff;font-size:18px;font-weight:500}
.three-columns span:first-child{font:700 64px/1 'Brand Condensed','Arial Narrow',Arial,sans-serif;color:#fff;opacity:.55}
.three-columns article{border-top:3px solid rgba(255,255,255,.7);padding-top:24px}
.feature-list li{font-weight:600}
.feature-list li:before{content:"\25CF";color:var(--sun);margin-right:14px}
/* contact band */
.contact:not(.contact-refined){padding-top:110px;padding-bottom:110px;background:linear-gradient(180deg,var(--blue),#0287ba)}
.contact:not(.contact-refined) h2{font-size:clamp(56px,8vw,128px)}
/* legal pages */
.legal-page .box{background:#fff;border-radius:16px;border-left:8px solid var(--sun);box-shadow:0 14px 34px rgba(0,60,95,.18)}
.legal-page .box *{color:var(--ink)}
.legal-page h2 i,.legal-page h1 i{color:var(--sun)}
/* ===== FOOTER ===== */
.contact-bottom p,.contact:not(.contact-refined) p{color:#fff;font-size:19px}
footer.site-footer{position:relative;background:var(--blue);border-top:8px solid var(--sun);color:#fff;padding-left:6%;padding-right:6%;overflow:hidden}
footer.site-footer:before{content:"";position:absolute;right:-12%;top:-30%;width:520px;height:520px;border-radius:50%;box-shadow:0 0 0 18px rgba(255,149,26,.18),0 0 0 44px rgba(255,255,255,.05);pointer-events:none}
.site-footer .footer-main{position:relative;grid-template-columns:1.6fr .7fr .9fr;gap:8%;padding:84px 0 64px}
.site-footer .brand-lockup{width:310px}
.site-footer .footer-brand p{font:700 clamp(40px,4.2vw,64px)/1 'Brand Condensed','Arial Narrow',Arial,sans-serif;letter-spacing:-.01em;margin:30px 0 18px;color:var(--sun)}
.site-footer .footer-brand p::first-line{color:#fff}
.site-footer .footer-location{font-size:14px;letter-spacing:.04em;color:rgba(255,255,255,.82)}
.site-footer .footer-column h2{color:var(--sun)!important;font-size:12px;letter-spacing:.2em;margin-bottom:20px;padding-bottom:14px;border-bottom:2px solid rgba(255,255,255,.22);width:100%}
footer.site-footer nav a,footer.site-footer nav a:last-child{color:#fff;font-size:16px;font-weight:600;padding:9px 0;transition:transform .2s,color .2s}
footer.site-footer nav a:hover{color:var(--sun);transform:translateX(6px);text-decoration:none}
.site-footer .footer-bottom{position:relative;background:#0383b8;margin:0 -6.5%;padding:24px 6.5%;border-top:0;color:rgba(255,255,255,.85)}
.site-footer .footer-bottom small,.site-footer .footer-bottom>span{color:rgba(255,255,255,.85);font-size:13px}
.site-footer .footer-bottom nav a{font-size:13px;color:#fff}
.site-footer .footer-bottom>span{color:var(--sun);font-weight:700}
@media(max-width:1050px){.page-hero:after{opacity:.5}}
@media(max-width:760px){.page-hero{padding-top:50px;padding-bottom:60px}.page-hero:after{width:90vw;height:90vw;right:-45%;top:auto;bottom:-30%;transform:none;opacity:.45}.page-hero h1,.page-hero .hero-slogan{font-size:15vw}.principles h3{font-size:38px}.site-footer .footer-main{padding:56px 0 40px;grid-template-columns:1fr 1fr}.site-footer .footer-brand p{font-size:44px}.site-footer .footer-bottom{margin:0 -7%;padding:22px 7%}}

/* readable text on blue */
.legal-page main p,.legal-page main li,.legal-page .muted,.legal-page .back,.legal-page footer a,.legal-page footer{color:#fff}
.legal-page main a{color:#fff;text-decoration-color:var(--sun)}
.legal-page h1 i{color:var(--sun)}
.editorial-split .text-link,.page-hero .text-link,.contact .text-link{color:#fff;font-weight:800;text-decoration-color:var(--sun)}
.editorial-split .small-note,.page-hero .small-note,.editorial-split p{color:#fff}
.light-panel .text-link{color:var(--blue)}

/* ===== motion layer (v4) ===== */
#cdm-progress{position:fixed;left:0;top:0;height:5px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#ff951a,#ffd08a);z-index:9999;pointer-events:none}
@keyframes cdmrise{from{opacity:0;translate:0 36px;filter:blur(8px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes cdmfloat{0%,100%{translate:0 0}50%{translate:0 -14px}}
.hero h1,.page-hero h1,.hero .hero-slogan,.page-hero .hero-slogan{animation:cdmrise .9s cubic-bezier(.2,.8,.2,1) .1s both}
.hero h1 .hero-second,.hero .hero-slogan .hero-second{display:block;animation:cdmrise .9s cubic-bezier(.2,.8,.2,1) .35s both}
.hero .eyebrow{animation:cdmrise .8s cubic-bezier(.2,.8,.2,1) both}
.hero-bottom,.page-hero>p{animation:cdmrise .9s cubic-bezier(.2,.8,.2,1) .6s both}
.hero:before{translate:0 var(--py,0)}
.page-hero:after{translate:0 var(--py,0)}
.scene-wrap{translate:0 var(--py,0)}
.kinetic-logo{animation:cdmfloat 7s ease-in-out infinite}
.hero .btn-big{animation:cdmrise .9s .75s cubic-bezier(.2,.8,.2,1) both,cdmglow 2.6s 1.8s ease-in-out infinite}
@keyframes cdmglow{0%,100%{box-shadow:0 10px 28px rgba(0,60,95,.35)}50%{box-shadow:0 10px 28px rgba(0,60,95,.35),0 0 0 14px rgba(255,149,26,.25)}}
.intro{position:relative;overflow:hidden}
.intro>*{position:relative;z-index:1}
.cdm-bigword{position:absolute;left:0;bottom:-.14em;z-index:0!important;white-space:nowrap;font:700 clamp(130px,20vw,320px)/1 'Brand Condensed','Arial Narrow',Arial,sans-serif;letter-spacing:-.01em;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.25);translate:var(--hx,0%) 0;pointer-events:none;user-select:none}
.svc-card,.service-card{--mx:50%;--my:50%}
.svc-card:after,.service-card:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(260px circle at var(--mx) var(--my),rgba(255,255,255,.55),transparent 60%);opacity:0;transition:opacity .25s;pointer-events:none}
.svc-card:hover:after,.service-card:hover:after{opacity:1}
.marquee-track span{transition:color .2s}
.marquee-track span:hover{color:#ff951a}
@media(max-width:760px){.cdm-bigword{font-size:130px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}#cdm-progress{display:none}}

/* Descriptive page H1 beneath the display slogan (overrides the hero heading rules) */
.hero h1.page-h1,.pg-hero h1.page-h1,.hero .hero-slogan.page-h1,.pg-hero .hero-slogan.page-h1{font-size:clamp(20px,1.9vw,28px);line-height:1.18;letter-spacing:.01em;color:#fff;text-shadow:none;max-width:620px;margin:0}
.hero-bottom h1.page-h1{flex:1 1 100%}
.pg-hero h1.page-h1,.pg-hero .hero-slogan.page-h1{margin:24px 0 0}
.pg-hero h1.page-h1+.pg-hero-text,.pg-hero .hero-slogan.page-h1+.pg-hero-text{margin-top:14px}
.footer-column a.gbp-link{white-space:nowrap}

/* Round 2: descriptive H1s in the other hero layouts */
.pg6-hero h1.page-h1,.page-hero h1.page-h1,.sc-hero h1.page-h1,.ct-hero h1.page-h1{font-size:clamp(20px,1.9vw,28px);line-height:1.18;letter-spacing:.01em;color:#fff;text-shadow:none;max-width:620px;margin:24px 0 0;animation:none}
.pg6-hero h1.page-h1+p,.page-hero h1.page-h1+p,.sc-hero h1.page-h1+p,.ct-hero h1.page-h1+p{margin-top:14px}
/* "Email or call" reveal */
.reach-out{margin-top:6px;border-bottom:0}
.hero-bottom .reach-out{flex:1 1 100%}
.reach-out>summary{display:inline-flex;align-items:center;gap:10px;list-style:none;cursor:pointer;padding:12px 22px;border:2px solid #fff;border-radius:999px;color:#fff;font:700 15px/1.2 Arial,sans-serif;letter-spacing:.01em;background:rgba(0,40,59,.18);transition:background .2s}
.reach-out>summary::-webkit-details-marker{display:none}
.reach-out>summary:hover{background:rgba(0,40,59,.38)}
.reach-out>summary:focus-visible{outline:3px solid var(--orange,#f7941d);outline-offset:3px}
.reach-out>summary .reach-plus{display:inline-block;transition:transform .2s}
.reach-out[open]>summary .reach-plus{transform:rotate(45deg)}
.reach-options{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
.reach-btn{display:inline-flex;flex-direction:column;gap:2px;padding:12px 22px;border-radius:18px;background:#fff;color:#00283b;text-decoration:none;font:700 15px/1.2 Arial,sans-serif;box-shadow:0 6px 18px rgba(0,40,59,.18);transition:transform .2s}
.reach-btn:hover{transform:translateY(-2px)}
.reach-btn:focus-visible{outline:3px solid var(--orange,#f7941d);outline-offset:3px}
.reach-btn small{font:400 12.5px/1.3 Arial,sans-serif;color:#3b5566;overflow-wrap:anywhere}
.ct-hero .reach-out{margin-top:22px}
.footer-brand .reach-out{margin-top:20px}
@media(max-width:600px){.reach-btn{flex:1 1 100%}}

/* round 8: dark text on the white panels (/lead-generation) */
.editorial-split.light-panel p,.editorial-split.light-panel li,.editorial-split.light-panel .small-note{color:var(--ink)}

/* The tilted marquee and hero circles run past the screen edge by design; clip them here so phones never scroll or zoom out sideways. */
main{overflow-x:clip}
/* Small phones (iPhone SE, 320px): logo, gap and Menu pill must fit on one line without the pill running off the right edge. */
@media(max-width:380px){header{gap:10px}header .brand-lockup{max-width:52vw}.mm>summary{gap:8px;padding:10px 13px 10px 15px}}
