:root{
  --brand-primary:#102b45;--brand-dark:#0a1f33;--brand-secondary:#1e4b70;--brand-accent:#f28c28;
  --brand-light:#f7f5f1;--brand-body:#16202a;--brand-muted:#697580;--brand-border:#e4e8eb;--brand-heading:#102b45;
  --brand-cta:#f28c28;--brand-cta-text:#111;--brand-cta-hover:#db7618;--brand-cta-hover-text:#fff;--brand-accent-contrast:#111;
  --navy:var(--brand-primary);--navy-2:var(--brand-dark);--blue:var(--brand-secondary);--orange:var(--brand-accent);
  --cream:var(--brand-light);--white:#fff;--ink:var(--brand-body);--muted:var(--brand-muted);--line:var(--brand-border);--heading:var(--brand-heading);
  --cta-bg:var(--brand-cta);--cta-text:var(--brand-cta-text);--cta-hover-bg:var(--brand-cta-hover);--cta-hover-text:var(--brand-cta-hover-text);--accent-contrast:var(--brand-accent-contrast);
  --shadow:0 18px 55px color-mix(in srgb,var(--brand-primary) 12%,transparent);--container:1180px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fff;font-family:var(--site-font,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.container{width:min(calc(100% - 40px),var(--container));margin:auto}
.eyebrow{color:var(--brand-accent);text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:850;margin-bottom:10px}
h1,h2,h3,h4{margin:0;line-height:1.06;color:var(--heading,var(--navy));letter-spacing:-.035em}
h1{font-size:clamp(3rem,6vw,5.8rem)}
h2{font-size:clamp(2.2rem,4vw,4rem)}
h3{font-size:1.35rem}
p{margin:0}
.prose p{margin:0 0 20px;color:var(--brand-muted)}
.lead{font-size:1.08rem;color:var(--muted);max-width:720px}
.section{padding:96px 0}
.section-soft{background:var(--cream)}
.section-dark{background:var(--navy-2);color:#fff}
.section-dark h2,.section-dark h3{color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;padding:0 22px;border:1px solid transparent;font-weight:850;font-size:.9rem;transition:.2s ease;cursor:pointer}
.btn-primary{background:var(--cta-bg);color:var(--cta-text)}
.btn-primary:hover{background:var(--cta-hover-bg);color:var(--cta-hover-text);transform:translateY(-1px)}
.btn-dark{background:var(--navy);color:#fff}
.btn-dark:hover{background:var(--blue)}
.btn-outline{border-color:var(--brand-border);background:#fff;color:var(--navy)}
.btn-outline-light{border-color:rgba(255,255,255,.42);color:#fff}
.btn-outline-light:hover{background:rgba(255,255,255,.08)}

.topbar{background:var(--brand-dark);color:color-mix(in srgb,#fff 86%,var(--brand-light));font-size:.78rem}
.topbar-inner{min-height:38px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.topbar a{color:#fff;font-weight:750}
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(16,43,69,.08);backdrop-filter:blur(12px)}
.header-inner{height:82px;display:flex;align-items:center;justify-content:space-between;gap:26px}
.brand{display:flex;flex-direction:column;line-height:.9;color:var(--navy);font-weight:950;letter-spacing:-.04em;font-size:var(--tb-text-logo-size,1.42rem)}
.brand small{font-size:.62rem;letter-spacing:.14em;color:var(--brand-accent);margin-top:8px}
.nav{display:flex;align-items:center;gap:23px;font-size:.84rem;font-weight:var(--nav-font-weight,750);color:var(--brand-body)}
.nav a:hover,.nav a.active{color:var(--brand-accent)}

.brand-link{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.brand-logo{display:flex;align-items:center}
.brand-logo img{display:block;width:auto;max-width:260px;object-fit:contain}
.footer .brand-logo img{filter:none}

.nav-item{position:relative}
.nav-parent{display:flex;align-items:center}
.nav-parent>a{display:block}
.submenu-toggle{border:0;background:transparent;color:inherit;padding:4px 0 4px 5px;cursor:pointer;font-size:.9rem;line-height:1}
.submenu{display:none;position:absolute;top:calc(100% + 18px);left:0;min-width:235px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:8px;z-index:70}
.submenu::before{content:"";position:absolute;left:0;right:0;top:-19px;height:19px}
.submenu a{display:block!important;padding:10px 12px!important;white-space:nowrap;color:var(--brand-body)!important}
.submenu a:hover{background:var(--brand-light);color:var(--brand-accent)!important}
.has-dropdown:hover>.submenu,.has-dropdown:focus-within>.submenu,.has-dropdown.submenu-open>.submenu{display:block}
.nav-item.active>.nav-parent>a{color:var(--brand-accent)}

.mobile-menu{display:none;border:0;background:none;width:44px;height:44px;position:relative}
.mobile-menu::before,.mobile-menu::after,.mobile-menu span{content:"";position:absolute;left:8px;right:8px;height:2px;background:var(--navy)}
.mobile-menu::before{top:13px}.mobile-menu span{top:21px}.mobile-menu::after{top:29px}

.hero{position:relative;min-height:700px;display:flex;align-items:center;overflow:hidden;background:var(--navy-2)}
.hero-bg{position:absolute;inset:0;background-image:var(--hero-image);background-position:var(--hero-position,center center);background-size:cover;background-repeat:no-repeat}
.hero-layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;min-height:700px}
.hero-copy{max-width:770px;padding:88px 0}
.hero h1{font-size:clamp(3rem,6vw,5.8rem);line-height:var(--hero-heading-line-height,.98);letter-spacing:var(--hero-heading-letter-spacing,-.04em)}
.hero h1 span{color:var(--brand-accent)}
.hero-copy>p{max-width:650px;font-size:1.13rem;margin-top:24px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}
.hero-secondary{min-height:52px;padding:0 22px;border:1px solid currentColor;font-weight:850;font-size:.9rem;display:inline-flex;align-items:center;justify-content:center}
.hero-proof{display:flex;gap:24px;flex-wrap:wrap;margin-top:42px;padding-top:26px}
.proof-item{display:flex;gap:10px;align-items:center;font-size:.84rem;font-weight:750}
.proof-icon{width:34px;height:34px;display:grid;place-items:center;color:var(--brand-accent)}
.hero-media{display:none}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:var(--hero-position,center center)}

/* A — full-bleed action */
.hero--full-bleed{color:#fff}
.hero--full-bleed .hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,19,31,.98) 0%,rgba(8,28,45,.91) 44%,rgba(8,28,45,.40) 72%,rgba(8,28,45,.18) 100%)}
.hero--full-bleed h1{color:#fff}.hero--full-bleed .hero-copy>p{color:#dce5ec}.hero--full-bleed .hero-secondary{color:#fff}.hero--full-bleed .hero-proof{border-top:1px solid rgba(255,255,255,.18)}.hero--full-bleed .proof-item{color:#e7eef3}.hero--full-bleed .proof-icon{border:1px solid color-mix(in srgb,var(--brand-accent) 70%,transparent)}

/* B — split image */
.hero--split{color:#fff;background:linear-gradient(115deg,var(--navy-2),var(--blue))}
.hero--split .hero-bg{display:none}.hero--split .hero-layout{grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr);gap:52px}.hero--split .hero-media{display:block;height:570px;align-self:end;position:relative;overflow:hidden;box-shadow:0 22px 60px rgba(0,0,0,.23)}
.hero--split .hero-media::before{content:"";position:absolute;inset:0;z-index:1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.hero--split h1{color:#fff}.hero--split .hero-copy>p{color:#dce5ec}.hero--split .hero-secondary{color:#fff}.hero--split .hero-proof{border-top:1px solid rgba(255,255,255,.18)}.hero--split .proof-item{color:#e7eef3}.hero--split .proof-icon{border:1px solid rgba(255,255,255,.25)}

/* C — bold brand panel */
.hero--brand-panel{background:var(--brand-accent);color:var(--accent-contrast)}
.hero--brand-panel::before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;right:-80px;top:-150px;background:var(--navy);opacity:.13}
.hero--brand-panel .hero-bg{display:none}.hero--brand-panel .hero-layout{grid-template-columns:minmax(0,.9fr) minmax(390px,1.1fr);gap:30px}.hero--brand-panel .hero-media{display:block;height:620px;align-self:end;position:relative;clip-path:ellipse(58% 58% at 56% 58%)}
.hero--brand-panel .hero-media img{object-fit:cover}.hero--brand-panel h1,.hero--brand-panel h1 span{color:var(--accent-contrast)}.hero--brand-panel .eyebrow{color:var(--accent-contrast);opacity:.72}.hero--brand-panel .hero-copy>p{color:var(--accent-contrast);opacity:.78}.hero--brand-panel .hero-secondary{color:var(--accent-contrast)}.hero--brand-panel .hero-proof{border-top:1px solid color-mix(in srgb,var(--accent-contrast) 25%,transparent)}.hero--brand-panel .proof-item{color:var(--accent-contrast)}.hero--brand-panel .proof-icon{border:1px solid color-mix(in srgb,var(--accent-contrast) 35%,transparent);color:var(--accent-contrast)}
.hero--brand-panel .btn-primary{background:var(--navy-2);color:#fff}.hero--brand-panel .btn-primary:hover{background:var(--navy);color:#fff}

/* D — organic split */
.hero--organic{background:var(--cream);color:var(--ink)}
.hero--organic::before{content:"";position:absolute;left:-6%;bottom:-210px;width:62%;height:350px;border-radius:50% 55% 0 0;background:var(--brand-accent);opacity:.95;transform:rotate(-5deg)}
.hero--organic .hero-bg{display:none}.hero--organic .hero-layout{grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:48px}.hero--organic .hero-media{display:block;height:610px;align-self:stretch;clip-path:polygon(14% 0,100% 0,100% 100%,0 100%,0 19%)}
.hero--organic h1{color:var(--heading)}.hero--organic .hero-copy>p{color:var(--muted)}.hero--organic .hero-secondary{color:var(--navy);border-color:var(--navy)}.hero--organic .hero-proof{border-top:1px solid var(--line)}.hero--organic .proof-item{color:var(--ink)}.hero--organic .proof-icon{border:1px solid var(--line)}

/* E — minimal shape */
.hero--minimal{background:#fff;color:var(--ink)}
.hero--minimal::before{content:"";position:absolute;right:4%;top:70px;width:480px;height:480px;border-radius:50%;background:var(--brand-accent);opacity:.95}
.hero--minimal::after{content:"";position:absolute;left:-80px;top:-100px;width:330px;height:330px;border-radius:50%;background:var(--cream)}
.hero--minimal .hero-bg{display:none}.hero--minimal .hero-layout{grid-template-columns:minmax(0,1fr) minmax(380px,.9fr);gap:52px}.hero--minimal .hero-media{display:block;height:580px;align-self:end;position:relative;z-index:1;clip-path:ellipse(48% 50% at 52% 52%)}
.hero--minimal h1{color:var(--heading)}.hero--minimal .hero-copy>p{color:var(--muted)}.hero--minimal .hero-secondary{color:var(--navy);border-color:var(--navy)}.hero--minimal .hero-proof{border-top:1px solid var(--line)}.hero--minimal .proof-item{color:var(--ink)}.hero--minimal .proof-icon{border:1px solid var(--line)}

.trust-strip{background:#fff;border-bottom:1px solid var(--line)}
.trust-grid{display:grid;grid-template-columns:repeat(var(--trust-columns,4),minmax(0,1fr))}
.trust-item{padding:26px 28px;border-right:1px solid var(--line)}
.trust-item:last-child{border-right:none}
.trust-item strong{display:block;color:var(--navy);font-size:1.08rem}
.trust-item span{display:block;color:var(--muted);font-size:.79rem;margin-top:4px}

.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:46px}
.section-head .lead{max-width:560px}
.services{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.service-card{min-height:285px;padding:32px;background:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:.2s ease;position:relative}
.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);z-index:2}
.service-icon{width:48px;height:48px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand-accent) 10%,#fff);color:var(--brand-accent);font-size:1rem;font-weight:950}
.service-card h3{margin-top:26px}
.service-card p{color:var(--muted);font-size:.9rem;margin-top:12px}
.text-link{display:inline-flex;color:var(--brand-accent);font-weight:850;font-size:.82rem;margin-top:20px}

.about-grid,.split-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:68px;align-items:center}
.media-frame{min-height:550px;background:#e8edf1 center/cover no-repeat;box-shadow:var(--shadow);position:relative}
.media-frame::after{content:"";position:absolute;width:95px;height:95px;right:-14px;bottom:-14px;border-right:9px solid var(--brand-accent);border-bottom:9px solid var(--brand-accent);z-index:-1}
.about-copy .lead{margin-top:24px}
/* Decorative tick/check rows: marker occupies its own fixed column so wrapped copy
   always aligns with the first line of text across About, service highlights and area lists. */
.check-list{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:32px}
.check{padding:14px 0;border-bottom:1px solid var(--line);font-size:.88rem;font-weight:750;display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:10px;align-items:start}
.check::before{content:"✓";display:grid;place-items:center;width:24px;height:24px;background:color-mix(in srgb,var(--brand-accent) 12%,#fff);color:var(--brand-accent);line-height:1}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:36px;border:1px solid var(--line)}
.stat{background:#fff;padding:24px}
.stat strong{display:block;color:var(--brand-accent);font-size:2.1rem;line-height:1}
.stat span{display:block;color:var(--muted);font-size:.7rem;margin-top:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:850}

.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.project{position:relative;overflow:hidden;background:var(--navy)}
.project img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:.35s ease}
.project:hover img{transform:scale(1.03);opacity:.86}
.project-caption{position:absolute;left:0;right:0;bottom:0;padding:54px 22px 20px;color:#fff;background:linear-gradient(transparent,color-mix(in srgb,var(--brand-dark) 95%,transparent))}
.project-caption strong{display:block}.project-caption span{display:block;color:#d2dee7;font-size:.76rem;margin-top:3px}
.project-detail{background:#fff;border:1px solid var(--line)}
.project-detail>img,.project-detail>.tb-project-media{display:block;width:100%;aspect-ratio:3/2;overflow:hidden}
.project-detail>img{object-fit:cover}
.project-detail>.tb-project-media>img{display:block;width:100%;height:100%;object-fit:cover}
.project-detail .project-copy{padding:24px}
.project-detail .project-copy p{color:var(--muted);font-size:.88rem;margin-top:8px}

.why-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}
.why-copy{position:sticky;top:120px}
.why-copy .lead{margin-top:22px;color:#c4d0da}
.reasons{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.14);border-left:1px solid rgba(255,255,255,.14)}
.reason{padding:30px;border-right:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}
.reason b{display:block;color:var(--brand-accent);font-size:2rem}
.reason strong{display:block;margin-top:14px}.reason p{color:#aebdca;font-size:.84rem;margin-top:9px}

.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.testimonial{background:#fff;padding:32px;border:1px solid var(--line)}
.stars{color:var(--brand-accent);letter-spacing:.12em}
.testimonial blockquote{margin:22px 0 0;color:var(--brand-body);font-size:.95rem}
.testimonial strong{display:block;color:var(--navy);margin-top:24px}
.testimonial span{color:var(--muted);font-size:.78rem}
.review-proof{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;margin-top:20px;font-size:.78rem}.review-proof-source{color:var(--muted);font-weight:650}.review-proof-link{display:inline-flex;align-items:center;gap:5px;color:var(--brand-heading);font-weight:850;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--brand-accent) 55%,transparent);padding-bottom:2px}.review-proof-link:hover,.review-proof-link:focus-visible{color:var(--brand-accent);border-bottom-color:var(--brand-accent)}

.area-faq{display:grid;grid-template-columns:1fr 1fr;gap:76px}
.areas{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:28px}
.area{padding:11px 0;border-bottom:1px solid var(--line);font-weight:750;font-size:.88rem;display:grid;grid-template-columns:18px minmax(0,1fr);column-gap:8px;align-items:start}
.area::before{content:"✓";color:var(--brand-accent);width:18px;line-height:1.45;text-align:center}
.faq-list{margin-top:24px;border-top:1px solid var(--line)}
.faq{border-bottom:1px solid var(--line)}
.faq button{width:100%;padding:18px 0;border:0;background:transparent;text-align:left;color:var(--navy);font-weight:850;display:flex;justify-content:space-between;gap:16px;cursor:pointer}
.faq button span:last-child{color:var(--brand-accent);font-size:1.25rem}
.faq p{display:none;color:var(--muted);padding:0 0 18px;font-size:.9rem}
.faq.open p{display:block}.faq.open button span:last-child{transform:rotate(45deg)}

.inner-hero{background:linear-gradient(115deg,var(--navy-2),var(--blue));padding:calc(95px + var(--tb-inner-hero-top-extra,0px)) 0 88px;color:#fff;position:relative;overflow:hidden;min-height:calc(430px + var(--tb-inner-hero-top-extra,0px));display:flex;align-items:center}
.inner-hero>.container{position:relative;z-index:2}
.inner-hero::after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:var(--brand-accent);opacity:.1;right:-100px;top:-170px}
.inner-hero h1{color:#fff;max-width:900px;font-size:clamp(3rem,5.5vw,5rem)}
.inner-hero p{max-width:720px;margin-top:22px;color:#cfdae3;font-size:1.06rem}
.inner-hero-image{background:linear-gradient(90deg,rgba(5,19,31,.94) 0%,rgba(8,28,45,.83) 48%,rgba(8,28,45,.42) 78%,rgba(8,28,45,.28) 100%),var(--inner-hero-image) var(--inner-hero-position,center)/cover no-repeat}
.inner-hero-image::after{opacity:.06}

.content-narrow{max-width:820px}
.content-narrow h2{margin-bottom:24px}
.feature-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:30px}
.feature{border:1px solid var(--line);padding:18px;background:#fff;font-weight:750}
.feature:not(.feature--custom-marker){display:grid;grid-template-columns:18px minmax(0,1fr);column-gap:9px;align-items:start}
.feature::before{content:"✓";color:var(--brand-accent);width:18px;line-height:1.45;text-align:center}

.service-detail-grid{display:grid;grid-template-columns:1fr .9fr;gap:64px;align-items:start}
.service-detail-grid--align-top .service-media{align-self:start}
.service-detail-grid--align-center .service-media{align-self:center}
.service-detail-grid--align-bottom .service-media{align-self:end}
.service-media img{width:100%;aspect-ratio:4/3;object-fit:cover;box-shadow:var(--shadow)}
.service-side{background:var(--cream);padding:30px;margin-top:26px}
.service-side h3{margin-bottom:15px}
.service-side .btn{margin-top:20px;width:100%}

.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:start}
.contact-card{background:var(--navy-2);color:#fff;padding:34px}
.contact-card h3{color:#fff}.contact-card p{color:#c1cfda;margin-top:12px}
.contact-card a{display:block;margin-top:16px;font-weight:800;color:#fff}
.form-card{border:1px solid var(--line);padding:34px;background:#fff}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field.full{grid-column:1/-1}
label{display:block;font-size:.78rem;font-weight:850;color:#43515d;margin-bottom:6px}
input,textarea,select{width:100%;padding:12px;border:1px solid #c9d2d9;background:#fff;color:var(--ink)}
textarea{min-height:145px;resize:vertical}
.check-row{display:flex;align-items:flex-start;gap:9px}
.check-row input{width:auto;margin-top:5px}
.form-status{padding:14px 16px;border-left:4px solid var(--brand-accent);background:color-mix(in srgb,var(--brand-accent) 8%,#fff);margin-bottom:18px}
.form-status.error{border-color:#b42318;background:#fff1f0;color:#8b1d15}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.cta{background:var(--brand-primary);color:#fff}
.cta-inner{min-height:290px;display:flex;align-items:center;justify-content:space-between;gap:50px}
.cta h2{color:#fff;max-width:720px}.cta p{color:color-mix(in srgb,#fff 76%,var(--brand-primary));margin-top:14px}
.cta-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}

.footer{background:var(--brand-dark);color:#b7c6d1;padding:72px 0 26px}
.footer-grid{display:grid;grid-template-columns:1.4fr .8fr 1.1fr 1fr;gap:42px}
.footer-brand{color:#fff}.footer p{font-size:.84rem;margin-top:22px;max-width:330px}
.footer h4{color:#fff;font-size:.9rem;letter-spacing:.02em;margin-bottom:15px}
.footer a{display:block;font-size:.8rem;padding:5px 0}.footer a:hover{color:var(--brand-accent)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:46px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;align-items:flex-start;font-size:.72rem}
.concept-note{max-width:620px;text-align:right}

@media(max-width:1120px) and (min-width:681px){
  .hero--split .hero-layout,.hero--brand-panel .hero-layout,.hero--organic .hero-layout,.hero--minimal .hero-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:34px}
  .hero--split .hero-media,.hero--brand-panel .hero-media,.hero--organic .hero-media,.hero--minimal .hero-media{height:520px}
  .hero-copy{padding:72px 0}.hero h1{font-size:clamp(3rem,5vw,4.5rem)}
}
@media(max-width:980px){
  .nav{display:none;position:absolute;left:0;right:0;top:82px;background:#fff;padding:20px;flex-direction:column;align-items:stretch;box-shadow:var(--shadow)}
  .nav.open{display:flex}.mobile-menu{display:block}.header-cta{display:none}
  .nav-item{width:100%}.nav-parent{justify-content:space-between}.nav-parent>a{flex:1}
  .submenu-toggle{padding:10px 12px;font-size:1rem}
  .submenu{position:static;min-width:0;box-shadow:none;border:0;border-left:2px solid var(--brand-accent);margin:4px 0 6px 10px;padding:3px 0 3px 9px}
  .submenu::before{display:none}.has-dropdown:hover>.submenu{display:none}.has-dropdown.submenu-open>.submenu{display:block}
  .submenu a{padding:8px 10px!important;font-size:.82rem!important}
  .trust-grid{grid-template-columns:1fr 1fr}.trust-item:nth-child(2){border-right:none}.trust-item:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .services,.projects{grid-template-columns:1fr 1fr}
  .about-grid,.split-grid,.why-grid,.area-faq,.service-detail-grid,.contact-grid{grid-template-columns:1fr}
  .why-copy{position:static}.testimonials{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .container{width:min(calc(100% - 28px),var(--container))}
  .topbar-inner{justify-content:center}.topbar-left{display:none}
  .header-inner{height:70px}.nav{top:70px}.brand{font-size:min(var(--tb-text-logo-size,1.15rem),1.15rem)}
  .hero{min-height:0;display:block}.hero-layout{min-height:0;display:flex;flex-direction:column}.hero-copy{max-width:none;width:100%;padding:46px 0}.hero h1{font-size:clamp(2.75rem,13vw,4.35rem)}
  .hero-copy>p{font-size:1rem}.hero-actions,.cta-actions{flex-direction:column}.hero-actions .btn,.hero-actions .hero-secondary,.cta-actions .btn{width:100%}.hero-proof{gap:13px;margin-top:30px}.proof-item{width:100%}
  .hero-media{width:100%;height:310px!important;order:-1;clip-path:none!important;box-shadow:none!important}.hero-media img{object-position:var(--hero-mobile-position,center center)}
  .hero--full-bleed{min-height:680px;display:flex;align-items:end}.hero--full-bleed .hero-layout{min-height:680px;display:block}.hero--full-bleed .hero-bg{display:block;background-position:var(--hero-mobile-position,center center)}.hero--full-bleed .hero-bg::after{background:linear-gradient(180deg,rgba(7,25,40,.12) 0%,rgba(7,25,40,.36) 35%,rgba(7,25,40,.96) 70%,rgba(7,25,40,1) 100%)}.hero--full-bleed .hero-copy{padding:330px 0 42px}
  .hero--split .hero-layout,.hero--brand-panel .hero-layout,.hero--organic .hero-layout,.hero--minimal .hero-layout{display:flex}.hero--split .hero-media{margin-top:18px}.hero--split .hero-copy{padding-top:36px}
  .hero--brand-panel::before{width:330px;height:330px;right:-110px;top:-100px}.hero--brand-panel .hero-media{height:330px!important;background:rgba(255,255,255,.08)}
  .hero--organic::before{width:110%;height:190px;left:-30%;bottom:-115px}.hero--organic .hero-media{height:310px!important}.hero--organic .hero-copy{padding-top:38px}
  .hero--minimal::before{width:250px;height:250px;right:-60px;top:35px}.hero--minimal::after{width:180px;height:180px;left:-70px;top:-40px}.hero--minimal .hero-media{height:310px!important}.hero--minimal .hero-copy{padding-top:38px}
  .section{padding:72px 0}.section-head{display:block}.section-head .lead{margin-top:20px}
  .trust-grid,.services,.projects,.footer-grid,.reasons,.feature-list,.form-grid{grid-template-columns:1fr}
  .trust-item{border-right:none;border-bottom:1px solid var(--line)}
  .services{border-left:0}.service-card{border-left:1px solid var(--line)}
  .check-list,.stats,.areas{grid-template-columns:1fr}.media-frame{min-height:380px}.media-frame::after{display:none}
  .reason{border-left:1px solid rgba(255,255,255,.14)}
  .inner-hero{padding:calc(72px + var(--tb-inner-hero-top-extra-mobile,0px)) 0 65px;min-height:calc(390px + var(--tb-inner-hero-top-extra-mobile,0px))}.inner-hero h1{font-size:clamp(2.7rem,13vw,4.4rem)}.inner-hero-image{background:linear-gradient(180deg,rgba(5,19,31,.38),rgba(5,19,31,.94)),var(--inner-hero-image) var(--inner-hero-position,center)/cover no-repeat}
  .cta-inner{padding:64px 0;display:block}.cta-actions{margin-top:28px;justify-content:flex-start}
  .footer-bottom{display:block}.concept-note{text-align:left;margin-top:12px}.contact-card,.form-card{padding:25px}
}

.whatsapp-float{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:90;
  width:58px;
  height:58px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--tb-whatsapp-bg,#25D366);
  color:var(--tb-whatsapp-icon,#fff);
  box-shadow:0 12px 30px rgba(0,0,0,.2);
  transition:transform .2s ease, box-shadow .2s ease;
}
.whatsapp-float:hover{
  transform:translateY(-3px) scale(1.03);
  background:var(--tb-whatsapp-hover-bg,var(--tb-whatsapp-bg,#25D366));
  color:var(--tb-whatsapp-hover-icon,var(--tb-whatsapp-icon,#fff));
  box-shadow:0 16px 36px rgba(0,0,0,.25);
}
.whatsapp-float svg{width:31px;height:31px;display:block}
@media(max-width:680px){
  .whatsapp-float{right:16px;bottom:16px;width:54px;height:54px}
  .whatsapp-float svg{width:29px;height:29px}
}

/* V1.3 refined navigation dropdown */
.submenu-toggle{width:22px;height:28px;padding:0;margin-left:4px;display:grid;place-items:center;border:0;background:transparent;color:currentColor;cursor:pointer}
.submenu-toggle .chevron{width:7px;height:7px;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;transform:rotate(45deg) translateY(-1px);transition:transform .18s ease,color .18s ease}
.has-dropdown:hover .submenu-toggle,.has-dropdown.active .submenu-toggle{color:var(--brand-accent)}
.has-dropdown.submenu-open .chevron{transform:rotate(225deg) translate(-1px,-1px)}
.submenu{top:calc(100% + 15px);min-width:218px;padding:6px;border:1px solid var(--brand-border);box-shadow:0 16px 38px rgba(16,43,69,.13)}
.submenu::before{top:-16px;height:16px}
.submenu a{padding:9px 11px!important;font-size:.82rem!important;border-left:2px solid transparent}
.submenu a:hover{background:var(--brand-light)!important;color:var(--brand-accent)!important;border-left-color:var(--brand-accent)}

.footer-legal-links{display:flex;gap:13px;align-items:center;flex-wrap:wrap}
.footer-legal-links a{display:inline-block}
.cookie-settings-link{border:0;background:none;color:inherit;padding:5px 0;font:inherit;font-size:.8rem;cursor:pointer}
.cookie-settings-link:hover{color:var(--brand-accent)}

/* Native cookie/privacy manager */
.cookie-banner[hidden],.cookie-modal[hidden]{display:none!important}
.cookie-banner{position:fixed;z-index:150;left:18px;right:18px;bottom:18px;background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:0 20px 65px rgba(6,24,38,.22)}
.cookie-banner-inner{max-width:1180px;margin:auto;padding:22px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.cookie-copy{max-width:720px}.cookie-copy strong{display:block;color:var(--navy);font-size:1rem}.cookie-copy p{margin-top:7px;color:var(--muted);font-size:.82rem}.cookie-copy a{text-decoration:underline;color:var(--navy)}
.cookie-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.cookie-btn{min-height:42px;padding:0 15px;border:1px solid var(--navy);font-weight:800;font-size:.78rem;cursor:pointer;background:#fff;color:var(--navy)}
.cookie-btn.primary{background:var(--navy);color:#fff}.cookie-btn.secondary:hover{background:var(--brand-light)}.cookie-btn.primary:hover{background:var(--blue)}
.cookie-modal{position:fixed;z-index:160;inset:0;background:rgba(5,19,31,.62);display:grid;place-items:center;padding:20px}
.cookie-modal-card{width:min(100%,590px);max-height:90vh;overflow:auto;background:#fff;padding:30px;position:relative;box-shadow:0 25px 70px rgba(0,0,0,.3)}
.cookie-modal-card h2{font-size:1.8rem}.cookie-modal-card>p{color:var(--muted);font-size:.87rem;margin-top:10px}
.cookie-close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:1.8rem;color:#66727b;cursor:pointer}
.cookie-pref{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 0;border-bottom:1px solid var(--line);margin:0}
.cookie-pref div{display:block}.cookie-pref strong{display:block;color:var(--navy);font-size:.9rem}.cookie-pref span{display:block;color:var(--muted);font-size:.76rem;margin-top:3px;font-weight:500}
.cookie-pref input{width:20px;height:20px;flex:0 0 auto}.cookie-always{white-space:nowrap;color:#52705b!important;font-weight:800!important}
.cookie-save{margin-top:22px;width:100%}

@media(max-width:680px){
  .cookie-banner{left:10px;right:10px;bottom:10px}.cookie-banner-inner{display:block;padding:18px}.cookie-actions{margin-top:16px;display:grid;grid-template-columns:1fr 1fr}.cookie-actions .primary{grid-column:1/-1}.cookie-btn{width:100%}
  .cookie-modal-card{padding:25px 20px}.footer-legal-links{display:block}
}
@media(max-width:980px){
  .nav-item{width:100%}.nav-parent{justify-content:space-between}.nav-parent>a{flex:1}
  .submenu-toggle{width:38px;height:38px;margin-left:4px}
  .submenu{position:static;min-width:0;box-shadow:none;border:0;border-left:2px solid var(--brand-accent);margin:4px 0 6px 10px;padding:3px 0 3px 9px}
  .submenu::before{display:none}.has-dropdown:hover>.submenu{display:none}.has-dropdown.submenu-open>.submenu{display:block}
  .submenu a{padding:8px 10px!important;font-size:.82rem!important;border-left:0}
}

/* ==========================================================
   V1.3 PREMIUM UI PASS
   Homepage art direction without changing CMS content model.
   ========================================================== */
.home-premium{
  --premium-shadow:0 24px 70px rgba(9,29,44,.11);
  --premium-shadow-strong:0 34px 90px rgba(9,29,44,.18);
  --premium-rule:color-mix(in srgb,var(--line) 82%,transparent);
}
.home-premium .section{padding:118px 0}
.home-premium .section-soft{background:linear-gradient(180deg,color-mix(in srgb,var(--cream) 92%,#fff) 0%,var(--cream) 100%)}
.home-premium .eyebrow{font-size:.7rem;letter-spacing:.21em;font-weight:900;margin-bottom:16px}
.home-premium h2{font-size:clamp(2.55rem,4.7vw,4.9rem);line-height:.98;letter-spacing:-.055em}
.home-premium h3{letter-spacing:-.035em}
.home-premium .lead{font-size:1rem;line-height:1.8}
.home-premium .section-head{margin-bottom:58px;align-items:end}
.home-premium .section-head>div{max-width:650px}
.home-premium .section-head .lead{max-width:500px;padding-bottom:7px}

/* Header refinement */
.topbar{letter-spacing:.015em}
.header{box-shadow:0 1px 0 rgba(16,43,69,.05)}
.header-inner{height:88px}
.nav{gap:29px;font-size:.82rem}
.header-cta{min-height:48px;padding:0 24px}
.brand{letter-spacing:-.05em}

/* Hero – stronger typography, calmer proof, more depth */
.home-premium .hero{min-height:760px}
.home-premium .hero-layout{min-height:760px}
.home-premium .hero-copy{padding:100px 0;max-width:800px}
.home-premium .hero h1{font-size:clamp(3.55rem,6.3vw,6.4rem);line-height:var(--hero-heading-line-height,.98);letter-spacing:var(--hero-heading-letter-spacing,-.04em);max-width:880px}
.home-premium .hero-copy>p{max-width:610px;font-size:1.05rem;line-height:1.78;margin-top:30px}
.home-premium .hero-actions{margin-top:38px;gap:10px}
.home-premium .hero-actions .btn,.home-premium .hero-secondary{min-height:56px;padding:0 25px;font-size:.8rem;letter-spacing:.01em}
.home-premium .hero-proof{margin-top:48px;padding-top:22px;gap:18px;border-top-width:1px}
.home-premium .proof-item{font-size:.74rem;letter-spacing:.01em}
.home-premium .proof-icon{width:30px;height:30px;font-size:.68rem}
.home-premium .hero--full-bleed .hero-bg::after{background:linear-gradient(90deg,rgba(4,16,27,.96) 0%,rgba(5,25,40,.90) 43%,rgba(5,25,40,.48) 70%,rgba(5,25,40,.16) 100%)}
.home-premium .hero--full-bleed::after{content:"";position:absolute;inset:auto 0 0;height:120px;background:linear-gradient(180deg,transparent,rgba(2,13,22,.16));pointer-events:none}
.home-premium .hero--split .hero-media{height:620px;box-shadow:var(--premium-shadow-strong)}
.home-premium .hero--organic .hero-media,.home-premium .hero--minimal .hero-media{filter:saturate(.96) contrast(1.02)}

/* Floating trust rail */
.home-premium .trust-strip--floating{position:relative;z-index:10;background:transparent;border:0;margin-top:-34px;margin-bottom:-34px;pointer-events:none}
.home-premium .trust-strip--floating .trust-grid{background:#fff;box-shadow:var(--premium-shadow);border:1px solid rgba(16,43,69,.07);pointer-events:auto}
.home-premium .trust-item{padding:27px 30px;min-height:102px;display:flex;flex-direction:column;justify-content:center}
.home-premium .trust-item strong{font-size:1.02rem;letter-spacing:-.025em}
.home-premium .trust-item span{font-size:.7rem;line-height:1.5;margin-top:5px}

/* Services – less generic, more editorial */
.home-premium .services{border:0;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));background:transparent}
.home-premium .service-card{min-height:330px;padding:34px 32px 30px;border:1px solid var(--premium-rule);background:rgba(255,255,255,.94);overflow:hidden;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.home-premium .service-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--brand-accent);transform:scaleX(0);transform-origin:left;transition:transform .28s ease}
.home-premium .service-card:hover{transform:translateY(-7px);box-shadow:var(--premium-shadow);border-color:transparent}
.home-premium .service-card:hover::after{transform:scaleX(1)}
.home-premium .service-card-top{display:flex;align-items:center;justify-content:space-between}
.home-premium .service-icon{width:auto;height:auto;background:none;color:var(--brand-accent);font-size:.7rem;font-weight:950;letter-spacing:.18em}
.home-premium .service-arrow{width:38px;height:38px;border:1px solid var(--line);display:grid;place-items:center;color:var(--navy);font-size:1.02rem;transition:.25s ease}
.home-premium .service-card:hover .service-arrow{background:var(--navy);color:#fff;border-color:var(--navy);transform:translate(2px,-2px)}
.home-premium .service-card h3{font-size:1.5rem;line-height:1.06;margin-top:46px;max-width:250px}
.home-premium .service-card p{font-size:.82rem;line-height:1.7;margin-top:14px;max-width:280px}
.home-premium .service-card .text-link{position:absolute;left:32px;bottom:30px;margin:0;font-size:.72rem;letter-spacing:.015em}
.home-premium .service-card--featured{background:var(--navy);border-color:var(--navy);color:#fff}
.home-premium .service-card--featured h3{color:#fff}
.home-premium .service-card--featured p{color:rgba(255,255,255,.7)}
.home-premium .service-card--featured .service-arrow{border-color:rgba(255,255,255,.2);color:#fff}
.home-premium .service-card--featured .text-link{color:var(--brand-accent)}

/* About – image-led and editorial */
.home-premium .about-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:92px}
.home-premium .about-media-wrap{position:relative;isolation:isolate}
.home-premium .media-frame{min-height:650px;box-shadow:var(--premium-shadow);background-position:center;background-size:cover}
.home-premium .media-frame::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid color-mix(in srgb,var(--brand-accent) 72%,transparent);z-index:-1}
.home-premium .media-frame::after{display:none}
.home-premium .about-experience{position:absolute;right:-34px;bottom:46px;width:170px;background:var(--brand-accent);color:var(--cta-text);padding:24px 22px;box-shadow:0 18px 44px rgba(0,0,0,.16)}
.home-premium .about-experience strong{display:block;font-size:2rem;line-height:1;font-weight:950;letter-spacing:-.06em}
.home-premium .about-experience span{display:block;margin-top:8px;font-size:.67rem;line-height:1.4;font-weight:800}
.home-premium .about-copy h2{max-width:600px}
.home-premium .about-copy .lead{margin-top:28px;max-width:610px}
.home-premium .check-list{margin-top:34px;grid-template-columns:1fr 1fr;gap:0 26px}
.home-premium .check{font-size:.76rem;padding:15px 0}
.home-premium .check::before{width:22px;height:22px;background:color-mix(in srgb,var(--brand-accent) 12%,#fff)}
.home-premium .stats{margin-top:38px;background:transparent;border:0;gap:1px}
.home-premium .stat{border-top:1px solid var(--line);padding:26px 6px 0 0}
.home-premium .stat strong{font-size:2.35rem;letter-spacing:-.065em}
.home-premium .stat span{font-size:.62rem;letter-spacing:.12em}

/* Projects – one hero project + supporting grid */
.home-premium .projects{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-auto-rows:260px;gap:12px}
.home-premium .project{min-height:0;height:100%;box-shadow:none}
.home-premium .project--featured{grid-row:span 2;grid-column:span 1}
.home-premium .project img{height:100%;aspect-ratio:auto;filter:saturate(.9) contrast(1.03)}
.home-premium .project::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 34%,rgba(4,18,29,.88) 100%);pointer-events:none}
.home-premium .project-caption{z-index:2;padding:60px 24px 22px;background:none}
.home-premium .project-caption strong{font-size:1.03rem;letter-spacing:-.02em}
.home-premium .project-caption>span:last-child{font-size:.68rem;margin-top:4px;color:rgba(255,255,255,.67)}
.home-premium .project-index{position:absolute;right:22px;bottom:23px;color:var(--brand-accent)!important;font-size:.67rem!important;font-weight:900;letter-spacing:.15em}
.home-premium .project--featured .project-caption{padding:90px 30px 30px}
.home-premium .project--featured .project-caption strong{font-size:1.65rem;max-width:330px}
.home-premium .project:hover img{transform:scale(1.045)}

/* Why choose us – bolder composition */
.home-premium .section-dark{position:relative;overflow:hidden;background:linear-gradient(115deg,var(--navy-2),color-mix(in srgb,var(--navy) 88%,#000))}
.home-premium .why-watermark{position:absolute;left:-18px;top:18px;color:rgba(255,255,255,.025);font-size:clamp(10rem,24vw,23rem);font-weight:950;line-height:.8;letter-spacing:-.09em;pointer-events:none}
.home-premium .why-grid{position:relative;z-index:1;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:100px;align-items:center}
.home-premium .why-copy{position:static}
.home-premium .why-copy h2{max-width:590px}
.home-premium .why-copy .lead{margin-top:28px;max-width:510px;color:rgba(255,255,255,.66)}
.home-premium .reasons{border:0;gap:1px;background:rgba(255,255,255,.12)}
.home-premium .reason{min-height:230px;padding:36px;background:rgba(6,28,44,.92);border:0;transition:.25s ease}
.home-premium .reason:hover{background:rgba(255,255,255,.055)}
.home-premium .reason b{font-size:.75rem;letter-spacing:.15em;color:var(--brand-accent)}
.home-premium .reason strong{font-size:1.08rem;margin-top:40px}
.home-premium .reason p{font-size:.76rem;line-height:1.65;margin-top:10px;color:rgba(255,255,255,.58)}

/* Reviews – featured quote rather than three identical cards */
.home-premium .testimonials{display:grid;grid-template-columns:1.35fr .825fr .825fr;gap:12px;align-items:stretch}
.home-premium .testimonial{position:relative;min-height:310px;padding:36px 30px;border:1px solid var(--premium-rule);background:#fff;display:flex;flex-direction:column}
.home-premium .testimonial::before{content:"“";position:absolute;right:25px;top:7px;color:color-mix(in srgb,var(--brand-accent) 18%,transparent);font-size:7rem;line-height:1;font-family:Georgia,serif}
.home-premium .testimonial blockquote{position:relative;z-index:1;font-size:.9rem;line-height:1.8;margin-top:28px}
.home-premium .testimonial strong{margin-top:auto;padding-top:30px}
.home-premium .testimonial--featured{background:var(--navy);border-color:var(--navy);padding:46px 42px}
.home-premium .testimonial--featured blockquote{font-size:1.35rem;line-height:1.55;color:#fff;letter-spacing:-.025em}
.home-premium .testimonial--featured strong{color:#fff}
.home-premium .testimonial--featured span{color:rgba(255,255,255,.55)}
.home-premium .testimonial--featured::before{color:rgba(255,255,255,.07);font-size:9rem}

/* Areas and FAQ – cleaner open layout */
.home-premium .area-faq{gap:88px;align-items:start}
.home-premium .areas{display:flex;flex-wrap:wrap;gap:9px;margin-top:34px}
.home-premium .area-chip{border:1px solid var(--line);padding:10px 13px;background:#fff;font-size:.7rem;font-weight:800}
.home-premium .area-chip::before{content:"";display:inline-block;width:5px;height:5px;background:var(--brand-accent);border-radius:50%;margin-right:8px;vertical-align:middle}
.home-premium .faq-list{margin-top:31px}
.home-premium .faq button{padding:22px 0;font-size:.82rem}
.home-premium .faq button span:last-child{width:27px;height:27px;display:grid;place-items:center;border:1px solid var(--line);font-size:1rem;transition:.2s ease}
.home-premium .faq.open button span:last-child{background:var(--navy);border-color:var(--navy);color:#fff}
.home-premium .faq p{padding-right:42px;line-height:1.75}

/* Premium conversion section */
.cta--premium{position:relative;overflow:hidden;background:linear-gradient(110deg,var(--navy-2),var(--navy));isolation:isolate}
.cta--premium::before{content:"";position:absolute;right:-120px;top:-190px;width:520px;height:520px;border-radius:50%;border:1px solid rgba(255,255,255,.09)}
.cta--premium::after{content:"";position:absolute;right:70px;bottom:-260px;width:430px;height:430px;border-radius:50%;background:var(--brand-accent);opacity:.09;z-index:-1}
.cta--premium .cta-accent{position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--brand-accent)}
.cta--premium .cta-inner{position:relative;min-height:360px}
.cta--premium .cta-copy{max-width:760px}
.cta--premium .cta-rule{width:54px;height:3px;background:var(--brand-accent);margin-bottom:25px}
.cta--premium h2{font-size:clamp(2.7rem,5vw,5rem);line-height:.96;letter-spacing:-.06em}
.cta--premium p{font-size:.93rem;margin-top:20px;max-width:620px}
.cta-proofline{display:flex;flex-wrap:wrap;gap:0;margin-top:27px;color:rgba(255,255,255,.58);font-size:.68rem;font-weight:750}
.cta-proofline span+span::before{content:"•";display:inline-block;margin:0 12px;color:var(--brand-accent)}
.cta--premium .cta-actions{min-width:220px;flex-direction:column}
.cta--premium .cta-actions .btn{min-height:56px;width:100%;padding:0 24px}

/* Footer – finish with a stronger brand moment */
.footer--premium{padding-top:0;background:color-mix(in srgb,var(--brand-dark) 92%,#000)}
.footer-intro{min-height:190px;border-bottom:1px solid rgba(255,255,255,.10);display:flex;align-items:center;justify-content:space-between;gap:40px}
.footer-kicker{display:block;color:var(--brand-accent);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;font-weight:900;margin-bottom:10px}
.footer-intro h2{font-size:clamp(2rem,3.7vw,3.9rem);line-height:1;color:#fff;letter-spacing:-.055em}
.footer-phone{display:flex!important;flex-direction:column;align-items:flex-end;padding:0!important}
.footer-phone span{font-size:.65rem;color:#8397a6;text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.footer-phone strong{font-size:1.35rem;color:#fff;margin-top:5px;letter-spacing:-.03em}
.footer--premium .footer-grid{padding-top:64px}
.footer--premium .footer-grid>div:first-child{padding-right:34px}
.footer--premium .footer h4,.footer--premium h4{letter-spacing:.08em;text-transform:uppercase;font-size:.67rem;color:#8094a2}
.footer--premium .footer-grid a{font-size:.76rem;color:#c3d0d8;transition:.18s ease}
.footer--premium .footer-grid a:hover{padding-left:3px;color:var(--brand-accent)}
.footer--premium .footer-bottom{margin-top:58px;padding-top:25px}

/* Button polish */
.home-premium .btn,.cta--premium .btn,.header-cta{position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease}
.home-premium .btn:hover,.cta--premium .btn:hover,.header-cta:hover{transform:translateY(-2px)}
.home-premium .btn-primary:hover,.cta--premium .btn-primary:hover,.header-cta:hover{box-shadow:0 12px 26px color-mix(in srgb,var(--brand-accent) 22%,transparent)}

@media(max-width:1120px){
  .home-premium .about-grid{gap:62px}
  .home-premium .projects{grid-template-columns:1fr 1fr;grid-auto-rows:240px}
  .home-premium .project--featured{grid-column:span 2;grid-row:span 1}
  .home-premium .testimonials{grid-template-columns:1fr 1fr}.home-premium .testimonial--featured{grid-column:span 2}
}

@media(max-width:980px){
  .header-inner{height:78px}
  .home-premium .section{padding:92px 0}
  .home-premium .trust-strip--floating{margin-top:0;margin-bottom:0;background:#fff}
  .home-premium .trust-strip--floating .trust-grid{box-shadow:none;border:0;border-bottom:1px solid var(--line)}
  .home-premium .about-grid{gap:52px}
  .home-premium .about-experience{right:18px}
  .home-premium .why-grid{gap:54px}
  .footer-intro{min-height:165px}
}

@media(max-width:680px){
  .home-premium .section{padding:76px 0}
  .home-premium .section-head{margin-bottom:36px}
  .home-premium h2{font-size:clamp(2.35rem,11vw,3.4rem)}
  .home-premium .hero{min-height:0}
  .home-premium .hero h1{font-size:clamp(3rem,14.5vw,4.6rem);line-height:var(--hero-heading-line-height,.98);letter-spacing:var(--hero-heading-letter-spacing,-.04em)}
  .home-premium .hero-copy{padding:46px 0 50px}
  .home-premium .hero--full-bleed .hero-copy{padding:325px 0 48px}
  .home-premium .hero-copy>p{margin-top:22px;font-size:.94rem;line-height:1.7}
  .home-premium .hero-proof{margin-top:30px;padding-top:19px}
  .home-premium .trust-item{min-height:85px;padding:20px 22px}
  .home-premium .services{grid-template-columns:1fr;gap:9px}
  .home-premium .service-card{min-height:285px;padding:28px 26px}
  .home-premium .service-card h3{margin-top:34px;font-size:1.45rem}
  .home-premium .service-card .text-link{left:26px;bottom:25px}
  .home-premium .about-grid{gap:48px}
  .home-premium .media-frame{min-height:430px}
  .home-premium .media-frame::before{inset:12px -10px -10px 12px}
  .home-premium .about-experience{right:-4px;bottom:28px;width:145px;padding:19px}
  .home-premium .about-experience strong{font-size:1.65rem}
  .home-premium .check-list{grid-template-columns:1fr}
  .home-premium .stats{grid-template-columns:repeat(3,1fr)}
  .home-premium .stat strong{font-size:1.65rem}.home-premium .stat span{font-size:.52rem}
  .home-premium .projects{grid-template-columns:1fr;grid-auto-rows:280px}
  .home-premium .project--featured{grid-column:auto;grid-row:auto;min-height:390px}
  .home-premium .why-grid{gap:42px}
  .home-premium .reasons{grid-template-columns:1fr 1fr}
  .home-premium .reason{min-height:190px;padding:25px}
  .home-premium .reason strong{margin-top:26px}
  .home-premium .testimonials{grid-template-columns:1fr}.home-premium .testimonial--featured{grid-column:auto}
  .home-premium .testimonial{min-height:275px}.home-premium .testimonial--featured{padding:34px 28px}
  .home-premium .testimonial--featured blockquote{font-size:1.15rem}
  .home-premium .area-faq{gap:62px}
  .home-premium .areas{grid-template-columns:none}
  .cta--premium .cta-inner{min-height:0;padding:76px 0}
  .cta--premium .cta-actions{min-width:0}
  .cta-proofline{display:block}.cta-proofline span{display:block;margin-top:6px}.cta-proofline span+span::before{display:none}
  .footer-intro{min-height:0;padding:54px 0;display:block}.footer-phone{align-items:flex-start;margin-top:28px}.footer--premium .footer-grid{padding-top:50px}
}

@media(prefers-reduced-motion:reduce){
  .home-premium .service-card,.home-premium .project img,.home-premium .service-arrow,.home-premium .btn,.cta--premium .btn,.header-cta{transition:none!important}
}

/* Premium hero balance refinements after responsive QA */
@media(min-width:1121px){
  .home-premium .hero--split .hero-layout{grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);gap:44px}
  .home-premium .hero--split .hero-media{height:590px}
  .home-premium .hero--split h1{font-size:clamp(3.45rem,5.25vw,5.65rem)}
}
@media(max-width:680px){
  .home-premium .hero--split .hero-copy,
  .home-premium .hero--brand-panel .hero-copy,
  .home-premium .hero--organic .hero-copy,
  .home-premium .hero--minimal .hero-copy{order:1;padding-top:48px;padding-bottom:38px}
  .home-premium .hero--split .hero-media,
  .home-premium .hero--brand-panel .hero-media,
  .home-premium .hero--organic .hero-media,
  .home-premium .hero--minimal .hero-media{order:2;height:285px!important;margin-top:0!important}
  .home-premium .hero--split .hero-layout,
  .home-premium .hero--brand-panel .hero-layout,
  .home-premium .hero--organic .hero-layout,
  .home-premium .hero--minimal .hero-layout{padding-bottom:0}
}

/* Responsive layout reset for premium-specific grid specificity */
@media(max-width:980px){
  .home-premium .about-grid,
  .home-premium .why-grid,
  .home-premium .area-faq{grid-template-columns:1fr}
  .home-premium .why-grid{align-items:start}
}


/* ==========================================================
   V1.3 Premium Polish + Prototype Claim Bar
   ========================================================== */
.header{transition:box-shadow .28s ease,background-color .28s ease,border-color .28s ease}
.header.header-scrolled{box-shadow:0 10px 32px rgba(7,24,38,.10);border-bottom-color:rgba(16,43,69,.05)}

.hero--full-bleed[data-motion="on"][data-kenburns="on"] > .hero-bg{
  animation:tbKenBurns 20s cubic-bezier(.42,0,.58,1) infinite alternate;
  transform-origin:center center;
  will-change:transform;
  backface-visibility:hidden;
}
@keyframes tbKenBurns{
  0%{transform:scale(1.018) translate3d(.35%,-.15%,0)}
  100%{transform:scale(1.105) translate3d(-1.15%,.55%,0)}
}


.home-premium .service-card{transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background-color .24s ease}
.home-premium .service-card:hover{transform:translateY(-5px);box-shadow:0 18px 46px rgba(16,43,69,.12)}
.home-premium .service-card .text-link{transition:transform .2s ease,color .2s ease}
.home-premium .service-card:hover .text-link{transform:translateX(4px)}
.home-premium .media-frame{overflow:hidden;transition:box-shadow .32s ease,transform .32s ease}
.home-premium .media-frame:hover{transform:translateY(-2px);box-shadow:0 24px 64px rgba(16,43,69,.16)}

.home-premium .project::after{transition:opacity .3s ease}
.home-premium .project:hover::after{opacity:.92}
.home-premium .project img{transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s ease}
.home-premium .project:hover img{transform:scale(1.04);filter:saturate(1) contrast(1.04)}

.home-premium .section-dark{position:relative;isolation:isolate;background:radial-gradient(circle at 8% 18%,rgba(255,255,255,.045),transparent 27%),radial-gradient(circle at 88% 78%,color-mix(in srgb,var(--brand-accent) 7%,transparent),transparent 22%),var(--navy-2)}
.home-premium .section-dark::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.1;pointer-events:none;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 1px,transparent 1px 16px);mask-image:linear-gradient(90deg,rgba(0,0,0,.6),transparent 62%)}

.home-premium .testimonial{transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}
.home-premium .testimonial:hover{transform:translateY(-4px);box-shadow:0 16px 42px rgba(16,43,69,.09)}

.faq p{display:block;max-height:0;overflow:hidden;opacity:0;padding-bottom:0;transition:max-height .35s ease,opacity .25s ease,padding .35s ease}
.faq.open p{max-height:340px;opacity:1;padding-bottom:18px}
.faq button span:last-child{transition:transform .25s ease,color .25s ease}
.faq.open button span:last-child{transform:rotate(45deg)}

.prototype-claim-bar{position:fixed;left:0;right:0;bottom:0;z-index:120;background:color-mix(in srgb,var(--brand-dark) 97%,transparent);color:#fff;border-top:1px solid rgba(255,255,255,.12);box-shadow:0 -12px 40px rgba(0,0,0,.16);transform:translateY(115%);opacity:0;visibility:hidden;transition:transform .38s cubic-bezier(.2,.72,.2,1),opacity .3s ease,visibility .3s;backdrop-filter:blur(12px)}
.prototype-claim-bar.is-visible{transform:translateY(0);opacity:1;visibility:visible}
.prototype-claim-inner{min-height:76px;display:flex;align-items:center;gap:22px}
.prototype-claim-copy{flex:1;min-width:0;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.prototype-claim-copy strong{font-size:1rem;letter-spacing:-.02em;color:#fff}
.prototype-claim-copy span{font-size:.78rem;color:#bfcbd4}
.prototype-claim-cta{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 18px;background:var(--brand-accent);color:var(--cta-text,#111);font-size:.78rem;font-weight:900;white-space:nowrap;transition:transform .2s ease,filter .2s ease}
.prototype-claim-cta:hover{transform:translateY(-2px);filter:brightness(1.05)}
.prototype-claim-close{width:38px;height:38px;flex:0 0 auto;border:0;background:rgba(255,255,255,.07);color:#fff;font-size:1.35rem;line-height:1;cursor:pointer;transition:background .2s ease}
.prototype-claim-close:hover{background:rgba(255,255,255,.14)}
body.claim-bar-visible .whatsapp-float{bottom:96px}

@media(max-width:680px){
  .prototype-claim-inner{min-height:0;padding-top:12px;padding-bottom:12px;gap:10px;display:grid;grid-template-columns:1fr auto;position:relative}
  .prototype-claim-copy{display:block;grid-column:1/-1;padding-right:34px}
  .prototype-claim-copy strong{display:block;font-size:.92rem}.prototype-claim-copy span{display:block;margin-top:3px;font-size:.7rem}
  .prototype-claim-cta{min-height:42px;width:max-content;max-width:100%}
  .prototype-claim-close{position:absolute;right:0;top:10px;width:32px;height:32px}
  body.claim-bar-visible .whatsapp-float{bottom:146px}
}

@media(prefers-reduced-motion:reduce){
  .hero-bg,.home-premium .service-card,.home-premium .project img,.home-premium .testimonial,.faq p,.faq button span:last-child,.prototype-claim-bar{animation:none!important;transition:none!important;transform:none!important}
}


/* Homepage visibility / trust strip refinement */
.home-premium .trust-strip--standalone{margin:0;background:#fff;border-bottom:1px solid var(--brand-border)}
.home-premium .trust-strip--standalone .trust-grid{box-shadow:none}
.home-premium .area-faq--single{grid-template-columns:minmax(0,760px);justify-content:start}
.home-premium .area-faq--single>div{width:100%}

/* Central focus treatment */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid color-mix(in srgb,var(--brand-accent) 52%,transparent);
  outline-offset:3px;
}
input:focus,textarea:focus,select:focus{border-color:var(--brand-accent)}

/* Services: one intentional accent system on light and featured cards */
.home-premium .service-icon,
.home-premium .service-card .text-link,
.home-premium .service-card::after{color:var(--brand-accent)}
.home-premium .service-card::after{background:var(--brand-accent)}
.home-premium .service-card .text-link{color:var(--brand-accent)}
.home-premium .service-card--featured{background:var(--brand-primary);border-color:var(--brand-primary)}
.home-premium .service-card--featured .service-icon,
.home-premium .service-card--featured .text-link{color:var(--brand-accent)}
.home-premium .service-card--featured:hover .service-arrow{
  background:var(--brand-accent);
  color:var(--brand-accent-contrast);
  border-color:var(--brand-accent);
}
.home-premium .service-card:not(.service-card--featured):hover .service-arrow{
  background:var(--brand-primary);
  color:#fff;
  border-color:var(--brand-primary);
}

/* Palette-owned review/FAQ/location accents */
.stars,.home-premium .stars{color:var(--brand-accent)}
.home-premium .project-index{color:var(--brand-accent)!important}
.home-premium .area-chip::before{background:var(--brand-accent)}
.area:not(.area-chip)::before{color:var(--brand-accent);background:none}
.faq button span:last-child{color:var(--brand-accent)}
.home-premium .faq.open button span:last-child{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}

/* Final CTA: deliberately separated from the dark footer */
.cta--premium{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:color-mix(in srgb,var(--brand-light) 88%,#fff);
  color:var(--brand-body);
  border-top:1px solid var(--brand-border);
  border-bottom:1px solid var(--brand-border);
}
.cta--premium::before{
  content:"";
  position:absolute;
  right:-150px;
  top:-170px;
  width:520px;
  height:520px;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--brand-primary) 16%,transparent);
  pointer-events:none;
}
.cta--premium::after{
  content:"";
  position:absolute;
  right:115px;
  bottom:-270px;
  width:430px;
  height:430px;
  border-radius:50%;
  background:var(--brand-accent);
  opacity:.08;
  z-index:-1;
}
.cta--premium .cta-accent{position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--brand-accent)}
.cta--premium .cta-graphic{position:absolute;right:10%;top:50%;width:125px;height:125px;transform:translateY(-50%) rotate(12deg);border:1px solid color-mix(in srgb,var(--brand-accent) 28%,transparent);pointer-events:none}
.cta--premium .cta-graphic::before,.cta--premium .cta-graphic::after{content:"";position:absolute;border:1px solid color-mix(in srgb,var(--brand-primary) 13%,transparent)}
.cta--premium .cta-graphic::before{inset:18px}.cta--premium .cta-graphic::after{inset:38px}
.cta--premium .cta-inner{position:relative;min-height:390px;padding:90px 0}
.cta--premium .cta-copy{max-width:760px}
.cta--premium .cta-eyebrow{margin-bottom:17px}
.cta--premium h2{color:var(--brand-heading);font-size:clamp(2.7rem,5vw,5rem);line-height:.96;letter-spacing:-.06em}
.cta--premium p{color:var(--brand-muted);font-size:.96rem;margin-top:21px;max-width:620px}
.cta-proofline{color:var(--brand-muted)}
.cta-proofline span+span::before{color:var(--brand-accent)}
.cta--premium .cta-actions{min-width:235px;flex-direction:column}
.cta--premium .cta-actions .btn{min-height:58px;width:100%;padding:0 24px}
.cta--premium .btn-dark{background:var(--brand-primary);color:#fff}
.cta--premium .btn-dark:hover{background:var(--brand-secondary)}

/* Footer remains a distinct dark closing band, but now inherits the palette. */
.footer,.footer--premium{background:color-mix(in srgb,var(--brand-dark) 92%,#000)}
.topbar{background:var(--brand-dark)}
.footer-kicker,.footer--premium .footer-grid a:hover,.footer a:hover{color:var(--brand-accent)}
.prototype-claim-bar{background:color-mix(in srgb,var(--brand-dark) 97%,transparent)}
.prototype-claim-cta{background:var(--brand-accent);color:var(--brand-accent-contrast)}

@media(max-width:900px){
  .trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .trust-item{border-bottom:1px solid var(--brand-border)}
  .trust-item:nth-child(even){border-right:none}
}
@media(max-width:560px){
  .trust-grid{grid-template-columns:1fr!important}
  .trust-item{border-right:none!important}
  .cta--premium .cta-graphic{display:none}
}


/* Premium inner-page hero fallback: used whenever no hero image is assigned. */
.inner-hero-gradient{
  background:
    linear-gradient(115deg,
      color-mix(in srgb,var(--brand-dark) 98%,#000) 0%,
      color-mix(in srgb,var(--brand-primary) 92%,var(--brand-dark)) 42%,
      color-mix(in srgb,var(--brand-secondary) 84%,var(--brand-dark)) 100%
    );
}
.inner-hero-gradient::before,
.inner-hero-gradient::after,
.inner-hero-gradient .inner-hero-ornament{display:none!important}
.inner-hero-gradient .eyebrow{color:var(--brand-accent)}
.inner-hero-gradient h1{color:#fff}
.inner-hero-gradient p{color:color-mix(in srgb,#fff 78%,var(--brand-light))}
.inner-hero-image .inner-hero-ornament{display:none}



/* Legacy internal-page placeholder SVGs are treated as no hero image in PHP.
   This class remains the visual fallback for all image-free internal heroes. */
.inner-hero-gradient{
  background-color:var(--brand-dark);
}


/* ==========================================================
   V1.4 Dynamic Page Blocks
   Controlled, palette-driven, responsive components
   ========================================================== */
.custom-page{overflow:hidden}
.page-block{position:relative;padding:clamp(72px,8vw,118px) 0}
.block-bg-white{background:#fff;color:var(--brand-body)}
.block-bg-light{background:color-mix(in srgb,var(--brand-light) 88%,#fff);color:var(--brand-body)}
.block-bg-dark{background:var(--brand-dark);color:#fff}
.block-bg-brand{background:var(--brand-primary);color:#fff}
.block-bg-dark h2,.block-bg-dark h3,.block-bg-brand h2,.block-bg-brand h3{color:#fff}
.block-bg-dark p,.block-bg-brand p{color:color-mix(in srgb,#fff 76%,var(--brand-light))}
.block-bg-dark .eyebrow,.block-bg-brand .eyebrow{color:var(--brand-accent)}

.block-heading{max-width:760px;margin-bottom:42px}
.block-heading h2,.block-copy h2,.block-rich h2,.block-faq-intro h2,.dynamic-contact h2,.custom-cta h2{
  margin:0;color:var(--brand-heading);font-size:clamp(2.15rem,4.2vw,4rem);line-height:1;letter-spacing:-.055em
}
.block-bg-dark .block-heading h2,.block-bg-brand .block-heading h2,
.block-bg-dark .block-copy h2,.block-bg-brand .block-copy h2,
.block-bg-dark .block-rich h2,.block-bg-brand .block-rich h2,
.block-bg-dark .dynamic-contact h2,.block-bg-brand .dynamic-contact h2,
.block-bg-dark .custom-cta h2,.block-bg-brand .custom-cta h2{color:#fff}
.block-heading>p{margin:18px 0 0;max-width:650px;color:var(--brand-muted);line-height:1.75}
.block-bg-dark .block-heading>p,.block-bg-brand .block-heading>p{color:color-mix(in srgb,#fff 72%,var(--brand-light))}

.block-text-image{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.92fr);gap:clamp(44px,7vw,92px);align-items:center}
.block-text-image.block-image-left .block-copy{order:2}.block-text-image.block-image-left .block-media{order:1}
.block-text-image--no-image{grid-template-columns:minmax(0,820px);justify-content:start}
.block-copy .prose{margin-top:24px}.block-copy .prose p,.block-rich .prose p{font-size:.97rem;line-height:1.85;color:var(--brand-muted)}
.block-bg-dark .prose p,.block-bg-brand .prose p{color:color-mix(in srgb,#fff 74%,var(--brand-light))}
.block-media{position:relative;min-height:440px}
.block-media::before{content:"";position:absolute;left:-18px;bottom:-18px;width:45%;height:45%;background:var(--brand-accent);opacity:.9}
.block-media img{position:relative;z-index:1;width:100%;height:100%;min-height:440px;object-fit:cover;display:block;box-shadow:0 24px 70px color-mix(in srgb,var(--brand-dark) 16%,transparent)}

.block-rich{width:100%;max-width:760px}.block-rich--wide{max-width:1020px}
.block-rich--align-left{margin-left:0;margin-right:auto;text-align:left}.block-rich--align-center{margin-left:auto;margin-right:auto;text-align:center}.block-rich--align-right{margin-left:auto;margin-right:0;text-align:right}
.block-rich .prose{margin-top:26px}.block-rich--align-center .prose,.block-rich--align-right .prose{margin-left:auto;margin-right:auto}.block-rich--align-right .prose{margin-right:0}

.benefit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.benefit-card{position:relative;background:#fff;border:1px solid var(--brand-border);padding:30px;min-height:220px;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}
.block-bg-white .benefit-card,.block-bg-light .benefit-card{background:#fff}
.block-bg-dark .benefit-card,.block-bg-brand .benefit-card{background:color-mix(in srgb,var(--brand-primary) 76%,#fff 6%);border-color:rgba(255,255,255,.14)}
.benefit-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px color-mix(in srgb,var(--brand-primary) 10%,transparent);border-color:color-mix(in srgb,var(--brand-accent) 40%,var(--brand-border))}
.benefit-index{display:block;color:var(--brand-accent);font-size:.72rem;font-weight:900;letter-spacing:.12em;margin-bottom:28px}
.benefit-card h3{margin:0 0 11px;color:var(--brand-heading);font-size:1.13rem}
.benefit-card p{margin:0;color:var(--brand-muted);font-size:.86rem;line-height:1.7}
.block-bg-dark .benefit-card p,.block-bg-brand .benefit-card p{color:rgba(255,255,255,.7)}
.benefit-style-numbered .benefit-index{font-size:1.35rem;letter-spacing:-.02em}

.process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--brand-border);border-bottom:1px solid var(--brand-border)}
.process-step{padding:32px 28px;border-right:1px solid var(--brand-border);min-height:245px}.process-step:last-child{border-right:0}
.process-step>span{display:block;color:var(--brand-accent);font-size:.78rem;font-weight:900;margin-bottom:42px}
.process-step h3{margin:0 0 10px;color:var(--brand-heading);font-size:1.08rem}.process-step p{margin:0;color:var(--brand-muted);font-size:.84rem;line-height:1.68}
.block-bg-dark .process-grid,.block-bg-brand .process-grid,.block-bg-dark .process-step,.block-bg-brand .process-step{border-color:rgba(255,255,255,.14)}
.block-bg-dark .process-step p,.block-bg-brand .process-step p{color:rgba(255,255,255,.7)}

.stats-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid color-mix(in srgb,var(--brand-border) 70%,transparent)}
.stats-strip>div{padding:34px 28px;border-right:1px solid color-mix(in srgb,var(--brand-border) 70%,transparent)}.stats-strip>div:last-child{border-right:0}
.stats-strip strong{display:block;color:var(--brand-accent);font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.06em;line-height:1}.stats-strip span{display:block;margin-top:9px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.block-bg-dark .stats-strip,.block-bg-brand .stats-strip{border-color:rgba(255,255,255,.14)}.block-bg-dark .stats-strip>div,.block-bg-brand .stats-strip>div{border-color:rgba(255,255,255,.14)}

.custom-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.custom-gallery figure{margin:0;position:relative;overflow:hidden;background:var(--brand-dark);min-height:280px}
.custom-gallery figure:nth-child(1),.custom-gallery figure:nth-child(4){grid-column:span 7}.custom-gallery figure:nth-child(2),.custom-gallery figure:nth-child(3),.custom-gallery figure:nth-child(5),.custom-gallery figure:nth-child(6){grid-column:span 5}
.custom-gallery img{width:100%;height:100%;min-height:280px;object-fit:cover;display:block;transition:transform .5s ease}.custom-gallery figure:hover img{transform:scale(1.035)}
.custom-gallery figcaption{position:absolute;left:18px;bottom:16px;background:color-mix(in srgb,var(--brand-dark) 90%,transparent);color:#fff;padding:8px 11px;font-size:.7rem;font-weight:850}

.dynamic-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--brand-border);border:1px solid var(--brand-border)}
.dynamic-service-card{display:block;background:#fff;padding:30px;text-decoration:none;min-height:250px;transition:background .22s ease,transform .22s ease}
.dynamic-service-card>span{display:block;color:var(--brand-accent);font-size:.7rem;font-weight:900;margin-bottom:34px}.dynamic-service-card h3{margin:0 0 10px;color:var(--brand-heading);font-size:1.08rem}.dynamic-service-card p{margin:0;color:var(--brand-muted);font-size:.83rem;line-height:1.65}.dynamic-service-card b{display:inline-block;margin-top:22px;color:var(--brand-accent);font-size:.73rem}
.dynamic-service-card:hover{background:var(--brand-primary);transform:translateY(-2px)}.dynamic-service-card:hover h3{color:#fff}.dynamic-service-card:hover p{color:rgba(255,255,255,.7)}
.block-bg-dark .dynamic-service-grid,.block-bg-brand .dynamic-service-grid{border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.13)}

.dynamic-testimonials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dynamic-testimonials blockquote{margin:0;background:#fff;border:1px solid var(--brand-border);padding:30px;min-height:245px}.dynamic-testimonials .stars{color:var(--brand-accent);letter-spacing:.08em}.dynamic-testimonials p{font-size:.93rem;line-height:1.75;color:var(--brand-body);margin:28px 0}.dynamic-testimonials strong{font-size:.76rem;color:var(--brand-heading)}.dynamic-testimonials strong+span{display:block;margin-top:5px;font-size:.76rem;color:var(--brand-muted)}
.block-bg-dark .dynamic-testimonials blockquote,.block-bg-brand .dynamic-testimonials blockquote{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.14)}.block-bg-dark .dynamic-testimonials p,.block-bg-brand .dynamic-testimonials p{color:rgba(255,255,255,.8)}.block-bg-dark .dynamic-testimonials strong,.block-bg-brand .dynamic-testimonials strong{color:#fff}.block-bg-dark .dynamic-testimonials strong+span,.block-bg-brand .dynamic-testimonials strong+span{color:rgba(255,255,255,.62)}

.block-faq-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;align-items:start}
.block-faq-intro{position:sticky;top:130px}.block-faq-intro h2{margin-top:0}.block-faq-intro .prose{margin-top:24px;max-width:650px}.block-faq-intro .prose p{margin:0;color:var(--brand-muted);font-size:.94rem;line-height:1.78}
.block-faq-layout--centered{display:block}.block-faq-layout--centered .block-faq-intro{position:static;max-width:820px;margin:0 auto clamp(38px,5vw,64px);text-align:center}.block-faq-layout--centered .block-faq-intro .prose{margin-left:auto;margin-right:auto}.block-faq-layout--centered .faq-list{max-width:980px;margin-left:auto;margin-right:auto}

.dynamic-areas{display:flex;flex-wrap:wrap;gap:8px}.dynamic-areas span{border:1px solid var(--brand-border);background:#fff;padding:10px 13px;font-size:.74rem;font-weight:800;color:var(--brand-heading)}.dynamic-areas span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--brand-accent);margin-right:8px}
.block-bg-dark .dynamic-areas span,.block-bg-brand .dynamic-areas span{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);color:#fff}

.dynamic-contact{display:flex;align-items:center;justify-content:space-between;gap:50px}.dynamic-contact>div:first-child{max-width:720px}.dynamic-contact p{font-size:.95rem;line-height:1.7;max-width:600px}.dynamic-contact-actions{display:flex;gap:8px;flex-wrap:wrap}

.custom-cta{padding:clamp(78px,9vw,130px) 0}.custom-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:55px}.custom-cta-inner>div{max-width:720px}.custom-cta p{font-size:.95rem;line-height:1.7;max-width:620px}.block-bg-brand.custom-cta{background:var(--brand-primary);position:relative;overflow:hidden}.block-bg-brand.custom-cta::after{content:"";position:absolute;right:-180px;top:-230px;width:560px;height:560px;border-radius:50%;background:var(--brand-accent);opacity:.1}

/* V2.16.33 — Pricing / Plans + Custom HTML page-builder blocks */
.pricing-block-heading .prose{margin-top:18px;max-width:700px}.pricing-block-heading .prose p{margin:0;color:var(--brand-muted);line-height:1.75}
.block-bg-dark .pricing-block-heading .prose p,.block-bg-brand .pricing-block-heading .prose p{color:rgba(255,255,255,.74)}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;align-items:stretch}
.pricing-card{--plan-accent:var(--brand-accent);position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--brand-border);padding:32px;min-width:0;box-shadow:0 18px 50px color-mix(in srgb,var(--brand-dark) 7%,transparent)}
.pricing-card--highlighted{border-top:5px solid var(--plan-accent);padding-top:27px}.pricing-badge{position:absolute;right:22px;top:18px;background:var(--plan-accent);color:#fff;padding:6px 9px;font-size:.64rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.pricing-card-head h3{margin:0 0 20px;color:var(--brand-heading);font-size:1.25rem}.pricing-price{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.pricing-price strong{color:var(--brand-heading);font-size:clamp(2.35rem,4vw,3.4rem);letter-spacing:-.055em;line-height:1}.pricing-prefix,.pricing-suffix{color:var(--brand-muted);font-size:.76rem;font-weight:800}.pricing-card-head>p{color:var(--brand-muted);font-size:.86rem;line-height:1.68;margin:18px 0 0}
.pricing-features{list-style:none;padding:0;margin:28px 0 30px;display:grid;gap:11px}.pricing-feature{display:grid;grid-template-columns:22px 1fr;gap:9px;align-items:start;color:var(--brand-body);font-size:.82rem;line-height:1.5}.pricing-feature>span:first-child{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:color-mix(in srgb,var(--plan-accent) 12%,#fff);color:var(--plan-accent);font-weight:950}.pricing-feature--excluded{opacity:.48}.pricing-feature--neutral>span:first-child{background:transparent;border:1px solid var(--brand-border)}
.pricing-card-footer{margin-top:auto}.pricing-card-cta{width:100%}.pricing-card-footer small{display:block;margin-top:12px;color:var(--brand-muted);font-size:.7rem;line-height:1.5}.pricing-section-footer{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:30px;padding-top:24px;border-top:1px solid var(--brand-border)}.pricing-section-footer .prose{max-width:760px}.pricing-section-footer .prose p{margin:0;color:var(--brand-muted);font-size:.8rem;line-height:1.65}
.block-bg-dark .pricing-card,.block-bg-brand .pricing-card{background:color-mix(in srgb,var(--brand-dark) 86%,#fff 5%);border-color:rgba(255,255,255,.14)}.block-bg-dark .pricing-card h3,.block-bg-brand .pricing-card h3,.block-bg-dark .pricing-price strong,.block-bg-brand .pricing-price strong{color:#fff}.block-bg-dark .pricing-card p,.block-bg-brand .pricing-card p,.block-bg-dark .pricing-prefix,.block-bg-brand .pricing-prefix,.block-bg-dark .pricing-suffix,.block-bg-brand .pricing-suffix,.block-bg-dark .pricing-feature,.block-bg-brand .pricing-feature,.block-bg-dark .pricing-card-footer small,.block-bg-brand .pricing-card-footer small,.block-bg-dark .pricing-section-footer .prose p,.block-bg-brand .pricing-section-footer .prose p{color:rgba(255,255,255,.72)}.block-bg-dark .pricing-section-footer,.block-bg-brand .pricing-section-footer{border-color:rgba(255,255,255,.14)}
.custom-html-spacing--compact{padding-top:44px;padding-bottom:44px}.custom-html-spacing--normal{padding-top:clamp(72px,8vw,118px);padding-bottom:clamp(72px,8vw,118px)}.custom-html-spacing--spacious{padding-top:clamp(96px,11vw,160px);padding-bottom:clamp(96px,11vw,160px)}
.custom-html-inner--standard{max-width:960px}.custom-html-inner--wide{max-width:1320px}.custom-html-inner--full{width:100%;max-width:none}.custom-html-heading{margin-bottom:clamp(42px,4vw,64px)}.custom-html-heading .prose{margin-top:26px;max-width:700px}.custom-html-heading .prose p{margin:0;color:var(--brand-muted);line-height:1.75}.block-bg-dark .custom-html-heading .prose p,.block-bg-brand .custom-html-heading .prose p{color:rgba(255,255,255,.74)}.custom-html-align--left .custom-html-heading{margin-left:0;margin-right:auto;text-align:left}.custom-html-align--left .custom-html-heading .prose{margin-left:0;margin-right:auto}.custom-html-align--center .custom-html-heading{margin-left:auto;margin-right:auto;text-align:center}.custom-html-align--center .custom-html-heading .prose{margin-left:auto;margin-right:auto}.custom-html-align--right .custom-html-heading{margin-left:auto;margin-right:0;text-align:right}.custom-html-align--right .custom-html-heading .prose{margin-left:auto;margin-right:0}.custom-html-output{max-width:100%;overflow-x:auto;overflow-y:visible;overflow-wrap:anywhere}.custom-html-cta{display:flex;margin-top:clamp(32px,4vw,48px)}.custom-html-align--left .custom-html-cta{justify-content:flex-start}.custom-html-align--center .custom-html-cta{justify-content:center}.custom-html-align--right .custom-html-cta{justify-content:flex-end}.custom-html-output .tb-table-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.custom-html-output table.tb-table{width:100%;border-collapse:collapse;min-width:620px}.custom-html-output .tb-table th,.custom-html-output .tb-table td{padding:14px 16px;border:1px solid var(--brand-border);text-align:left;vertical-align:top}.custom-html-output .tb-table th{background:color-mix(in srgb,var(--brand-primary) 8%,#fff);color:var(--brand-heading);font-weight:850}.custom-html-output .tb-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--brand-light) 45%,#fff)}

@media(max-width:980px){
  .block-text-image{grid-template-columns:1fr;gap:38px}.block-text-image.block-image-left .block-copy,.block-text-image.block-image-left .block-media{order:initial}.block-media{min-height:360px}.block-media img{min-height:360px}
  .benefit-grid,.dynamic-service-grid,.dynamic-testimonials{grid-template-columns:repeat(2,minmax(0,1fr))}
  .process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.process-step:nth-child(2){border-right:0}.process-step:nth-child(-n+2){border-bottom:1px solid var(--brand-border)}
  .stats-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-strip>div:nth-child(2){border-right:0}.stats-strip>div:nth-child(-n+2){border-bottom:1px solid var(--brand-border)}
  .block-faq-layout{grid-template-columns:1fr;gap:34px}.block-faq-intro{position:static}
  .dynamic-contact,.custom-cta-inner{align-items:flex-start;flex-direction:column}
}
@media(max-width:620px){
  .page-block{padding:68px 0}.benefit-grid,.dynamic-service-grid,.dynamic-testimonials,.process-grid,.stats-strip{grid-template-columns:1fr}
  .process-step,.process-step:nth-child(2),.stats-strip>div,.stats-strip>div:nth-child(2){border-right:0}.process-step,.stats-strip>div{border-bottom:1px solid var(--brand-border)}.process-step:last-child,.stats-strip>div:last-child{border-bottom:0}
  .custom-gallery{display:grid;grid-template-columns:1fr}.custom-gallery figure:nth-child(n){grid-column:auto;min-height:230px}.custom-gallery img{min-height:230px}
  .block-media,.block-media img{min-height:300px}.block-media::before{left:-10px;bottom:-10px}
  .dynamic-contact-actions{width:100%;flex-direction:column}.dynamic-contact-actions .btn,.custom-cta .btn{width:100%}
}


/* ==========================================================
   V1.4 Image Frame System
   10 controlled responsive media-frame designs
   ========================================================== */
.tb-image-frame{
  position:relative;
  width:100%;
  isolation:isolate;
  color:var(--brand-accent);
  overflow:visible;
}
.tb-image-frame-surface{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  background:color-mix(in srgb,var(--brand-light) 84%,#fff);
  transform:translateZ(0);
}
.tb-image-frame-surface img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.tb-frame--shadow .tb-image-frame-surface{
  filter:drop-shadow(0 24px 28px color-mix(in srgb,var(--brand-dark) 18%,transparent));
}
.tb-frame-decoration{
  position:absolute;
  z-index:-1;
  color:var(--brand-accent);
  pointer-events:none;
  overflow:visible;
}
.tb-frame-decoration--corner{width:142px;height:142px;right:-22px;bottom:-22px}
.tb-frame-decoration--curve{width:150px;height:150px;right:-29px;bottom:-22px}
.tb-frame-decoration--angle{width:152px;height:120px;right:-26px;bottom:-20px}

/* 01 Clean Edge */
.tb-frame--clean .tb-image-frame-surface{border-radius:0}

/* 02 Soft Radius */
.tb-frame--soft .tb-image-frame-surface{border-radius:24px}

/* 03 Offset Corners */
.tb-frame--offset .tb-image-frame-surface{border-radius:42px 8px 42px 8px}

/* 04 Architectural Arch */
.tb-frame--arch .tb-image-frame-surface{border-radius:48% 48% 18px 18px / 34% 34% 18px 18px}

/* 05 Cut Corners */
.tb-frame--cut .tb-image-frame-surface{
  clip-path:polygon(7% 0,93% 0,100% 8%,100% 92%,93% 100%,7% 100%,0 92%,0 8%);
}

/* 06 Diagonal Edge */
.tb-frame--diagonal .tb-image-frame-surface{
  clip-path:polygon(0 7%,100% 0,100% 93%,0 100%);
}

/* 07 Editorial Notch */
.tb-frame--notch .tb-image-frame-surface{
  clip-path:polygon(0 0,87% 0,87% 10%,100% 10%,100% 100%,0 100%);
}

/* 08 Organic Curve */
.tb-frame--organic .tb-image-frame-surface{
  border-radius:46% 54% 38% 62% / 34% 42% 58% 66%;
}

/* 09 Modern Capsule */
.tb-frame--capsule .tb-image-frame-surface{
  border-radius:120px 18px 120px 18px;
}

/* 10 Opposing Curves */
.tb-frame--scoop .tb-image-frame-surface{
  border-radius:0 78px 0 78px;
}

/* Existing template surfaces using the new frame component. */
.media-frame{
  min-height:550px;
  background:none!important;
  box-shadow:none!important;
}
.media-frame::before,.media-frame::after{display:none!important}
.media-frame .tb-image-frame-surface{position:absolute;inset:0}
.home-premium .media-frame{
  min-height:650px;
  box-shadow:none!important;
  background:none!important;
}
.home-premium .media-frame::before,.home-premium .media-frame::after{display:none!important}

.service-content-frame{aspect-ratio:4/3}
.service-media>.tb-image-frame{width:100%}
.service-media>.tb-image-frame img{aspect-ratio:auto}
.service-media>img{display:none}

.block-media>.dynamic-content-frame{height:100%;min-height:440px}
.dynamic-content-frame .tb-image-frame-surface{position:absolute;inset:0}

/* Frame accents should sit behind media, never over text or interactive UI. */
.about-media-wrap,.block-media,.service-media{isolation:isolate}

/* Shape-specific accent alignment. */
.tb-frame--arch .tb-frame-decoration--curve,
.tb-frame--organic .tb-frame-decoration--curve{right:-18px;bottom:-16px}
.tb-frame--capsule .tb-frame-decoration--curve,
.tb-frame--scoop .tb-frame-decoration--curve{right:-28px;bottom:-18px}
.tb-frame--diagonal .tb-frame-decoration--angle{right:-18px}
.tb-frame--notch .tb-frame-decoration--angle{right:-14px;bottom:-14px}

/* Hover depth is restrained and only affects content frames. */
.tb-image-frame .tb-image-frame-surface{
  transition:transform .32s ease,filter .32s ease;
}
.tb-image-frame:hover .tb-image-frame-surface{transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){
  .tb-image-frame .tb-image-frame-surface{transition:none!important;transform:none!important}
}

@media(max-width:900px){
  .media-frame,.home-premium .media-frame{min-height:520px}
  .tb-frame-decoration--corner{width:112px;height:112px;right:-15px;bottom:-15px}
  .tb-frame-decoration--curve{width:122px;height:122px;right:-17px;bottom:-14px}
  .tb-frame-decoration--angle{width:124px;height:98px;right:-16px;bottom:-14px}
  .tb-frame--offset .tb-image-frame-surface{border-radius:34px 7px 34px 7px}
  .tb-frame--capsule .tb-image-frame-surface{border-radius:92px 16px 92px 16px}
}
@media(max-width:620px){
  .media-frame,.home-premium .media-frame{min-height:390px}
  .block-media>.dynamic-content-frame{min-height:320px}
  .tb-frame--soft .tb-image-frame-surface{border-radius:18px}
  .tb-frame--offset .tb-image-frame-surface{border-radius:28px 6px 28px 6px}
  .tb-frame--arch .tb-image-frame-surface{border-radius:46% 46% 14px 14px / 28% 28% 14px 14px}
  .tb-frame--capsule .tb-image-frame-surface{border-radius:72px 14px 72px 14px}
  .tb-frame--scoop .tb-image-frame-surface{border-radius:0 54px 0 54px}
  .tb-frame-decoration--corner{width:88px;height:88px;right:-10px;bottom:-10px}
  .tb-frame-decoration--curve{width:94px;height:94px;right:-12px;bottom:-10px}
  .tb-frame-decoration--angle{width:98px;height:78px;right:-11px;bottom:-10px}
}


/* Image-frame refinement after rendered QA */
.block-media:has(.tb-image-frame)::before{display:none!important}
.tb-frame-decoration--curve{width:166px;height:166px;right:-48px;bottom:-45px}
.tb-frame--arch .tb-frame-decoration--curve,
.tb-frame--organic .tb-frame-decoration--curve{right:-42px;bottom:-38px}
.tb-frame--capsule .tb-frame-decoration--curve,
.tb-frame--scoop .tb-frame-decoration--curve{right:-48px;bottom:-42px}
@media(max-width:620px){
  .tb-frame-decoration--curve{width:106px;height:106px;right:-28px;bottom:-25px}
  .tb-frame--arch .tb-frame-decoration--curve,
  .tb-frame--organic .tb-frame-decoration--curve,
  .tb-frame--capsule .tb-frame-decoration--curve,
  .tb-frame--scoop .tb-frame-decoration--curve{right:-25px;bottom:-22px}
}

/* SVG accent visibility tuning */
.tb-frame--soft .tb-frame-decoration--curve,
.tb-frame--capsule .tb-frame-decoration--curve,
.tb-frame--scoop .tb-frame-decoration--curve{right:-68px;bottom:-58px}
.tb-frame--arch .tb-frame-decoration--curve,
.tb-frame--organic .tb-frame-decoration--curve{right:-55px;bottom:-48px}
.tb-frame--cut .tb-frame-decoration--angle,
.tb-frame--diagonal .tb-frame-decoration--angle,
.tb-frame--notch .tb-frame-decoration--angle{right:-48px;bottom:-30px}
@media(max-width:620px){
  .tb-frame--soft .tb-frame-decoration--curve,
  .tb-frame--capsule .tb-frame-decoration--curve,
  .tb-frame--scoop .tb-frame-decoration--curve{right:-38px;bottom:-34px}
  .tb-frame--arch .tb-frame-decoration--curve,
  .tb-frame--organic .tb-frame-decoration--curve{right:-31px;bottom:-28px}
  .tb-frame--cut .tb-frame-decoration--angle,
  .tb-frame--diagonal .tb-frame-decoration--angle,
  .tb-frame--notch .tb-frame-decoration--angle{right:-30px;bottom:-22px}
}


/* ==========================================================
   V1.5.1 Layout & Content Flexibility
   ========================================================== */

/* Desktop navigation layout presets. Mobile falls back to the existing stable menu. */
@media(min-width:981px){
  .header--layout-balanced .header-inner{
    display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;
  }
  .header--layout-balanced .nav{justify-self:center}
  .header--layout-balanced .header-cta{justify-self:end}

  .header--layout-left-cluster .header-inner{justify-content:flex-start}
  .header--layout-left-cluster .nav{margin-left:18px;margin-right:auto}
  .header--layout-left-cluster .header-cta{margin-left:auto}

  .header--layout-right-cluster .header-inner{justify-content:flex-start}
  .header--layout-right-cluster .nav{margin-left:auto}
  .header--layout-right-cluster .header-cta{margin-left:14px}

  .header--layout-centered-stack .header-inner{
    height:auto;min-height:126px;padding:14px 0 12px;
    display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto;
    row-gap:10px;column-gap:24px;
  }
  .header--layout-centered-stack .brand-link{grid-column:2;grid-row:1;justify-self:center}
  .header--layout-centered-stack .header-cta{grid-column:3;grid-row:1;justify-self:end}
  .header--layout-centered-stack .nav{grid-column:1/-1;grid-row:2;justify-self:center}
}

/* Full-Bleed parallax: JS supplies the slow translate, scale prevents edge gaps. */
.hero--full-bleed[data-motion="on"][data-parallax="on"]>.hero-bg{
  will-change:transform;
  transform:scale(1.06);
}
.hero--full-bleed[data-motion="on"][data-parallax="on"]>.hero-bg::after{
  transform:none;
}

/* About internal page */
.stats--about.stats--count-1{grid-template-columns:1fr;max-width:520px;margin-left:auto;margin-right:auto}
.stats--about.stats--count-2{grid-template-columns:repeat(2,1fr)}
.stats--about.stats--count-3{grid-template-columns:repeat(3,1fr)}
.about-extra-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.95fr);
  gap:clamp(44px,7vw,92px);align-items:center
}
.about-extra-grid--image-left .about-extra-copy{order:2}
.about-extra-grid--image-left .about-extra-media{order:1}
.about-extra-grid--text-only{grid-template-columns:minmax(0,820px);justify-content:start}
.about-extra .about-extra-copy>h2{max-width:760px}
.about-extra.section-dark .about-extra-copy h2{color:#fff}
.about-extra.section-dark .about-extra-copy .prose p{color:rgba(255,255,255,.76)}

/* Footer social links and optional intro strip */
.footer--no-intro .footer-grid{padding-top:72px}
.footer-socials{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:24px}
.footer-socials a{
  width:38px;height:38px;padding:0!important;display:grid!important;place-items:center;
  border:1px solid rgba(255,255,255,.14);color:#d7e0e6!important;
  transition:transform .18s ease,border-color .18s ease,color .18s ease,background .18s ease!important
}
.footer-socials a:hover{
  padding-left:0!important;transform:translateY(-2px);
  border-color:var(--brand-accent);background:var(--brand-accent);
  color:var(--brand-accent-contrast)!important
}
.social-icon{width:18px;height:18px;display:block}

/* Contact details: consistent icon geometry + real address */
.contact-details{margin-top:28px;display:grid;gap:12px}
.contact-card .contact-detail{
  display:grid;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:12px;
  margin:0;padding:7px 0;color:#fff;font-weight:780
}
.contact-card .contact-detail--address{color:#c1cfda;font-weight:500}
.contact-card .contact-detail address{font-style:normal;line-height:1.6}
.contact-icon-wrap{
  width:24px;height:24px;display:grid;place-items:center;color:var(--brand-accent);margin-top:1px
}
.contact-icon{width:20px;height:20px;display:block}

/* Give the enquiry form a subtle premium lift. */
.form-card{
  box-shadow:0 22px 60px color-mix(in srgb,var(--brand-primary) 10%,transparent);
  border:1px solid color-mix(in srgb,var(--brand-border) 88%,transparent)
}

/* Optional grayscale Google map with a palette-owned pin. */
.contact-map-block{grid-column:1/-1;margin-top:54px}
.contact-map-copy{
  display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:18px
}
.contact-map-copy p{color:var(--brand-muted);max-width:690px}
.contact-map{position:relative;height:430px;overflow:hidden;background:#e6e8e9;border:1px solid var(--brand-border)}
.contact-map iframe{
  width:100%;height:100%;border:0;display:block;filter:grayscale(1) saturate(0) contrast(.92) brightness(1.03);
  pointer-events:none
}
.contact-map-pin{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-62%) rotate(-45deg);
  width:58px;height:58px;display:grid;place-items:center;border-radius:50% 50% 50% 0;
  background:var(--brand-accent);color:var(--brand-accent-contrast);
  box-shadow:0 12px 30px rgba(0,0,0,.18)
}
.contact-map-pin .map-pin-icon{width:26px;height:26px;transform:rotate(45deg)}

/* Count-aware service grids. 4 becomes a deliberate 2x2; 5 becomes 3 + centred 2. */
.services--count-1{grid-template-columns:minmax(0,520px)!important;justify-content:center}
.services--count-2{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:930px;margin-left:auto;margin-right:auto}
.services--count-4{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:980px;margin-left:auto;margin-right:auto}
.services--count-5{grid-template-columns:repeat(6,minmax(0,1fr))!important}
.services--count-5>.service-card{grid-column:span 2}
.services--count-5>.service-card:nth-child(4){grid-column:2/span 2}
.services--count-5>.service-card:nth-child(5){grid-column:4/span 2}

/* Keep service grids intentional on tablet/mobile regardless of service count. */
@media(max-width:980px){
  .services--count-1,.services--count-2,.services--count-3,.services--count-4,.services--count-5,.services--count-6{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:none
  }
  .services--count-5>.service-card,.services--count-5>.service-card:nth-child(4),.services--count-5>.service-card:nth-child(5){
    grid-column:auto
  }
  .about-extra-grid{grid-template-columns:1fr}
  .about-extra-grid--image-left .about-extra-copy,.about-extra-grid--image-left .about-extra-media{order:initial}
}
@media(max-width:680px){
  .services--count-1,.services--count-2,.services--count-3,.services--count-4,.services--count-5,.services--count-6{
    grid-template-columns:1fr!important
  }
  .contact-map{height:330px}
  .contact-map-copy{display:block}.contact-map-copy .text-link{display:inline-block;margin-top:16px}
  .footer--no-intro .footer-grid{padding-top:50px}
}
@media(prefers-reduced-motion:reduce){
  .hero--full-bleed[data-motion="on"][data-parallax="on"]>.hero-bg{transform:none!important}
}


/* ==========================================================
   V1.5.2 Map, Navigation & Motion Polish
   ========================================================== */

/* One controlled size for desktop nav labels and the header CTA. */
.nav,
.header-cta{
  font-size:var(--nav-font-size,15px)!important;
}
.nav .submenu a{
  font-size:calc(var(--nav-font-size,15px) - 1px)!important;
}
.nav,
.nav>a,
.nav-parent>a,
.submenu-toggle,
.nav .submenu a{
  font-weight:var(--nav-font-weight,750)!important;
}
@media(max-width:980px){
  .nav{font-size:var(--nav-font-size,15px)!important}
  .nav .submenu a{font-size:calc(var(--nav-font-size,15px) - 1px)!important}
}

/* Stronger premium parallax needs additional image overscan. */
.hero--full-bleed[data-motion="on"][data-parallax="on"]>.hero-bg{
  transform:scale(1.20);
}

/* Map is now outside the normal content container, so it naturally spans
   the complete page width while its heading remains aligned to the site grid. */
.contact-map-block{
  margin-top:64px;
  width:100%;
}
.contact-map-copy{
  padding-top:4px;
}
.contact-map{
  height:500px;
  width:100%;
  border-left:0;
  border-right:0;
}

/* Footer socket credit */
.footer-credit-line{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px 14px;
}
.toolbelt-credit{
  color:#aebdc7!important;
  text-decoration:none;
  position:relative;
  padding-left:14px;
  transition:color .18s ease;
}
.toolbelt-credit::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:3px;
  height:3px;
  border-radius:50%;
  background:var(--brand-accent);
  transform:translateY(-50%);
}
.toolbelt-credit:hover{color:#fff!important}

@media(max-width:680px){
  .contact-map{height:360px}
  .footer-credit-line{display:block}
  .toolbelt-credit{display:inline-block;margin-top:8px;padding-left:0}
  .toolbelt-credit::before{display:none}
}


/* ==========================================================
   V1.5.3 Header, Map & Motion Controls
   ========================================================== */

/* Apply the CMS navigation size directly to every relevant control rather than
   relying on inheritance. This also overrides older premium-template rules. */
.nav,
.nav>a,
.nav-parent>a,
.submenu-toggle,
.header-cta{
  font-size:var(--nav-font-size,15px)!important;
}
.submenu a{
  font-size:calc(var(--nav-font-size,15px) - 1px)!important;
}

/* Standard header can now be sticky or normal-flow. */
.header--style-standard.header--sticky{position:sticky;top:0}
.header--style-standard.header--static{position:relative;top:auto}

/* Transparent and glass headers overlay the hero at the top of the page. */
.header--style-transparent,
.header--style-glass{
  position:absolute;
  top:38px;
  left:0;
  right:0;
  z-index:50;
  box-shadow:none;
  border-bottom-color:rgba(255,255,255,.12);
}
.header--style-transparent{
  background:transparent;
  backdrop-filter:none;
}
.header--style-glass{
  background:rgba(7,25,40,.34);
  backdrop-filter:blur(18px) saturate(125%);
  -webkit-backdrop-filter:blur(18px) saturate(125%);
}

/* White navigation treatment while sitting over hero imagery. */
.header--style-transparent:not(.header-scrolled) .nav,
.header--style-glass:not(.header-scrolled) .nav,
.header--style-transparent:not(.header-scrolled) .nav>a,
.header--style-glass:not(.header-scrolled) .nav>a,
.header--style-transparent:not(.header-scrolled) .nav-parent>a,
.header--style-glass:not(.header-scrolled) .nav-parent>a,
.header--style-transparent:not(.header-scrolled) .submenu-toggle,
.header--style-glass:not(.header-scrolled) .submenu-toggle,
.header--style-transparent:not(.header-scrolled) .brand,
.header--style-glass:not(.header-scrolled) .brand{
  color:#fff;
}
.header--style-transparent:not(.header-scrolled) .brand-logo img,
.header--style-glass:not(.header-scrolled) .brand-logo img{
  filter:brightness(0) invert(1);
}
.header--style-transparent:not(.header-scrolled) .mobile-menu::before,
.header--style-transparent:not(.header-scrolled) .mobile-menu::after,
.header--style-transparent:not(.header-scrolled) .mobile-menu span,
.header--style-glass:not(.header-scrolled) .mobile-menu::before,
.header--style-glass:not(.header-scrolled) .mobile-menu::after,
.header--style-glass:not(.header-scrolled) .mobile-menu span{
  background:#fff;
}

/* When sticky, transparent/glass transition into the existing premium white header. */
.header--style-transparent.header--sticky.header-scrolled,
.header--style-glass.header--sticky.header-scrolled{
  position:fixed;
  top:0;
  left:0;
  right:0;
  background:rgba(255,255,255,.97);
  border-bottom-color:rgba(16,43,69,.07);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 10px 32px rgba(7,24,38,.10);
}
.header--style-transparent.header--sticky.header-scrolled .nav,
.header--style-glass.header--sticky.header-scrolled .nav,
.header--style-transparent.header--sticky.header-scrolled .nav>a,
.header--style-glass.header--sticky.header-scrolled .nav>a,
.header--style-transparent.header--sticky.header-scrolled .nav-parent>a,
.header--style-glass.header--sticky.header-scrolled .nav-parent>a,
.header--style-transparent.header--sticky.header-scrolled .submenu-toggle,
.header--style-glass.header--sticky.header-scrolled .submenu-toggle,
.header--style-transparent.header--sticky.header-scrolled .brand,
.header--style-glass.header--sticky.header-scrolled .brand{
  color:var(--brand-body);
}
.header--style-transparent.header--sticky.header-scrolled .brand-logo img,
.header--style-glass.header--sticky.header-scrolled .brand-logo img{
  filter:none;
}

/* Non-sticky transparent/glass headers simply scroll away in their hero state. */
.header--style-transparent.header--static,
.header--style-glass.header--static{
  position:absolute;
  top:38px;
}
.header--style-transparent.header--static.header-scrolled,
.header--style-glass.header--static.header-scrolled{
  background:inherit;
  box-shadow:none;
}

/* Dropdown panels remain light even while the parent header is transparent. */
.header--style-transparent .submenu,
.header--style-glass .submenu{
  color:var(--brand-body);
}
.header--style-transparent .submenu a,
.header--style-glass .submenu a{
  color:var(--brand-body)!important;
}

/* Parallax overscan is controlled by JS according to the selected strength. */
.hero--full-bleed[data-motion="on"][data-parallax="on"]>.hero-bg{
  transform-origin:center center;
  backface-visibility:hidden;
}

/* Footer credit stays on the copyright line on desktop. */
.footer-credit-line{
  display:inline-flex!important;
  align-items:center;
  flex-wrap:nowrap;
  gap:8px;
  white-space:nowrap;
}
.footer-credit-separator{color:rgba(255,255,255,.34)}
.footer .toolbelt-credit{
  display:inline!important;
  padding:0!important;
  margin:0!important;
  color:#aebdc7!important;
}
.footer .toolbelt-credit::before{display:none!important}

/* Full-width map retains the page-grid-aligned heading. */
.contact-map-block{width:100%;overflow:hidden}
.contact-map{width:100%}

/* Mobile menu remains readable with transparent/glass headers. */
@media(max-width:980px){
  .header--style-transparent:not(.header-scrolled) .nav.open,
  .header--style-glass:not(.header-scrolled) .nav.open{
    color:var(--brand-body);
    background:#fff;
  }
  .header--style-transparent:not(.header-scrolled) .nav.open>a,
  .header--style-glass:not(.header-scrolled) .nav.open>a,
  .header--style-transparent:not(.header-scrolled) .nav.open .nav-parent>a,
  .header--style-glass:not(.header-scrolled) .nav.open .nav-parent>a,
  .header--style-transparent:not(.header-scrolled) .nav.open .submenu-toggle,
  .header--style-glass:not(.header-scrolled) .nav.open .submenu-toggle{
    color:var(--brand-body);
  }
}
@media(max-width:680px){
  .footer-credit-line{white-space:normal;flex-wrap:wrap}
}

/* The no-key map fallback also receives a small visual scale adjustment so
   the CMS zoom control remains visibly responsive even if the legacy Google
   endpoint chooses to soften/ignore its z parameter. */
.contact-map--fallback iframe{
  width:calc(100% / var(--fallback-map-scale,1));
  height:calc(100% / var(--fallback-map-scale,1));
  min-width:100%;
  min-height:100%;
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%) scale(var(--fallback-map-scale,1));
  transform-origin:center center;
}


/* ==========================================================
   V1.5.4 Mobile Hero, Header & Visual Variety
   ========================================================== */

/* Mobile full-bleed hero: move content higher and guarantee long trade words fit. */
@media(max-width:680px){
  .home-premium .hero--full-bleed{
    min-height:0;
  }
  .home-premium .hero--full-bleed .hero-copy{
    width:100%;
    max-width:100%;
    padding:215px 0 44px;
  }
  .home-premium .hero--full-bleed .hero-copy .eyebrow{
    margin-bottom:18px;
  }
  .home-premium .hero--full-bleed h1{
    max-width:100%;
    font-size:clamp(2.55rem,11.8vw,3.65rem);
    line-height:max(1,var(--hero-heading-line-height,.98));
    letter-spacing:max(-.035em,var(--hero-heading-letter-spacing,-.04em));
    overflow-wrap:anywhere;
    text-wrap:balance;
  }
  .home-premium .hero--full-bleed h1 span{
    display:block;
    margin-top:.03em;
  }
  .home-premium .hero--full-bleed .hero-copy>p{
    max-width:100%;
  }
}
@media(max-width:390px){
  .home-premium .hero--full-bleed .hero-copy{padding-top:200px}
  .home-premium .hero--full-bleed h1{font-size:clamp(2.4rem,11.5vw,3.25rem)}
}

/* Header border can be retained or removed without changing header height. */
.header--border{border-bottom-color:rgba(255,255,255,.12)}
.header--style-standard.header--border{border-bottom-color:var(--brand-border)}
.header--no-border{border-bottom-color:transparent!important}

/* Slow, premium header state transition. */
.header,
.header .header-inner,
.header .brand,
.header .brand-logo img,
.header .nav,
.header .nav>a,
.header .nav-parent>a,
.header .submenu-toggle,
.header .header-cta,
.header .mobile-menu,
.header .mobile-menu::before,
.header .mobile-menu::after,
.header .mobile-menu span{
  transition:
    background-color .78s cubic-bezier(.22,.61,.36,1),
    color .68s cubic-bezier(.22,.61,.36,1),
    border-color .68s cubic-bezier(.22,.61,.36,1),
    box-shadow .78s cubic-bezier(.22,.61,.36,1),
    filter .68s cubic-bezier(.22,.61,.36,1),
    opacity .68s cubic-bezier(.22,.61,.36,1);
}

/* No-key coordinate map: preserve exact Google q/ll/z and add visible crop scaling
   so the CMS zoom control still has an obvious visual result. */
.contact-map--coordinates iframe{
  width:calc(100% / var(--coordinate-map-scale,1));
  height:calc(100% / var(--coordinate-map-scale,1));
  min-width:100%;
  min-height:100%;
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%) scale(var(--coordinate-map-scale,1));
  transform-origin:center center;
}
.contact-map--setup{
  display:grid;
  place-items:center;
  min-height:390px;
  background:
    linear-gradient(rgba(255,255,255,.62),rgba(255,255,255,.62)),
    repeating-linear-gradient(0deg,transparent 0 31px,color-mix(in srgb,var(--brand-primary) 8%,transparent) 31px 32px),
    repeating-linear-gradient(90deg,transparent 0 31px,color-mix(in srgb,var(--brand-primary) 8%,transparent) 31px 32px),
    color-mix(in srgb,var(--brand-light) 88%,#fff);
}
.contact-map-setup-inner{
  width:min(560px,calc(100% - 40px));
  text-align:center;
  padding:36px;
}
.contact-map-setup-pin{
  width:56px;height:56px;margin:0 auto 18px;
  display:grid;place-items:center;
  background:var(--brand-accent);
  color:var(--brand-accent-contrast);
  border-radius:50%;
}
.contact-map-setup-pin svg{width:25px;height:25px}
.contact-map-setup-inner strong{
  display:block;
  color:var(--brand-heading);
  font-size:1.35rem;
}
.contact-map-setup-inner p{
  margin-top:10px;
  color:var(--brand-body);
}
.contact-map-setup-inner span{
  display:block;
  margin-top:10px;
  color:var(--brand-muted);
  font-size:.84rem;
  line-height:1.6;
}

/* Final CTA controlled abstract-pattern library */
.cta--premium{
  --cta-pattern-line:color-mix(in srgb,var(--brand-primary) 14%,transparent);
  --cta-pattern-accent:color-mix(in srgb,var(--brand-accent) 18%,transparent);
}
.cta-pattern--none::before,
.cta-pattern--none::after,
.cta-pattern--none .cta-graphic{display:none!important}

.cta-pattern--rings::before{
  border-radius:50%;
}
.cta-pattern--rings::after{
  border-radius:50%;
}
.cta-pattern--rings .cta-graphic{
  display:block;
  transform:translateY(-50%) rotate(12deg);
}

.cta-pattern--arcs::before{
  right:-190px;top:-220px;width:620px;height:620px;
  border:2px solid var(--cta-pattern-line);border-radius:50%;
}
.cta-pattern--arcs::after{
  right:-25px;bottom:-260px;width:430px;height:430px;
  border:1px solid var(--cta-pattern-accent);background:transparent;border-radius:50%;
}
.cta-pattern--arcs .cta-graphic{
  width:180px;height:180px;border-radius:50%;
  border:1px solid var(--cta-pattern-accent);
  transform:translateY(-50%);
}
.cta-pattern--arcs .cta-graphic::before{inset:24px;border-radius:50%}
.cta-pattern--arcs .cta-graphic::after{inset:52px;border-radius:50%}

.cta-pattern--grid{
  background-image:
    linear-gradient(var(--cta-pattern-line) 1px,transparent 1px),
    linear-gradient(90deg,var(--cta-pattern-line) 1px,transparent 1px);
  background-size:44px 44px;
}
.cta-pattern--grid::before,
.cta-pattern--grid::after{display:none}
.cta-pattern--grid .cta-graphic{
  width:160px;height:160px;
  border:2px solid var(--cta-pattern-accent);
  transform:translateY(-50%) rotate(8deg);
}

.cta-pattern--dots{
  background-image:radial-gradient(circle,var(--cta-pattern-line) 1.4px,transparent 1.6px);
  background-size:24px 24px;
}
.cta-pattern--dots::before,
.cta-pattern--dots::after{display:none}
.cta-pattern--dots .cta-graphic{
  width:150px;height:150px;border-radius:50%;
  background:var(--cta-pattern-accent);border:0;
  transform:translateY(-50%);
}

.cta-pattern--diagonal{
  background-image:repeating-linear-gradient(135deg,transparent 0 24px,var(--cta-pattern-line) 24px 25px);
}
.cta-pattern--diagonal::before,
.cta-pattern--diagonal::after{display:none}
.cta-pattern--diagonal .cta-graphic{
  width:155px;height:155px;border:1px solid var(--cta-pattern-accent);
  transform:translateY(-50%) skew(-9deg) rotate(8deg);
}

.cta-pattern--blocks::before{
  right:-90px;top:-90px;width:300px;height:300px;
  border-radius:0;border:0;background:var(--cta-pattern-accent);
}
.cta-pattern--blocks::after{
  right:185px;bottom:-130px;width:220px;height:220px;
  border-radius:0;background:color-mix(in srgb,var(--brand-primary) 7%,transparent);
}
.cta-pattern--blocks .cta-graphic{
  width:150px;height:150px;border:0;
  background:transparent;transform:translateY(-50%);
  box-shadow:
    28px -28px 0 0 color-mix(in srgb,var(--brand-accent) 8%,transparent),
    56px 0 0 0 color-mix(in srgb,var(--brand-primary) 7%,transparent);
}

.cta-pattern--orbit::before{
  right:-170px;top:-120px;width:580px;height:390px;
  border-radius:50%;border:1px solid var(--cta-pattern-line);
  transform:rotate(-18deg);
}
.cta-pattern--orbit::after{
  right:185px;bottom:50px;width:22px;height:22px;
  border-radius:50%;background:var(--brand-accent);opacity:.24;
}
.cta-pattern--orbit .cta-graphic{
  width:220px;height:110px;border-radius:50%;
  border:1px solid var(--cta-pattern-accent);
  transform:translateY(-50%) rotate(18deg);
}
.cta-pattern--orbit .cta-graphic::before{inset:20px;border-radius:50%}
.cta-pattern--orbit .cta-graphic::after{display:none}

.cta-pattern--crosshatch{
  background-image:
    repeating-linear-gradient(45deg,transparent 0 30px,var(--cta-pattern-line) 30px 31px),
    repeating-linear-gradient(-45deg,transparent 0 30px,var(--cta-pattern-line) 30px 31px);
}
.cta-pattern--crosshatch::before,
.cta-pattern--crosshatch::after{display:none}
.cta-pattern--crosshatch .cta-graphic{display:none}

.cta-pattern--steps::before{
  right:-80px;top:-120px;width:360px;height:360px;
  border-radius:0;border:1px solid var(--cta-pattern-line);
  box-shadow:
    -28px 28px 0 -1px transparent,
    -28px 28px 0 0 var(--cta-pattern-line),
    -56px 56px 0 -1px transparent,
    -56px 56px 0 0 var(--cta-pattern-line);
}
.cta-pattern--steps::after{display:none}
.cta-pattern--steps .cta-graphic{
  width:130px;height:130px;border:1px solid var(--cta-pattern-accent);
  transform:translateY(-50%) rotate(45deg);
}

/* Keep patterns restrained on mobile and out of the copy area. */
@media(max-width:760px){
  .cta--premium::before{opacity:.55}
  .cta--premium::after{opacity:.05}
  .cta--premium .cta-graphic{opacity:.55;right:-18px}
  .cta-pattern--grid,
  .cta-pattern--dots,
  .cta-pattern--diagonal,
  .cta-pattern--crosshatch{background-size:34px 34px}
}

/* ==========================================================
   V1.5.5 Homepage Service Layouts + Consolidated Services
   ========================================================== */

/* Shared no-link state */
.service-card--no-link{cursor:default}
.service-card--no-link:hover{transform:none}
.footer-service-label{display:block;color:#aebdc7;font-size:.78rem;line-height:1.7;margin:4px 0}

/* ----------------------------------------------------------
   Homepage service design 2: Image Overlay
   ---------------------------------------------------------- */
.service-image-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.service-image-card{
  position:relative;
  min-height:420px;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  text-decoration:none;
  color:#fff;
  background:linear-gradient(145deg,var(--brand-dark),var(--brand-primary));
  isolation:isolate;
  border:1px solid color-mix(in srgb,var(--brand-primary) 24%,transparent);
}
.service-image-card-media{
  position:absolute;inset:-2px;z-index:-3;
  background-image:var(--service-image),linear-gradient(145deg,var(--brand-dark),var(--brand-primary));
  background-position:var(--service-image-position,center);
  background-size:cover;
  transition:transform .75s cubic-bezier(.22,.61,.36,1),filter .75s ease;
}
.service-image-card-shade{
  position:absolute;inset:0;z-index:-2;
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--brand-dark) 20%,transparent) 0%,color-mix(in srgb,var(--brand-dark) 58%,transparent) 55%,color-mix(in srgb,var(--brand-dark) 94%,transparent) 100%),
    linear-gradient(120deg,color-mix(in srgb,var(--brand-primary) 62%,transparent),color-mix(in srgb,var(--brand-accent) 12%,transparent));
  transition:background .55s ease;
}
.service-image-card-copy{
  width:100%;
  padding:34px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.service-image-card-number{
  color:var(--brand-accent);
  font-size:.7rem;
  letter-spacing:.14em;
  font-weight:900;
  margin-bottom:20px;
}
.service-image-card-copy strong{
  color:#fff;
  font-size:clamp(1.5rem,2.1vw,2.05rem);
  line-height:1.05;
  letter-spacing:-.035em;
}
.service-image-card-summary{
  margin-top:14px;
  color:rgba(255,255,255,.78);
  font-size:.9rem;
  line-height:1.65;
  max-width:34ch;
  opacity:.82;
  transform:translateY(7px);
  transition:opacity .35s ease,transform .35s ease;
}
.service-image-card-action{
  margin-top:24px;
  color:var(--brand-accent);
  font-size:.76rem;
  font-weight:850;
  display:inline-flex;
  gap:8px;
  align-items:center;
}
.service-image-card-action b{font-size:1rem;transition:transform .28s ease}
.service-image-card:not(.service-image-card--no-link):hover .service-image-card-media,
.service-image-card:not(.service-image-card--no-link):focus-visible .service-image-card-media{
  transform:scale(1.075);
  filter:saturate(1.05) contrast(1.03);
}
.service-image-card:not(.service-image-card--no-link):hover .service-image-card-summary,
.service-image-card:not(.service-image-card--no-link):focus-visible .service-image-card-summary{
  opacity:1;transform:translateY(0)
}
.service-image-card:not(.service-image-card--no-link):hover .service-image-card-action b,
.service-image-card:not(.service-image-card--no-link):focus-visible .service-image-card-action b{transform:translateX(5px)}
.service-image-card:focus-visible{outline:3px solid var(--brand-accent);outline-offset:3px}

.service-image-grid--count-1{grid-template-columns:minmax(0,650px);justify-content:center}
.service-image-grid--count-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1050px;margin-inline:auto}
.service-image-grid--count-4{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1120px;margin-inline:auto}
.service-image-grid--count-5{grid-template-columns:repeat(6,minmax(0,1fr))}
.service-image-grid--count-5>.service-image-card{grid-column:span 2}
.service-image-grid--count-5>.service-image-card:nth-child(4){grid-column:2/span 2}
.service-image-grid--count-5>.service-image-card:nth-child(5){grid-column:4/span 2}

/* ----------------------------------------------------------
   Homepage service design 3: Editorial Showcase
   ---------------------------------------------------------- */
.home-services-section--editorial{background:#fff}
.services-editorial{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);
  gap:clamp(40px,6vw,88px);
  align-items:start;
}
.services-editorial-list{border-top:1px solid var(--brand-border)}
.service-editorial-row{
  min-height:116px;
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 42px;
  gap:18px;
  align-items:center;
  padding:22px 6px;
  border-bottom:1px solid var(--brand-border);
  text-decoration:none;
  color:var(--brand-body);
  transition:padding .3s ease,background .3s ease,color .3s ease;
  position:relative;
}
.service-editorial-row::before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:3px;
  background:var(--brand-accent);
  transform:scaleY(0);
  transform-origin:center;
  transition:transform .3s ease;
}
.service-editorial-row.is-active,
.service-editorial-row:not(.service-editorial-row--no-link):hover,
.service-editorial-row:not(.service-editorial-row--no-link):focus-visible{
  padding-left:18px;
  background:color-mix(in srgb,var(--brand-light) 74%,#fff);
}
.service-editorial-row.is-active::before,
.service-editorial-row:hover::before,
.service-editorial-row:focus-visible::before{transform:scaleY(1)}
.service-editorial-number{
  color:var(--brand-accent);
  font-size:.68rem;
  letter-spacing:.13em;
  font-weight:900;
}
.service-editorial-copy{display:block;min-width:0}
.service-editorial-copy strong{
  display:block;
  color:var(--brand-heading);
  font-size:clamp(1.25rem,2vw,1.8rem);
  line-height:1.08;
  letter-spacing:-.03em;
}
.service-editorial-copy small{
  display:block;
  margin-top:8px;
  color:var(--brand-muted);
  font-size:.84rem;
  line-height:1.55;
  max-width:55ch;
}
.service-editorial-arrow{
  width:38px;height:38px;
  display:grid;place-items:center;
  border:1px solid var(--brand-border);
  color:var(--brand-heading);
  transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease;
}
.service-editorial-row:hover .service-editorial-arrow,
.service-editorial-row:focus-visible .service-editorial-arrow{
  background:var(--brand-accent);
  color:var(--brand-accent-contrast);
  border-color:var(--brand-accent);
  transform:translate(3px,-3px);
}
.services-editorial-visual{
  position:sticky;
  top:130px;
  min-height:500px;
  overflow:hidden;
  background:var(--brand-dark);
}
.services-editorial-image{
  position:absolute;inset:0;
  background-position:center;
  background-size:cover;
  transform:scale(1.02);
  transition:opacity .25s ease,transform .7s cubic-bezier(.22,.61,.36,1);
}
.services-editorial-image::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,color-mix(in srgb,var(--brand-dark) 10%,transparent),color-mix(in srgb,var(--brand-dark) 72%,transparent));
}
.services-editorial-visual.is-changing .services-editorial-image{opacity:.32;transform:scale(1.06)}
.services-editorial-caption{
  position:absolute;left:30px;right:30px;bottom:28px;
  z-index:2;color:#fff;
}
.services-editorial-caption span{
  display:block;color:var(--brand-accent);
  font-size:.64rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;
}
.services-editorial-caption strong{
  display:block;margin-top:8px;color:#fff;
  font-size:1.6rem;line-height:1.05;letter-spacing:-.03em;
}

/* ----------------------------------------------------------
   Homepage service design 4: Alternating Showcase
   ---------------------------------------------------------- */
.home-services-section--alternating{background:#fff}
.services-alternating{
  display:grid;
  gap:clamp(28px,4vw,52px);
}
.service-alternating-row{
  display:grid;
  grid-template-columns:minmax(320px,.92fr) minmax(0,1.08fr);
  min-height:360px;
  overflow:hidden;
  border:1px solid var(--brand-border);
  background:color-mix(in srgb,var(--brand-light) 46%,#fff);
  box-shadow:0 22px 55px rgba(10,31,51,.07);
}
.service-alternating-row--reverse .service-alternating-media{order:2}
.service-alternating-row--reverse .service-alternating-copy{order:1}
.service-alternating-media{position:relative;min-height:360px;overflow:hidden;background:var(--brand-dark)}
.service-alternating-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(145deg,transparent 55%,color-mix(in srgb,var(--brand-dark) 22%,transparent));
  pointer-events:none;
}
.service-alternating-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s cubic-bezier(.22,.61,.36,1)}
.service-alternating-row:hover .service-alternating-media img{transform:scale(1.035)}
.service-alternating-fallback{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand-primary),var(--brand-dark))}
.service-alternating-fallback span{font-size:clamp(4rem,10vw,8rem);font-weight:900;color:rgba(255,255,255,.12);letter-spacing:-.06em}
.service-alternating-copy{
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  padding:clamp(34px,5vw,70px);
}
.service-alternating-number{font-size:.68rem;letter-spacing:.14em;font-weight:900;color:var(--brand-accent);margin-bottom:20px}
.service-alternating-copy h3{font-size:clamp(1.8rem,3vw,3.1rem);line-height:1.03;letter-spacing:-.045em;max-width:15ch;margin:0;color:var(--brand-heading)}
.service-alternating-copy p{font-size:.96rem;line-height:1.7;color:var(--brand-muted);max-width:52ch;margin:22px 0 0}
.service-alternating-link{display:inline-flex;align-items:center;gap:9px;margin-top:28px;color:var(--brand-heading);font-size:.76rem;font-weight:900;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--brand-heading) 22%,transparent);padding-bottom:5px}
.service-alternating-link span{color:var(--brand-accent);transition:transform .25s ease}
.service-alternating-link:hover span,.service-alternating-link:focus-visible span{transform:translate(4px,-4px)}

/* ----------------------------------------------------------
   Homepage service design 5: Compact Accordion
   ---------------------------------------------------------- */
.home-services-section--accordion{background:color-mix(in srgb,var(--brand-light) 68%,#fff)}
.services-accordion{border-top:1px solid var(--brand-border);max-width:1180px;margin-inline:auto}
.service-accordion-item{border-bottom:1px solid var(--brand-border);background:transparent}
.service-accordion-item summary{
  list-style:none;
  display:grid;
  grid-template-columns:58px minmax(0,1fr) 48px;
  align-items:center;
  gap:20px;
  min-height:112px;
  padding:22px 10px;
  cursor:pointer;
  user-select:none;
  transition:background .25s ease,padding .25s ease;
}
.service-accordion-item summary::-webkit-details-marker{display:none}
.service-accordion-item summary:hover,.service-accordion-item summary:focus-visible,.service-accordion-item[open] summary{background:#fff;padding-left:20px;padding-right:20px;outline:0}
.service-accordion-number{font-size:.68rem;font-weight:900;letter-spacing:.14em;color:var(--brand-accent)}
.service-accordion-item summary strong{font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.08;letter-spacing:-.035em;color:var(--brand-heading)}
.service-accordion-toggle{width:42px;height:42px;border:1px solid var(--brand-border);position:relative;justify-self:end;background:#fff}
.service-accordion-toggle::before,.service-accordion-toggle::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;background:var(--brand-heading);transform:translate(-50%,-50%);transition:transform .25s ease,opacity .25s ease}
.service-accordion-toggle::after{transform:translate(-50%,-50%) rotate(90deg)}
.service-accordion-item[open] .service-accordion-toggle{background:var(--brand-accent);border-color:var(--brand-accent)}
.service-accordion-item[open] .service-accordion-toggle::before,.service-accordion-item[open] .service-accordion-toggle::after{background:var(--brand-accent-contrast)}
.service-accordion-item[open] .service-accordion-toggle::after{opacity:0;transform:translate(-50%,-50%) rotate(0)}
.service-accordion-panel{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.62fr);
  gap:clamp(28px,5vw,70px);
  align-items:center;
  padding:0 20px 34px 98px;
  animation:serviceAccordionIn .26s ease both;
}
@keyframes serviceAccordionIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
.service-accordion-copy p{font-size:.94rem;line-height:1.7;color:var(--brand-muted);max-width:60ch;margin:0}
.service-accordion-link{display:inline-flex;align-items:center;gap:8px;margin-top:20px;color:var(--brand-heading);font-size:.76rem;font-weight:900;text-decoration:none}
.service-accordion-link span{color:var(--brand-accent);transition:transform .25s ease}
.service-accordion-link:hover span,.service-accordion-link:focus-visible span{transform:translate(4px,-4px)}
.service-accordion-media{height:190px;overflow:hidden;background:var(--brand-dark)}
.service-accordion-media img{width:100%;height:100%;display:block;object-fit:cover}

@media(max-width:980px){
  .service-alternating-row{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);min-height:320px}
  .service-alternating-media{min-height:320px}
  .service-accordion-panel{grid-template-columns:1fr minmax(220px,.7fr);padding-left:20px}
}

@media(max-width:720px){
  .services-alternating{gap:24px}
  .service-alternating-row,.service-alternating-row--reverse{grid-template-columns:1fr;min-height:0}
  .service-alternating-row--reverse .service-alternating-media,.service-alternating-row--reverse .service-alternating-copy{order:initial}
  .service-alternating-media{min-height:0;aspect-ratio:16/10}
  .service-alternating-copy{padding:30px 26px 34px}
  .service-alternating-copy h3{font-size:clamp(1.65rem,8vw,2.25rem);max-width:none}
  .service-alternating-copy p{font-size:.88rem;margin-top:16px}
  .service-alternating-link{margin-top:22px}

  .service-accordion-item summary{grid-template-columns:34px minmax(0,1fr) 38px;gap:10px;min-height:92px;padding:18px 4px}
  .service-accordion-item summary:hover,.service-accordion-item summary:focus-visible,.service-accordion-item[open] summary{padding-left:10px;padding-right:10px}
  .service-accordion-item summary strong{font-size:clamp(1.16rem,5.8vw,1.5rem)}
  .service-accordion-toggle{width:36px;height:36px}
  .service-accordion-panel{grid-template-columns:1fr;gap:20px;padding:0 10px 28px 44px}
  .service-accordion-media{height:auto;aspect-ratio:16/9;order:-1}
  .service-accordion-copy p{font-size:.84rem;line-height:1.6}
}

@media(max-width:420px){
  .service-accordion-panel{padding-left:10px}
  .service-accordion-item summary{grid-template-columns:28px minmax(0,1fr) 34px}
  .service-accordion-number{font-size:.6rem}
  .service-accordion-toggle{width:32px;height:32px}
}

/* ----------------------------------------------------------
   Consolidated 5-page Services page
   ---------------------------------------------------------- */
.services-anchor-page{background:#fff}
.service-anchor-section{
  padding:clamp(76px,8vw,118px) 0;
  scroll-margin-top:150px;
}
.service-anchor-section.section-soft{background:color-mix(in srgb,var(--brand-light) 86%,#fff)}
.service-anchor-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.8fr);
  gap:clamp(48px,7vw,100px);
  align-items:center;
}
.service-anchor-section--reverse .service-anchor-copy{order:2}
.service-anchor-section--reverse .service-anchor-media{order:1}
.service-anchor-copy h2{font-size:clamp(2.4rem,4.5vw,4.8rem);max-width:800px}
.service-anchor-copy .lead{margin-top:22px;max-width:700px}
.service-anchor-prose{margin-top:28px}
.service-anchor-benefits{margin-top:30px}
.service-anchor-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:32px}
.service-anchor-frame{width:100%}

@media(max-width:980px){
  .service-image-grid,
  .service-image-grid--count-1,
  .service-image-grid--count-2,
  .service-image-grid--count-3,
  .service-image-grid--count-4,
  .service-image-grid--count-5,
  .service-image-grid--count-6{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}
  .service-image-grid--count-5>.service-image-card,
  .service-image-grid--count-5>.service-image-card:nth-child(4),
  .service-image-grid--count-5>.service-image-card:nth-child(5){grid-column:auto}
  .services-editorial{grid-template-columns:1fr}
  .services-editorial-visual{position:relative;top:auto;min-height:440px}
  .service-anchor-grid{grid-template-columns:1fr}
  .service-anchor-section--reverse .service-anchor-copy,
  .service-anchor-section--reverse .service-anchor-media{order:initial}
}

@media(max-width:680px){
  .service-image-grid,
  .service-image-grid--count-1,
  .service-image-grid--count-2,
  .service-image-grid--count-3,
  .service-image-grid--count-4,
  .service-image-grid--count-5,
  .service-image-grid--count-6{grid-template-columns:1fr}
  .service-image-card{min-height:355px}
  .service-image-card-copy{padding:26px}
  .service-image-card-summary{opacity:1;transform:none}

  /* Editorial Showcase becomes a compact service list on mobile.
     The desktop sticky feature image is hidden and every row receives its own
     full-colour thumbnail. Space is explicitly reserved for that thumbnail so
     the service copy can never run underneath it. */
  .services-editorial-visual{display:none}
  .service-editorial-row{
    min-height:126px;
    grid-template-columns:38px minmax(0,1fr) 28px;
    gap:10px;
    padding:18px 106px 18px 4px;
    overflow:hidden;
  }
  .service-editorial-row>*{
    position:relative;
    z-index:1;
  }
  .service-editorial-row::after{
    content:"";
    position:absolute;
    z-index:0;
    right:4px;
    top:16px;
    bottom:16px;
    width:88px;
    background-image:var(--editorial-row-image);
    background-position:var(--editorial-row-position,center);
    background-size:cover;
    background-repeat:no-repeat;
    opacity:1;
    border:1px solid color-mix(in srgb,var(--brand-border) 75%,transparent);
    box-shadow:0 8px 22px rgba(10,31,51,.10);
    pointer-events:none;
  }
  .service-editorial-row.is-active::after{
    box-shadow:0 9px 24px color-mix(in srgb,var(--brand-accent) 16%,rgba(10,31,51,.10));
  }
  .service-editorial-copy strong{
    font-size:clamp(1.14rem,6vw,1.42rem);
  }
  .service-editorial-copy small{
    font-size:.78rem;
    line-height:1.48;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .service-editorial-arrow{
    width:28px;
    height:28px;
    font-size:.78rem;
  }

  .service-anchor-section{padding:64px 0;scroll-margin-top:100px}
  .service-anchor-copy h2{font-size:clamp(2.1rem,10vw,3.2rem)}
  .service-anchor-actions{align-items:flex-start;flex-direction:column;gap:14px}
}

@media(max-width:420px){
  .service-editorial-row{
    min-height:120px;
    padding-right:98px;
  }
  .service-editorial-row::after{
    width:80px;
    top:15px;
    bottom:15px;
  }
}


/* ==========================================================
   V1.5.7 Consolidated Services Page Polish
   ========================================================== */

/* Alternating rhythm is deliberate and palette-derived. */
.service-anchor-section--soft{
  background:color-mix(in srgb,var(--brand-light) 86%,#fff);
}

/* Every consolidated-service image now occupies a controlled footprint. */
.service-anchor-media{
  width:100%;
  min-width:0;
  --service-content-position:center;
}
.service-anchor-frame{
  width:100%;
  aspect-ratio:4/3;
  position:relative;
}
.service-anchor-frame .tb-image-frame-surface{
  position:absolute;
  inset:0;
}
.service-anchor-frame .tb-image-frame-surface img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center var(--service-content-position);
}

/* 01 — clean landscape */
.service-anchor-media--landscape .service-anchor-frame{
  aspect-ratio:4/3;
}
.service-anchor-media--landscape .tb-image-frame-surface{
  border-radius:0!important;
  filter:none!important;
}

/* 02 — rounded landscape */
.service-anchor-media--rounded .service-anchor-frame{
  aspect-ratio:4/3;
}
.service-anchor-media--rounded .tb-image-frame-surface{
  border-radius:28px!important;
}

/* 03 — editorial portrait */
.service-anchor-media--portrait{
  max-width:540px;
  justify-self:center;
}
.service-anchor-media--portrait .service-anchor-frame{
  aspect-ratio:4/5;
}
.service-anchor-media--portrait .tb-image-frame-surface{
  border-radius:28px!important;
}

/* 04 — architectural accent frame */
.service-anchor-media--accent{
  position:relative;
}
.service-anchor-media--accent::before{
  content:"";
  position:absolute;
  right:-14px;
  bottom:-14px;
  width:64%;
  height:62%;
  border-right:8px solid var(--brand-accent);
  border-bottom:8px solid var(--brand-accent);
  opacity:.95;
  pointer-events:none;
}
.service-anchor-media--accent .service-anchor-frame{
  aspect-ratio:4/3;
}
.service-anchor-media--accent .tb-image-frame-surface{
  border-radius:0!important;
}

/* 05 — individual frame keeps the service's chosen shape but never changes size. */
.service-anchor-media--individual .service-anchor-frame{
  aspect-ratio:4/3;
}

/* Individual service pages also honour the content-image focal position. */
.service-media .service-content-frame{
  position:relative;
  aspect-ratio:4/3;
}
.service-media .service-content-frame .tb-image-frame-surface{
  position:absolute;
  inset:0;
}
.service-media .service-content-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center var(--service-content-position,center);
}

/* Service-specific highlights are visually compact and consistent. */
.service-anchor-benefits{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.service-anchor-benefits .check{
  min-height:52px;
  display:grid;
  align-items:start;
}

@media(max-width:980px){
  .service-anchor-media--portrait{
    max-width:620px;
    justify-self:start;
  }
}
@media(max-width:680px){
  .service-anchor-frame,
  .service-anchor-media--portrait .service-anchor-frame,
  .service-anchor-media--individual .service-anchor-frame{
    aspect-ratio:4/3;
  }
  .service-anchor-media--accent::before{
    right:-8px;
    bottom:-8px;
    border-right-width:5px;
    border-bottom-width:5px;
  }
  .service-anchor-benefits{
    grid-template-columns:1fr;
  }
}


/* V1.5.7 QA refinement:
   use equal desktop columns so an image does not become larger simply because
   the alternating section places it in the left-hand grid column. */
@media(min-width:981px){
  .service-anchor-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
}


/* ==========================================================
   V1.5.8 Dark Navigation & Logo Contrast
   ========================================================== */

/* Dual-logo system. Both images occupy the same footprint so switching cannot
   move the navigation or change its measured width. */
.brand-logo{
  display:grid;
  align-items:center;
  justify-items:start;
}
.brand-logo img{
  grid-area:1 / 1;
  transition:opacity .42s ease,filter .42s ease;
}
.brand-logo-normal{opacity:1}
.brand-logo-light{opacity:0;pointer-events:none}

/* Never auto-invert customer logos. If a logo needs a dark-background version,
   the CMS now provides an explicit Light Header Logo upload. */
.header--style-transparent:not(.header-scrolled) .brand-logo img,
.header--style-glass:not(.header-scrolled) .brand-logo img{
  filter:none!important;
}

/* Use the optional light logo anywhere the header background is dark. */
.header--style-dark .brand-logo--has-light .brand-logo-normal,
.header--style-transparent:not(.header-scrolled) .brand-logo--has-light .brand-logo-normal,
.header--style-glass:not(.header-scrolled) .brand-logo--has-light .brand-logo-normal{
  opacity:0;
}
.header--style-dark .brand-logo--has-light .brand-logo-light,
.header--style-transparent:not(.header-scrolled) .brand-logo--has-light .brand-logo-light,
.header--style-glass:not(.header-scrolled) .brand-logo--has-light .brand-logo-light{
  opacity:1;
}

/* Transparent/Glass switch back to the normal logo when the white sticky
   header state appears. */
.header--style-transparent.header-scrolled .brand-logo-normal,
.header--style-glass.header-scrolled .brand-logo-normal{
  opacity:1;
}
.header--style-transparent.header-scrolled .brand-logo-light,
.header--style-glass.header-scrolled .brand-logo-light{
  opacity:0;
}

/* Footer always uses the normal/master logo. */
.footer .brand-logo-normal{opacity:1!important}
.footer .brand-logo-light{display:none!important}

/* Dark / Black navigation preset.
   --brand-dark is intentionally used so the header remains connected to the
   curated palette rather than becoming an unrelated hard-coded black. */
.header--style-dark{
  background:var(--brand-dark);
  color:#fff;
  box-shadow:none;
}
.header--style-dark.header--sticky{
  position:sticky;
  top:0;
}
.header--style-dark.header--static{
  position:relative;
  top:auto;
}
.header--style-dark.header--border{
  border-bottom-color:rgba(255,255,255,.16);
}
.header--style-dark.header--no-border{
  border-bottom-color:transparent!important;
}

/* Text logo, navigation and controls receive guaranteed dark-header contrast. */
.header--style-dark .brand,
.header--style-dark .nav,
.header--style-dark .nav>a,
.header--style-dark .nav-parent>a,
.header--style-dark .submenu-toggle{
  color:#fff;
}
.header--style-dark .brand small{
  color:var(--brand-accent);
}
.header--style-dark .nav a:hover,
.header--style-dark .nav a.active,
.header--style-dark .nav-item.active>.nav-parent>a{
  color:var(--brand-accent);
}

/* Header CTA keeps the selected palette colour and respects the CMS
   Automatic / White / Black CTA Text Contrast selection. */
.header--style-dark .header-cta{
  background:var(--brand-cta);
  color:var(--header-cta-contrast)!important;
}
.header--style-dark .header-cta:hover{
  background:var(--brand-cta-hover);
  color:var(--header-cta-hover-contrast)!important;
}

/* Dropdown panel deliberately remains light for maximum scanability. */
.header--style-dark .submenu{
  background:#fff;
  color:var(--brand-body);
  border-color:var(--brand-border);
}
.header--style-dark .submenu a{
  color:var(--brand-body)!important;
}
.header--style-dark .submenu a:hover{
  background:var(--brand-light);
  color:var(--brand-accent)!important;
}

/* Dark header mobile trigger. */
.header--style-dark .mobile-menu::before,
.header--style-dark .mobile-menu::after,
.header--style-dark .mobile-menu span{
  background:#fff;
}

/* When the mobile drawer opens it becomes a clean light panel, while the
   underlying dark header remains unchanged. */
@media(max-width:980px){
  .header--style-dark .nav.open{
    background:#fff;
    color:var(--brand-body);
  }
  .header--style-dark .nav.open>a,
  .header--style-dark .nav.open .nav-parent>a,
  .header--style-dark .nav.open .submenu-toggle{
    color:var(--brand-body);
  }
  .header--style-dark .nav.open a:hover,
  .header--style-dark .nav.open a.active,
  .header--style-dark .nav.open .nav-item.active>.nav-parent>a{
    color:var(--brand-accent);
  }
}


/* ==========================================================
   V1.5.9 Dark Scroll Header Variants
   ========================================================== */

/* New variants start over the hero exactly like the existing Transparent/Glass
   treatments, but their sticky scroll destination is palette-dark rather than white. */
.header--style-transparent-dark,
.header--style-glass-dark{
  position:absolute;
  top:38px;
  left:0;
  right:0;
  z-index:50;
  box-shadow:none;
  border-bottom-color:rgba(255,255,255,.12);
}
.header--style-transparent-dark{
  background:transparent;
  backdrop-filter:none;
}
.header--style-glass-dark{
  background:color-mix(in srgb,var(--brand-dark) 42%,transparent);
  backdrop-filter:blur(18px) saturate(125%);
  -webkit-backdrop-filter:blur(18px) saturate(125%);
}

/* Hero-top contrast. */
.header--style-transparent-dark:not(.header-scrolled) .nav,
.header--style-glass-dark:not(.header-scrolled) .nav,
.header--style-transparent-dark:not(.header-scrolled) .nav>a,
.header--style-glass-dark:not(.header-scrolled) .nav>a,
.header--style-transparent-dark:not(.header-scrolled) .nav-parent>a,
.header--style-glass-dark:not(.header-scrolled) .nav-parent>a,
.header--style-transparent-dark:not(.header-scrolled) .submenu-toggle,
.header--style-glass-dark:not(.header-scrolled) .submenu-toggle,
.header--style-transparent-dark:not(.header-scrolled) .brand,
.header--style-glass-dark:not(.header-scrolled) .brand{
  color:#fff;
}
.header--style-transparent-dark:not(.header-scrolled) .brand small,
.header--style-glass-dark:not(.header-scrolled) .brand small{
  color:var(--brand-accent);
}
.header--style-transparent-dark:not(.header-scrolled) .mobile-menu::before,
.header--style-transparent-dark:not(.header-scrolled) .mobile-menu::after,
.header--style-transparent-dark:not(.header-scrolled) .mobile-menu span,
.header--style-glass-dark:not(.header-scrolled) .mobile-menu::before,
.header--style-glass-dark:not(.header-scrolled) .mobile-menu::after,
.header--style-glass-dark:not(.header-scrolled) .mobile-menu span{
  background:#fff;
}

/* Optional Light Header Logo is used at the top and remains in use after
   transitioning into the dark sticky destination. */
.header--style-transparent-dark .brand-logo--has-light .brand-logo-normal,
.header--style-glass-dark .brand-logo--has-light .brand-logo-normal{
  opacity:0;
}
.header--style-transparent-dark .brand-logo--has-light .brand-logo-light,
.header--style-glass-dark .brand-logo--has-light .brand-logo-light{
  opacity:1;
}
.header--style-transparent-dark .brand-logo img,
.header--style-glass-dark .brand-logo img{
  filter:none!important;
}

/* Sticky dark destination. Existing 0.7–0.8s transition rules apply, so the
   change is smooth rather than snapping. */
.header--style-transparent-dark.header--sticky.header-scrolled,
.header--style-glass-dark.header--sticky.header-scrolled{
  position:fixed;
  top:0;
  left:0;
  right:0;
  background:var(--brand-dark);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 10px 32px rgba(0,0,0,.18);
}
.header--style-transparent-dark.header--sticky.header-scrolled.header--border,
.header--style-glass-dark.header--sticky.header-scrolled.header--border{
  border-bottom-color:rgba(255,255,255,.14);
}
.header--style-transparent-dark.header--sticky.header-scrolled.header--no-border,
.header--style-glass-dark.header--sticky.header-scrolled.header--no-border{
  border-bottom-color:transparent!important;
}

.header--style-transparent-dark.header--sticky.header-scrolled .nav,
.header--style-glass-dark.header--sticky.header-scrolled .nav,
.header--style-transparent-dark.header--sticky.header-scrolled .nav>a,
.header--style-glass-dark.header--sticky.header-scrolled .nav>a,
.header--style-transparent-dark.header--sticky.header-scrolled .nav-parent>a,
.header--style-glass-dark.header--sticky.header-scrolled .nav-parent>a,
.header--style-transparent-dark.header--sticky.header-scrolled .submenu-toggle,
.header--style-glass-dark.header--sticky.header-scrolled .submenu-toggle,
.header--style-transparent-dark.header--sticky.header-scrolled .brand,
.header--style-glass-dark.header--sticky.header-scrolled .brand{
  color:#fff;
}
.header--style-transparent-dark .nav a:hover,
.header--style-transparent-dark .nav a.active,
.header--style-transparent-dark .nav-item.active>.nav-parent>a,
.header--style-glass-dark .nav a:hover,
.header--style-glass-dark .nav a.active,
.header--style-glass-dark .nav-item.active>.nav-parent>a{
  color:var(--brand-accent);
}

/* Header CTA keeps palette colour and respects the saved CTA Text Contrast
   selection in the dark destination. */
.header--style-transparent-dark .header-cta,
.header--style-glass-dark .header-cta{
  background:var(--brand-cta);
  color:var(--header-cta-contrast)!important;
}
.header--style-transparent-dark .header-cta:hover,
.header--style-glass-dark .header-cta:hover{
  background:var(--brand-cta-hover);
  color:var(--header-cta-hover-contrast)!important;
}

/* Dropdown remains intentionally light for scanability. */
.header--style-transparent-dark .submenu,
.header--style-glass-dark .submenu{
  background:#fff;
  color:var(--brand-body);
  border-color:var(--brand-border);
}
.header--style-transparent-dark .submenu a,
.header--style-glass-dark .submenu a{
  color:var(--brand-body)!important;
}
.header--style-transparent-dark .submenu a:hover,
.header--style-glass-dark .submenu a:hover{
  background:var(--brand-light);
  color:var(--brand-accent)!important;
}

/* Non-sticky versions simply stay over the hero and scroll away, mirroring
   the existing Transparent/Glass behaviour. */
.header--style-transparent-dark.header--static,
.header--style-glass-dark.header--static{
  position:absolute;
  top:38px;
}
.header--style-transparent-dark.header--static.header-scrolled,
.header--style-glass-dark.header--static.header-scrolled{
  box-shadow:none;
}

/* Mobile drawer remains a light, readable panel even when the destination
   header is dark. */
@media(max-width:980px){
  .header--style-transparent-dark .nav.open,
  .header--style-glass-dark .nav.open{
    background:#fff;
    color:var(--brand-body);
  }
  .header--style-transparent-dark .nav.open>a,
  .header--style-glass-dark .nav.open>a,
  .header--style-transparent-dark .nav.open .nav-parent>a,
  .header--style-glass-dark .nav.open .nav-parent>a,
  .header--style-transparent-dark .nav.open .submenu-toggle,
  .header--style-glass-dark .nav.open .submenu-toggle{
    color:var(--brand-body);
  }
  .header--style-transparent-dark .nav.open a:hover,
  .header--style-transparent-dark .nav.open a.active,
  .header--style-transparent-dark .nav.open .nav-item.active>.nav-parent>a,
  .header--style-glass-dark .nav.open a:hover,
  .header--style-glass-dark .nav.open a.active,
  .header--style-glass-dark .nav.open .nav-item.active>.nav-parent>a{
    color:var(--brand-accent);
  }
}


/* Hamburger remains white in both the hero and dark-scrolled states. */
.header--style-transparent-dark .mobile-menu::before,
.header--style-transparent-dark .mobile-menu::after,
.header--style-transparent-dark .mobile-menu span,
.header--style-glass-dark .mobile-menu::before,
.header--style-glass-dark .mobile-menu::after,
.header--style-glass-dark .mobile-menu span{
  background:#fff;
}

/* =========================================================
   V1.7.0 — Expanded hero library + repeatable About sections
   ========================================================= */

/* Shared enquiry form renderer. */
.enquiry-form-heading{font-size:2rem;margin:0 0 12px;color:var(--heading)}
.enquiry-form-intro{margin:0 0 20px;color:var(--muted);font-size:.92rem;line-height:1.65}
.enquiry-form-card .privacy-inline-link{text-decoration:underline;text-underline-offset:2px}
.enquiry-form-card .enquiry-demo-note{font-size:.76rem;margin-top:14px;color:var(--muted)}
.enquiry-form-card--compact{padding:28px}
.enquiry-form-card--compact .enquiry-form-heading{font-size:1.6rem}
.enquiry-form-card--compact .enquiry-form-intro{font-size:.82rem;margin-bottom:15px}
.enquiry-form-card--compact .form-grid{gap:11px}
.enquiry-form-card--compact .field label{font-size:.72rem}
.enquiry-form-card--compact input,.enquiry-form-card--compact select,.enquiry-form-card--compact textarea{min-height:44px}
.enquiry-form-card--compact textarea{min-height:92px}
.enquiry-form-card--compact .btn{width:100%}

/* Controlled content width presets. */
.hero--content-compact .hero-copy{max-width:620px}
.hero--content-standard .hero-copy{max-width:770px}
.hero--content-wide .hero-copy{max-width:900px}

/* Background modes for the new image-led hero families. */
.hero--lead-form[data-bg-mode="solid"]>.hero-bg,
.hero--floating-panel[data-bg-mode="solid"]>.hero-bg,
.hero--centered[data-bg-mode="solid"]>.hero-bg{background-image:none;background:var(--brand-primary)}
.hero--lead-form[data-bg-mode="gradient"]>.hero-bg,
.hero--floating-panel[data-bg-mode="gradient"]>.hero-bg,
.hero--centered[data-bg-mode="gradient"]>.hero-bg{background-image:none;background:linear-gradient(128deg,var(--brand-dark) 0%,var(--brand-primary) 58%,var(--brand-secondary) 125%)}
.hero--lead-form[data-bg-mode="image"]>.hero-bg::after,
.hero--centered[data-bg-mode="image"]>.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--brand-dark) 94%,transparent) 0%,color-mix(in srgb,var(--brand-dark) 76%,transparent) 50%,color-mix(in srgb,var(--brand-dark) 40%,transparent) 100%)}
.hero--floating-panel[data-bg-mode="image"]>.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,12,21,.42),rgba(2,12,21,.08))}

/* F — lead generation split: copy + the existing Toolbelt enquiry form. */
.hero--lead-form{color:#fff;background:var(--brand-dark)}
.hero--lead-form .hero-layout{grid-template-columns:minmax(0,.9fr) minmax(430px,.82fr);gap:64px;min-height:780px;padding-top:30px;padding-bottom:30px}
.hero--lead-form .hero-copy{padding:82px 0}
.hero--lead-form h1{color:#fff;font-size:clamp(3.25rem,5.4vw,5.55rem)}
.hero--lead-form .hero-copy>p{color:#dce5ec}
.hero--lead-form .hero-secondary{color:#fff;border-color:rgba(255,255,255,.65)}
.hero--lead-form .hero-actions .btn-primary{display:none}
.hero--lead-form .hero-proof{border-top:1px solid rgba(255,255,255,.18)}
.hero--lead-form .proof-item{color:#eef3f6}.hero--lead-form .proof-icon{border:1px solid rgba(255,255,255,.2)}
.hero--lead-form .hero-media{display:none}
.hero-form-wrap{position:relative;z-index:3;align-self:center;width:100%;max-width:560px;justify-self:end}
.hero-form-wrap .form-card{margin:0}
.hero-form-panel--white .form-card{background:#fff;color:var(--ink);border-color:rgba(255,255,255,.88)}
.hero-form-panel--glass .form-card{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.24);box-shadow:0 28px 70px rgba(0,0,0,.26);backdrop-filter:blur(var(--hero-form-blur,18px));-webkit-backdrop-filter:blur(var(--hero-form-blur,18px))}
.hero-form-panel--dark .form-card{background:color-mix(in srgb,var(--brand-dark) 92%,transparent);color:#fff;border-color:rgba(255,255,255,.14);box-shadow:0 28px 70px rgba(0,0,0,.3)}
.hero-form-panel--brand .form-card{background:var(--brand-accent);color:var(--accent-contrast);border-color:color-mix(in srgb,var(--brand-accent) 80%,#fff);box-shadow:0 28px 70px rgba(0,0,0,.23)}
.hero-form-panel--glass .enquiry-form-heading,.hero-form-panel--dark .enquiry-form-heading{color:#fff}
.hero-form-panel--glass .enquiry-form-intro,.hero-form-panel--dark .enquiry-form-intro,.hero-form-panel--glass .tiny,.hero-form-panel--dark .tiny,.hero-form-panel--glass .enquiry-demo-note,.hero-form-panel--dark .enquiry-demo-note{color:rgba(255,255,255,.76)}
.hero-form-panel--brand .enquiry-form-heading,.hero-form-panel--brand .enquiry-form-intro,.hero-form-panel--brand .tiny,.hero-form-panel--brand .enquiry-demo-note{color:var(--accent-contrast)}
.hero-form-panel--glass label,.hero-form-panel--dark label{color:#fff}
.hero-form-panel--brand label{color:var(--accent-contrast)}
.hero-form-panel--glass input,.hero-form-panel--glass select,.hero-form-panel--glass textarea,.hero-form-panel--dark input,.hero-form-panel--dark select,.hero-form-panel--dark textarea{background:rgba(255,255,255,.94);border-color:rgba(255,255,255,.28);color:var(--ink)}
.hero-form-panel--brand input,.hero-form-panel--brand select,.hero-form-panel--brand textarea{background:color-mix(in srgb,#fff 94%,var(--brand-accent));border-color:color-mix(in srgb,var(--accent-contrast) 22%,transparent);color:var(--ink)}

/* G — editorial split. */
.hero--editorial{background:#fff;color:var(--ink)}
.hero--editorial .hero-bg{display:none}
.hero--editorial .hero-layout{grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:72px;min-height:740px}
.hero--editorial .hero-copy{padding:84px 0}
.hero--editorial h1{color:var(--heading);font-size:clamp(3.4rem,5.6vw,5.9rem)}
.hero--editorial .hero-copy>p{color:var(--muted)}
.hero--editorial .hero-secondary{color:var(--brand-primary);border-color:var(--brand-primary)}
.hero--editorial .hero-proof{border-top:1px solid var(--line)}.hero--editorial .proof-item{color:var(--ink)}.hero--editorial .proof-icon{border:1px solid var(--line)}
.hero--editorial .hero-media{display:block;height:620px;position:relative;align-self:center;overflow:hidden;box-shadow:0 28px 70px color-mix(in srgb,var(--brand-primary) 18%,transparent)}
.hero--editorial .hero-media::after{content:"";position:absolute;right:-18px;bottom:-18px;width:120px;height:120px;border-right:10px solid var(--brand-accent);border-bottom:10px solid var(--brand-accent);z-index:-1}
.hero--editorial.hero--image-left .hero-copy{order:2}.hero--editorial.hero--image-left .hero-media{order:1}

/* H — floating panel over full-width image/palette background. */
.hero--floating-panel{color:#fff;min-height:760px}
.hero--floating-panel .hero-layout{display:flex;align-items:center;min-height:760px}
.hero--floating-panel .hero-copy{position:relative;z-index:2;padding:54px 58px;max-width:690px;margin:80px 0;box-shadow:0 30px 80px rgba(0,0,0,.22)}
.hero--floating-panel .hero-media{display:none}
.hero--floating-panel.hero--panel-white .hero-copy{background:#fff;color:var(--ink)}
.hero--floating-panel.hero--panel-white h1{color:var(--heading)}.hero--floating-panel.hero--panel-white .hero-copy>p{color:var(--muted)}.hero--floating-panel.hero--panel-white .hero-secondary{color:var(--brand-primary);border-color:var(--brand-primary)}.hero--floating-panel.hero--panel-white .hero-proof{border-top:1px solid var(--line)}.hero--floating-panel.hero--panel-white .proof-item{color:var(--ink)}
.hero--floating-panel.hero--panel-dark .hero-copy{background:color-mix(in srgb,var(--brand-dark) 94%,transparent)}
.hero--floating-panel.hero--panel-glass .hero-copy{background:rgba(10,27,43,.54);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.hero--floating-panel.hero--panel-brand .hero-copy{background:var(--brand-accent);color:var(--accent-contrast)}
.hero--floating-panel.hero--panel-brand h1,.hero--floating-panel.hero--panel-brand h1 span,.hero--floating-panel.hero--panel-brand .eyebrow,.hero--floating-panel.hero--panel-brand .hero-copy>p,.hero--floating-panel.hero--panel-brand .hero-secondary,.hero--floating-panel.hero--panel-brand .proof-item{color:var(--accent-contrast)}
.hero--floating-panel.hero--panel-brand .btn-primary{background:var(--brand-dark);color:#fff}
.hero--floating-panel:not(.hero--panel-white):not(.hero--panel-brand) h1{color:#fff}
.hero--floating-panel:not(.hero--panel-white):not(.hero--panel-brand) .hero-copy>p{color:#e6edf2}
.hero--floating-panel:not(.hero--panel-white):not(.hero--panel-brand) .hero-secondary{color:#fff;border-color:rgba(255,255,255,.7)}
.hero--floating-panel:not(.hero--panel-white):not(.hero--panel-brand) .hero-proof{border-top:1px solid rgba(255,255,255,.18)}.hero--floating-panel:not(.hero--panel-white):not(.hero--panel-brand) .proof-item{color:#eef3f6}

/* I — centred statement hero. */
.hero--centered{color:#fff;min-height:720px;text-align:center}
.hero--centered .hero-layout{display:flex;align-items:center;justify-content:center;min-height:720px}
.hero--centered .hero-copy{margin:0 auto;padding:100px 0;max-width:900px}
.hero--centered h1{color:#fff;font-size:clamp(3.5rem,6.5vw,6.35rem)}
.hero--centered .hero-copy>p{color:#e4ebef;margin-left:auto;margin-right:auto}
.hero--centered .hero-actions,.hero--centered .hero-proof{justify-content:center}
.hero--centered .hero-secondary{color:#fff;border-color:rgba(255,255,255,.7)}
.hero--centered .hero-proof{border-top:1px solid rgba(255,255,255,.18)}.hero--centered .proof-item{color:#edf3f6}
.hero--centered .hero-media{display:none}

/* J — asymmetric showcase. */
.hero--showcase{background:color-mix(in srgb,#fff 96%,var(--brand-accent));color:var(--ink)}
.hero--showcase .hero-bg{display:none}
.hero--showcase .hero-layout{grid-template-columns:minmax(0,.88fr) minmax(430px,1.12fr);gap:76px;min-height:740px}
.hero--showcase .hero-copy{padding:86px 0}
.hero--showcase h1{color:var(--heading);font-size:clamp(3.4rem,5.6vw,5.9rem)}
.hero--showcase .hero-copy>p{color:var(--muted)}
.hero--showcase .hero-secondary{color:var(--brand-primary);border-color:var(--brand-primary)}
.hero--showcase .hero-proof{border-top:1px solid var(--line)}.hero--showcase .proof-item{color:var(--ink)}
.hero--showcase .hero-media{display:block;height:590px;position:relative;align-self:center;overflow:visible;z-index:1}
.hero--showcase .hero-media::before{content:"";position:absolute;right:-26px;bottom:-26px;width:72%;height:76%;background:var(--brand-accent);opacity:.92;z-index:-1;border-radius:32px 0 32px 0}
.hero--showcase .hero-media img{border-radius:28px 4px 28px 4px;box-shadow:0 30px 76px color-mix(in srgb,var(--brand-primary) 20%,transparent)}
.hero--showcase.hero--image-left .hero-copy{order:2}.hero--showcase.hero--image-left .hero-media{order:1}.hero--showcase.hero--image-left .hero-media::before{right:auto;left:-26px}

/* Repeatable About page section system. */
.about-builder-section{position:relative;overflow:hidden}
.about-builder-section--brand{background:color-mix(in srgb,var(--brand-accent) 9%,#fff)}
.about-builder-split{display:grid;grid-template-columns:minmax(0,.96fr) minmax(380px,1.04fr);gap:72px;align-items:center}
.about-builder-split--image-left .about-builder-copy{order:2}.about-builder-split--image-left .about-builder-media{order:1}
.about-builder-split--text-only{grid-template-columns:minmax(0,860px);justify-content:center}.about-builder-split--text-only .about-builder-copy{order:initial}
.about-builder-copy h2,.about-editorial h2,.about-section-head h2{font-size:clamp(2.45rem,4.3vw,4.7rem);max-width:900px}
.about-builder-copy .prose,.about-editorial .prose,.about-section-head .prose{margin-top:24px}
.about-builder-copy>.btn,.about-editorial>.btn{margin-top:28px}
.about-builder-media .media-frame{min-height:500px}
.about-inline-list{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:28px;border-top:1px solid var(--line)}
.about-inline-list>div{padding:15px 0;border-bottom:1px solid var(--line)}.about-inline-list strong{display:block;color:var(--heading);font-size:.9rem}.about-inline-list span{display:block;color:var(--muted);font-size:.76rem;margin-top:4px}
.about-editorial{max-width:980px;margin:0 auto}.about-editorial-prose{max-width:820px}.about-editorial-media{margin-top:44px}.about-editorial-media .media-frame{min-height:460px}
.about-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.7fr);gap:60px;align-items:end;margin-bottom:42px}.about-section-head--centered{display:block;text-align:center;max-width:850px;margin-left:auto;margin-right:auto}.about-section-head--centered .prose{max-width:700px;margin-left:auto;margin-right:auto}
.about-values-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.about-values-grid article{padding:30px;min-height:220px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:color-mix(in srgb,#fff 94%,var(--brand-light))}.about-values-grid article>span{display:block;color:var(--brand-accent);font-weight:900;font-size:.78rem;letter-spacing:.08em}.about-values-grid h3{margin-top:32px}.about-values-grid p{margin-top:10px;color:var(--muted);font-size:.84rem}
.about-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));border:1px solid var(--line);background:#fff}.about-stats-grid>div{padding:32px;border-right:1px solid var(--line);text-align:center}.about-stats-grid>div:last-child{border-right:0}.about-stats-grid strong{display:block;color:var(--brand-accent);font-size:clamp(2rem,4vw,3.5rem);line-height:1;font-weight:900}.about-stats-grid span{display:block;color:var(--heading);font-weight:800;font-size:.78rem;margin-top:10px;text-transform:uppercase;letter-spacing:.06em}
.about-process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}.about-process-grid article{padding:30px 30px 30px 0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);margin-right:30px}.about-process-grid b{display:block;color:var(--brand-accent);font-size:2rem}.about-process-grid h3{margin-top:24px}.about-process-grid p{margin-top:10px;color:var(--muted);font-size:.84rem}
.about-accreditations{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.about-accreditations>div{padding:22px;border:1px solid var(--line);background:#fff;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.about-accreditation-mark{width:32px;height:32px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand-accent) 13%,#fff);color:var(--brand-accent);font-weight:900}.about-accreditations strong{color:var(--heading);font-size:.9rem}.about-accreditations small{grid-column:2;color:var(--muted);font-size:.74rem;margin-top:-7px}
.section-dark .about-builder-copy h2,.section-dark .about-editorial h2,.section-dark .about-section-head h2,.section-dark .about-inline-list strong{color:#fff}.section-dark .about-builder-copy .prose p,.section-dark .about-editorial .prose p,.section-dark .about-section-head .prose p,.section-dark .about-inline-list span{color:#bdcbd5}.section-dark .about-inline-list,.section-dark .about-inline-list>div{border-color:rgba(255,255,255,.14)}.section-dark .about-values-grid,.section-dark .about-values-grid article,.section-dark .about-stats-grid,.section-dark .about-accreditations>div{border-color:rgba(255,255,255,.14)}.section-dark .about-values-grid article,.section-dark .about-stats-grid,.section-dark .about-accreditations>div{background:rgba(255,255,255,.045)}.section-dark .about-values-grid h3,.section-dark .about-stats-grid span,.section-dark .about-accreditations strong{color:#fff}.section-dark .about-values-grid p,.section-dark .about-process-grid p,.section-dark .about-accreditations small{color:#b8c6d0}.section-dark .about-process-grid{border-color:rgba(255,255,255,.14)}.section-dark .about-process-grid article{border-color:rgba(255,255,255,.14)}

@media(max-width:1120px) and (min-width:681px){
  .hero--lead-form .hero-layout{grid-template-columns:minmax(0,.9fr) minmax(380px,.8fr);gap:36px}.hero--lead-form h1{font-size:clamp(3rem,5vw,4.7rem)}
  .hero--editorial .hero-layout,.hero--showcase .hero-layout{grid-template-columns:minmax(0,1fr) minmax(340px,.85fr);gap:38px}.hero--editorial .hero-media,.hero--showcase .hero-media{height:520px}
  .about-builder-split{grid-template-columns:1fr 1fr;gap:42px}.about-values-grid,.about-process-grid,.about-accreditations{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:680px){
  .hero--lead-form,.hero--floating-panel,.hero--centered,.hero--editorial,.hero--showcase{min-height:0;display:block}
  .hero--lead-form .hero-layout,.hero--editorial .hero-layout,.hero--showcase .hero-layout{display:flex;flex-direction:column;min-height:0;padding-top:0;padding-bottom:0}
  .hero--lead-form .hero-copy,.hero--editorial .hero-copy,.hero--showcase .hero-copy{order:1;padding:48px 0 34px}
  .hero--lead-form .hero-form-wrap{order:2;max-width:none;padding-bottom:38px}
  .hero--lead-form .hero-copy{padding-top:78px}.hero--lead-form h1,.hero--editorial h1,.hero--showcase h1,.hero--centered h1{font-size:clamp(2.65rem,12vw,3.8rem)}
  .hero--lead-form[data-bg-mode="image"]>.hero-bg::after,.hero--centered[data-bg-mode="image"]>.hero-bg::after{background:linear-gradient(180deg,rgba(5,20,32,.52),rgba(5,20,32,.94))}
  .hero--lead-form .hero-proof{margin-top:25px}.hero--lead-form .proof-item{width:auto}
  .hero-form-wrap .form-card{padding:22px}.hero-form-wrap .form-grid{grid-template-columns:1fr}.hero-form-wrap .enquiry-form-heading{font-size:1.45rem}
  .hero--editorial .hero-media,.hero--showcase .hero-media{order:2;width:100%;height:320px!important;margin-bottom:38px;overflow:hidden}.hero--editorial.hero--image-left .hero-copy,.hero--showcase.hero--image-left .hero-copy{order:1}.hero--editorial.hero--image-left .hero-media,.hero--showcase.hero--image-left .hero-media{order:2}
  .hero--editorial .hero-media::after{display:none}.hero--showcase .hero-media::before{right:-12px!important;left:auto!important;bottom:-12px;width:72%;height:70%}.hero--showcase .hero-media img{border-radius:20px 4px 20px 4px}
  .hero--floating-panel .hero-layout{display:block;min-height:0;padding:70px 0}.hero--floating-panel .hero-copy{padding:30px 24px;margin:0;max-width:none}.hero--floating-panel h1{font-size:clamp(2.6rem,12vw,3.75rem)}
  .hero--centered .hero-layout{min-height:0}.hero--centered .hero-copy{padding:92px 0 70px}.hero--centered .hero-proof{gap:10px}.hero--centered .proof-item{width:auto}
  .about-builder-split{grid-template-columns:1fr;gap:34px}.about-builder-split .about-builder-copy,.about-builder-split .about-builder-media,.about-builder-split--image-left .about-builder-copy,.about-builder-split--image-left .about-builder-media{order:initial}.about-builder-media .media-frame{min-height:340px}
  .about-inline-list,.about-section-head,.about-values-grid,.about-process-grid,.about-accreditations{grid-template-columns:1fr}.about-section-head{gap:18px;margin-bottom:30px}.about-values-grid{border-left:1px solid var(--line)}.about-process-grid article{margin-right:0;padding-right:0;border-right:0}.about-stats-grid{grid-template-columns:1fr 1fr}.about-stats-grid>div:nth-child(2n){border-right:0}.about-stats-grid>div{border-bottom:1px solid var(--line)}.about-editorial-media .media-frame{min-height:330px}
}

/* V1.7 About mobile hardening: late count-specific rules from earlier builds must not
   override the one-column mobile layout, and CTA patterns must never widen the viewport. */
@media(max-width:680px){
  .stats--about.stats--count-2,.stats--about.stats--count-3{grid-template-columns:1fr}
  .stats--about .stat{min-width:0;width:100%}
  .cta--premium .cta-graphic{display:none!important}
}

/* Content-width presets are deliberately controlled, with Standard matching the
   established V1.6 homepage copy width so existing sites do not visually jump. */
.hero.hero--content-compact .hero-copy{max-width:620px}
.hero.hero--content-standard .hero-copy{max-width:800px}
.hero.hero--content-wide .hero-copy{max-width:940px}
.hero--floating-panel.hero--content-compact .hero-copy{max-width:580px}
.hero--floating-panel.hero--content-standard .hero-copy{max-width:690px}
.hero--floating-panel.hero--content-wide .hero-copy{max-width:820px}
.hero--centered.hero--content-compact .hero-copy{max-width:760px}
.hero--centered.hero--content-standard .hero-copy{max-width:900px}
.hero--centered.hero--content-wide .hero-copy{max-width:1050px}


/* ==========================================================
   V1.7.2 Footer Background Options
   ========================================================== */

/* Existing sites remain dark by default. The light option deliberately
   changes presentation only; palette accents, content and layout are shared. */
.footer.footer--light,
.footer--premium.footer--light{
  background:#fff;
  color:var(--brand-muted);
}

.footer--light .footer-intro{
  border-bottom-color:var(--brand-border);
}

.footer--light .footer-intro h2,
.footer--light .footer-phone strong,
.footer--light .footer-brand,
.footer--light .brand{
  color:var(--brand-heading);
}

.footer--light .footer-phone span,
.footer--light .footer--premium h4,
.footer--light h4{
  color:var(--brand-muted);
}

.footer--light .footer-grid a{
  color:color-mix(in srgb,var(--brand-body) 76%,var(--brand-muted));
}

.footer--light .footer-grid a:hover,
.footer--light a:hover{
  color:var(--brand-accent);
}

.footer--light .footer-bottom{
  border-top-color:var(--brand-border);
}

.footer--light .footer-credit-separator{
  color:color-mix(in srgb,var(--brand-muted) 45%,transparent);
}

.footer--light .toolbelt-credit,
.footer--light .footer .toolbelt-credit,
.footer.footer--light .toolbelt-credit{
  color:var(--brand-muted)!important;
}

.footer--light .toolbelt-credit:hover,
.footer.footer--light .toolbelt-credit:hover{
  color:var(--brand-accent)!important;
}

.footer--light .footer-service-label{
  color:var(--brand-muted);
}

.footer--light .footer-socials a{
  border-color:var(--brand-border);
  color:var(--brand-heading)!important;
  background:#fff;
}

.footer--light .footer-socials a:hover{
  border-color:var(--brand-accent);
  background:var(--brand-accent);
  color:var(--brand-accent-contrast)!important;
}

/* Footer always continues to use the normal/master logo. This is deliberate:
   the white footer is specifically useful for dark/coloured master logos. */
.footer--light .brand-logo-normal{
  opacity:1!important;
}
.footer--light .brand-logo-light{
  display:none!important;
}


/* ==========================================================
   V1.7.3 Final CTA Colour Styles
   ========================================================== */

/* Existing sites retain the current light CTA by default. */
.cta--premium.cta-tone--light{
  background:color-mix(in srgb,var(--brand-light) 88%,#fff);
  color:var(--brand-body);
  --cta-pattern-line:color-mix(in srgb,var(--brand-primary) 14%,transparent);
  --cta-pattern-accent:color-mix(in srgb,var(--brand-accent) 18%,transparent);
}

/* Controlled inverted option. Uses the central palette rather than a
   hard-coded black so the CTA still feels native to each website. */
.cta--premium.cta-tone--dark{
  background:
    linear-gradient(
      112deg,
      color-mix(in srgb,var(--brand-dark) 90%,var(--brand-primary)),
      var(--brand-dark)
    );
  color:#fff;
  border-top-color:color-mix(in srgb,#fff 11%,transparent);
  border-bottom-color:color-mix(in srgb,#fff 11%,transparent);
  --cta-pattern-line:color-mix(in srgb,#fff 13%,transparent);
  --cta-pattern-accent:color-mix(in srgb,var(--brand-accent) 30%,transparent);
}

.cta--premium.cta-tone--dark h2{
  color:#fff;
}

.cta--premium.cta-tone--dark p,
.cta--premium.cta-tone--dark .cta-proofline{
  color:color-mix(in srgb,#fff 72%,transparent);
}

.cta--premium.cta-tone--dark .cta-eyebrow{
  color:var(--brand-accent);
}

.cta--premium.cta-tone--dark .cta-rule,
.cta--premium.cta-tone--dark .cta-accent{
  background:var(--brand-accent);
}

/* Primary CTA remains the palette accent. The secondary phone action changes
   to a restrained glass/outline treatment so it does not disappear into the
   dark section background. */
.cta--premium.cta-tone--dark .btn-primary{
  background:var(--brand-accent);
  color:var(--brand-accent-contrast);
  border-color:var(--brand-accent);
}

.cta--premium.cta-tone--dark .btn-dark{
  background:color-mix(in srgb,#fff 7%,transparent);
  color:#fff;
  border:1px solid color-mix(in srgb,#fff 38%,transparent);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}

.cta--premium.cta-tone--dark .btn-dark:hover{
  background:#fff;
  color:var(--brand-dark);
  border-color:#fff;
}

/* Pattern-specific decorative shapes inherit the dark-safe variables above. */
.cta--premium.cta-tone--dark::before{
  border-color:var(--cta-pattern-line);
}

.cta--premium.cta-tone--dark::after{
  background:var(--brand-accent);
  opacity:.11;
}

.cta--premium.cta-tone--dark .cta-graphic,
.cta--premium.cta-tone--dark .cta-graphic::before,
.cta--premium.cta-tone--dark .cta-graphic::after{
  border-color:var(--cta-pattern-accent);
}

@media (max-width:560px){
  .cta--premium.cta-tone--dark .btn-dark{
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}


/* ==========================================================
   V1.7.4 Footer Socket Typography Consistency
   ========================================================== */

/* Footer links previously inherited the general .footer a size (.8rem) while
   the copyright inherited .footer-bottom (.72rem), producing a visible 12px /
   13px mismatch. Keep the entire socket on one deliberate 13px type size. */
.footer-bottom,
.footer-bottom .footer-credit-line,
.footer-bottom .footer-credit-line > span,
.footer-bottom .toolbelt-credit,
.footer-bottom .footer-legal-links a,
.footer-bottom .footer-legal-links button,
.footer-bottom .concept-note{
  font-size:13px!important;
}

.footer-bottom .toolbelt-credit,
.footer-bottom .footer-legal-links a{
  line-height:1.45;
}

.footer-bottom .cookie-settings-link{
  line-height:1.45;
}


/* ==========================================================
   V1.8.0 Partners / Accreditations / Affiliations Strip
   ========================================================== */
.partner-strip{
  position:relative;
  overflow:hidden;
  padding:clamp(34px,4.8vw,70px) 0;
  border-top:1px solid var(--brand-border);
  border-bottom:1px solid var(--brand-border);
}
.partner-strip--white{background:#fff}
.partner-strip--soft{background:color-mix(in srgb,var(--brand-light) 88%,#fff)}
.partner-strip--dark{
  background:var(--brand-dark);
  border-color:color-mix(in srgb,#fff 10%,transparent);
}
.partner-strip-heading{
  margin:0 0 28px;
  text-align:center;
  font-size:clamp(1.15rem,1.6vw,1.55rem);
  color:var(--brand-heading);
}
.partner-strip--dark .partner-strip-heading{color:#fff}

.partner-strip-content{
  --partner-opacity:.64;
  --partner-gap:50px;
  --partner-logo-width:150px;
  --partner-logo-height:58px;
  --partner-duration:42s;
}
.partner-presentation--contained{
  padding:clamp(24px,3vw,38px);
  border:1px solid var(--brand-border);
  background:color-mix(in srgb,#fff 92%,var(--brand-light));
  box-shadow:0 18px 48px rgba(13,31,48,.06);
}
.partner-strip--dark .partner-presentation--contained{
  background:color-mix(in srgb,#fff 5%,var(--brand-dark));
  border-color:color-mix(in srgb,#fff 13%,transparent);
  box-shadow:none;
}

.partner-logo-viewport{
  overflow:hidden;
  width:100%;
}
.partner-edge-fade .partner-logo-viewport{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);
}
.partner-logo-track{
  display:flex;
  align-items:center;
  width:max-content;
}
.partner-display--static .partner-logo-track{
  width:100%;
  justify-content:center;
}
.partner-logo-group{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--partner-gap);
  flex:0 0 auto;
}
.partner-display--static .partner-logo-group{
  width:100%;
  flex-wrap:wrap;
}
.partner-display--marquee .partner-logo-track{
  gap:var(--partner-gap);
  animation:tbPartnerMarquee var(--partner-duration) linear infinite;
}
.partner-display--marquee:hover .partner-logo-track,
.partner-display--marquee:focus-within .partner-logo-track{
  animation-play-state:paused;
}
.partner-logo{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-width:var(--partner-logo-width);
  min-height:var(--partner-logo-height);
  text-decoration:none;
}
.partner-logo img{
  display:block;
  width:auto;
  height:auto;
  max-width:var(--partner-logo-width);
  max-height:var(--partner-logo-height);
  object-fit:contain;
  opacity:var(--partner-opacity);
  transition:filter .28s ease,opacity .28s ease,transform .28s ease;
}
.partner-treatment--greyscale .partner-logo img,
.partner-treatment--greyscale-hover .partner-logo img{
  filter:grayscale(1);
}
.partner-treatment--greyscale-hover .partner-logo:hover img,
.partner-treatment--greyscale-hover .partner-logo:focus-visible img{
  filter:none;
  opacity:1;
  transform:translateY(-2px);
}
.partner-treatment--colour .partner-logo:hover img,
.partner-treatment--colour .partner-logo:focus-visible img,
.partner-treatment--greyscale .partner-logo:hover img,
.partner-treatment--greyscale .partner-logo:focus-visible img{
  opacity:1;
}
.partner-strip--dark .partner-treatment--greyscale .partner-logo img,
.partner-strip--dark .partner-treatment--greyscale-hover .partner-logo img{
  filter:grayscale(1) brightness(2.1) contrast(.68);
}
.partner-strip--dark .partner-treatment--greyscale-hover .partner-logo:hover img,
.partner-strip--dark .partner-treatment--greyscale-hover .partner-logo:focus-visible img{
  filter:none;
}
.partner-logo:focus-visible{
  outline:2px solid var(--brand-accent);
  outline-offset:8px;
}

.about-builder-section--partners .partner-strip-content{
  margin-top:28px;
}
.about-builder-section--partners .partner-presentation--contained{
  margin-left:auto;
  margin-right:auto;
}

@keyframes tbPartnerMarquee{
  from{transform:translateX(0)}
  to{transform:translateX(calc(-50% - (var(--partner-gap) / 2)))}
}

@media(max-width:760px){
  .partner-strip{padding:32px 0}
  .partner-strip-content{
    --partner-logo-width:min(124px,31vw)!important;
    --partner-logo-height:48px!important;
    --partner-gap:30px!important;
  }
  .partner-presentation--contained{padding:22px 18px}
  .partner-strip-heading{margin-bottom:22px}
  .partner-edge-fade .partner-logo-viewport{
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
  }
}
@media(prefers-reduced-motion:reduce){
  .partner-display--marquee .partner-logo-track{animation:none!important}
  .partner-display--marquee .partner-logo-group[aria-hidden="true"]{display:none}
  .partner-display--marquee .partner-logo-track{width:100%;justify-content:center}
  .partner-display--marquee .partner-logo-group{width:100%;flex-wrap:wrap}
  .partner-logo img{transition:none!important}
}


/* ==========================================================
   V1.8.1 Footer Typography Consistency
   ========================================================== */

/* Keep the footer hierarchy deliberate and consistent:
   column headings = 14px
   supporting text / links / socket = 13px */
.footer .footer-grid h4,
.footer--premium .footer-grid h4{
  font-size:14px!important;
  line-height:1.35;
}

.footer .footer-grid p,
.footer--premium .footer-grid p,
.footer .footer-grid a,
.footer--premium .footer-grid a,
.footer .footer-service-label,
.footer--premium .footer-service-label{
  font-size:13px!important;
  line-height:1.65;
}

/* Contact details in footer columns should follow the same 13px body scale. */
.footer .footer-grid .footer-contact,
.footer .footer-grid .footer-contact a,
.footer .footer-grid .footer-contact span,
.footer--premium .footer-grid .footer-contact,
.footer--premium .footer-grid .footer-contact a,
.footer--premium .footer-grid .footer-contact span{
  font-size:13px!important;
}

/* Preserve the socket standard introduced in V1.7.4. */
.footer-bottom,
.footer-bottom .footer-credit-line,
.footer-bottom .footer-credit-line > span,
.footer-bottom .toolbelt-credit,
.footer-bottom .footer-legal-links a,
.footer-bottom .footer-legal-links button,
.footer-bottom .concept-note{
  font-size:13px!important;
}


/* ==========================================================
   V1.8.2 Footer Socket Size Refinement
   ========================================================== */

/* Keep the main footer hierarchy:
   headings = 14px
   body / column links = 13px
   bottom socket / legal = 12px */
.footer-bottom,
.footer-bottom .footer-credit-line,
.footer-bottom .footer-credit-line > span,
.footer-bottom .toolbelt-credit,
.footer-bottom .footer-legal-links a,
.footer-bottom .footer-legal-links button,
.footer-bottom .concept-note{
  font-size:12px!important;
  line-height:1.5;
}


/* ==========================================================
   V1.9.0 Service Page Content Builder
   ========================================================== */
.service-rich-content{color:var(--muted);font-size:1rem;line-height:1.78}
.service-rich-content>p{margin:0 0 18px}
.service-rich-content h2{color:var(--heading);margin:42px 0 18px}
.service-rich-content h3{color:var(--heading);font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.16;letter-spacing:-.018em;margin:30px 0 12px}
.service-rich-content ul,.service-rich-content ol{margin:16px 0 24px;padding-left:1.4em}
.service-rich-content li{margin:8px 0;padding-left:5px}
.service-rich-content li::marker{color:var(--brand-accent);font-weight:800}
.service-rich-content strong{color:var(--heading)}
.service-rich-content a{color:var(--brand-accent);font-weight:750;text-decoration:underline;text-underline-offset:3px}

.service-builder-section{position:relative;overflow:hidden}
.service-builder-section--brand{background:color-mix(in srgb,var(--brand-accent) 8%,#fff)}
.service-builder-split{display:grid;grid-template-columns:minmax(0,.95fr) minmax(380px,1.05fr);gap:72px;align-items:center}
.service-builder-split--align-top{align-items:start}
.service-builder-split--align-center{align-items:center}
.service-builder-split--align-bottom{align-items:end}
.service-builder-split--image-left .service-builder-copy{order:2}
.service-builder-split--image-left .service-builder-media{order:1}
.service-builder-split--text-only{grid-template-columns:minmax(0,900px);justify-content:center}
.service-rich-content h2,.service-builder-copy h2,.service-editorial>h2,.service-section-head h2,.service-inline-cta h2{font-size:clamp(2.4rem,4.2vw,4.6rem);line-height:.98;letter-spacing:-.04em}
.service-builder-copy>.service-rich-content,.service-editorial>.service-rich-content{margin-top:24px}
.service-builder-copy>.btn{margin-top:26px}
.service-builder-media .media-frame{min-height:500px}
.service-editorial{max-width:930px;margin:0 auto}
.service-editorial>.service-rich-content{max-width:840px}
.service-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:60px;align-items:end;margin-bottom:42px}
.service-section-head--centered{display:block;text-align:center;max-width:850px;margin-left:auto;margin-right:auto}
.service-section-head--centered .service-rich-content{max-width:700px;margin:22px auto 0}
.service-section-head .service-rich-content{font-size:.95rem}

.service-benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.service-benefits-grid article{padding:32px;min-height:220px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:color-mix(in srgb,#fff 94%,var(--brand-light))}
.service-benefits-grid article>span{display:block;color:var(--brand-accent);font-weight:900;font-size:.78rem;letter-spacing:.08em}
.service-benefits-grid h3{margin-top:32px;font-size:1.25rem}
.service-benefits-grid p{margin-top:10px;color:var(--muted);font-size:.84rem;line-height:1.62}

.service-process-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.service-process-grid article{padding:32px 32px 32px 0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);margin-right:32px}
.service-process-grid b{display:block;color:var(--brand-accent);font-size:2rem;line-height:1}
.service-process-grid h3{margin-top:24px;font-size:1.25rem}
.service-process-grid p{margin-top:10px;color:var(--muted);font-size:.84rem;line-height:1.62}

.service-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));border:1px solid var(--line);background:#fff}
.service-stats-grid>div{padding:34px;border-right:1px solid var(--line);text-align:center}
.service-stats-grid>div:last-child{border-right:0}
.service-stats-grid strong{display:block;color:var(--brand-accent);font-size:clamp(2rem,4vw,3.7rem);line-height:1;font-weight:900}
.service-stats-grid span{display:block;color:var(--heading);font-weight:800;font-size:.78rem;margin-top:11px;text-transform:uppercase;letter-spacing:.06em}

.service-faq-list{max-width:960px;margin:0 auto;border-top:1px solid var(--line)}
.service-faq-list details{border-bottom:1px solid var(--line)}
.service-faq-list summary{list-style:none;cursor:pointer;padding:22px 0;display:flex;align-items:center;justify-content:space-between;gap:18px;color:var(--heading);font-weight:800;font-size:1rem}
.service-faq-list summary::-webkit-details-marker{display:none}
.service-faq-list summary span{color:var(--brand-accent);font-size:1.4rem;transition:transform .2s ease}
.service-faq-list details[open] summary span{transform:rotate(45deg)}
.service-faq-list details>div{padding:0 0 24px;color:var(--muted);max-width:800px;line-height:1.7;font-size:.92rem}

.service-inline-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:60px;align-items:center}
.service-inline-cta .service-rich-content{max-width:760px;margin-top:20px}
.service-inline-cta-actions{display:flex;flex-direction:column;min-width:250px;gap:10px}

.section-dark .service-rich-content,.section-dark .service-builder-copy .service-rich-content,.section-dark .service-section-head .service-rich-content{color:#bdcbd5}
.section-dark .service-rich-content h2,.section-dark .service-rich-content h3,.section-dark .service-rich-content strong,
.section-dark .service-builder-copy h2,.section-dark .service-editorial>h2,.section-dark .service-section-head h2,.section-dark .service-inline-cta h2{color:#fff}
.section-dark .service-benefits-grid,.section-dark .service-benefits-grid article,.section-dark .service-process-grid,.section-dark .service-process-grid article,.section-dark .service-stats-grid,.section-dark .service-faq-list,.section-dark .service-faq-list details{border-color:rgba(255,255,255,.14)}
.section-dark .service-benefits-grid article,.section-dark .service-stats-grid{background:rgba(255,255,255,.045)}
.section-dark .service-benefits-grid h3,.section-dark .service-process-grid h3,.section-dark .service-stats-grid span,.section-dark .service-faq-list summary{color:#fff}
.section-dark .service-benefits-grid p,.section-dark .service-process-grid p,.section-dark .service-faq-list details>div{color:#bdcbd5}

@media(max-width:1050px) and (min-width:681px){
  .service-builder-split{grid-template-columns:1fr 1fr;gap:42px}
  .service-benefits-grid,.service-process-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .service-builder-split{grid-template-columns:1fr;gap:32px;align-items:stretch}
  .service-detail-grid .service-media{align-self:auto}
  .service-builder-split .service-builder-copy,.service-builder-split .service-builder-media,
  .service-builder-split--image-left .service-builder-copy,.service-builder-split--image-left .service-builder-media{order:initial}
  .service-builder-media .media-frame{min-height:330px}
  .service-section-head,.service-benefits-grid,.service-process-grid{grid-template-columns:1fr}
  .service-section-head{gap:18px;margin-bottom:30px}
  .service-benefits-grid article{min-height:0;padding:26px}
  .service-process-grid article{margin-right:0;padding-right:0;border-right:0}
  .service-stats-grid{grid-template-columns:1fr 1fr}
  .service-stats-grid>div:nth-child(2n){border-right:0}
  .service-stats-grid>div{border-bottom:1px solid var(--line)}
  .service-inline-cta{grid-template-columns:1fr;gap:28px}
  .service-inline-cta-actions{min-width:0;width:100%}
  .service-inline-cta-actions .btn{width:100%}
  .service-rich-content h2,.service-builder-copy h2,.service-editorial>h2,.service-section-head h2,.service-inline-cta h2{font-size:clamp(1.8rem,8vw,2.5rem)}
  .service-rich-content h2{margin-top:34px}
  .service-rich-content h3{font-size:1.2rem}
}


/* ==========================================================
   V1.9.1 Why Choose Us — controlled 5-layout library
   ========================================================== */
.why-section{position:relative;overflow:hidden;isolation:isolate}
.why-section>.container{position:relative;z-index:3}
.why-section .why-pattern-art{position:absolute;inset:0;pointer-events:none;z-index:2;opacity:.8}
.why-section.why-pattern--none .why-pattern-art{display:none}
.why-section.why-pattern--watermark .why-pattern-art{display:none}
.why-section.why-pattern--rings .why-pattern-art::before,.why-section.why-pattern--rings .why-pattern-art::after{content:"";position:absolute;border:1px solid color-mix(in srgb,var(--brand-accent) 28%,transparent);border-radius:50%}
.why-section.why-pattern--rings .why-pattern-art::before{width:520px;height:520px;right:-180px;top:-250px}.why-section.why-pattern--rings .why-pattern-art::after{width:300px;height:300px;right:70px;bottom:-170px;opacity:.55}
.why-section.why-pattern--frames .why-pattern-art::before,.why-section.why-pattern--frames .why-pattern-art::after{content:"";position:absolute;width:280px;height:210px;border:1px solid color-mix(in srgb,var(--brand-accent) 24%,transparent);transform:rotate(9deg);right:-45px;bottom:-70px}.why-section.why-pattern--frames .why-pattern-art::after{right:15px;bottom:-25px;opacity:.45}
.why-section.why-pattern--diagonal .why-pattern-art{background:repeating-linear-gradient(118deg,transparent 0 70px,color-mix(in srgb,var(--brand-accent) 6%,transparent) 70px 71px);opacity:.75}
.why-section.why-pattern--dots .why-pattern-art{background-image:radial-gradient(circle,color-mix(in srgb,var(--brand-accent) 26%,transparent) 1.2px,transparent 1.3px);background-size:24px 24px;mask-image:linear-gradient(90deg,transparent 0,transparent 45%,#000 100%);opacity:.45}

/* Current Split Panel — remains the default and deliberately close to V1.9.0. */
.home-premium .why-layout--split-panel{background:linear-gradient(115deg,var(--navy-2),color-mix(in srgb,var(--navy) 88%,#000))}
.home-premium .why-layout--split-panel .why-grid{position:relative;z-index:3;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:100px;align-items:center}
.home-premium .why-layout--split-panel .why-copy{position:static}.home-premium .why-layout--split-panel .why-copy h2{max-width:590px}.home-premium .why-layout--split-panel .why-copy .lead{margin-top:28px;max-width:510px;color:rgba(255,255,255,.66)}
.home-premium .why-layout--split-panel .why-reasons-grid{border:0;gap:1px;background:rgba(255,255,255,.12)}
.home-premium .why-layout--split-panel .reason{min-height:230px;padding:36px;background:rgba(6,28,44,.92);border:0;transition:.25s ease}.home-premium .why-layout--split-panel .reason:hover{background:rgba(255,255,255,.055)}
.home-premium .why-layout--split-panel .reason b{font-size:.75rem;letter-spacing:.15em;color:var(--brand-accent)}.home-premium .why-layout--split-panel .reason strong{font-size:1.08rem;margin-top:40px}.home-premium .why-layout--split-panel .reason p{font-size:.76rem;line-height:1.65;margin-top:10px;color:rgba(255,255,255,.58)}

/* Full-Bleed Image + Overlay */
.why-layout--image-overlay{background:linear-gradient(115deg,var(--brand-dark),color-mix(in srgb,var(--brand-dark) 86%,#000));min-height:720px;display:flex;align-items:center}
.why-layout--image-overlay .why-bg-media{position:absolute;inset:0;background-size:cover;background-repeat:no-repeat;z-index:0;transform:scale(1.015)}
.why-layout--image-overlay::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,color-mix(in srgb,var(--brand-dark) 96%,transparent) 0%,color-mix(in srgb,var(--brand-dark) 88%,transparent) 42%,color-mix(in srgb,var(--brand-dark) 68%,transparent) 100%)}
.why-layout--image-overlay.why-overlay--light::before{background:linear-gradient(90deg,color-mix(in srgb,var(--brand-dark) 90%,transparent),color-mix(in srgb,var(--brand-dark) 52%,transparent))}.why-layout--image-overlay.why-overlay--strong::before{background:linear-gradient(90deg,color-mix(in srgb,var(--brand-dark) 98%,transparent),color-mix(in srgb,var(--brand-dark) 82%,transparent))}
.why-overlay-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:82px;align-items:center}.why-overlay-copy h2{max-width:620px}.why-overlay-copy .lead{max-width:530px;margin-top:26px;color:rgba(255,255,255,.74)}
.why-overlay-reasons{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.why-overlay-card{min-height:220px;padding:32px;background:color-mix(in srgb,var(--brand-dark) 78%,transparent);border:1px solid rgba(255,255,255,.16);box-shadow:0 18px 45px rgba(0,0,0,.12)}
.why-glass-cards .why-overlay-card{background:rgba(8,28,35,.38);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.why-overlay-card b{display:block;color:var(--brand-accent);font-size:.75rem;letter-spacing:.14em}.why-overlay-card strong{display:block;color:#fff;margin-top:32px;font-size:1.08rem}.why-overlay-card p{color:rgba(255,255,255,.68);font-size:.79rem;line-height:1.65;margin-top:10px}

/* Premium Light Editorial */
.why-layout--light-editorial{background:#fff;color:var(--heading)}.why-layout--light-editorial .why-watermark{color:color-mix(in srgb,var(--brand-dark) 3%,transparent)}
.why-editorial-head{text-align:center;max-width:900px;margin:0 auto 64px}.why-editorial-head h2{font-size:clamp(2.8rem,5.5vw,5.6rem);line-height:.95;letter-spacing:-.055em}.why-editorial-head .lead{max-width:690px;margin:26px auto 0;color:var(--muted)}
.why-editorial-reasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.why-editorial-reasons article{padding:34px 30px 38px;min-height:235px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.88)}
.why-editorial-reasons b{display:block;color:var(--brand-accent);font-size:.72rem;letter-spacing:.15em}.why-editorial-reasons strong{display:block;color:var(--heading);margin-top:42px;font-size:1.07rem}.why-editorial-reasons p{color:var(--muted);font-size:.77rem;line-height:1.68;margin-top:11px}

/* Image + Stacked Benefits */
.why-layout--image-benefits{background:color-mix(in srgb,var(--brand-light) 45%,#fff)}.why-image-benefits{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:88px;align-items:center}.why-feature-media{position:relative}.why-feature-frame .tb-image-frame-surface{min-height:610px}.why-feature-frame img{object-position:var(--why-image-position,center center)}
.why-feature-placeholder{min-height:610px;background:linear-gradient(145deg,var(--brand-dark),color-mix(in srgb,var(--brand-dark) 75%,var(--brand-accent)));display:flex;align-items:flex-end;padding:36px;overflow:hidden}.why-feature-placeholder span{font-size:clamp(8rem,17vw,15rem);font-weight:950;color:rgba(255,255,255,.05);line-height:.75;letter-spacing:-.1em}
.why-benefits-copy h2{font-size:clamp(2.7rem,5vw,5.2rem);line-height:.97;letter-spacing:-.052em}.why-benefits-copy>.lead{margin-top:25px;color:var(--muted);max-width:650px}.why-stacked-benefits{margin-top:36px;border-top:1px solid var(--line)}.why-stacked-benefits article{display:grid;grid-template-columns:64px 1fr;gap:22px;padding:22px 0;border-bottom:1px solid var(--line)}.why-stacked-benefits b{color:var(--brand-accent);font-size:.72rem;letter-spacing:.13em;padding-top:4px}.why-stacked-benefits strong{color:var(--heading);font-size:1rem}.why-stacked-benefits p{color:var(--muted);font-size:.76rem;line-height:1.6;margin-top:5px}

/* Feature Cards / Statement Grid */
.why-layout--statement-grid{background:color-mix(in srgb,var(--brand-light) 25%,#fff)}.why-statement-layout{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.why-statement-layout>article{background:#fff;min-height:270px;padding:34px}.why-statement-intro{grid-column:span 2;grid-row:span 2;min-height:541px!important;padding:52px!important;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.why-statement-intro::before{content:"";position:absolute;right:-90px;top:-100px;width:300px;height:300px;border-radius:50%;background:var(--brand-accent);opacity:.07}.why-statement-intro h2{font-size:clamp(3.1rem,6vw,6.2rem);line-height:.92;letter-spacing:-.06em;max-width:750px}.why-statement-intro .lead{max-width:610px;margin-top:24px;color:var(--muted)}
.why-statement-card{transition:.22s ease}.why-statement-card:nth-of-type(2){background:var(--brand-dark)}.why-statement-card:nth-of-type(2) strong{color:#fff}.why-statement-card:nth-of-type(2) p{color:rgba(255,255,255,.64)}.why-statement-card:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(9,31,45,.08);z-index:2}.why-statement-card b{display:block;color:var(--brand-accent);font-size:.72rem;letter-spacing:.15em}.why-statement-card strong{display:block;color:var(--heading);font-size:1.05rem;margin-top:54px}.why-statement-card p{color:var(--muted);font-size:.76rem;line-height:1.65;margin-top:10px}

/* Dark variants and pattern contrast */
.why-section.section-dark.why-pattern--rings .why-pattern-art::before,.why-section.section-dark.why-pattern--rings .why-pattern-art::after,.why-section.section-dark.why-pattern--frames .why-pattern-art::before,.why-section.section-dark.why-pattern--frames .why-pattern-art::after{border-color:rgba(255,255,255,.11)}
.why-section.section-dark.why-pattern--diagonal .why-pattern-art{background:repeating-linear-gradient(118deg,transparent 0 70px,rgba(255,255,255,.025) 70px 71px)}.why-section.section-dark.why-pattern--dots .why-pattern-art{background-image:radial-gradient(circle,rgba(255,255,255,.12) 1.2px,transparent 1.3px)}

@media(max-width:1120px){.why-overlay-layout,.why-image-benefits{gap:50px}.why-statement-layout{grid-template-columns:repeat(2,1fr)}.why-statement-intro{grid-column:span 2;grid-row:auto;min-height:420px!important}}
@media(max-width:900px){.why-overlay-layout,.why-image-benefits{grid-template-columns:1fr}.why-layout--image-overlay{min-height:0}.why-overlay-reasons{grid-template-columns:repeat(2,1fr)}.why-feature-media{max-width:720px}.why-feature-frame .tb-image-frame-surface,.why-feature-placeholder{min-height:480px}.why-layout--split-panel .why-grid{grid-template-columns:1fr!important;gap:48px!important}}
@media(max-width:680px){.why-section{padding-top:78px;padding-bottom:78px}.why-overlay-reasons{grid-template-columns:1fr}.why-overlay-card{min-height:0;padding:26px}.why-overlay-card strong{margin-top:24px}.why-editorial-head{text-align:left;margin-bottom:38px}.why-editorial-reasons{grid-template-columns:1fr}.why-editorial-reasons article{min-height:0;padding:27px 24px}.why-editorial-reasons strong{margin-top:28px}.why-feature-frame .tb-image-frame-surface,.why-feature-placeholder{min-height:360px}.why-image-benefits{gap:38px}.why-statement-layout{grid-template-columns:1fr}.why-statement-intro{grid-column:auto;min-height:390px!important;padding:34px!important}.why-statement-layout>article{min-height:0;padding:28px}.why-statement-card strong{margin-top:30px}.why-stacked-benefits article{grid-template-columns:45px 1fr;gap:12px}.why-layout--image-overlay::before{background:color-mix(in srgb,var(--brand-dark) 84%,transparent)!important}.why-section.why-pattern--rings .why-pattern-art::before{width:340px;height:340px;right:-170px}.why-section.why-pattern--dots .why-pattern-art{mask-image:linear-gradient(180deg,transparent 0,#000 100%)}}


/* ==========================================================
   V1.9.2 Why Choose Us — numbering + palette card controls
   ========================================================== */

/* Palette-role card variables.
   Automatic deliberately leaves every V1.9.1 layout unchanged. */
.why-card-colour--primary{
  --why-card-bg:var(--brand-primary);
  --why-card-text:#fff;
  --why-card-muted:rgba(255,255,255,.68);
  --why-card-border:color-mix(in srgb,#fff 16%,transparent);
  --why-card-number:var(--brand-accent);
}
.why-card-colour--secondary{
  --why-card-bg:var(--brand-secondary);
  --why-card-text:#fff;
  --why-card-muted:rgba(255,255,255,.70);
  --why-card-border:color-mix(in srgb,#fff 17%,transparent);
  --why-card-number:var(--brand-accent);
}
.why-card-colour--dark{
  --why-card-bg:var(--brand-dark);
  --why-card-text:#fff;
  --why-card-muted:rgba(255,255,255,.66);
  --why-card-border:color-mix(in srgb,#fff 14%,transparent);
  --why-card-number:var(--brand-accent);
}
.why-card-colour--accent{
  --why-card-bg:var(--brand-accent);
  --why-card-text:var(--brand-accent-contrast);
  --why-card-muted:color-mix(in srgb,var(--brand-accent-contrast) 68%,transparent);
  --why-card-border:color-mix(in srgb,var(--brand-accent-contrast) 18%,transparent);
  --why-card-number:var(--brand-accent-contrast);
}
.why-card-colour--light{
  --why-card-bg:var(--brand-light);
  --why-card-text:var(--brand-heading);
  --why-card-muted:var(--brand-muted);
  --why-card-border:var(--brand-border);
  --why-card-number:var(--brand-accent);
}

/* Apply the selected palette role to each layout's benefit/card treatment. */
.why-section:not(.why-card-colour--auto) .reason,
.why-section:not(.why-card-colour--auto) .why-overlay-card,
.why-section:not(.why-card-colour--auto) .why-editorial-reasons article,
.why-section:not(.why-card-colour--auto) .why-stacked-benefits article,
.why-section:not(.why-card-colour--auto) .why-statement-card{
  background:var(--why-card-bg);
  border-color:var(--why-card-border);
  color:var(--why-card-text);
}

.why-section:not(.why-card-colour--auto) .reason strong,
.why-section:not(.why-card-colour--auto) .why-overlay-card strong,
.why-section:not(.why-card-colour--auto) .why-editorial-reasons strong,
.why-section:not(.why-card-colour--auto) .why-stacked-benefits strong,
.why-section:not(.why-card-colour--auto) .why-statement-card strong{
  color:var(--why-card-text);
}
.why-section:not(.why-card-colour--auto) .reason p,
.why-section:not(.why-card-colour--auto) .why-overlay-card p,
.why-section:not(.why-card-colour--auto) .why-editorial-reasons p,
.why-section:not(.why-card-colour--auto) .why-stacked-benefits p,
.why-section:not(.why-card-colour--auto) .why-statement-card p{
  color:var(--why-card-muted);
}
.why-section:not(.why-card-colour--auto) .reason b,
.why-section:not(.why-card-colour--auto) .why-overlay-card b,
.why-section:not(.why-card-colour--auto) .why-editorial-reasons b,
.why-section:not(.why-card-colour--auto) .why-stacked-benefits b,
.why-section:not(.why-card-colour--auto) .why-statement-card b{
  color:var(--why-card-number);
}

/* The image-overlay glass treatment remains available with palette-selected cards.
   Selecting a role tints the glass using that palette colour instead of reverting
   to the old hard-coded dark glass. */
.why-section:not(.why-card-colour--auto).why-glass-cards .why-overlay-card{
  background:color-mix(in srgb,var(--why-card-bg) 74%,transparent);
  border-color:var(--why-card-border);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

/* Image + Benefits is a stacked-list layout rather than a card grid.
   Only palette-selected modes turn those rows into intentional coloured panels. */
.why-section:not(.why-card-colour--auto) .why-stacked-benefits{
  border-top:0;
  display:grid;
  gap:8px;
}
.why-section:not(.why-card-colour--auto) .why-stacked-benefits article{
  border:1px solid var(--why-card-border);
  padding:19px 21px;
}

/* Number-free mode: remove the visual gap that was reserved for 01/02/03/04. */
.home-premium .why-section.why-no-numbers .reason strong,
.home-premium .why-section.why-no-numbers .why-overlay-card strong,
.home-premium .why-section.why-no-numbers .why-editorial-reasons strong,
.home-premium .why-section.why-no-numbers .why-statement-card strong{
  margin-top:0;
}
.home-premium .why-section.why-no-numbers .why-stacked-benefits article{
  grid-template-columns:1fr;
}
.home-premium .why-section.why-no-numbers .why-stacked-benefits article>div{
  grid-column:1;
}
.home-premium .why-section.why-no-numbers.why-card-colour--auto .why-stacked-benefits article{
  padding-top:20px;
  padding-bottom:20px;
}

/* Keep hover states palette-consistent instead of revealing the legacy card colour. */
.why-section:not(.why-card-colour--auto) .reason:hover,
.why-section:not(.why-card-colour--auto) .why-statement-card:hover{
  background:color-mix(in srgb,var(--why-card-bg) 92%,var(--why-card-text));
}

@media(max-width:680px){
  .why-section:not(.why-card-colour--auto) .why-stacked-benefits article{padding:17px 18px}
}


/* ==========================================================
   V1.9.3 Emergency Contact Strip — 5 controlled layouts
   ========================================================== */
.emergency-strip{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  --emergency-text:var(--brand-heading);
  --emergency-muted:var(--brand-muted);
  --emergency-action-bg:var(--brand-accent);
  --emergency-action-text:var(--brand-accent-contrast);
}
.emergency-strip-container{position:relative;z-index:2}

/* The desktop trust strip intentionally floats over the following section.
   Give an emergency strip placed directly beneath it enough breathing room
   so the overlap feels designed rather than clipping the emergency content. */
@media(min-width:981px){
  .home-premium .trust-strip--floating + .emergency-strip{padding-top:34px}
}
.emergency-strip-inner{
  min-height:138px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:28px;
  padding:26px 30px;
}
.emergency-strip-icon{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border:1px solid var(--brand-border);
  color:var(--brand-accent);
}
.emergency-strip-icon svg{width:25px;height:25px;fill:currentColor}
.emergency-strip-copy{min-width:0}
.emergency-strip-label{
  display:block;
  margin-bottom:7px;
  color:var(--brand-accent);
  font-size:.66rem;
  font-weight:900;
  line-height:1.2;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.emergency-strip-copy p{
  max-width:780px;
  color:var(--emergency-text);
  font-size:.94rem;
  font-weight:650;
  line-height:1.55;
}
.emergency-strip-actions{
  display:flex;
  align-items:stretch;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.emergency-strip-phone,
.emergency-strip-button{
  min-height:56px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.emergency-strip-phone{
  min-width:184px;
  flex-direction:column;
  align-items:flex-start;
  padding:9px 18px;
  border:1px solid var(--brand-border);
  background:#fff;
}
.emergency-strip-phone span{
  color:var(--emergency-muted);
  font-size:.58rem;
  font-weight:850;
  line-height:1.2;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.emergency-strip-phone strong{
  margin-top:4px;
  color:var(--emergency-text);
  font-size:.91rem;
  line-height:1.2;
  letter-spacing:-.015em;
}
.emergency-strip-button{
  min-width:168px;
  padding:0 22px;
  background:var(--emergency-action-bg);
  color:var(--emergency-action-text);
  border:1px solid var(--emergency-action-bg);
  font-size:.79rem;
  font-weight:900;
}
.emergency-strip-phone:hover,
.emergency-strip-button:hover{transform:translateY(-2px)}
.emergency-strip-button:hover{box-shadow:0 12px 28px color-mix(in srgb,var(--brand-accent) 22%,transparent)}

/* 01 — Solid Alert Bar */
.emergency-strip--solid-alert{
  background:var(--brand-accent);
  --emergency-text:var(--brand-accent-contrast);
  --emergency-muted:color-mix(in srgb,var(--brand-accent-contrast) 68%,transparent);
  --emergency-action-bg:var(--brand-dark);
  --emergency-action-text:#fff;
}
.emergency-strip--solid-alert .emergency-strip-inner{min-height:124px}
.emergency-strip--solid-alert .emergency-strip-icon{
  border-color:color-mix(in srgb,var(--brand-accent-contrast) 24%,transparent);
  background:color-mix(in srgb,var(--brand-accent-contrast) 8%,transparent);
  color:var(--brand-accent-contrast);
}
.emergency-strip--solid-alert .emergency-strip-label{color:var(--brand-accent-contrast);opacity:.72}
.emergency-strip--solid-alert .emergency-strip-phone{
  background:transparent;
  border-color:color-mix(in srgb,var(--brand-accent-contrast) 28%,transparent);
}
.emergency-strip--solid-alert .emergency-strip-phone span,
.emergency-strip--solid-alert .emergency-strip-phone strong{color:var(--brand-accent-contrast)}

/* 02 — Split Accent */
.emergency-strip--split-accent{
  background:var(--brand-dark);
  --emergency-text:#fff;
  --emergency-muted:rgba(255,255,255,.60);
}
.emergency-strip--split-accent::after{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  background:var(--brand-accent);
}
.emergency-strip--split-accent .emergency-strip-icon{
  width:62px;
  height:62px;
  border:0;
  background:var(--brand-accent);
  color:var(--brand-accent-contrast);
}
.emergency-strip--split-accent .emergency-strip-label{color:var(--brand-accent)}
.emergency-strip--split-accent .emergency-strip-phone{
  background:color-mix(in srgb,#fff 4%,transparent);
  border-color:rgba(255,255,255,.18);
}
.emergency-strip--split-accent .emergency-strip-phone span{color:rgba(255,255,255,.52)}
.emergency-strip--split-accent .emergency-strip-phone strong{color:#fff}

/* 03 — Light Premium */
.emergency-strip--light-premium{
  background:#fff;
  border-top:1px solid var(--brand-border);
  border-bottom:1px solid var(--brand-border);
}
.emergency-strip--light-premium::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:3px;
  background:linear-gradient(90deg,var(--brand-accent) 0 18%,transparent 18%);
}
.emergency-strip--light-premium .emergency-strip-inner{padding-top:31px;padding-bottom:31px}
.emergency-strip--light-premium .emergency-strip-icon{
  border-color:color-mix(in srgb,var(--brand-accent) 28%,var(--brand-border));
  background:color-mix(in srgb,var(--brand-accent) 7%,#fff);
}
.emergency-strip--light-premium .emergency-strip-phone{
  background:var(--brand-light);
  border-color:var(--brand-border);
}

/* 04 — Dark Gradient */
.emergency-strip--dark-gradient{
  background:
    radial-gradient(circle at 83% 20%,color-mix(in srgb,var(--brand-accent) 16%,transparent) 0,transparent 24%),
    linear-gradient(118deg,var(--brand-dark),var(--brand-primary));
  --emergency-text:#fff;
  --emergency-muted:rgba(255,255,255,.58);
}
.emergency-strip--dark-gradient::before{
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  right:4%;
  top:-185px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
}
.emergency-strip--dark-gradient .emergency-strip-icon{
  border-color:rgba(255,255,255,.16);
  background:rgba(255,255,255,.05);
  color:var(--brand-accent);
}
.emergency-strip--dark-gradient .emergency-strip-phone{
  background:rgba(255,255,255,.045);
  border-color:rgba(255,255,255,.16);
}
.emergency-strip--dark-gradient .emergency-strip-phone span{color:rgba(255,255,255,.52)}
.emergency-strip--dark-gradient .emergency-strip-phone strong{color:#fff}

/* 05 — Glass Panel */
.emergency-strip--glass-panel{
  padding:18px 0;
  background:
    linear-gradient(120deg,color-mix(in srgb,var(--brand-light) 72%,#fff),#fff);
}
.emergency-strip--glass-panel::before{
  content:"";
  position:absolute;
  width:360px;
  height:360px;
  left:-170px;
  bottom:-300px;
  border-radius:50%;
  background:color-mix(in srgb,var(--brand-accent) 11%,transparent);
  filter:blur(2px);
}
.emergency-strip--glass-panel .emergency-strip-inner{
  min-height:124px;
  border:1px solid color-mix(in srgb,var(--brand-primary) 12%,transparent);
  background:color-mix(in srgb,#fff 78%,transparent);
  box-shadow:0 18px 45px color-mix(in srgb,var(--brand-primary) 8%,transparent);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.emergency-strip--glass-panel .emergency-strip-icon{
  background:var(--brand-dark);
  border-color:var(--brand-dark);
  color:var(--brand-accent);
}
.emergency-strip--glass-panel .emergency-strip-phone{background:rgba(255,255,255,.7)}

@media(max-width:980px){
  .emergency-strip-inner{
    grid-template-columns:auto minmax(0,1fr);
    gap:20px;
  }
  .emergency-strip-actions{
    grid-column:1 / -1;
    justify-content:flex-start;
    padding-left:82px;
  }
}

@media(max-width:680px){
  .emergency-strip{padding:0}
  .emergency-strip--glass-panel{padding:12px 0}
  .emergency-strip-inner{
    min-height:0;
    grid-template-columns:1fr;
    gap:16px;
    padding:25px 22px;
  }
  .emergency-strip-icon{width:48px;height:48px}
  .emergency-strip--split-accent .emergency-strip-icon{width:52px;height:52px}
  .emergency-strip-copy p{font-size:.88rem;line-height:1.58}
  .emergency-strip-actions{
    grid-column:auto;
    padding-left:0;
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  .emergency-strip-phone,
  .emergency-strip-button{width:100%;min-width:0}
  .emergency-strip-phone{align-items:center;text-align:center}
  .emergency-strip--light-premium::before{background:var(--brand-accent)}
}

@media(prefers-reduced-motion:reduce){
  .emergency-strip-phone,.emergency-strip-button{transition:none!important}
}


/* ==========================================================
   V1.9.4 Emergency Strip — prominence, contrast + palette controls
   ========================================================== */

/* Palette-role source. Only the role is stored in CMS; colours still come
   entirely from the active Toolbelt theme variables. */
.emergency-bg--primary{--emergency-selected-bg:var(--brand-primary)}
.emergency-bg--secondary{--emergency-selected-bg:var(--brand-secondary)}
.emergency-bg--accent{--emergency-selected-bg:var(--brand-accent)}
.emergency-bg--dark{--emergency-selected-bg:var(--brand-dark)}
.emergency-bg--light{--emergency-selected-bg:var(--brand-light)}

.emergency-strip:not(.emergency-bg--auto){
  background:var(--emergency-selected-bg)!important;
}
.emergency-strip--dark-gradient:not(.emergency-bg--auto){
  background:
    radial-gradient(circle at 83% 20%,color-mix(in srgb,var(--brand-accent) 17%,transparent) 0,transparent 24%),
    linear-gradient(118deg,var(--emergency-selected-bg),color-mix(in srgb,var(--emergency-selected-bg) 70%,#000))!important;
}
.emergency-strip--glass-panel:not(.emergency-bg--auto){
  background:
    linear-gradient(120deg,color-mix(in srgb,var(--emergency-selected-bg) 88%,#fff),var(--emergency-selected-bg))!important;
}

/* Explicit/automatic contrast is resolved by PHP, so all browsers get the
   same accessible light/dark treatment without relying on color-contrast(). */
.emergency-strip.emergency-text--light{
  --emergency-text:#fff;
  --emergency-muted:rgba(255,255,255,.68);
  --emergency-control-line:rgba(255,255,255,.28);
}
.emergency-strip.emergency-text--dark{
  --emergency-text:#111;
  --emergency-muted:rgba(17,17,17,.66);
  --emergency-control-line:rgba(17,17,17,.24);
}

.emergency-strip.emergency-text--light .emergency-strip-label,
.emergency-strip.emergency-text--dark .emergency-strip-label,
.emergency-strip.emergency-text--light .emergency-strip-icon,
.emergency-strip.emergency-text--dark .emergency-strip-icon{
  color:var(--emergency-text);
}
.emergency-strip.emergency-text--light .emergency-strip-icon,
.emergency-strip.emergency-text--dark .emergency-strip-icon{
  border-color:var(--emergency-control-line);
}
.emergency-strip.emergency-text--light .emergency-strip-phone span,
.emergency-strip.emergency-text--light .emergency-strip-phone strong,
.emergency-strip.emergency-text--dark .emergency-strip-phone span,
.emergency-strip.emergency-text--dark .emergency-strip-phone strong{
  color:var(--emergency-text);
}
.emergency-strip.emergency-text--light .emergency-strip-phone span,
.emergency-strip.emergency-text--dark .emergency-strip-phone span{opacity:.66}

/* Stronger content hierarchy. Standard is intentionally more visible than
   V1.9.3, while Compact and Prominent give controlled alternatives. */
.emergency-strip-copy p{
  max-width:830px;
  margin:0;
  color:var(--emergency-text);
  font-size:19px;
  font-weight:600;
  line-height:1.48;
  letter-spacing:-.012em;
}
.emergency-strip-lead{
  display:inline;
  margin-right:.28em;
  color:inherit;
  font-size:21px;
  font-weight:850;
  line-height:inherit;
  letter-spacing:-.025em;
}
.emergency-strip-supporting{
  color:inherit;
  font-size:inherit;
  font-weight:600;
}
.emergency-strip-label{
  margin-bottom:8px;
  font-size:12px;
  line-height:1.2;
}
.emergency-strip-phone strong{
  font-size:19px;
  font-weight:850;
}
.emergency-strip-phone span{font-size:11px}
.emergency-strip-button{
  min-height:60px;
  padding:0 25px;
  font-size:15px;
}

/* Compact */
.emergency-strip.emergency-prominence--compact .emergency-strip-inner{
  min-height:106px;
  padding-top:18px;
  padding-bottom:18px;
}
.emergency-strip.emergency-prominence--compact .emergency-strip-icon{width:46px;height:46px}
.emergency-strip.emergency-prominence--compact .emergency-strip-icon svg{width:22px;height:22px}
.emergency-strip.emergency-prominence--compact .emergency-strip-copy p{font-size:16px}
.emergency-strip.emergency-prominence--compact .emergency-strip-lead{font-size:17px}
.emergency-strip.emergency-prominence--compact .emergency-strip-phone strong{font-size:16px}
.emergency-strip.emergency-prominence--compact .emergency-strip-button{min-height:52px;font-size:14px}

/* Standard */
.emergency-strip.emergency-prominence--standard .emergency-strip-inner{
  min-height:148px;
  padding-top:30px;
  padding-bottom:30px;
}

/* Prominent */
.emergency-strip.emergency-prominence--prominent .emergency-strip-inner{
  min-height:180px;
  padding-top:38px;
  padding-bottom:38px;
  gap:34px;
}
.emergency-strip.emergency-prominence--prominent .emergency-strip-icon{width:66px;height:66px}
.emergency-strip.emergency-prominence--prominent .emergency-strip-icon svg{width:29px;height:29px}
.emergency-strip.emergency-prominence--prominent .emergency-strip-copy p{font-size:20px;line-height:1.5}
.emergency-strip.emergency-prominence--prominent .emergency-strip-lead{font-size:24px}
.emergency-strip.emergency-prominence--prominent .emergency-strip-label{font-size:13px}
.emergency-strip.emergency-prominence--prominent .emergency-strip-phone strong{font-size:20px}
.emergency-strip.emergency-prominence--prominent .emergency-strip-button{min-height:64px}

/* Phone treatments */
.emergency-strip.emergency-phone--outlined .emergency-strip-phone{
  background:transparent;
  border:1px solid var(--emergency-control-line);
}
.emergency-strip.emergency-phone--filled .emergency-strip-phone{
  background:color-mix(in srgb,var(--emergency-text) 11%,transparent);
  border:1px solid color-mix(in srgb,var(--emergency-text) 9%,transparent);
}
.emergency-strip.emergency-phone--minimal .emergency-strip-phone{
  min-width:155px;
  padding-left:2px;
  padding-right:2px;
  background:transparent;
  border:0;
}
.emergency-strip.emergency-phone--minimal .emergency-strip-phone strong{
  padding-bottom:2px;
  border-bottom:1px solid var(--emergency-control-line);
}

/* Keep the icon silhouettes optically balanced. */
.emergency-icon--warning .emergency-strip-icon svg{width:27px;height:27px}
.emergency-icon--clock .emergency-strip-icon svg{width:27px;height:27px}
.emergency-icon--headset .emergency-strip-icon svg{width:28px;height:28px}

/* When a palette background is chosen, the glass layout's contained panel
   follows the resolved text tone instead of forcing a white card. */
.emergency-strip--glass-panel:not(.emergency-bg--auto) .emergency-strip-inner{
  background:color-mix(in srgb,var(--emergency-text) 7%,transparent);
  border-color:var(--emergency-control-line);
  box-shadow:0 18px 45px color-mix(in srgb,#000 10%,transparent);
}

/* Override V1.9.3 layout-specific phone colours so the V1.9.4 contrast selector
   remains authoritative across all five designs. */
.emergency-strip.emergency-text--light .emergency-strip-phone,
.emergency-strip.emergency-text--dark .emergency-strip-phone{
  color:var(--emergency-text);
}
.emergency-strip.emergency-text--light .emergency-strip-copy p,
.emergency-strip.emergency-text--dark .emergency-strip-copy p{
  color:var(--emergency-text);
}

/* The icon box uses the selected text tone when a manual palette background
   is chosen, while automatic layouts retain their composition/shape. */
.emergency-strip:not(.emergency-bg--auto) .emergency-strip-icon{
  background:color-mix(in srgb,var(--emergency-text) 8%,transparent);
  border-color:var(--emergency-control-line);
}

@media(max-width:980px){
  .emergency-strip.emergency-prominence--prominent .emergency-strip-inner{gap:22px}
}

@media(max-width:680px){
  .emergency-strip.emergency-prominence--compact .emergency-strip-inner,
  .emergency-strip.emergency-prominence--standard .emergency-strip-inner,
  .emergency-strip.emergency-prominence--prominent .emergency-strip-inner{
    min-height:0;
    padding:24px 21px;
    gap:15px;
  }
  .emergency-strip-copy p{font-size:17px;line-height:1.55}
  .emergency-strip-lead{
    display:block;
    margin:0 0 3px;
    font-size:19px;
    line-height:1.35;
  }
  .emergency-strip.emergency-prominence--compact .emergency-strip-copy p{font-size:15px}
  .emergency-strip.emergency-prominence--compact .emergency-strip-lead{font-size:17px}
  .emergency-strip.emergency-prominence--prominent .emergency-strip-copy p{font-size:18px}
  .emergency-strip.emergency-prominence--prominent .emergency-strip-lead{font-size:21px}
  .emergency-strip-label{font-size:11px}
  .emergency-strip-phone strong{font-size:18px}
  .emergency-strip-button{font-size:15px}
  .emergency-strip.emergency-phone--minimal .emergency-strip-phone{
    align-items:center;
    padding:8px 0 13px;
  }
}

.emergency-strip.emergency-bg--accent{--emergency-action-bg:var(--brand-dark);--emergency-action-text:#fff}


/* ==========================================================
   V1.9.5 Mobile Full-Bleed Hero Fit
   Fixes excessive photo-only space above the hero copy and
   prevents long headings/supporting copy being clipped on phones.
   ========================================================== */
@media(max-width:680px){
  .home-premium .hero--full-bleed{
    min-height:0;
    height:auto;
    display:block;
    align-items:initial;
  }

  /* Earlier builds retained the legacy 680px layout minimum even after
     the hero itself became auto-height. Remove it so the content defines
     the real mobile hero height instead of being cropped inside it. */
  .home-premium .hero--full-bleed .hero-layout{
    min-height:0;
    height:auto;
    display:block;
  }

  .home-premium .hero--full-bleed .hero-copy{
    width:100%;
    max-width:100%;
    padding:clamp(72px,20vw,96px) 0 42px;
  }

  .home-premium .hero--full-bleed .hero-copy .eyebrow{
    margin-bottom:14px;
  }

  .home-premium .hero--full-bleed h1{
    max-width:100%;
    font-size:clamp(2.3rem,10.8vw,3.25rem);
    line-height:max(1.02,var(--hero-heading-line-height,.98));
    letter-spacing:max(-.025em,var(--hero-heading-letter-spacing,-.04em));
    overflow-wrap:anywhere;
    word-break:normal;
    text-wrap:balance;
  }

  .home-premium .hero--full-bleed h1 span{
    display:block;
    margin-top:.02em;
  }

  .home-premium .hero--full-bleed .hero-copy>p{
    max-width:100%;
    margin-top:18px;
    font-size:.93rem;
    line-height:1.62;
    overflow-wrap:anywhere;
  }

  .home-premium .hero--full-bleed .hero-actions{
    margin-top:25px;
  }

  .home-premium .hero--full-bleed .hero-proof{
    margin-top:24px;
  }

  /* Because the copy now sits higher over the photograph, bring the
     darkening overlay in slightly earlier so contrast remains premium. */
  .home-premium .hero--full-bleed .hero-bg::after{
    background:linear-gradient(
      180deg,
      rgba(7,25,40,.16) 0%,
      rgba(7,25,40,.34) 24%,
      rgba(7,25,40,.72) 48%,
      rgba(7,25,40,.94) 68%,
      rgba(7,25,40,1) 100%
    );
  }
}

@media(max-width:390px){
  .home-premium .hero--full-bleed .hero-copy{
    padding-top:68px;
    padding-bottom:38px;
  }
  .home-premium .hero--full-bleed h1{
    font-size:clamp(2.2rem,10.5vw,3rem);
  }
}

@media(max-width:350px){
  .home-premium .hero--full-bleed .hero-copy{
    padding-top:58px;
  }
  .home-premium .hero--full-bleed h1{
    font-size:2.15rem;
  }
}


/* ==========================================================
   V1.9.6 Mobile Full-Bleed Hero Contrast Guarantee
   Mobile photo heroes always receive a strong dark overlay so
   white/accent copy remains readable regardless of the source image.
   ========================================================== */
@media(max-width:680px){
  .home-premium .hero--full-bleed .hero-bg::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
      linear-gradient(
        180deg,
        rgba(4,16,27,.58) 0%,
        rgba(4,16,27,.66) 24%,
        rgba(4,16,27,.78) 48%,
        rgba(4,16,27,.90) 72%,
        rgba(4,16,27,.97) 100%
      ) !important;
  }

  /* Keep the actual content safely above the guaranteed overlay. */
  .home-premium .hero--full-bleed .hero-layout{
    position:relative;
    z-index:2;
  }

  /* A very restrained shadow provides extra separation on highly detailed
     photographs without changing the typography hierarchy. */
  .home-premium .hero--full-bleed h1,
  .home-premium .hero--full-bleed .eyebrow,
  .home-premium .hero--full-bleed .hero-copy>p{
    text-shadow:0 2px 16px rgba(0,0,0,.20);
  }
}

@media(max-width:390px){
  .home-premium .hero--full-bleed .hero-bg::after{
    background:
      linear-gradient(
        180deg,
        rgba(4,16,27,.62) 0%,
        rgba(4,16,27,.70) 22%,
        rgba(4,16,27,.82) 46%,
        rgba(4,16,27,.93) 70%,
        rgba(4,16,27,.98) 100%
      ) !important;
  }
}


/* ==========================================================
   V1.9.7 Internal Page Hero Contrast Standard
   The strong mobile image-overlay safeguard is now site-wide
   for every shared internal page hero using a background image.
   ========================================================== */
@media(max-width:680px){
  .inner-hero-image{
    background:
      var(--inner-hero-image)
      var(--inner-hero-position,center)/cover no-repeat !important;
  }

  .inner-hero-image::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
      linear-gradient(
        180deg,
        rgba(4,16,27,.62) 0%,
        rgba(4,16,27,.70) 22%,
        rgba(4,16,27,.82) 46%,
        rgba(4,16,27,.93) 70%,
        rgba(4,16,27,.98) 100%
      );
  }

  .inner-hero-image>.container{
    position:relative;
    z-index:2;
  }

  .inner-hero-image h1,
  .inner-hero-image .eyebrow,
  .inner-hero-image p{
    text-shadow:0 2px 16px rgba(0,0,0,.20);
  }

  .inner-hero-image h1{color:#fff}
  .inner-hero-image p{color:rgba(255,255,255,.84)}
}

@media(max-width:390px){
  .inner-hero-image::before{
    background:
      linear-gradient(
        180deg,
        rgba(4,16,27,.66) 0%,
        rgba(4,16,27,.74) 20%,
        rgba(4,16,27,.85) 44%,
        rgba(4,16,27,.95) 69%,
        rgba(4,16,27,.985) 100%
      );
  }
}


/* ==========================================================
   V1.9.9 Final CTA Layout Library
   ========================================================== */
.cta--premium{
  --cta-overlay-opacity:.56;
  --cta-image-focus:center center;
}
.cta--premium .cta-media,
.cta--premium .cta-overlay{position:absolute;inset:0;pointer-events:none}
.cta--premium .cta-media{background-image:var(--cta-bg-image);background-size:cover;background-position:var(--cta-image-focus);opacity:0;transition:opacity .25s ease;z-index:-3}
.cta--premium .cta-overlay{background:linear-gradient(110deg,var(--brand-dark),color-mix(in srgb,var(--brand-dark) 82%,var(--brand-primary)));opacity:0;z-index:-2}
.cta--premium.cta-bg--solid{background:var(--brand-primary)}
.cta--premium.cta-bg--gradient{background:linear-gradient(110deg,var(--navy-2),var(--navy))}
.cta--premium.cta-has-image .cta-media,
.cta--premium.cta-has-image .cta-overlay{opacity:1}
.cta--premium.cta-overlay--low{--cta-overlay-opacity:.38}
.cta--premium.cta-overlay--medium{--cta-overlay-opacity:.58}
.cta--premium.cta-overlay--high{--cta-overlay-opacity:.72}
.cta--premium.cta-overlay--very-high{--cta-overlay-opacity:.82}
.cta--premium.cta-overlay--maximum{--cta-overlay-opacity:.90}
.cta--premium.cta-overlay--near-black{--cta-overlay-opacity:.96}
.cta--premium.cta-has-image .cta-overlay{opacity:var(--cta-overlay-opacity)}
.cta--premium.cta-bg--image{background:linear-gradient(110deg,var(--navy-2),var(--navy))}
.cta--premium.cta-bg--image::after{opacity:.06}
.cta--premium.cta-align--center .cta-copy,
.cta--premium.cta-layout--centered .cta-copy,
.cta--premium.cta-layout--boxed .cta-copy{text-align:center}
.cta--premium.cta-align--center .cta-proofline,
.cta--premium.cta-layout--centered .cta-proofline,
.cta--premium.cta-layout--boxed .cta-proofline{justify-content:center}
.cta--premium.cta-buttons--inline .cta-actions{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;min-width:0}
.cta--premium.cta-buttons--inline .cta-actions .btn{width:auto;min-width:220px}
.cta-layout--split .cta-inner{display:flex;align-items:center;justify-content:space-between;gap:56px}
.cta-layout--image-overlay .cta-inner{min-height:420px;align-items:flex-end}
.cta-layout--image-overlay .cta-copy{max-width:760px}
.cta-layout--image-overlay .cta-actions{align-self:flex-end}
.cta-layout--centered .cta-inner{min-height:0;padding:88px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:28px}
.cta-layout--centered .cta-copy{max-width:860px}
.cta-layout--centered .cta-copy p{margin-left:auto;margin-right:auto}
.cta-layout--centered .cta-actions{min-width:0;justify-content:center}
.cta-layout--boxed .cta-inner{min-height:0;padding:86px 0}
.cta-layout--boxed .cta-copy,
.cta-layout--boxed .cta-actions{position:relative;z-index:2}
.cta-layout--boxed .cta-inner::before{content:"";position:absolute;inset:42px 0;border-radius:28px;background:color-mix(in srgb,#fff 8%,transparent);border:1px solid color-mix(in srgb,#fff 16%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:0}
.cta-layout--boxed .cta-inner{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px}
.cta-layout--boxed .cta-actions{min-width:0;justify-content:center}
.cta-layout--editorial .cta-inner{grid-template-columns:minmax(0,1.35fr) minmax(260px,.85fr);display:grid;align-items:end;gap:40px;min-height:360px;padding:88px 0}
.cta-layout--editorial .cta-copy{max-width:none}
.cta-layout--editorial .cta-actions{justify-content:flex-end;align-self:end}
.cta-layout--editorial .cta-copy h2{max-width:860px}
.cta-layout--editorial .cta-copy p{max-width:640px}
.cta-layout--editorial.cta-align--center .cta-inner{grid-template-columns:1fr;justify-items:center;text-align:center}
.cta-layout--editorial.cta-align--center .cta-actions{justify-content:center}
.cta-tone--light.cta-bg--solid{background:var(--brand-light);color:var(--brand-body)}
.cta-tone--light.cta-bg--solid h2{color:var(--brand-heading)}
.cta-tone--light.cta-bg--solid p,
.cta-tone--light.cta-bg--solid .cta-proofline{color:var(--brand-muted)}
.cta-tone--light.cta-bg--solid .btn-dark{background:var(--brand-primary);color:#fff}
.cta-tone--light.cta-bg--solid .btn-dark:hover{background:var(--brand-secondary)}
.cta-tone--light.cta-bg--image h2,
.cta-tone--light.cta-bg--image p,
.cta-tone--light.cta-bg--image .cta-proofline{color:#fff}
.cta-tone--light.cta-bg--image .cta-eyebrow{color:var(--brand-accent)}
.cta-tone--light.cta-bg--image .btn-dark{background:color-mix(in srgb,#fff 12%,transparent);color:#fff;border:1px solid color-mix(in srgb,#fff 40%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.cta-tone--light.cta-bg--image .btn-dark:hover{background:#fff;color:var(--brand-dark);border-color:#fff}
.cta-tone--light.cta-bg--image .cta-graphic,
.cta-tone--light.cta-bg--image .cta-graphic::before,
.cta-tone--light.cta-bg--image .cta-graphic::after{border-color:color-mix(in srgb,#fff 18%,transparent)}
.cta-tone--light.cta-bg--image::before{border-color:color-mix(in srgb,#fff 12%,transparent)}
.cta-tone--light.cta-bg--image .cta-accent{background:var(--brand-accent)}
@media (max-width:1100px){
  .cta-layout--editorial .cta-inner{grid-template-columns:1fr;align-items:flex-start}
  .cta-layout--editorial .cta-actions{justify-content:flex-start}
}
@media (max-width:900px){
  .cta-layout--split .cta-inner,
  .cta-layout--image-overlay .cta-inner,
  .cta-layout--editorial .cta-inner{display:block;min-height:0;padding:74px 0}
  .cta-layout--boxed .cta-inner::before{inset:22px 0;border-radius:22px}
  .cta--premium.cta-buttons--inline .cta-actions{justify-content:flex-start}
}
@media (max-width:760px){
  .cta-layout--centered .cta-inner,
  .cta-layout--boxed .cta-inner,
  .cta-layout--editorial .cta-inner,
  .cta-layout--image-overlay .cta-inner,
  .cta-layout--split .cta-inner{padding:68px 0}
  .cta-layout--boxed .cta-inner::before{inset:16px 0}
  .cta--premium.cta-buttons--inline .cta-actions,
  .cta-layout--centered .cta-actions,
  .cta-layout--boxed .cta-actions{justify-content:center}
}
@media (max-width:560px){
  .cta--premium .cta-media{background-position:center center}
  .cta-layout--centered .cta-inner,
  .cta-layout--boxed .cta-inner,
  .cta-layout--editorial .cta-inner,
  .cta-layout--image-overlay .cta-inner,
  .cta-layout--split .cta-inner{padding:60px 0}
  .cta-layout--boxed .cta-inner::before{inset:10px 0 14px}
  .cta--premium.cta-buttons--inline .cta-actions,
  .cta-actions{flex-direction:column!important}
  .cta--premium.cta-buttons--inline .cta-actions .btn,
  .cta-actions .btn{width:100%;min-width:0}
  .cta--premium.cta-bg--image,
  .cta--premium.cta-layout--image-overlay,
  .cta--premium.cta-layout--boxed,
  .cta--premium.cta-layout--editorial{--cta-overlay-opacity:max(var(--cta-overlay-opacity), .68)}
  .cta-tone--light.cta-bg--image .btn-dark{backdrop-filter:none;-webkit-backdrop-filter:none}
}

/* V1.14.1 — Legal page HTML content */
.legal-content{overflow-x:auto}.legal-content h2{margin:38px 0 14px;font-size:clamp(1.45rem,2.4vw,2rem);line-height:1.2}.legal-content h3{margin:30px 0 12px;font-size:1.2rem;line-height:1.3}.legal-content h4{margin:24px 0 10px;font-size:1rem;line-height:1.35}.legal-content p{line-height:1.8}.legal-content ul,.legal-content ol{margin:0 0 22px;padding-left:1.35rem;color:var(--brand-muted)}.legal-content li{margin:7px 0;line-height:1.7}.legal-content a{color:var(--brand-primary);font-weight:700;text-decoration:underline;text-underline-offset:2px}.legal-content blockquote{margin:26px 0;padding:16px 20px;border-left:3px solid var(--brand-accent);background:var(--brand-light);color:var(--brand-muted)}.legal-content hr{border:0;border-top:1px solid var(--brand-border);margin:32px 0}.legal-content table{width:100%;min-width:560px;border-collapse:collapse;margin:26px 0 30px;font-size:.92rem;background:#fff}.legal-content caption{text-align:left;font-weight:800;color:var(--brand-heading);padding:0 0 10px}.legal-content th,.legal-content td{border:1px solid var(--brand-border);padding:12px 14px;text-align:left;vertical-align:top;line-height:1.55}.legal-content th{background:var(--brand-light);color:var(--brand-heading);font-weight:800}@media(max-width:700px){.legal-content h2{margin-top:30px}.legal-content table{font-size:.84rem}.legal-content th,.legal-content td{padding:10px 11px}}



/* v1.16.0 configurable contact form fields */
.contact-choice-field{margin:0;padding:0;border:0;min-width:0}.contact-choice-field legend{display:block;width:100%;font-size:.78rem;font-weight:800;color:var(--text);margin:0 0 8px;padding:0}.contact-choice-options{display:grid;gap:8px}.contact-choice{display:flex!important;align-items:flex-start;gap:9px;margin:0!important;padding:10px 12px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:.88rem;line-height:1.4}.contact-choice input{flex:0 0 auto;margin-top:2px;accent-color:var(--primary)}.contact-choice:has(input:checked){border-color:color-mix(in srgb,var(--primary) 60%,var(--line));background:color-mix(in srgb,var(--primary) 5%,#fff)}.contact-checkbox-required-proxy{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;padding:0!important;border:0!important}.contact-field input[type=date],.contact-field input[type=time],.contact-field input[type=number]{width:100%;border:1px solid var(--line);background:#fff;padding:13px 14px;font:inherit;color:var(--text)}

/* ==========================================================
   V1.22.0 — Dedicated Services page layout library
   ========================================================== */
.services-page-layout{scroll-margin-top:100px}
.services-page-layout article[id]{scroll-margin-top:110px}
.services-page-number{display:block;font-size:.67rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-accent)}
.services-page-link{display:inline-flex;align-items:center;gap:9px;margin-top:24px;color:var(--brand-heading);font-size:.76rem;font-weight:900;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--brand-heading) 22%,transparent);padding-bottom:5px}
.services-page-link span{color:var(--brand-accent);transition:transform .25s ease}
.services-page-link:hover span,.services-page-link:focus-visible span{transform:translate(4px,-4px)}
.services-page-image-fallback{width:100%;height:100%;min-height:220px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand-primary),var(--brand-dark));overflow:hidden}
.services-page-image-fallback span{font-size:clamp(4rem,10vw,8rem);font-weight:900;color:rgba(255,255,255,.12);letter-spacing:-.06em}

/* Services page 02: Alternating Showcase */
.services-page-layout--alternating{background:#fff}
.services-page-alternating{display:grid;gap:clamp(30px,4vw,58px)}
.services-page-alternating-row{display:grid;grid-template-columns:minmax(320px,.94fr) minmax(0,1.06fr);min-height:430px;border:1px solid var(--brand-border);background:color-mix(in srgb,var(--brand-light) 42%,#fff);box-shadow:0 24px 60px rgba(10,31,51,.075);overflow:hidden}
.services-page-alternating-row--reverse .services-page-alternating-media{order:2}
.services-page-alternating-row--reverse .services-page-alternating-copy{order:1}
.services-page-alternating-media{position:relative;min-height:430px;overflow:hidden;background:var(--brand-dark)}
.services-page-alternating-media::after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,transparent 58%,color-mix(in srgb,var(--brand-dark) 22%,transparent));pointer-events:none}
.services-page-alternating-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .65s cubic-bezier(.22,.61,.36,1)}
.services-page-alternating-row:hover .services-page-alternating-media img{transform:scale(1.03)}
.services-page-alternating-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(38px,5vw,76px)}
.services-page-alternating-copy h2{margin:16px 0 0;font-size:clamp(2rem,3.5vw,3.65rem);line-height:1.02;letter-spacing:-.045em;max-width:16ch;color:var(--brand-heading)}
.services-page-alternating-copy>p{margin:24px 0 0;font-size:.98rem;line-height:1.75;color:var(--brand-muted);max-width:58ch}
.services-page-mini-highlights{display:grid;gap:8px;margin-top:23px}
.services-page-mini-highlights span{position:relative;padding-left:18px;font-size:.8rem;line-height:1.45;color:var(--brand-heading);font-weight:750}
.services-page-mini-highlights span::before{content:"";position:absolute;left:0;top:.58em;width:6px;height:6px;background:var(--brand-accent)}

/* Services page 03: Editorial Service List */
.services-page-layout--editorial{background:color-mix(in srgb,var(--brand-light) 68%,#fff)}
.services-page-editorial-list{border-top:1px solid var(--brand-border)}
.services-page-editorial-row{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(240px,340px);gap:clamp(20px,4vw,54px);align-items:center;padding:clamp(28px,4vw,46px) 0;border-bottom:1px solid var(--brand-border)}
.services-page-editorial-number{align-self:start;padding-top:9px;font-size:.67rem;font-weight:900;letter-spacing:.14em;color:var(--brand-accent)}
.services-page-editorial-copy h2{margin:0;color:var(--brand-heading);font-size:clamp(1.7rem,3vw,2.85rem);line-height:1.04;letter-spacing:-.04em;max-width:18ch}
.services-page-editorial-copy p{margin:16px 0 0;color:var(--brand-muted);font-size:.92rem;line-height:1.7;max-width:64ch}
.services-page-editorial-media{height:205px;overflow:hidden;background:var(--brand-dark);box-shadow:0 14px 36px rgba(10,31,51,.08)}
.services-page-editorial-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease}
.services-page-editorial-row:hover .services-page-editorial-media img{transform:scale(1.03)}
.services-page-editorial-media .services-page-image-fallback{min-height:205px}

/* Services page 04: Image Card Grid */
.services-page-layout--image-grid{background:#fff}
.services-page-image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.services-page-image-card{border:1px solid var(--brand-border);background:#fff;box-shadow:0 18px 48px rgba(10,31,51,.06);overflow:hidden;display:flex;flex-direction:column;min-width:0}
.services-page-image-card-media{aspect-ratio:16/10;overflow:hidden;background:var(--brand-dark)}
.services-page-image-card-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .55s ease}
.services-page-image-card:hover .services-page-image-card-media img{transform:scale(1.035)}
.services-page-image-card-media .services-page-image-fallback{min-height:100%}
.services-page-image-card-copy{padding:28px 28px 30px;display:flex;flex-direction:column;align-items:flex-start;flex:1}
.services-page-image-card-copy h2{font-size:clamp(1.45rem,2.1vw,2rem);line-height:1.08;letter-spacing:-.035em;color:var(--brand-heading);margin:14px 0 0}
.services-page-image-card-copy p{font-size:.86rem;line-height:1.68;color:var(--brand-muted);margin:14px 0 0}
.services-page-image-card-copy .services-page-link{margin-top:auto;padding-top:22px}

/* Services page 05: Split Feature Grid */
.services-page-layout--feature-grid{background:color-mix(in srgb,var(--brand-light) 68%,#fff)}
.services-page-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.services-page-feature-card{border:1px solid var(--brand-border);background:#fff;overflow:hidden;box-shadow:0 18px 48px rgba(10,31,51,.06);display:flex;flex-direction:column;min-width:0}
.services-page-feature-card--primary{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);min-height:470px;background:var(--brand-primary)}
.services-page-feature-media{aspect-ratio:16/9;overflow:hidden;background:var(--brand-dark)}
.services-page-feature-card--primary .services-page-feature-media{aspect-ratio:auto;min-height:470px}
.services-page-feature-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .55s ease}
.services-page-feature-card:hover .services-page-feature-media img{transform:scale(1.03)}
.services-page-feature-media .services-page-image-fallback{min-height:100%}
.services-page-feature-copy{padding:28px 30px 32px;display:flex;flex-direction:column;align-items:flex-start;flex:1}
.services-page-feature-copy h2{margin:14px 0 0;font-size:clamp(1.5rem,2.3vw,2.15rem);line-height:1.06;letter-spacing:-.038em;color:var(--brand-heading)}
.services-page-feature-copy p{margin:15px 0 0;font-size:.87rem;line-height:1.68;color:var(--brand-muted)}
.services-page-feature-copy .services-page-link{margin-top:auto;padding-top:22px}
.services-page-feature-card--primary .services-page-feature-copy{justify-content:center;padding:clamp(40px,5vw,70px)}
.services-page-feature-card--primary .services-page-number{color:var(--brand-accent)}
.services-page-feature-card--primary .services-page-feature-copy h2{color:#fff;font-size:clamp(2.25rem,4vw,4rem);max-width:14ch}
.services-page-feature-card--primary .services-page-feature-copy p{color:rgba(255,255,255,.72);font-size:.98rem;max-width:54ch;line-height:1.75}
.services-page-feature-card--primary .services-page-link{color:#fff;border-bottom-color:rgba(255,255,255,.25);margin-top:28px;padding-top:0}

@media(max-width:1050px){
  .services-page-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .services-page-editorial-row{grid-template-columns:58px minmax(0,1fr) minmax(210px,280px);gap:24px}
}
@media(max-width:850px){
  .services-page-alternating-row{grid-template-columns:1fr;min-height:0}
  .services-page-alternating-row--reverse .services-page-alternating-media,.services-page-alternating-row--reverse .services-page-alternating-copy{order:initial}
  .services-page-alternating-media{min-height:0;aspect-ratio:16/10}
  .services-page-alternating-copy{padding:34px 30px 38px}
  .services-page-editorial-row{grid-template-columns:48px minmax(0,1fr);align-items:start}
  .services-page-editorial-media{grid-column:2;height:auto;aspect-ratio:16/9;order:-1;margin-bottom:2px}
  .services-page-feature-card--primary{grid-template-columns:1fr;min-height:0}
  .services-page-feature-card--primary .services-page-feature-media{min-height:0;aspect-ratio:16/10}
}
@media(max-width:680px){
  .services-page-image-grid,.services-page-feature-grid{grid-template-columns:1fr}
  .services-page-feature-card--primary{grid-column:auto}
  .services-page-alternating{gap:22px}
  .services-page-alternating-copy{padding:28px 24px 32px}
  .services-page-alternating-copy h2{font-size:clamp(1.75rem,9vw,2.5rem)}
  .services-page-alternating-copy>p{font-size:.88rem;line-height:1.66}
  .services-page-editorial-row{grid-template-columns:34px minmax(0,1fr);gap:12px;padding:26px 0}
  .services-page-editorial-media{grid-column:1/-1;order:-1;margin-bottom:8px}
  .services-page-editorial-copy h2{font-size:clamp(1.55rem,8vw,2.15rem)}
  .services-page-editorial-copy p{font-size:.86rem}
  .services-page-image-card-copy,.services-page-feature-copy{padding:24px}
  .services-page-feature-card--primary .services-page-feature-copy{padding:30px 24px 34px}
  .services-page-feature-card--primary .services-page-feature-copy h2{font-size:clamp(2rem,10vw,2.75rem)}
}

/* ==========================================================
   V1.24.1 Adaptive Footer Service Lists
   ========================================================== */

/* Never hide service links simply because a site has a larger service set.
   One to eight services stay as one cohesive list. Only genuinely long
   service sets (nine or more) split into two compact alphabetical columns. */
.footer-grid.footer-grid--services-long{
  grid-template-columns:minmax(0,1.15fr) minmax(145px,.68fr) minmax(330px,1.5fr) minmax(190px,.92fr);
  gap:32px;
}
.footer-services-block--long{
  width:100%;
  max-width:520px;
}
.footer-services-list{
  display:grid;
  grid-template-columns:1fr;
  min-width:0;
}
.footer-services-list--columns{
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:20px;
}
.footer-services-column{
  min-width:0;
}
.footer-services-column a,
.footer-services-column .footer-service-label{
  overflow-wrap:anywhere;
  word-break:normal;
}

/* At tablet widths a genuinely long Services list gets its own full-width
   row so longer service names remain comfortable rather than being squeezed. */
@media(max-width:980px) and (min-width:681px){
  .footer-grid.footer-grid--services-long{
    grid-template-columns:1fr 1fr;
  }
  .footer-grid--services-long .footer-services-block{
    grid-column:1/-1;
    max-width:680px;
  }
  .footer-grid--services-long .footer-services-list--columns{
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:28px;
  }
}

/* Mobile always returns to a single readable list. */
@media(max-width:680px){
  .footer-grid.footer-grid--services-long{
    grid-template-columns:1fr;
  }
  .footer-grid--services-long .footer-services-block{
    grid-column:auto;
    max-width:none;
  }
  .footer-services-list--columns{
    grid-template-columns:1fr;
  }
}

/* ==========================================================
   V1.25.0 Visual Services Mega Menu
   Premium desktop navigation using existing service imagery.
   ========================================================== */
@media(min-width:981px){
  .has-mega-menu{position:static}
  .submenu--mega{
    top:100%;left:50%;transform:translateX(-50%);
    width:min(calc(100vw - 40px),var(--container));
    min-width:0;padding:0;background:#fff;
    border:1px solid var(--brand-border);border-top:2px solid var(--brand-accent);
    box-shadow:0 28px 70px rgba(10,31,51,.18);
    max-height:calc(100vh - 110px);overflow-y:auto;overscroll-behavior:contain;
  }
  .submenu--mega::before{top:-10px;height:10px}
  .mega-menu-desktop{display:block;padding:24px 26px 0}
  .mega-menu-mobile{display:none}
  .mega-menu-grid{
    display:grid;grid-template-columns:repeat(var(--mega-columns,4),minmax(0,1fr));
    gap:22px 18px;
  }
  .submenu--mega .mega-service-link{
    display:block!important;padding:0!important;white-space:normal!important;
    color:var(--brand-body)!important;background:transparent!important;
    border:0!important;min-width:0;
  }
  .submenu--mega .mega-service-link:hover{background:transparent!important;border:0!important;color:var(--brand-accent)!important}
  .mega-service-media{
    display:block;aspect-ratio:16/9;overflow:hidden;background:var(--brand-light);
    border:1px solid color-mix(in srgb,var(--brand-border) 88%,transparent);
    position:relative;
  }
  .mega-service-media img{
    width:100%;height:100%;object-fit:cover;object-position:var(--mega-position,center);
    opacity:0;transform:scale(1.015);transition:opacity .28s ease,transform .34s ease;
  }
  .mega-service-media img[src]{opacity:1}
  .mega-service-link:hover .mega-service-media img{transform:scale(1.055)}
  .mega-service-fallback{
    position:absolute;inset:0;display:block;
    background:linear-gradient(135deg,var(--brand-dark),var(--brand-secondary) 64%,color-mix(in srgb,var(--brand-accent) 72%,var(--brand-secondary)));
  }
  .mega-service-title{
    display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
    margin-top:9px;color:var(--brand-heading);font-weight:850;font-size:.82rem;line-height:1.3;
    transition:color .2s ease;
  }
  .mega-service-title>span{color:var(--brand-accent);font-size:.78rem;line-height:1.2;transform:translateY(1px)}
  .mega-service-link:hover .mega-service-title{color:var(--brand-accent)}
  .mega-menu-extra{
    margin-top:20px;padding-top:14px;border-top:1px solid var(--brand-border);
    display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  }
  .mega-menu-extra>span{font-size:.63rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:var(--brand-muted)}
  .submenu--mega .mega-menu-extra a{
    display:inline-flex!important;padding:4px 0!important;border:0!important;background:none!important;
    color:var(--brand-body)!important;font-size:.74rem!important;white-space:normal!important;font-weight:750;
  }
  .submenu--mega .mega-menu-extra a:hover{color:var(--brand-accent)!important;background:none!important;border:0!important}
  .mega-menu-footer{
    margin:22px -26px 0;padding:14px 26px;
    display:flex;align-items:center;justify-content:space-between;gap:18px;
    background:color-mix(in srgb,var(--brand-light) 76%,#fff);border-top:1px solid var(--brand-border);
  }
  .submenu--mega .mega-menu-footer a{
    display:inline-flex!important;align-items:center;gap:8px;padding:6px 0!important;
    border:0!important;background:none!important;white-space:normal!important;font-size:.76rem!important;font-weight:850;
  }
  .submenu--mega .mega-menu-view-all{color:var(--brand-heading)!important}
  .submenu--mega .mega-menu-quote{color:var(--brand-accent)!important;margin-left:auto}
  .submenu--mega .mega-menu-footer a:hover{background:none!important;border:0!important;color:var(--brand-accent)!important}
}

@media(min-width:981px) and (max-width:1100px){
  .mega-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .mega-service-media{aspect-ratio:2/1}
}

@media(max-width:980px){
  .submenu--mega{transform:none;width:auto;max-height:none;overflow:visible;padding:3px 0 3px 9px}
  .mega-menu-desktop{display:none!important}
  .mega-menu-mobile{display:block}
  .submenu--mega .mega-menu-mobile a{display:block!important;padding:8px 10px!important;font-size:.82rem!important;white-space:normal!important;border-left:0!important}
}

@media(prefers-reduced-motion:reduce){
  .mega-service-media img{transition:none!important;transform:none!important}
  .mega-service-link:hover .mega-service-media img{transform:none!important}
}

/* ==========================================================
   V1.25.2 Slower Premium Mega Menu Motion
   Layered reveal, current-page context and refined interaction.
   ========================================================== */
@media(min-width:981px){
  .submenu--mega{
    display:block!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate(-50%,-10px) scale(.992);
    transform-origin:50% 0;
    box-shadow:0 34px 92px rgba(10,31,51,.22),0 8px 24px rgba(10,31,51,.09);
    transition:
      opacity .36s cubic-bezier(.22,1,.36,1),
      transform .42s cubic-bezier(.22,1,.36,1),
      visibility 0s linear .42s;
    will-change:opacity,transform;
  }
  .has-mega-menu.submenu-open>.submenu--mega{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translate(-50%,0) scale(1);
    transition:
      opacity .58s cubic-bezier(.22,1,.36,1),
      transform .68s cubic-bezier(.22,1,.36,1),
      visibility 0s linear 0s;
    transition-delay:0s;
  }
  .has-mega-menu .submenu-toggle .chevron{
    transition:transform .48s cubic-bezier(.22,1,.36,1),color .28s ease;
  }
  .mega-menu-desktop{padding:20px 24px 0}
  .mega-menu-grid{gap:18px 16px}
  .submenu--mega .mega-service-link{
    opacity:0;
    transform:translateY(9px);
    transition:
      opacity .46s cubic-bezier(.22,1,.36,1),
      transform .56s cubic-bezier(.22,1,.36,1);
    transition-delay:0s;
  }
  .has-mega-menu.submenu-open .mega-service-link{
    opacity:1;
    transform:translateY(0);
    transition-delay:calc(120ms + (var(--mega-index,0) * 72ms));
  }
  .mega-service-media{
    aspect-ratio:2.05/1;
    transition:border-color .22s ease,box-shadow .26s ease,transform .28s cubic-bezier(.22,1,.36,1);
  }
  .mega-service-media img,
  .mega-service-media img[src]{
    opacity:0!important;
    transform:scale(1.018);
    transition:opacity .52s ease,transform .68s cubic-bezier(.22,1,.36,1)!important;
  }
  .mega-service-media img.mega-img-loaded{opacity:1!important}
  .mega-service-link:hover .mega-service-media,
  .mega-service-link:focus-visible .mega-service-media{
    border-color:color-mix(in srgb,var(--brand-accent) 56%,var(--brand-border));
    box-shadow:0 12px 28px rgba(10,31,51,.12);
    transform:translateY(-1px);
  }
  .mega-service-link:hover .mega-service-media img.mega-img-loaded,
  .mega-service-link:focus-visible .mega-service-media img.mega-img-loaded{transform:scale(1.045)}
  .mega-service-title{margin-top:8px;position:relative}
  .mega-service-title-text{position:relative;display:inline;background-image:linear-gradient(var(--brand-accent),var(--brand-accent));background-size:0 2px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .28s cubic-bezier(.22,1,.36,1),color .2s ease}
  .mega-service-arrow{transition:transform .26s cubic-bezier(.22,1,.36,1),color .2s ease}
  .mega-service-link:hover .mega-service-title-text,
  .mega-service-link:focus-visible .mega-service-title-text{background-size:100% 2px}
  .mega-service-link:hover .mega-service-arrow,
  .mega-service-link:focus-visible .mega-service-arrow{transform:translate(3px,-3px)}
  .mega-service-link:focus-visible{outline:2px solid var(--brand-accent);outline-offset:5px}
  .mega-service-link.is-current .mega-service-title{color:var(--brand-accent)}
  .mega-service-link.is-current .mega-service-media{border-color:color-mix(in srgb,var(--brand-accent) 65%,var(--brand-border));box-shadow:inset 0 -3px 0 var(--brand-accent)}
  .mega-service-current{
    position:absolute;left:9px;bottom:9px;z-index:2;
    display:inline-flex;padding:5px 7px;
    background:var(--brand-accent);color:var(--brand-accent-contrast);
    font-size:.55rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;
    box-shadow:0 4px 14px rgba(10,31,51,.16);
  }
  .mega-menu-extra{margin-top:18px;padding-top:12px}
  .mega-menu-footer{
    margin:18px -24px 0;padding:13px 24px;
    background:color-mix(in srgb,var(--brand-light) 68%,#fff);
    border-top:1px solid color-mix(in srgb,var(--brand-border) 88%,transparent);
  }
  .submenu--mega .mega-menu-footer a span{transition:transform .24s cubic-bezier(.22,1,.36,1)}
  .submenu--mega .mega-menu-footer a:hover span,
  .submenu--mega .mega-menu-footer a:focus-visible span{transform:translateX(3px)}
  .submenu--mega .mega-menu-quote{
    margin-left:auto;
    padding:9px 13px!important;
    background:var(--brand-accent)!important;
    color:var(--brand-accent-contrast)!important;
    border:1px solid var(--brand-accent)!important;
    transition:transform .2s ease,filter .2s ease,box-shadow .2s ease;
  }
  .submenu--mega .mega-menu-quote:hover,
  .submenu--mega .mega-menu-quote:focus-visible{
    color:var(--brand-accent-contrast)!important;
    background:var(--brand-accent)!important;
    transform:translateY(-1px);
    filter:brightness(.96);
    box-shadow:0 8px 20px color-mix(in srgb,var(--brand-accent) 22%,transparent);
  }
}

@media(min-width:981px) and (max-width:1100px){
  .mega-service-media{aspect-ratio:2.2/1}
}

@media (min-width:981px) and (prefers-reduced-motion:reduce){
  .submenu--mega{
    transform:translate(-50%,0) scale(1)!important;
    transition:opacity .1s linear,visibility 0s linear .1s!important;
  }
  .has-mega-menu.submenu-open>.submenu--mega{transition-delay:0s!important}
  .submenu--mega .mega-service-link,
  .has-mega-menu.submenu-open .mega-service-link{
    transform:none!important;
    transition:none!important;
    transition-delay:0s!important;
  }
  .mega-service-media,
  .mega-service-title-text,
  .mega-service-arrow,
  .mega-menu-footer a span{transition:none!important;transform:none!important}
  .mega-service-media img,
  .mega-service-media img[src],
  .mega-service-media img.mega-img-loaded{transition:opacity .1s linear!important;transform:none!important}
}


/* ==========================================================
   V1.25.3 Refined Mega Menu Interaction
   Clean premium link treatment by default; expressive image
   hover remains available as an explicit CMS option.
   ========================================================== */
@media(min-width:981px){
  /* Service links visually follow the main navigation: neutral until interaction. */
  .submenu--mega .mega-service-title,
  .submenu--mega .mega-service-title-text,
  .submenu--mega .mega-service-arrow{
    color:var(--brand-body)!important;
  }
  .submenu--mega .mega-service-link:hover .mega-service-title,
  .submenu--mega .mega-service-link:hover .mega-service-title-text,
  .submenu--mega .mega-service-link:hover .mega-service-arrow,
  .submenu--mega .mega-service-link:focus-visible .mega-service-title,
  .submenu--mega .mega-service-link:focus-visible .mega-service-title-text,
  .submenu--mega .mega-service-link:focus-visible .mega-service-arrow{
    color:var(--brand-accent)!important;
  }
  /* Current-page state mirrors the active navigation treatment. */
  .submenu--mega .mega-service-link.is-current .mega-service-title,
  .submenu--mega .mega-service-link.is-current .mega-service-title-text,
  .submenu--mega .mega-service-link.is-current .mega-service-arrow{
    color:var(--brand-accent)!important;
  }

  /* Recommended clean mode: imagery is intentionally motionless and shadow-free. */
  .submenu--mega.mega-hover-clean .mega-service-media,
  .submenu--mega.mega-hover-clean .mega-service-link:hover .mega-service-media,
  .submenu--mega.mega-hover-clean .mega-service-link:focus-visible .mega-service-media{
    transform:none!important;
    box-shadow:none!important;
    border-color:color-mix(in srgb,var(--brand-border) 88%,transparent)!important;
  }
  .submenu--mega.mega-hover-clean .mega-service-media img,
  .submenu--mega.mega-hover-clean .mega-service-media img[src],
  .submenu--mega.mega-hover-clean .mega-service-media img.mega-img-loaded,
  .submenu--mega.mega-hover-clean .mega-service-link:hover .mega-service-media img.mega-img-loaded,
  .submenu--mega.mega-hover-clean .mega-service-link:focus-visible .mega-service-media img.mega-img-loaded{
    transform:none!important;
  }

  /* Optional CMS mode restores the more expressive photography interaction. */
  .submenu--mega.mega-hover-enhanced .mega-service-link:hover .mega-service-media,
  .submenu--mega.mega-hover-enhanced .mega-service-link:focus-visible .mega-service-media{
    border-color:color-mix(in srgb,var(--brand-accent) 56%,var(--brand-border));
    box-shadow:0 12px 28px rgba(10,31,51,.12);
    transform:translateY(-1px);
  }
  .submenu--mega.mega-hover-enhanced .mega-service-link:hover .mega-service-media img.mega-img-loaded,
  .submenu--mega.mega-hover-enhanced .mega-service-link:focus-visible .mega-service-media img.mega-img-loaded{
    transform:scale(1.045)!important;
  }
}

/* ==========================================================
   V1.26.0 Mega Menu Template Library — Editorial Showcase
   Preserves Visual Grid while adding an art-directed premium
   editorial template for service-heavy navigation.
   ========================================================== */
@media(min-width:981px){
  .submenu--mega.mega-layout-editorial{
    width:min(calc(100vw - 72px),calc(var(--container) - 20px));
    max-height:min(560px,calc(100vh - 130px));
    background:color-mix(in srgb,var(--brand-light) 14%,#fff);
    border-color:color-mix(in srgb,var(--brand-border) 82%,transparent);
    border-top-color:var(--brand-accent);
    box-shadow:0 34px 90px rgba(10,31,51,.16),0 8px 28px rgba(10,31,51,.06);
  }
  .mega-layout-editorial .mega-menu-desktop{padding:28px 30px}
  .mega-editorial-layout{
    display:grid;
    grid-template-columns:minmax(220px,.82fr) minmax(0,2.18fr);
    gap:38px;
    align-items:start;
  }
  .mega-editorial-intro{
    min-width:0;
    padding:4px 32px 6px 0;
    border-right:1px solid color-mix(in srgb,var(--brand-border) 78%,transparent);
    opacity:0;
    transform:translateY(8px);
    transition:opacity .52s cubic-bezier(.22,1,.36,1),transform .62s cubic-bezier(.22,1,.36,1);
  }
  .has-mega-menu.submenu-open .mega-editorial-intro{
    opacity:1;
    transform:translateY(0);
    transition-delay:110ms;
  }
  .mega-editorial-eyebrow{
    display:block;
    margin-bottom:12px;
    color:var(--brand-accent);
    font-size:.61rem;
    font-weight:900;
    line-height:1.2;
    letter-spacing:.16em;
    text-transform:uppercase;
  }
  .mega-editorial-intro h3{
    margin:0;
    max-width:300px;
    color:var(--brand-heading);
    font-size:clamp(1.2rem,1.65vw,1.6rem);
    line-height:1.08;
    letter-spacing:-.035em;
  }
  .mega-editorial-intro p{
    margin:15px 0 0;
    max-width:290px;
    color:var(--brand-muted);
    font-size:.76rem;
    line-height:1.65;
  }
  .mega-editorial-actions{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    margin-top:24px;
  }
  .submenu--mega .mega-editorial-actions a{
    display:inline-flex!important;
    align-items:center;
    gap:8px;
    padding:5px 0!important;
    border:0!important;
    background:none!important;
    white-space:normal!important;
    font-size:.74rem!important;
    font-weight:850;
    line-height:1.25;
  }
  .submenu--mega .mega-editorial-view-all{color:var(--brand-heading)!important}
  .submenu--mega .mega-editorial-quote{color:var(--brand-accent)!important}
  .submenu--mega .mega-editorial-actions a:hover,
  .submenu--mega .mega-editorial-actions a:focus-visible{
    color:var(--brand-accent)!important;
    background:none!important;
  }
  .mega-editorial-actions a span{transition:transform .26s cubic-bezier(.22,1,.36,1)}
  .mega-editorial-actions a:hover span,
  .mega-editorial-actions a:focus-visible span{transform:translateX(3px)}

  .mega-editorial-content{min-width:0}
  .mega-layout-editorial .mega-editorial-services{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:14px 16px;
  }
  .mega-layout-editorial .mega-service-media{
    aspect-ratio:2.05/1;
    border-color:color-mix(in srgb,var(--brand-border) 70%,transparent)!important;
    box-shadow:none!important;
  }
  .mega-layout-editorial .mega-service-title{
    margin-top:8px;
    gap:9px;
    font-size:.74rem;
    font-weight:760;
    line-height:1.28;
  }
  .mega-layout-editorial .mega-service-arrow{font-size:.69rem}
  .mega-layout-editorial .mega-service-current{
    left:8px;
    bottom:8px;
    padding:4px 6px;
    font-size:.5rem;
    box-shadow:none;
  }
  /* Editorial photography remains still even if enhanced hover is enabled for Visual Grid. */
  .submenu--mega.mega-layout-editorial .mega-service-media,
  .submenu--mega.mega-layout-editorial .mega-service-link:hover .mega-service-media,
  .submenu--mega.mega-layout-editorial .mega-service-link:focus-visible .mega-service-media{
    transform:none!important;
    box-shadow:none!important;
  }
  .submenu--mega.mega-layout-editorial .mega-service-media img,
  .submenu--mega.mega-layout-editorial .mega-service-media img[src],
  .submenu--mega.mega-layout-editorial .mega-service-media img.mega-img-loaded,
  .submenu--mega.mega-layout-editorial .mega-service-link:hover .mega-service-media img.mega-img-loaded,
  .submenu--mega.mega-layout-editorial .mega-service-link:focus-visible .mega-service-media img.mega-img-loaded{
    transform:none!important;
  }
  .mega-layout-editorial.mega-editorial-focus .mega-editorial-services:has(.mega-service-link:hover) .mega-service-link:not(:hover),
  .mega-layout-editorial.mega-editorial-focus .mega-editorial-services:focus-within .mega-service-link:not(:focus-visible){
    opacity:.62;
  }
  .mega-layout-editorial .mega-service-link{
    transition:opacity .46s cubic-bezier(.22,1,.36,1),transform .56s cubic-bezier(.22,1,.36,1),filter .24s ease;
  }
  .mega-layout-editorial .mega-editorial-extra{
    margin-top:16px;
    padding-top:11px;
  }
}

@media(min-width:981px) and (max-width:1180px){
  .mega-editorial-layout{grid-template-columns:minmax(190px,.72fr) minmax(0,2.28fr);gap:26px}
  .mega-editorial-intro{padding-right:24px}
  .mega-layout-editorial .mega-editorial-services{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .submenu--mega.mega-layout-editorial{max-height:calc(100vh - 115px)}
}

@media (min-width:981px) and (prefers-reduced-motion:reduce){
  .mega-editorial-intro,
  .has-mega-menu.submenu-open .mega-editorial-intro{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  .mega-layout-editorial .mega-service-link{transition:none!important}
}

/* ==========================================================
   V1.26.1 Full-Width Editorial Mega Menu Refinement
   Editorial Showcase becomes a full header navigation layer
   while its content remains aligned to the main site grid.
   Visual Grid is intentionally unaffected.
   ========================================================== */
@media(min-width:981px){
  .submenu--mega.mega-layout-editorial{
    width:100vw;
    max-width:none;
    max-height:min(520px,calc(100vh - 122px));
    background:color-mix(in srgb,var(--brand-light) 18%,#fff);
    border-left:0;
    border-right:0;
    border-bottom-color:color-mix(in srgb,var(--brand-border) 72%,transparent);
    box-shadow:0 30px 84px rgba(10,31,51,.14),0 8px 22px rgba(10,31,51,.045);
    overflow-y:auto;
  }
  .mega-layout-editorial .mega-menu-desktop{
    padding:0;
  }
  .mega-editorial-layout{
    width:min(calc(100% - 64px),var(--container));
    margin:0 auto;
    padding:32px 0 26px;
    grid-template-columns:minmax(235px,.8fr) minmax(0,2.2fr);
    gap:36px;
    align-items:start;
  }
  .mega-editorial-intro{
    padding:2px 34px 4px 0;
    border-right-color:color-mix(in srgb,var(--brand-border) 62%,transparent);
  }
  .mega-editorial-eyebrow{margin-bottom:13px}
  .mega-editorial-intro h3{
    max-width:290px;
    font-size:clamp(1.2rem,1.55vw,1.52rem);
    line-height:1.07;
  }
  .mega-editorial-intro p{
    margin-top:14px;
    max-width:285px;
    font-size:.75rem;
    line-height:1.62;
  }
  .mega-editorial-actions{margin-top:22px}

  .mega-layout-editorial .mega-editorial-services{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    column-gap:16px;
    row-gap:11px;
  }
  .mega-layout-editorial .mega-service-media{
    aspect-ratio:2.48/1;
    border-color:color-mix(in srgb,var(--brand-border) 60%,transparent)!important;
  }
  .mega-layout-editorial .mega-service-title{
    margin-top:6px;
    min-height:26px;
    font-size:.72rem;
    font-weight:680;
    line-height:1.24;
  }
  .mega-layout-editorial .mega-service-arrow{font-size:.66rem}
  .mega-layout-editorial .mega-service-title-text{
    background-size:0 1px;
  }
  .mega-layout-editorial .mega-service-link:hover .mega-service-title-text,
  .mega-layout-editorial .mega-service-link:focus-visible .mega-service-title-text{
    background-size:100% 1px;
  }

  /* Active service context is editorial text, not an image badge. */
  .mega-layout-editorial .mega-service-current{display:none!important}
  .mega-editorial-current-label{
    display:block;
    margin:6px 0 -1px;
    color:var(--brand-accent);
    font-size:.48rem;
    font-weight:900;
    line-height:1.2;
    letter-spacing:.13em;
    text-transform:uppercase;
  }
  .mega-layout-editorial .mega-service-link.is-current .mega-service-media{
    border-color:color-mix(in srgb,var(--brand-border) 60%,transparent)!important;
    box-shadow:none!important;
  }
  .mega-layout-editorial .mega-service-link.is-current .mega-service-title-text{
    background-size:100% 1px;
  }

  /* Let the editorial introduction establish hierarchy before the grid appears. */
  .has-mega-menu.submenu-open .mega-layout-editorial .mega-editorial-intro,
  .has-mega-menu.submenu-open>.mega-layout-editorial .mega-editorial-intro{
    transition-delay:125ms;
  }
  .has-mega-menu.submenu-open .mega-layout-editorial .mega-service-link,
  .has-mega-menu.submenu-open>.mega-layout-editorial .mega-service-link{
    transition-delay:calc(280ms + (var(--mega-index,0) * 52ms));
  }
}

@media(min-width:981px) and (max-width:1120px){
  .mega-editorial-layout{
    width:min(calc(100% - 48px),var(--container));
    grid-template-columns:minmax(205px,.72fr) minmax(0,2.28fr);
    gap:26px;
    padding-top:28px;
  }
  .mega-editorial-intro{padding-right:24px}
  .mega-layout-editorial .mega-editorial-services{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    row-gap:13px;
  }
  .mega-layout-editorial .mega-service-media{aspect-ratio:2.65/1}
  .submenu--mega.mega-layout-editorial{max-height:calc(100vh - 112px)}
}

@media (min-width:981px) and (prefers-reduced-motion:reduce){
  .has-mega-menu.submenu-open .mega-layout-editorial .mega-service-link,
  .has-mega-menu.submenu-open>.mega-layout-editorial .mega-service-link{
    transition-delay:0s!important;
  }
}


/* ==========================================================
   V1.28.0 Section Icon Integration
   Controlled palette-aware SVG markers from the Icon Library.
   ========================================================== */
.tb-icon,.tb-marker-icon{flex:0 0 auto;line-height:0}
.tb-icon svg,.tb-marker-icon svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%}
.tb-marker{display:flex;align-items:center;gap:10px;color:var(--brand-accent);line-height:1;font-weight:900}
.tb-marker-number{display:block}.tb-marker--icon .tb-marker-number{display:none}
.tb-marker--number .tb-marker-icon{display:none}
.tb-marker--number-icon{align-items:center}

/* Trust Strip — icon mode keeps the existing restrained proportions. */
.trust-item--with-icon{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;justify-content:initial!important}
.trust-item-icon{display:flex!important;align-items:center;justify-content:flex-start;margin-top:0!important}
.trust-item-icon .tb-icon{display:inline-flex!important;margin-top:0!important}
.trust-item-copy{min-width:0}.trust-item-copy strong,.trust-item-copy span{display:block}
.home-premium .trust-item--with-icon{flex-direction:unset}
@media(max-width:680px){.trust-item--with-icon{grid-template-columns:auto minmax(0,1fr)}}

/* Why Choose Us — retain every existing layout while swapping only the marker vocabulary. */
.why-section .why-benefit-marker{display:flex;color:var(--brand-accent);letter-spacing:normal}
.why-section .why-benefit-marker .tb-marker-number{font-size:.75rem;letter-spacing:.15em}
.why-section .why-benefit-marker .tb-icon{margin:0}
.why-section:not(.why-card-colour--auto) .why-benefit-marker .tb-marker-number{color:var(--why-card-number)}
.home-premium .why-section.why-marker--icon .reason strong,
.home-premium .why-section.why-marker--number-icon .reason strong,
.home-premium .why-section.why-marker--icon .why-overlay-card strong,
.home-premium .why-section.why-marker--number-icon .why-overlay-card strong,
.home-premium .why-section.why-marker--icon .why-editorial-reasons strong,
.home-premium .why-section.why-marker--number-icon .why-editorial-reasons strong,
.home-premium .why-section.why-marker--icon .why-statement-card strong,
.home-premium .why-section.why-marker--number-icon .why-statement-card strong{margin-top:24px}
.why-stacked-benefits .why-benefit-marker{padding-top:0;align-self:start}
.why-section.why-marker--icon .why-stacked-benefits article{grid-template-columns:64px 1fr}
.why-section.why-marker--number-icon .why-stacked-benefits article{grid-template-columns:96px 1fr}
@media(max-width:680px){
  .why-section.why-marker--icon .why-stacked-benefits article{grid-template-columns:50px 1fr}
  .why-section.why-marker--number-icon .why-stacked-benefits article{grid-template-columns:78px 1fr}
}

/* Individual service highlight list — default checkmark remains untouched. */
.feature--custom-marker::before{display:none!important;content:none!important}
.feature--custom-marker{display:flex;align-items:center;gap:10px}
.feature-list--none .feature--custom-marker{gap:0}
.service-feature-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}

/* Dynamic Benefits / Process blocks. */
.benefit-index.tb-marker{margin-bottom:28px;letter-spacing:normal}
.benefit-index.tb-marker .tb-marker-number{font-size:.72rem;letter-spacing:.12em}
.benefit-style-numbered .benefit-index.tb-marker .tb-marker-number{font-size:1.35rem;letter-spacing:-.02em}
.process-step>.process-marker.tb-marker{display:flex;margin-bottom:36px;letter-spacing:normal}
.process-step>.process-marker.tb-marker .tb-marker-number{font-size:.78rem;letter-spacing:.05em}
.block-bg-dark .tb-marker-number,.block-bg-brand .tb-marker-number{color:inherit}


/* Homepage Services — one reusable service icon across all five existing layouts. */
.home-service-marker{margin:0;color:var(--brand-accent);letter-spacing:normal}
.home-service-marker .tb-marker-number{font-size:inherit;letter-spacing:inherit}
.home-premium .service-card .home-service-marker{min-height:24px}
.service-image-card-number.home-service-marker{margin-bottom:20px}
.service-editorial-number.home-service-marker{align-self:center;justify-self:start}
.service-alternating-number.home-service-marker{margin-bottom:20px}
.service-accordion-number.home-service-marker{min-width:0}
.home-services-icon-size--large .service-editorial-row{grid-template-columns:66px minmax(0,1fr) 42px}
.home-services-icon-size--large .service-accordion-item summary{grid-template-columns:70px minmax(0,1fr) 48px}
.home-services-marker--none .service-card-top{justify-content:flex-end}
.home-services-marker--none .service-card h3{margin-top:22px}
.home-services-marker--none .service-editorial-row{grid-template-columns:minmax(0,1fr) 42px}
.home-services-marker--none .service-accordion-item summary{grid-template-columns:minmax(0,1fr) 48px}
@media(max-width:900px){
  .home-services-marker--none .service-editorial-row{grid-template-columns:minmax(0,1fr) 28px}
}
@media(max-width:680px){
  .home-service-marker.tb-marker--number-icon{gap:7px}
  .service-accordion-number.home-service-marker .tb-icon{width:28px!important;height:28px!important}
  .home-services-icon-size--large .service-accordion-item summary{grid-template-columns:38px minmax(0,1fr) 38px}
  .home-services-marker--none .service-accordion-item summary{grid-template-columns:minmax(0,1fr) 38px}
  .home-services-marker--none .service-accordion-panel{padding-left:10px}
}
@media(max-width:420px){
  .home-services-icon-size--large .service-accordion-item summary{grid-template-columns:32px minmax(0,1fr) 34px}
  .home-services-marker--none .service-accordion-item summary{grid-template-columns:minmax(0,1fr) 34px}
}

/* V1.28 backwards-compatibility: preserve the exact legacy number rhythm when icons are not selected. */
.why-layout--split-panel .why-benefit-marker .tb-marker-number{font-size:.75rem;letter-spacing:.15em}
.why-layout--image-overlay .why-benefit-marker .tb-marker-number{font-size:.75rem;letter-spacing:.14em}
.why-layout--light-editorial .why-benefit-marker .tb-marker-number{font-size:.72rem;letter-spacing:.15em}
.why-layout--image-benefits .why-benefit-marker .tb-marker-number{font-size:.72rem;letter-spacing:.13em}
.why-layout--statement-grid .why-benefit-marker .tb-marker-number{font-size:.72rem;letter-spacing:.15em}
.why-section.why-marker--number .why-stacked-benefits .why-benefit-marker{padding-top:4px}
.process-step.process-marker--number>.process-marker.tb-marker{margin-bottom:42px}
.home-service-marker.tb-marker--number{line-height:normal}


/* ==========================================================
   V1.29.0 Header & Section Controls
   ========================================================== */
/* Uploaded logo width is controlled inline by the CMS. Remove the old fixed
   ceiling so narrow/tall and wide wordmark logos can both be art-directed. */
.brand-logo img{max-width:none}

/* Homepage About proof cells adapt when individual stats are disabled. */
.home-premium .stats.stats--count-1{grid-template-columns:1fr}
.home-premium .stats.stats--count-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-premium .stats.stats--count-3{grid-template-columns:repeat(3,minmax(0,1fr))}

@media(max-width:680px){
  .home-premium .stats.stats--count-1{grid-template-columns:1fr}
  .home-premium .stats.stats--count-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-premium .stats.stats--count-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ================================================================
   V1.30.0 — Homepage Review Template Library + Hero Accent Break
   ================================================================ */
.hero--accent-break h1 span:not(:empty){display:block;margin-top:.03em}

/* Review count safeguards. The classic template otherwise keeps the exact
   pre-v1.30.0 review styling. */
.home-reviews-count-1 .testimonials{grid-template-columns:minmax(0,1fr)!important;max-width:820px}
.home-reviews-count-2 .testimonials{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.home-reviews-count-2 .testimonial--featured{grid-column:auto!important}

/* 02 — Speech Bubble Cards */
.home-premium .home-reviews--speech .testimonials{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
  align-items:start;
}
.home-premium .home-reviews--speech .testimonial,
.home-premium .home-reviews--speech .testimonial--featured{
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
  display:block;
  box-shadow:none;
  color:var(--brand-body);
}
.home-premium .home-reviews--speech .testimonial::before{display:none}
.home-premium .home-reviews--speech .testimonial:hover{transform:none;box-shadow:none}
.home-premium .home-reviews--speech .stars{
  margin:0 0 12px 24px;
  font-size:.78rem;
  letter-spacing:.14em;
}
.home-premium .home-reviews--speech .testimonial blockquote,
.home-premium .home-reviews--speech .testimonial--featured blockquote{
  position:relative;
  z-index:1;
  margin:0;
  padding:30px 30px 32px;
  background:color-mix(in srgb,var(--brand-light) 78%,#fff);
  border:1px solid color-mix(in srgb,var(--brand-border) 88%,transparent);
  color:var(--brand-body);
  font-size:.98rem;
  line-height:1.72;
  letter-spacing:0;
}
.home-premium .home-reviews--speech .testimonial blockquote::after{
  content:"";
  position:absolute;
  left:28px;
  bottom:-13px;
  width:24px;
  height:24px;
  background:color-mix(in srgb,var(--brand-light) 78%,#fff);
  border-right:1px solid color-mix(in srgb,var(--brand-border) 88%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--brand-border) 88%,transparent);
  transform:rotate(45deg);
}
.home-premium .home-reviews--speech .testimonial strong,
.home-premium .home-reviews--speech .testimonial--featured strong{
  display:block;
  margin:28px 24px 0;
  padding:0;
  color:var(--brand-heading);
  font-size:.9rem;
}
.home-premium .home-reviews--speech .testimonial span,
.home-premium .home-reviews--speech .testimonial--featured span{
  display:block;
  margin:2px 24px 0;
  color:var(--brand-muted);
}

/* 03 — Premium Editorial */
.home-premium .home-reviews--editorial .testimonials{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  align-items:stretch;
  border-top:1px solid var(--brand-border);
  border-bottom:1px solid var(--brand-border);
}
.home-premium .home-reviews--editorial .testimonial,
.home-premium .home-reviews--editorial .testimonial--featured{
  position:relative;
  min-height:330px;
  padding:38px 38px 34px;
  border:0;
  border-left:1px solid var(--brand-border);
  background:transparent;
  color:var(--brand-body);
  display:flex;
  flex-direction:column;
  box-shadow:none;
}
.home-premium .home-reviews--editorial .testimonial:first-child{border-left:0}
.home-premium .home-reviews--editorial .testimonial:hover{transform:none;box-shadow:none}
.home-premium .home-reviews--editorial .testimonial::before,
.home-premium .home-reviews--editorial .testimonial--featured::before{
  content:"“";
  display:block;
  position:static;
  margin:8px 0 18px;
  color:color-mix(in srgb,var(--brand-accent) 72%,transparent);
  font-family:Georgia,serif;
  font-size:4.2rem;
  line-height:.55;
}
.home-premium .home-reviews--editorial .stars{font-size:.72rem;letter-spacing:.16em}
.home-premium .home-reviews--editorial .testimonial blockquote,
.home-premium .home-reviews--editorial .testimonial--featured blockquote{
  margin:0;
  color:var(--brand-body);
  font-size:1.03rem;
  line-height:1.78;
  letter-spacing:-.01em;
}
.home-premium .home-reviews--editorial .testimonial strong,
.home-premium .home-reviews--editorial .testimonial--featured strong{
  margin-top:auto;
  padding-top:34px;
  color:var(--brand-heading);
  font-size:.9rem;
}
.home-premium .home-reviews--editorial .testimonial span,
.home-premium .home-reviews--editorial .testimonial--featured span{color:var(--brand-muted)}

/* 04 — Premium Spotlight */
.home-premium .home-reviews--spotlight .testimonials{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-flow:row;
  gap:16px;
  padding:18px;
  background:color-mix(in srgb,var(--brand-light) 68%,#fff);
  border:1px solid color-mix(in srgb,var(--brand-border) 82%,transparent);
}
.home-premium .home-reviews--spotlight .testimonial{
  grid-column:span 5;
  position:relative;
  min-height:220px;
  padding:32px 30px;
  border:1px solid color-mix(in srgb,var(--brand-border) 90%,transparent);
  background:#fff;
  display:flex;
  flex-direction:column;
  box-shadow:none;
}
.home-premium .home-reviews--spotlight .testimonial--featured{
  grid-column:span 7;
  grid-row:span 2;
  min-height:456px;
  padding:48px 44px;
  border-color:var(--brand-dark);
  background:linear-gradient(145deg,var(--brand-dark),color-mix(in srgb,var(--brand-primary) 86%,var(--brand-secondary)));
  color:#fff;
}
.home-premium .home-reviews--spotlight .testimonial::before{
  right:22px;
  top:4px;
  font-size:6.5rem;
  color:color-mix(in srgb,var(--brand-accent) 16%,transparent);
}
.home-premium .home-reviews--spotlight .testimonial--featured::before{
  right:32px;
  top:10px;
  font-size:9rem;
  color:rgba(255,255,255,.06);
}
.home-premium .home-reviews--spotlight .testimonial blockquote{
  margin-top:22px;
  color:var(--brand-body);
  font-size:.94rem;
  line-height:1.72;
}
.home-premium .home-reviews--spotlight .testimonial--featured blockquote{
  margin-top:38px;
  color:#fff;
  font-size:1.35rem;
  line-height:1.62;
  letter-spacing:-.025em;
}
.home-premium .home-reviews--spotlight .testimonial strong{margin-top:auto;padding-top:28px;color:var(--brand-heading)}
.home-premium .home-reviews--spotlight .testimonial--featured strong{color:#fff}
.home-premium .home-reviews--spotlight .testimonial--featured span{color:rgba(255,255,255,.58)}
.home-premium .home-reviews--spotlight.home-reviews-count-1 .testimonials{max-width:none}
.home-premium .home-reviews--spotlight.home-reviews-count-1 .testimonial--featured{
  grid-column:1/-1!important;
  grid-row:auto;
  min-height:360px;
}
.home-premium .home-reviews--spotlight.home-reviews-count-2 .testimonial--featured{grid-row:auto}

@media(max-width:980px){
  .home-premium .home-reviews--speech .testimonials,
  .home-premium .home-reviews--editorial .testimonials{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-premium .home-reviews--editorial .testimonial:nth-child(odd){border-left:0}
  .home-premium .home-reviews--editorial .testimonial:nth-child(n+3){border-top:1px solid var(--brand-border)}
  .home-premium .home-reviews--spotlight .testimonial--featured{grid-column:1/-1;grid-row:auto;min-height:330px}
  .home-premium .home-reviews--spotlight .testimonial:not(.testimonial--featured){grid-column:span 6}
}
@media(max-width:680px){
  .home-reviews-count-2 .testimonials,
  .home-premium .home-reviews--speech .testimonials,
  .home-premium .home-reviews--editorial .testimonials{grid-template-columns:1fr!important}
  .home-premium .home-reviews--editorial .testimonial{border-left:0;border-top:1px solid var(--brand-border);min-height:0;padding:32px 10px 30px}
  .home-premium .home-reviews--editorial .testimonial:first-child{border-top:0}
  .home-premium .home-reviews--speech .testimonial blockquote{padding:26px 24px 28px}
  .home-premium .home-reviews--spotlight .testimonials{padding:10px}
  .home-premium .home-reviews--spotlight .testimonial,
  .home-premium .home-reviews--spotlight .testimonial:not(.testimonial--featured),
  .home-premium .home-reviews--spotlight .testimonial--featured{grid-column:1/-1;min-height:0;padding:30px 26px}
  .home-premium .home-reviews--spotlight .testimonial--featured blockquote{font-size:1.16rem;margin-top:28px}
}


/* ================================================================
   V1.30.1 Global Button Hover System + Final CTA Text Contrast
   One controlled hover language prevents isolated legacy blue/secondary
   hovers from appearing on otherwise lift-only premium button systems.
   ================================================================ */
.btn-primary{
  --tb-filled-bg:var(--cta-bg);
  --tb-filled-text:var(--cta-text);
  --tb-filled-border:transparent;
}
.btn-dark{
  --tb-filled-bg:var(--navy);
  --tb-filled-text:#fff;
  --tb-filled-border:transparent;
}
.hero--brand-panel .btn-primary{
  --tb-filled-bg:var(--navy-2);
  --tb-filled-text:#fff;
}
.hero--floating-panel.hero--panel-brand .btn-primary{
  --tb-filled-bg:var(--brand-dark);
  --tb-filled-text:#fff;
}
.cta--premium.cta-tone--dark .btn-primary{
  --tb-filled-bg:var(--brand-accent);
  --tb-filled-text:var(--brand-accent-contrast);
  --tb-filled-border:var(--brand-accent);
}
.cta--premium .btn-dark,
.cta-tone--light.cta-bg--solid .btn-dark{
  --tb-filled-bg:var(--brand-primary);
  --tb-filled-text:#fff;
  --tb-filled-border:transparent;
}
.cta--premium.cta-tone--dark .btn-dark{
  --tb-filled-bg:color-mix(in srgb,#fff 7%,transparent);
  --tb-filled-text:#fff;
  --tb-filled-border:color-mix(in srgb,#fff 38%,transparent);
}
.cta-tone--light.cta-bg--image .btn-dark{
  --tb-filled-bg:color-mix(in srgb,#fff 12%,transparent);
  --tb-filled-text:#fff;
  --tb-filled-border:color-mix(in srgb,#fff 40%,transparent);
}

/* Recommended premium default: preserve each filled button's intended base
   colour and use only motion/depth on hover. */
.tb-button-hover--lift-shadow .btn-primary:hover,
.tb-button-hover--lift-shadow .btn-dark:hover,
.tb-button-hover--lift-shadow .header-cta:hover{
  background:var(--tb-filled-bg)!important;
  color:var(--tb-filled-text)!important;
  border-color:var(--tb-filled-border)!important;
  transform:translateY(-2px);
  box-shadow:0 12px 26px color-mix(in srgb,var(--brand-primary) 16%,transparent);
}

/* Site-wide colour hover. Filled buttons intentionally converge on one
   palette-aware hover colour for a coherent interaction language. */
.tb-button-hover--colour-lift-shadow .btn-primary:hover,
.tb-button-hover--colour-lift-shadow .btn-dark:hover,
.tb-button-hover--colour-lift-shadow .header-cta:hover,
.tb-button-hover--colour-only .btn-primary:hover,
.tb-button-hover--colour-only .btn-dark:hover,
.tb-button-hover--colour-only .header-cta:hover{
  background:var(--button-hover-bg)!important;
  color:var(--button-hover-text)!important;
  border-color:var(--button-hover-bg)!important;
}
.tb-button-hover--colour-lift-shadow .btn-primary:hover,
.tb-button-hover--colour-lift-shadow .btn-dark:hover,
.tb-button-hover--colour-lift-shadow .header-cta:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 26px color-mix(in srgb,var(--button-hover-bg) 25%,transparent);
}
.tb-button-hover--colour-only .btn-primary:hover,
.tb-button-hover--colour-only .btn-dark:hover,
.tb-button-hover--colour-only .header-cta:hover{
  transform:none;
  box-shadow:none;
}

/* Optional: let the same global hover colour fill secondary/outline buttons.
   Kept opt-in because restrained outlines are usually the more premium choice. */
.tb-button-hover--include-outline.tb-button-hover--colour-lift-shadow .btn-outline:hover,
.tb-button-hover--include-outline.tb-button-hover--colour-lift-shadow .btn-outline-light:hover,
.tb-button-hover--include-outline.tb-button-hover--colour-lift-shadow .hero-secondary:hover,
.tb-button-hover--include-outline.tb-button-hover--colour-only .btn-outline:hover,
.tb-button-hover--include-outline.tb-button-hover--colour-only .btn-outline-light:hover,
.tb-button-hover--include-outline.tb-button-hover--colour-only .hero-secondary:hover{
  background:var(--button-hover-bg)!important;
  color:var(--button-hover-text)!important;
  border-color:var(--button-hover-bg)!important;
}
.tb-button-hover--include-outline.tb-button-hover--colour-lift-shadow .btn-outline:hover,
.tb-button-hover--include-outline.tb-button-hover--colour-lift-shadow .btn-outline-light:hover,
.tb-button-hover--include-outline.tb-button-hover--colour-lift-shadow .hero-secondary:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 26px color-mix(in srgb,var(--button-hover-bg) 25%,transparent);
}
.tb-button-hover--include-outline.tb-button-hover--colour-only .btn-outline:hover,
.tb-button-hover--include-outline.tb-button-hover--colour-only .btn-outline-light:hover,
.tb-button-hover--include-outline.tb-button-hover--colour-only .hero-secondary:hover{
  transform:none;
  box-shadow:none;
}

.tb-button-hover--none .btn-primary:hover,
.tb-button-hover--none .btn-dark:hover,
.tb-button-hover--none .header-cta:hover{
  background:var(--tb-filled-bg)!important;
  color:var(--tb-filled-text)!important;
  border-color:var(--tb-filled-border)!important;
  transform:none;
  box-shadow:none;
}

/* The final CTA can deliberately override the normal global CTA label colour.
   Apply it to hover as well so lift-only treatment never flips the label. */
.cta--premium.cta-primary-text--white .btn-primary,
.cta--premium.cta-primary-text--white .btn-primary:hover{
  --tb-filled-text:#fff;
  color:#fff!important;
}
.cta--premium.cta-primary-text--black .btn-primary,
.cta--premium.cta-primary-text--black .btn-primary:hover{
  --tb-filled-text:#000;
  color:#000!important;
}

@media (prefers-reduced-motion:reduce){
  .tb-button-hover--lift-shadow .btn:hover,
  .tb-button-hover--colour-lift-shadow .btn:hover,
  .tb-button-hover--colour-only .btn:hover,
  .tb-button-hover--none .btn:hover,
  .tb-button-hover--lift-shadow .header-cta:hover,
  .tb-button-hover--colour-lift-shadow .header-cta:hover,
  .tb-button-hover--colour-only .header-cta:hover,
  .tb-button-hover--none .header-cta:hover{transform:none!important}
}


/* ==========================================================
   V1.31.0 Adaptive Footer + Internal Hero Overlay Controls
   ========================================================== */

/* When Services is not publicly available, remove the empty fourth column
   and deliberately rebalance the footer rather than leaving template space. */
.footer-grid.footer-grid--no-services{
  grid-template-columns:minmax(0,1.4fr) minmax(150px,.72fr) minmax(220px,1fr);
  column-gap:clamp(52px,7vw,118px);
}
.footer-grid--no-services .footer-company-block,
.footer-grid--no-services .footer-contact-block{min-width:0}

@media(max-width:980px) and (min-width:821px){
  .footer-grid.footer-grid--no-services{
    grid-template-columns:minmax(0,1.25fr) minmax(145px,.72fr) minmax(200px,1fr);
    gap:38px;
  }
}
@media(max-width:820px) and (min-width:681px){
  .footer-grid.footer-grid--no-services{grid-template-columns:1fr 1fr;gap:38px 54px}
  .footer-grid--no-services>div:first-child{grid-column:1/-1;max-width:620px}
}
@media(max-width:680px){
  .footer-grid.footer-grid--no-services{grid-template-columns:1fr;gap:30px}
  .footer-grid--no-services>div:first-child{grid-column:auto;max-width:none}
}

/* Internal hero imagery is now separated from its overlay. This allows the
   CMS to vary opacity and direction while keeping content markup untouched. */
.inner-hero-image{
  background:var(--inner-hero-image) var(--inner-hero-position,center)/cover no-repeat!important;
}
.inner-hero-image::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}
.inner-hero-image.inner-overlay--gradient-left::before{
  background:linear-gradient(90deg,var(--inner-overlay-strong) 0%,var(--inner-overlay-base) 48%,var(--inner-overlay-medium) 78%,var(--inner-overlay-soft) 100%);
}
.inner-hero-image.inner-overlay--solid::before{
  background:var(--inner-overlay-base);
}
.inner-hero-image.inner-overlay--gradient-right::before{
  background:linear-gradient(270deg,var(--inner-overlay-strong) 0%,var(--inner-overlay-base) 48%,var(--inner-overlay-medium) 78%,var(--inner-overlay-soft) 100%);
}
.inner-hero-image.inner-overlay--gradient-bottom::before{
  background:linear-gradient(180deg,var(--inner-overlay-soft) 0%,var(--inner-overlay-medium) 42%,var(--inner-overlay-base) 72%,var(--inner-overlay-strong) 100%);
}
.inner-hero-image>.container{position:relative;z-index:2}

/* Mobile deliberately retains the established Toolbelt contrast floor.
   Desktop opacity can be art-directed freely without risking unreadable
   internal-page headings on narrow screens. */
@media(max-width:680px){
  .inner-hero-image[class*="inner-overlay--"]::before{
    background:linear-gradient(180deg,rgba(4,16,27,.62) 0%,rgba(4,16,27,.70) 22%,rgba(4,16,27,.82) 46%,rgba(4,16,27,.93) 70%,rgba(4,16,27,.98) 100%)!important;
  }
}
@media(max-width:390px){
  .inner-hero-image[class*="inner-overlay--"]::before{
    background:linear-gradient(180deg,rgba(4,16,27,.66) 0%,rgba(4,16,27,.74) 20%,rgba(4,16,27,.85) 44%,rgba(4,16,27,.95) 69%,rgba(4,16,27,.985) 100%)!important;
  }
}

/* ==========================================================
   V1.31.1 Internal Hero Greyscale Filter
   Image-only treatment: overlay/content keep their palette colours.
   ========================================================== */
.inner-hero-image.inner-hero--grayscale{
  background:var(--brand-dark)!important;
}
.inner-hero-image.inner-hero--grayscale::after{
  content:"";
  position:absolute;
  inset:0;
  width:auto;
  height:auto;
  border-radius:0;
  z-index:0;
  pointer-events:none;
  opacity:1;
  background:var(--inner-hero-image) var(--inner-hero-position,center)/cover no-repeat;
  filter:grayscale(1);
  transform:none;
}
.inner-hero-image.inner-hero--grayscale::before{z-index:1}
.inner-hero-image.inner-hero--grayscale>.container{position:relative;z-index:2}

/* =========================================================
   V1.32.0 Advanced Typography
   Optional override layer only. These rules are dormant unless
   body.tb-advanced-typography is explicitly rendered by PHP.
   Existing responsive font sizes and component geometry are untouched.
   ========================================================= */
body.tb-advanced-typography{
  font-family:var(--font-body,var(--site-font));
  font-weight:var(--body-weight,400);
  line-height:var(--body-line-height,1.6);
  letter-spacing:var(--body-letter-spacing,0)
}
body.tb-advanced-typography h1,
body.tb-advanced-typography h2,
body.tb-advanced-typography h3,
body.tb-advanced-typography h4,
body.tb-advanced-typography h5,
body.tb-advanced-typography h6{
  font-family:var(--font-heading,var(--site-font));
  font-weight:var(--heading-weight,700);
  line-height:var(--heading-line-height,1.12);
  letter-spacing:var(--heading-letter-spacing,0)
}
body.tb-advanced-heading-transform--uppercase h1,
body.tb-advanced-heading-transform--uppercase h2,
body.tb-advanced-heading-transform--uppercase h3,
body.tb-advanced-heading-transform--uppercase h4,
body.tb-advanced-heading-transform--uppercase h5,
body.tb-advanced-heading-transform--uppercase h6{text-transform:uppercase!important}
body.tb-advanced-heading-transform--normal h1,
body.tb-advanced-heading-transform--normal h2,
body.tb-advanced-heading-transform--normal h3,
body.tb-advanced-heading-transform--normal h4,
body.tb-advanced-heading-transform--normal h5,
body.tb-advanced-heading-transform--normal h6{text-transform:none!important}

/* Text-only logos remain on the standard Toolbelt typeface so enabling the
   advanced layer does not unexpectedly redesign a customer's wordmark. */
body.tb-advanced-typography .brand{font-family:var(--site-font)}

/* Navigation opt-in changes family only. Existing size, weight, case,
   letter-spacing, layout and dropdown behaviour remain authoritative. */
body.tb-advanced-typography .nav{line-height:1.65;letter-spacing:normal}
body.tb-advanced-nav--existing .nav{font-family:var(--site-font)}
body.tb-advanced-nav--heading .nav{font-family:var(--font-heading,var(--site-font))}

/* Button mode changes family only. Established button metrics and weights are
   deliberately preserved, including header, hero, CTA and form controls. */
body.tb-advanced-typography button,
body.tb-advanced-typography .btn,
body.tb-advanced-typography .hero-secondary,
body.tb-advanced-typography .prototype-claim-cta,
body.tb-advanced-typography .cookie-btn{line-height:1.65;letter-spacing:normal}
body.tb-advanced-buttons--existing button,
body.tb-advanced-buttons--existing .btn,
body.tb-advanced-buttons--existing .hero-secondary,
body.tb-advanced-buttons--existing .prototype-claim-cta,
body.tb-advanced-buttons--existing .cookie-btn{font-family:var(--site-font)}
body.tb-advanced-buttons--heading button,
body.tb-advanced-buttons--heading .btn,
body.tb-advanced-buttons--heading .hero-secondary,
body.tb-advanced-buttons--heading .prototype-claim-cta,
body.tb-advanced-buttons--heading .cookie-btn{font-family:var(--font-heading,var(--site-font))}
body.tb-advanced-buttons--body button,
body.tb-advanced-buttons--body .btn,
body.tb-advanced-buttons--body .hero-secondary,
body.tb-advanced-buttons--body .prototype-claim-cta,
body.tb-advanced-buttons--body .cookie-btn{font-family:var(--font-body,var(--site-font))}

/* ==========================================================
   V1.32.2 Responsive Homepage Hero Content Spacing
   Adds optional breathing room above the existing hero layout without
   rewriting any template-specific typography, image or responsive rules.
   ========================================================== */
@media(min-width:981px){
  .home-premium .hero.hero--spacing-controlled{
    padding-top:var(--hero-content-space-desktop,0px);
  }
}
@media(min-width:681px) and (max-width:980px){
  .home-premium .hero.hero--spacing-controlled{
    padding-top:var(--hero-content-space-tablet,0px);
  }
}
@media(max-width:680px){
  .home-premium .hero.hero--spacing-controlled{
    padding-top:var(--hero-content-space-mobile,0px);
  }
}

/* ==========================================================
   V1.33.0 Homepage Map / Location Section
   ========================================================== */
.home-map-section{
  position:relative;
  overflow:hidden;
}
.home-map-shell{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);
  align-items:center;
  gap:clamp(46px,6vw,92px);
}
.home-map-copy{min-width:0}
.home-map-copy h2{
  max-width:760px;
  margin-bottom:20px;
}
.home-map-copy>.lead{
  max-width:650px;
  color:var(--brand-muted);
}
.home-map-location-card{
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-top:30px;
  padding-top:24px;
  border-top:1px solid var(--brand-border);
  max-width:620px;
}
.home-map-location-icon{
  flex:0 0 42px;
  width:42px;height:42px;
  display:grid;place-items:center;
  border-radius:50%;
  background:color-mix(in srgb,var(--brand-accent) 12%,transparent);
  color:var(--brand-accent);
}
.home-map-location-icon svg{width:20px;height:20px}
.home-map-location-card>div{display:grid;gap:4px;min-width:0}
.home-map-location-type{
  color:var(--brand-muted);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.home-map-location-card strong{
  color:var(--brand-heading);
  font-size:1.08rem;
}
.home-map-location-card address{
  margin:1px 0 0;
  color:var(--brand-muted);
  font-style:normal;
  line-height:1.55;
}
.home-map-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:20px 24px;
  margin-top:30px;
}
.home-map-open-link{margin:0}
.home-map-visual{min-width:0}
.home-map-frame{
  position:relative;
  width:100%;
  min-height:430px;
  aspect-ratio:16/11;
  overflow:hidden;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--brand-light) 92%,#fff),#fff);
  border:1px solid color-mix(in srgb,var(--brand-border) 92%,transparent);
  box-shadow:0 24px 70px color-mix(in srgb,var(--brand-primary) 10%,transparent);
}
.home-map-frame iframe{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  border:0;
  display:block;
  opacity:0;
  transition:opacity .6s cubic-bezier(.22,.61,.36,1),filter .3s ease;
}
.home-map--greyscale .home-map-frame iframe{
  filter:grayscale(1) saturate(0) contrast(.92) brightness(1.03);
}
.home-map-frame--static iframe{pointer-events:none}
.home-map-frame--interactive iframe{pointer-events:auto}
.home-map-frame.is-loaded iframe{opacity:1}
.home-map-loader{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  gap:8px;
  padding:32px;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--brand-light) 90%,#fff),color-mix(in srgb,#fff 94%,var(--brand-accent)));
  color:var(--brand-body);
  transition:opacity .45s ease,visibility .45s ease;
}
.home-map-frame.is-loaded .home-map-loader{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.home-map-loader-icon{
  width:54px;height:54px;
  margin-bottom:8px;
  display:grid;place-items:center;
  border-radius:50%;
  background:var(--brand-accent);
  color:var(--brand-accent-contrast);
  box-shadow:0 12px 32px color-mix(in srgb,var(--brand-accent) 24%,transparent);
}
.home-map-loader-icon svg{width:24px;height:24px}
.home-map-loader strong{
  color:var(--brand-heading);
  font-size:1.2rem;
}
.home-map-loader>span:not(.home-map-loader-icon){
  max-width:360px;
  color:var(--brand-muted);
  font-size:.92rem;
  line-height:1.5;
}
.home-map-load-btn{
  margin-top:12px;
  border:1px solid var(--brand-heading);
  background:var(--brand-heading);
  color:#fff;
  padding:11px 16px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
  transition:transform .25s ease,box-shadow .25s ease,opacity .25s ease;
}
.home-map-load-btn:hover,
.home-map-load-btn:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 9px 22px rgba(0,0,0,.12);
}

/* 01 — Full Width Map: editorial introduction above a cinematic map. */
.home-map--full-width{
  background:var(--brand-light);
}
.home-map--full-width .home-map-shell{
  display:block;
}
.home-map--full-width .home-map-copy{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  column-gap:clamp(40px,7vw,110px);
  align-items:end;
  margin-bottom:32px;
}
.home-map--full-width .home-map-copy>.eyebrow,
.home-map--full-width .home-map-copy>h2,
.home-map--full-width .home-map-copy>.lead{grid-column:1}
.home-map--full-width .home-map-location-card,
.home-map--full-width .home-map-actions{grid-column:2}
.home-map--full-width .home-map-location-card{
  grid-row:1/span 3;
  align-self:start;
  margin-top:0;
}
.home-map--full-width .home-map-actions{margin-top:18px}
.home-map--full-width .home-map-frame{
  aspect-ratio:16/6.2;
  min-height:410px;
  box-shadow:none;
}

/* 02 — Split Location: the restrained default for most trade businesses. */
.home-map--split{
  background:#fff;
}
.home-map--split .home-map-frame{border-radius:2px}

/* 03 — Premium Panel: dark editorial section with an elevated map panel. */
.home-map--premium-panel{
  background:
    radial-gradient(circle at 8% 18%,color-mix(in srgb,var(--brand-accent) 10%,transparent),transparent 28%),
    linear-gradient(135deg,var(--brand-primary),color-mix(in srgb,var(--brand-primary) 78%,#000));
}
.home-map--premium-panel .home-map-shell{
  grid-template-columns:minmax(0,.72fr) minmax(540px,1.28fr);
}
.home-map--premium-panel .home-map-copy>.lead,
.home-map--premium-panel .home-map-location-type,
.home-map--premium-panel .home-map-location-card address{
  color:rgba(255,255,255,.68);
}
.home-map--premium-panel .home-map-copy h2,
.home-map--premium-panel .home-map-location-card strong{
  color:#fff;
}
.home-map--premium-panel .home-map-location-card{
  border-color:rgba(255,255,255,.16);
}
.home-map--premium-panel .home-map-location-icon{
  color:var(--brand-accent);
  background:color-mix(in srgb,var(--brand-accent) 16%,transparent);
}
.home-map--premium-panel .home-map-open-link{color:#fff}
.home-map--premium-panel .home-map-open-link:hover{color:var(--brand-accent)}
.home-map--premium-panel .home-map-frame{
  border-color:rgba(255,255,255,.12);
  box-shadow:0 34px 90px rgba(0,0,0,.28);
}

@media(max-width:1100px){
  .home-map-shell,
  .home-map--premium-panel .home-map-shell{
    grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);
    gap:42px;
  }
  .home-map-frame{min-height:390px}
  .home-map--full-width .home-map-copy{grid-template-columns:1fr .72fr;gap:34px}
}
@media(max-width:860px){
  .home-map-shell,
  .home-map--premium-panel .home-map-shell{
    grid-template-columns:1fr;
    gap:34px;
  }
  .home-map-copy>.lead{max-width:720px}
  .home-map-frame{aspect-ratio:16/9;min-height:360px}
  .home-map--full-width .home-map-copy{display:block;margin-bottom:28px}
  .home-map--full-width .home-map-location-card{margin-top:26px}
  .home-map--full-width .home-map-frame{aspect-ratio:16/8;min-height:360px}
}
@media(max-width:680px){
  .home-map-section{padding-top:64px;padding-bottom:64px}
  .home-map-frame,
  .home-map--full-width .home-map-frame{
    aspect-ratio:4/3;
    min-height:300px;
  }
  .home-map-location-card{margin-top:24px;padding-top:20px}
  .home-map-actions{align-items:stretch;gap:14px;margin-top:24px}
  .home-map-actions .btn{width:100%;text-align:center}
  .home-map-open-link{display:inline-flex;min-height:42px;align-items:center}
  .home-map-loader{padding:24px}
  .home-map-loader-icon{width:48px;height:48px}
}

/* ================================================================
   V2.0.3 — Advanced Button Design
   Preset-driven geometry + optional overrides. This entire layer is
   dormant until buttonDesign differs from the legacy-safe defaults.
   ================================================================ */
.tb-button-design-active :is(.btn-primary,.header-cta){
  min-height:var(--tb-btn-primary-min-height);
  padding:var(--tb-btn-primary-py) var(--tb-btn-primary-px);
  border-width:var(--tb-btn-primary-border-width);
  border-style:solid;
  border-color:var(--tb-btn-primary-border);
  border-radius:var(--tb-btn-primary-radius);
  background:var(--tb-btn-primary-bg);
  color:var(--tb-btn-primary-text);
  font-size:var(--tb-btn-primary-font-size);
  font-weight:var(--tb-btn-primary-weight);
  line-height:1.18;
  box-shadow:var(--tb-btn-primary-shadow);
  max-width:100%;
  white-space:normal;
  text-align:center;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}

/* Secondary retains each existing component's contextual colour role unless
   an explicit advanced override or Outline preset is selected. */
.btn-dark{
  --tb-secondary-bg:var(--tb-filled-bg,var(--navy));
  --tb-secondary-text:var(--tb-filled-text,#fff);
  --tb-secondary-border:var(--tb-filled-border,transparent);
}
.btn-outline{
  --tb-secondary-bg:#fff;
  --tb-secondary-text:var(--navy);
  --tb-secondary-border:var(--brand-border);
}
.btn-outline-light{
  --tb-secondary-bg:transparent;
  --tb-secondary-text:#fff;
  --tb-secondary-border:rgba(255,255,255,.42);
}
.hero-secondary{
  --tb-secondary-bg:transparent;
  --tb-secondary-text:currentColor;
  --tb-secondary-border:currentColor;
}
.tb-button-design-active :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary){
  min-height:var(--tb-btn-secondary-min-height);
  padding:var(--tb-btn-secondary-py) var(--tb-btn-secondary-px);
  border-width:var(--tb-btn-secondary-border-width);
  border-style:solid;
  border-color:var(--tb-btn-secondary-border);
  border-radius:var(--tb-btn-secondary-radius);
  background:var(--tb-btn-secondary-bg);
  color:var(--tb-btn-secondary-text);
  font-size:var(--tb-btn-secondary-font-size);
  font-weight:var(--tb-btn-secondary-weight);
  line-height:1.18;
  box-shadow:var(--tb-btn-secondary-shadow);
  max-width:100%;
  white-space:normal;
  text-align:center;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}

/* Keep the long-standing header proportion when Standard is selected. */
.tb-button-design-active.tb-btn-primary-size--standard .header-cta{min-height:48px;padding-top:0;padding-bottom:0}
.tb-button-design-active.tb-btn-primary-size--compact .header-cta{min-height:42px}
.tb-button-design-active.tb-btn-primary-size--large .header-cta{min-height:56px}

/* Preset-specific character. Colours continue to come from the site palette. */
.tb-btn-primary-style--minimal :is(.btn-primary,.header-cta),
.tb-btn-secondary-style--minimal :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary){letter-spacing:-.005em}
.tb-btn-primary-style--premium :is(.btn-primary,.header-cta),
.tb-btn-secondary-style--premium :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary){letter-spacing:.002em}
.tb-btn-primary-style--sharp :is(.btn-primary,.header-cta),
.tb-btn-secondary-style--sharp :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary){letter-spacing:.015em}
.tb-btn-primary-style--bold :is(.btn-primary,.header-cta),
.tb-btn-secondary-style--bold :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary){letter-spacing:.005em}

/* Outline intentionally changes background behaviour while remaining palette-aware. */
.tb-button-design-active.tb-btn-primary-style--outline :is(.btn-primary,.header-cta){
  background:transparent;
  color:var(--tb-btn-primary-border, var(--cta-bg));
  border-color:var(--tb-btn-primary-border, var(--cta-bg));
}
.tb-button-design-active.tb-btn-secondary-style--outline :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary){
  background:transparent;
  color:var(--tb-btn-secondary-border);
  border-color:var(--tb-btn-secondary-border);
}

/* Explicit hover presets. Default deliberately falls through to the existing
   Toolbelt hover system for perfect backwards compatibility. */
.tb-button-design-active.tb-btn-primary-hover--none :is(.btn-primary,.header-cta):hover{
  background:var(--tb-btn-primary-bg)!important;color:var(--tb-btn-primary-text)!important;border-color:var(--tb-btn-primary-border)!important;transform:none!important;box-shadow:var(--tb-btn-primary-shadow)!important
}
.tb-button-design-active.tb-btn-secondary-hover--none :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary):hover{
  background:var(--tb-btn-secondary-bg)!important;color:var(--tb-btn-secondary-text)!important;border-color:var(--tb-btn-secondary-border)!important;transform:none!important;box-shadow:var(--tb-btn-secondary-shadow)!important
}
.tb-button-design-active.tb-btn-primary-hover--colour-fade :is(.btn-primary,.header-cta):hover,
.tb-button-design-active.tb-btn-primary-hover--fill :is(.btn-primary,.header-cta):hover{
  background:var(--tb-btn-primary-hover-bg)!important;color:var(--tb-btn-primary-hover-text)!important;border-color:var(--tb-btn-primary-hover-bg)!important;transform:none!important;box-shadow:var(--tb-btn-primary-shadow)!important
}
.tb-button-design-active.tb-btn-secondary-hover--colour-fade :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary):hover,
.tb-button-design-active.tb-btn-secondary-hover--fill :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary):hover{
  background:var(--tb-btn-secondary-hover-bg)!important;color:var(--tb-btn-secondary-hover-text)!important;border-color:var(--tb-btn-secondary-hover-bg)!important;transform:none!important;box-shadow:var(--tb-btn-secondary-shadow)!important
}
.tb-button-design-active.tb-btn-primary-hover--lift :is(.btn-primary,.header-cta):hover{
  background:var(--tb-btn-primary-bg)!important;color:var(--tb-btn-primary-text)!important;border-color:var(--tb-btn-primary-border)!important;transform:translateY(-2px)!important;box-shadow:0 13px 28px color-mix(in srgb,var(--brand-primary) 18%,transparent)!important
}
.tb-button-design-active.tb-btn-secondary-hover--lift :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary):hover{
  background:var(--tb-btn-secondary-bg)!important;color:var(--tb-btn-secondary-text)!important;border-color:var(--tb-btn-secondary-border)!important;transform:translateY(-2px)!important;box-shadow:0 13px 28px color-mix(in srgb,var(--brand-primary) 18%,transparent)!important
}
.tb-button-design-active.tb-btn-primary-hover--arrow-move :is(.btn-primary,.header-cta):hover{
  background:var(--tb-btn-primary-bg)!important;color:var(--tb-btn-primary-text)!important;border-color:var(--tb-btn-primary-border)!important;transform:none!important;box-shadow:var(--tb-btn-primary-shadow)!important
}
.tb-button-design-active.tb-btn-secondary-hover--arrow-move :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary):hover{
  background:var(--tb-btn-secondary-bg)!important;color:var(--tb-btn-secondary-text)!important;border-color:var(--tb-btn-secondary-border)!important;transform:none!important;box-shadow:var(--tb-btn-secondary-shadow)!important
}
.tb-button-design-active.tb-btn-primary-hover--subtle-scale :is(.btn-primary,.header-cta):hover{
  background:var(--tb-btn-primary-bg)!important;color:var(--tb-btn-primary-text)!important;border-color:var(--tb-btn-primary-border)!important;transform:scale(1.02)!important;box-shadow:var(--tb-btn-primary-shadow)!important
}
.tb-button-design-active.tb-btn-secondary-hover--subtle-scale :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary):hover{
  background:var(--tb-btn-secondary-bg)!important;color:var(--tb-btn-secondary-text)!important;border-color:var(--tb-btn-secondary-border)!important;transform:scale(1.02)!important;box-shadow:var(--tb-btn-secondary-shadow)!important
}

/* Built-in production icons use lightweight CSS masks so no extra requests are
   created. Custom SVGs reuse the sanitised Icon Library and are also masked,
   therefore automatically inheriting the button text colour. */
.tb-button-design-active{
  --tb-btn-icon-arrow-right:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --tb-btn-icon-chevron-right:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9 6 6 6-6 6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --tb-btn-icon-phone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.7 15.7 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.24c1.08.36 2.24.56 3.43.56a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.52 21 3 13.48 3 4.17a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.2.2 2.35.56 3.43a1 1 0 0 1-.25 1.02L6.6 10.8Z' fill='black'/%3E%3C/svg%3E");
  --tb-btn-icon-email:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.5 5h17A1.5 1.5 0 0 1 22 6.5v11a1.5 1.5 0 0 1-1.5 1.5h-17A1.5 1.5 0 0 1 2 17.5v-11A1.5 1.5 0 0 1 3.5 5Zm.35 2 8.15 5.55L20.15 7H3.85Zm16.15 2.1-7.44 5.07a1 1 0 0 1-1.12 0L4 9.1v7.9h16V9.1Z' fill='black'/%3E%3C/svg%3E");
  --tb-btn-icon-whatsapp:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.5 3.5A11.7 11.7 0 0 0 12.1 0C5.6 0 .3 5.2.3 11.7c0 2.1.6 4.1 1.6 5.9L.2 24l6.6-1.7a11.9 11.9 0 0 0 5.3 1.3h.1C18.6 23.6 24 18.4 24 11.8c0-3.1-1.3-6.1-3.5-8.3ZM12.1 21.6c-1.7 0-3.4-.5-4.9-1.3l-.4-.2-3.9 1 1.1-3.8-.2-.4a9.7 9.7 0 1 1 8.3 4.7Zm5.3-7.2c-.3-.1-1.7-.8-2-.9-.3-.1-.5-.1-.7.1-.2.3-.8 1-1 1.2-.2.2-.4.2-.7.1-1.9-.9-3.2-1.7-4.5-3.8-.3-.5.3-.5.9-1.6.1-.2.1-.5 0-.7-.1-.1-.7-1.7-.9-2.3-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.6.1-.9.4-.3.3-1.2 1.2-1.2 2.9s1.2 3.3 1.4 3.5c.2.2 2.4 3.7 5.9 5.2 2.2.9 3.1 1 4.2.9.7-.1 1.7-.7 1.9-1.4.2-.7.2-1.3.2-1.4-.1-.2-.3-.3-.6-.4Z' fill='black'/%3E%3C/svg%3E");
}
.tb-btn-primary-icon--arrow-right{--tb-btn-primary-icon-image:var(--tb-btn-icon-arrow-right)}
.tb-btn-primary-icon--chevron-right{--tb-btn-primary-icon-image:var(--tb-btn-icon-chevron-right)}
.tb-btn-primary-icon--phone{--tb-btn-primary-icon-image:var(--tb-btn-icon-phone)}
.tb-btn-primary-icon--email{--tb-btn-primary-icon-image:var(--tb-btn-icon-email)}
.tb-btn-primary-icon--whatsapp{--tb-btn-primary-icon-image:var(--tb-btn-icon-whatsapp)}
.tb-btn-primary-icon--custom{--tb-btn-primary-icon-image:var(--tb-btn-primary-custom-icon)}
.tb-btn-secondary-icon--arrow-right{--tb-btn-secondary-icon-image:var(--tb-btn-icon-arrow-right)}
.tb-btn-secondary-icon--chevron-right{--tb-btn-secondary-icon-image:var(--tb-btn-icon-chevron-right)}
.tb-btn-secondary-icon--phone{--tb-btn-secondary-icon-image:var(--tb-btn-icon-phone)}
.tb-btn-secondary-icon--email{--tb-btn-secondary-icon-image:var(--tb-btn-icon-email)}
.tb-btn-secondary-icon--whatsapp{--tb-btn-secondary-icon-image:var(--tb-btn-icon-whatsapp)}
.tb-btn-secondary-icon--custom{--tb-btn-secondary-icon-image:var(--tb-btn-secondary-custom-icon)}

.tb-button-design-active[class*="tb-btn-primary-icon--"] a.btn-primary:not(.header-cta)::before,
.tb-button-design-active[class*="tb-btn-primary-icon--"] a.btn-primary:not(.header-cta)::after,
.tb-button-design-active[class*="tb-btn-primary-icon--"] a.header-cta::before,
.tb-button-design-active[class*="tb-btn-primary-icon--"] a.header-cta::after,
.tb-button-design-active[class*="tb-btn-secondary-icon--"] a.btn-dark::before,
.tb-button-design-active[class*="tb-btn-secondary-icon--"] a.btn-dark::after,
.tb-button-design-active[class*="tb-btn-secondary-icon--"] a.btn-outline::before,
.tb-button-design-active[class*="tb-btn-secondary-icon--"] a.btn-outline::after,
.tb-button-design-active[class*="tb-btn-secondary-icon--"] a.btn-outline-light::before,
.tb-button-design-active[class*="tb-btn-secondary-icon--"] a.btn-outline-light::after,
.tb-button-design-active[class*="tb-btn-secondary-icon--"] a.hero-secondary::before,
.tb-button-design-active[class*="tb-btn-secondary-icon--"] a.hero-secondary::after{
  width:1.05em;height:1.05em;flex:0 0 1.05em;background:currentColor;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;
  transition:transform .2s ease;
}
.tb-btn-primary-icon-pos--right:not(.tb-btn-primary-icon--none) a.btn-primary::after{content:"";-webkit-mask-image:var(--tb-btn-primary-icon-image);mask-image:var(--tb-btn-primary-icon-image)}
.tb-btn-primary-icon-pos--left:not(.tb-btn-primary-icon--none) a.btn-primary::before{content:"";-webkit-mask-image:var(--tb-btn-primary-icon-image);mask-image:var(--tb-btn-primary-icon-image)}
.tb-btn-secondary-icon-pos--right:not(.tb-btn-secondary-icon--none) :is(a.btn-dark,a.btn-outline,a.btn-outline-light,a.hero-secondary)::after{content:"";-webkit-mask-image:var(--tb-btn-secondary-icon-image);mask-image:var(--tb-btn-secondary-icon-image)}
.tb-btn-secondary-icon-pos--left:not(.tb-btn-secondary-icon--none) :is(a.btn-dark,a.btn-outline,a.btn-outline-light,a.hero-secondary)::before{content:"";-webkit-mask-image:var(--tb-btn-secondary-icon-image);mask-image:var(--tb-btn-secondary-icon-image)}
.tb-btn-primary-hover--arrow-move.tb-btn-primary-icon-pos--right a.btn-primary:hover::after{transform:translateX(4px)}
.tb-btn-primary-hover--arrow-move.tb-btn-primary-icon-pos--left a.btn-primary:hover::before{transform:translateX(-4px)}
.tb-btn-secondary-hover--arrow-move.tb-btn-secondary-icon-pos--right :is(a.btn-dark,a.btn-outline,a.btn-outline-light,a.hero-secondary):hover::after{transform:translateX(4px)}
.tb-btn-secondary-hover--arrow-move.tb-btn-secondary-icon-pos--left :is(a.btn-dark,a.btn-outline,a.btn-outline-light,a.hero-secondary):hover::before{transform:translateX(-4px)}

/* Outline + Default gets a restrained fill even if the site's old hover mode
   was lift-only. Choosing Default on every untouched Classic site remains inert
   because the new system is not active there. */
.tb-button-design-active.tb-btn-primary-style--outline.tb-btn-primary-hover--default :is(.btn-primary,.header-cta):hover{
  background:var(--tb-btn-primary-hover-bg)!important;color:var(--tb-btn-primary-hover-text)!important;border-color:var(--tb-btn-primary-hover-bg)!important
}
.tb-button-design-active.tb-btn-secondary-style--outline.tb-btn-secondary-hover--default :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary):hover{
  background:var(--tb-btn-secondary-hover-bg)!important;color:var(--tb-btn-secondary-hover-text)!important;border-color:var(--tb-btn-secondary-hover-bg)!important
}

@media(max-width:680px){
  .tb-button-design-active :is(.btn-primary,.header-cta,.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary){max-width:100%}
  .tb-button-design-active.tb-btn-primary-size--large :is(.btn-primary,.header-cta){padding-left:min(var(--tb-btn-primary-px),24px);padding-right:min(var(--tb-btn-primary-px),24px)}
  .tb-button-design-active.tb-btn-secondary-size--large :is(.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary){padding-left:min(var(--tb-btn-secondary-px),24px);padding-right:min(var(--tb-btn-secondary-px),24px)}
}

@media(prefers-reduced-motion:reduce){
  .tb-button-design-active :is(.btn-primary,.header-cta,.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary),
  .tb-button-design-active :is(.btn-primary,.header-cta,.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary)::before,
  .tb-button-design-active :is(.btn-primary,.header-cta,.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary)::after{
    transition:none!important;animation:none!important
  }
  .tb-button-design-active :is(.btn-primary,.header-cta,.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary):hover,
  .tb-button-design-active :is(.btn-primary,.header-cta,.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary):hover::before,
  .tb-button-design-active :is(.btn-primary,.header-cta,.btn-dark,.btn-outline,.btn-outline-light,.hero-secondary):hover::after{
    transform:none!important
  }
}

/* ================================================================
   V2.0.4 — Hero Finishing
   Optional decorative layer over the established hero templates.
   No selectors activate unless .hero--finished is present.
   ================================================================ */
.hero--finished{
  isolation:isolate;
  --hero-finish-divider-color:#fff;
  --hero-finish-divider-height:42px;
  --hero-finish-animation-duration:12s;
  --hero-finish-intensity:.38;
}
.hero--finished .hero-layout{z-index:3}
.hero--finished .hero-bg{z-index:0}
.hero-finish-bg-treatment,
.hero-decorative-accent,
.hero-finishing-divider,
.hero-image-finish-treatment{pointer-events:none}
.hero-finish-bg-treatment{
  position:absolute;
  inset:0;
  z-index:1;
  opacity:0;
}
.hero-decorative-accent{
  position:absolute;
  z-index:1;
  width:min(34vw,470px);
  height:min(34vw,470px);
  color:var(--brand-accent);
  opacity:.72;
}
.hero-decorative-accent>span{position:absolute;inset:0;display:block}
.hero-accent-position--left .hero-decorative-accent{left:-5%;top:16%}
.hero-accent-position--right .hero-decorative-accent{right:-4%;top:14%}
.hero-accent-position--behind-content .hero-decorative-accent{left:4%;top:24%;width:min(39vw,540px);height:min(30vw,410px)}
.hero-accent-position--behind-image .hero-decorative-accent{right:2%;top:12%;width:min(42vw,590px);height:min(42vw,590px)}
.hero--image-left.hero-accent-position--behind-image .hero-decorative-accent{right:auto;left:2%}

.hero-decorative--glow .hero-decorative-accent>span{
  inset:10%;
  border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--brand-accent) 28%,transparent) 0%,color-mix(in srgb,var(--brand-accent) 10%,transparent) 44%,transparent 72%);
  filter:blur(16px);
}
.hero-decorative--gradient-line .hero-decorative-accent{height:180px;width:min(30vw,390px)}
.hero-decorative--gradient-line .hero-decorative-accent>span::before,
.hero-decorative--gradient-line .hero-decorative-accent>span::after{
  content:"";position:absolute;right:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--brand-accent) 86%,transparent));
}
.hero-decorative--gradient-line .hero-decorative-accent>span::before{top:34%;transform:rotate(-7deg)}
.hero-decorative--gradient-line .hero-decorative-accent>span::after{top:58%;width:72%;opacity:.48;transform:rotate(-7deg)}
.hero-accent-position--left.hero-decorative--gradient-line .hero-decorative-accent>span::before,
.hero-accent-position--left.hero-decorative--gradient-line .hero-decorative-accent>span::after,
.hero-accent-position--behind-content.hero-decorative--gradient-line .hero-decorative-accent>span::before,
.hero-accent-position--behind-content.hero-decorative--gradient-line .hero-decorative-accent>span::after{right:auto;left:0;background:linear-gradient(90deg,color-mix(in srgb,var(--brand-accent) 86%,transparent),transparent)}
.hero-decorative--dots .hero-decorative-accent>span{
  background-image:radial-gradient(circle,color-mix(in srgb,var(--brand-accent) 72%,transparent) 1.25px,transparent 1.5px);
  background-size:18px 18px;
  mask-image:linear-gradient(135deg,#000 10%,transparent 76%);
  -webkit-mask-image:linear-gradient(135deg,#000 10%,transparent 76%);
}
.hero-decorative--grid .hero-decorative-accent>span{
  background-image:linear-gradient(color-mix(in srgb,var(--brand-accent) 19%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--brand-accent) 19%,transparent) 1px,transparent 1px);
  background-size:28px 28px;
  mask-image:radial-gradient(circle at center,#000 0%,rgba(0,0,0,.72) 38%,transparent 74%);
  -webkit-mask-image:radial-gradient(circle at center,#000 0%,rgba(0,0,0,.72) 38%,transparent 74%);
}
.hero-decorative--fine-grain .hero-decorative-accent{inset:0;width:auto;height:auto;opacity:.18}
.hero-decorative--fine-grain .hero-decorative-accent>span{
  background-image:radial-gradient(circle,currentColor .55px,transparent .7px);
  background-size:4px 4px;
  mask-image:linear-gradient(110deg,transparent 8%,#000 45%,transparent 92%);
  -webkit-mask-image:linear-gradient(110deg,transparent 8%,#000 45%,transparent 92%);
}
.hero-decorative--abstract-shape .hero-decorative-accent>span{
  inset:9%;border:1px solid color-mix(in srgb,var(--brand-accent) 52%,transparent);border-radius:46% 54% 62% 38% / 42% 38% 62% 58%;transform:rotate(-12deg);
}
.hero-decorative--abstract-shape .hero-decorative-accent>span::after{
  content:"";position:absolute;inset:13%;border:1px solid color-mix(in srgb,var(--brand-accent) 24%,transparent);border-radius:58% 42% 46% 54%;transform:rotate(17deg)
}

/* Content accents are real flow elements, so they cannot sit on top of hero copy. */
.hero-content-finish-accent{display:block;margin:0 0 20px;color:var(--brand-accent);position:relative}
.hero-content-accent--short-line .hero-content-finish-accent{width:42px;height:2px;background:currentColor}
.hero-content-accent--extended-line .hero-content-finish-accent{width:92px;height:2px;background:linear-gradient(90deg,currentColor,transparent)}
.hero-content-accent--vertical-line .hero-content-finish-accent{width:2px;height:42px;background:currentColor}
.hero-content-accent--corner-detail .hero-content-finish-accent{width:34px;height:24px;border-left:2px solid currentColor;border-top:2px solid currentColor}

/* Image treatments use an overlay layer rather than modifying image geometry. */
.hero--finished .hero-media{position:relative}
.hero-image-finish-treatment{position:absolute;inset:0;z-index:2}
.hero-image-treatment--gradient-fade .hero-finish-bg-treatment{opacity:1;background:linear-gradient(90deg,color-mix(in srgb,var(--brand-dark) 32%,transparent),transparent 52%)}
.hero-image-treatment--gradient-fade.hero--image-right .hero-image-finish-treatment{background:linear-gradient(90deg,color-mix(in srgb,var(--brand-primary) 26%,transparent),transparent 48%)}
.hero-image-treatment--gradient-fade.hero--image-left .hero-image-finish-treatment{background:linear-gradient(270deg,color-mix(in srgb,var(--brand-primary) 26%,transparent),transparent 48%)}
.hero-image-treatment--soft-vignette .hero-finish-bg-treatment{opacity:1;background:radial-gradient(ellipse at center,transparent 44%,rgba(2,12,20,.28) 100%)}
.hero-image-treatment--soft-vignette .hero-image-finish-treatment{box-shadow:inset 0 0 88px rgba(2,12,20,.28)}
.hero-image-treatment--colour-wash .hero-finish-bg-treatment,
.hero-image-treatment--colour-wash .hero-image-finish-treatment{opacity:1;background:color-mix(in srgb,var(--brand-primary) 19%,transparent);mix-blend-mode:multiply}
.hero-image-treatment--duotone-tint .hero-finish-bg-treatment,
.hero-image-treatment--duotone-tint .hero-image-finish-treatment{opacity:1;background:linear-gradient(135deg,color-mix(in srgb,var(--brand-primary) 31%,transparent),color-mix(in srgb,var(--brand-accent) 17%,transparent));mix-blend-mode:color}

/* Divider is absolutely contained by the hero: no extra document height / CLS. */
.hero-finishing-divider{
  position:absolute;
  left:-2%;right:-2%;bottom:-1px;
  width:104%;height:var(--hero-finish-divider-height);
  z-index:2;
  color:var(--hero-finish-divider-color);
  overflow:hidden;
  transform-origin:center bottom;
}
.hero-finishing-divider svg{display:block;width:100%;height:100%;overflow:visible}
.hero--finished:not(.hero-divider--none) .hero-layout{padding-bottom:max(16px,calc(var(--hero-finish-divider-height) * .32))}
.hero-divider--fine-line .hero-finishing-divider{height:4px}

.hero-divider-animation--gentle-drift .hero-finishing-divider svg{animation:heroFinishDrift var(--hero-finish-animation-duration) ease-in-out infinite alternate}
.hero-divider-animation--slow-wave .hero-finishing-divider svg{animation:heroFinishWave var(--hero-finish-animation-duration) ease-in-out infinite alternate}
.hero-divider-animation--soft-pulse .hero-finishing-divider{animation:heroFinishPulse var(--hero-finish-animation-duration) ease-in-out infinite alternate}
.hero-divider-animation--draw-in .hero-finishing-divider{animation:heroFinishDrawIn 1.6s cubic-bezier(.22,.8,.24,1) both}
.hero-finish-speed--medium.hero-divider-animation--draw-in .hero-finishing-divider{animation-duration:1.05s}
.hero-finish-intensity--very-subtle{--hero-finish-drift:.7%;--hero-finish-drift-neg:-.7%;--hero-finish-scale:1.008;--hero-finish-pulse:.90}
.hero-finish-intensity--subtle{--hero-finish-drift:1.2%;--hero-finish-drift-neg:-1.2%;--hero-finish-scale:1.014;--hero-finish-pulse:.82}
.hero-finish-intensity--noticeable{--hero-finish-drift:1.8%;--hero-finish-drift-neg:-1.8%;--hero-finish-scale:1.022;--hero-finish-pulse:.72}
@keyframes heroFinishDrift{from{transform:translateX(var(--hero-finish-drift-neg))}to{transform:translateX(var(--hero-finish-drift))}}
@keyframes heroFinishWave{from{transform:translateX(var(--hero-finish-drift-neg)) scaleX(1)}to{transform:translateX(var(--hero-finish-drift)) scaleX(var(--hero-finish-scale))}}
@keyframes heroFinishPulse{from{opacity:var(--hero-finish-pulse)}to{opacity:1}}
@keyframes heroFinishDrawIn{from{clip-path:inset(0 100% 0 0);opacity:.7}to{clip-path:inset(0 0 0 0);opacity:1}}

/* Tablet safety: reduce visual density and divider depth automatically. */
@media(max-width:980px){
  .hero-responsive--auto,
  .hero-responsive--simplify{--hero-finish-divider-height:clamp(24px,5.2vw,52px)!important}
  .hero-responsive--auto .hero-decorative-accent{opacity:.48;transform:scale(.82)}
  .hero-responsive--simplify .hero-decorative-accent{display:none}
  .hero-responsive--simplify .hero-finish-bg-treatment,
  .hero-responsive--simplify .hero-image-finish-treatment{opacity:.55}
  .hero-responsive--auto.hero-decorative--fine-grain .hero-decorative-accent,
  .hero-responsive--auto.hero-decorative--abstract-shape .hero-decorative-accent{opacity:.28}
}

/* Mobile safety: transforms are disabled, decoration is simplified and all
   finishing layers can be removed entirely without touching the hero template. */
@media(max-width:640px){
  .hero--finished{--hero-finish-divider-height:30px!important}
  .hero--finished .hero-finishing-divider,
  .hero--finished .hero-finishing-divider svg{animation:none!important;transform:none!important}
  .hero-responsive--auto.hero-decorative--dots .hero-decorative-accent,
  .hero-responsive--auto.hero-decorative--grid .hero-decorative-accent,
  .hero-responsive--auto.hero-decorative--fine-grain .hero-decorative-accent,
  .hero-responsive--auto.hero-decorative--abstract-shape .hero-decorative-accent{display:none}
  .hero-responsive--auto .hero-decorative-accent{width:230px;height:230px;opacity:.30;top:8%;right:-70px;left:auto}
  .hero-responsive--auto.hero--image-left .hero-decorative-accent{left:-70px;right:auto}
  .hero-responsive--auto .hero-content-finish-accent{margin-bottom:14px}
  .hero-responsive--auto.hero-content-accent--extended-line .hero-content-finish-accent{width:62px}
  .hero-responsive--auto.hero-content-accent--vertical-line .hero-content-finish-accent{height:28px}
  .hero-responsive--simplify{--hero-finish-divider-height:22px!important}
  .hero-responsive--simplify .hero-decorative-accent{display:none}
  .hero-responsive--simplify .hero-content-finish-accent{margin-bottom:12px;transform:scale(.8);transform-origin:left center}
  .hero-responsive--simplify .hero-finish-bg-treatment,
  .hero-responsive--simplify .hero-image-finish-treatment{opacity:.38}
  .hero-responsive--hide-mobile .hero-finishing-divider,
  .hero-responsive--hide-mobile .hero-decorative-accent,
  .hero-responsive--hide-mobile .hero-content-finish-accent,
  .hero-responsive--hide-mobile .hero-finish-bg-treatment,
  .hero-responsive--hide-mobile .hero-image-finish-treatment{display:none!important}
  .hero-responsive--hide-mobile .hero-layout{padding-bottom:0}
}

@media(prefers-reduced-motion:reduce){
  .hero--finished .hero-finishing-divider,
  .hero--finished .hero-finishing-divider svg,
  .hero--finished .hero-decorative-accent,
  .hero--finished .hero-decorative-accent *{animation:none!important;transition:none!important;transform:none!important}
}

/* Toolbelt CMS v2.2.0 — one-page demo anchors/contact */
#services,#about,#reviews,#areas,#contact{scroll-margin-top:120px}
.one-page-contact-section .one-page-contact-form{max-width:900px;margin:0 auto}
.one-page-contact-section .enquiry-form-card{margin:0}
@media(max-width:760px){#services,#about,#reviews,#areas,#contact{scroll-margin-top:92px}}


/* ==========================================================
   V2.4.0 Navigation height control
   ========================================================== */
@media(min-width:981px){
  .header:not(.header--layout-centered-stack) .header-inner{height:var(--tb-nav-height,88px)}
  .header--layout-centered-stack .header-inner{min-height:max(126px,calc(var(--tb-nav-height,88px) + 38px))}
}
@media(max-width:980px){
  .header-inner{height:var(--tb-nav-mobile-height,78px)}
  .nav{top:var(--tb-nav-mobile-height,78px)}
}


/* ==========================================================
   V2.7.5 Trust Strip design system
   ========================================================== */
.home-premium .trust-strip,
.trust-strip{
  --trust-surface:#fff;
  --trust-outer-bg:var(--cream);
  position:relative;
  background:var(--trust-outer-bg);
  border:0;
}
.trust-strip .trust-grid{
  width:min(calc(100% - 40px),var(--container));
  margin-inline:auto;
  display:grid;
  grid-template-columns:repeat(var(--trust-columns,4),minmax(0,1fr));
  background:var(--trust-surface);
  border:1px solid color-mix(in srgb,var(--brand-border) 92%,transparent);
  overflow:hidden;
}
.home-premium .trust-strip--floating{
  background:var(--trust-outer-bg);
  pointer-events:none;
}
.home-premium .trust-strip--floating .trust-grid{
  background:var(--trust-surface);
  pointer-events:auto;
}
.home-premium .trust-strip--standalone{background:var(--trust-outer-bg);border:0}
/* Contained and Wide intentionally expose the outer rail. Force that rail to
   the resolved following-section surface so older white floating-strip rules
   cannot leak through at either edge. */
.home-premium .trust-strip--floating.trust-width--contained,
.home-premium .trust-strip--floating.trust-width--wide,
.trust-strip--floating.trust-width--contained,
.trust-strip--floating.trust-width--wide{background:var(--trust-outer-bg)!important}

/* Width is independent from visual template. */
.trust-strip.trust-width--wide .trust-grid{width:min(calc(100% - 40px),1440px)}
.trust-strip.trust-width--full .trust-grid{width:100%;max-width:none;border-left:0;border-right:0}

/* Shared content treatment. */
.trust-strip .trust-item{
  min-width:0;
  min-height:112px;
  padding:26px 28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border:0;
  position:relative;
}
.home-premium .trust-strip .trust-item{min-height:112px;padding:26px 28px}
.trust-strip .trust-item-copy{min-width:0}
.trust-strip .trust-item strong{display:block;font-size:1.02rem;line-height:1.25;letter-spacing:-.025em}
.trust-strip .trust-item span{display:block;font-size:.76rem;line-height:1.5;margin-top:7px}
.trust-strip.trust-align--centre .trust-item{text-align:center;align-items:center}
.trust-strip.trust-align--centre .trust-item--with-icon{grid-template-columns:1fr!important;justify-items:center;text-align:center;gap:10px}
.trust-strip.trust-align--centre .trust-item-icon{justify-content:center}

/* Automatic/manual text contrast. */
.trust-strip.trust-text--dark{color:var(--brand-heading)}
.trust-strip.trust-text--dark .trust-item strong{color:var(--brand-heading)}
.trust-strip.trust-text--dark .trust-item span{color:var(--brand-muted)}
.trust-strip.trust-text--light{color:#fff}
.trust-strip.trust-text--light .trust-item strong{color:#fff}
.trust-strip.trust-text--light .trust-item span{color:rgba(255,255,255,.76)}

/* Divider strength follows the chosen surface instead of hard-coding white/grey. */
.trust-strip.trust-dividers--subtle{--trust-divider:color-mix(in srgb,currentColor 15%,transparent);--trust-divider-width:1px}
.trust-strip.trust-dividers--strong{--trust-divider:color-mix(in srgb,currentColor 27%,transparent);--trust-divider-width:1px}
.trust-strip.trust-dividers--none{--trust-divider:transparent;--trust-divider-width:0px}
.trust-strip .trust-item:not(:last-child)::after{
  content:"";
  position:absolute;
  top:20%;bottom:20%;right:0;
  width:var(--trust-divider-width,1px);
  background:var(--trust-divider,var(--brand-border));
}

/* Classic Cards — legacy structure with a controlled surface. */
.trust-layout--classic .trust-grid{box-shadow:var(--premium-shadow)}

/* Minimal — no card chrome; typography and separators do the work. */
.trust-layout--minimal .trust-grid{border:0;box-shadow:none;background:var(--trust-surface)}
.trust-layout--minimal .trust-item{min-height:98px;padding-block:22px}

/* Icon + Text — slightly more generous for visual markers. */
.trust-layout--icon-grid .trust-item{min-height:120px}
.trust-layout--icon-grid .trust-item--with-icon{grid-template-columns:auto minmax(0,1fr)!important;gap:16px}
.trust-layout--icon-grid .trust-item-icon{align-self:center}
.trust-layout--icon-grid .trust-item-icon .tb-icon{filter:drop-shadow(0 5px 12px color-mix(in srgb,currentColor 12%,transparent))}

/* Premium Centre — restrained, centred and spacious. */
.trust-layout--premium-centre .trust-grid{box-shadow:0 22px 65px color-mix(in srgb,var(--brand-primary) 10%,transparent)}
.trust-layout--premium-centre .trust-item{min-height:132px;padding:30px 26px;text-align:center;align-items:center}
.trust-layout--premium-centre .trust-item strong{font-size:1.08rem}
.trust-layout--premium-centre .trust-item span{max-width:260px}
.trust-layout--premium-centre .trust-item--with-icon{grid-template-columns:1fr!important;justify-items:center;gap:10px}
.trust-layout--premium-centre .trust-item-icon{justify-content:center}

/* Feature Band — strongest full-width/coloured option. */
.trust-layout--feature-band .trust-grid{box-shadow:none;border-top:0;border-bottom:0}
.trust-layout--feature-band .trust-item{min-height:104px;padding-block:22px}
.trust-layout--feature-band .trust-item strong{text-transform:none;font-weight:850}
.trust-layout--feature-band.trust-width--contained .trust-grid,
.trust-layout--feature-band.trust-width--wide .trust-grid{box-shadow:0 18px 48px color-mix(in srgb,var(--brand-primary) 10%,transparent)}

/* Highlight Cards — individual elevated tiles over the blending outer rail. */
.trust-layout--highlight-cards .trust-grid{
  background:transparent;
  border:0;
  box-shadow:none;
  gap:12px;
  overflow:visible;
}
.trust-layout--highlight-cards .trust-item{
  background:var(--trust-surface);
  border:1px solid color-mix(in srgb,var(--brand-border) 85%,transparent);
  box-shadow:0 14px 38px color-mix(in srgb,var(--brand-primary) 9%,transparent);
}
.trust-layout--highlight-cards .trust-item::after{display:none}
.trust-layout--highlight-cards.trust-width--full .trust-grid{padding-inline:20px}

/* Responsive rules are template-safe and deliberately avoid squeezed four-column copy. */
@media(max-width:1100px){
  .trust-strip .trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .trust-strip .trust-item:nth-child(2n)::after{display:none}
  .trust-strip .trust-item:nth-child(-n+2){border-bottom:var(--trust-divider-width,1px) solid var(--trust-divider,var(--brand-border))}
  .trust-layout--highlight-cards .trust-item{border-bottom:1px solid color-mix(in srgb,var(--brand-border) 85%,transparent)!important}
}
@media(max-width:680px){
  .home-premium .trust-strip--floating{margin-top:0;margin-bottom:0}
  .trust-strip .trust-grid,
  .trust-strip.trust-width--wide .trust-grid{width:min(calc(100% - 28px),var(--container))}
  .trust-strip.trust-width--full .trust-grid{width:100%}
  .trust-strip .trust-grid{grid-template-columns:1fr!important}
  .trust-strip .trust-item,
  .home-premium .trust-strip .trust-item{min-height:auto;padding:22px 20px}
  .trust-strip .trust-item::after{display:none!important}
  .trust-strip .trust-item:not(:last-child){border-bottom:var(--trust-divider-width,1px) solid var(--trust-divider,var(--brand-border))}
  .trust-layout--premium-centre .trust-item{padding-block:25px}
  .trust-layout--highlight-cards .trust-grid{gap:10px}
  .trust-layout--highlight-cards .trust-item{border-bottom:1px solid color-mix(in srgb,var(--brand-border) 85%,transparent)!important}
  .trust-layout--highlight-cards.trust-width--full .trust-grid{padding-inline:14px}
}

/* ==========================================================
   V2.7.7 Trust Strip hero-spacing presets
   Default keeps the legacy -34px desktop overlap exactly. Alternative
   presets use a restrained spacing scale and collapse safely on smaller
   viewports rather than allowing aggressive mobile overlap.
   ========================================================== */
@media(min-width:981px){
  .home-premium .trust-strip--floating.trust-spacing--compact{margin-top:-50px;padding-top:0}
  .home-premium .trust-strip--floating.trust-spacing--default{margin-top:-34px;padding-top:0}
  .home-premium .trust-strip--floating.trust-spacing--relaxed{margin-top:-18px;padding-top:0}
  .home-premium .trust-strip--floating.trust-spacing--spacious{margin-top:0;padding-top:16px}
}
@media(max-width:980px){
  .home-premium .trust-strip--floating.trust-spacing--compact,
  .home-premium .trust-strip--floating.trust-spacing--default{margin-top:0;padding-top:0}
  .home-premium .trust-strip--floating.trust-spacing--relaxed{margin-top:0;padding-top:12px}
  .home-premium .trust-strip--floating.trust-spacing--spacious{margin-top:0;padding-top:20px}
}



/* ==========================================================
   V2.8.0 — Global Image Treatment
   Non-destructive brand colour layer for photography only.
   ========================================================== */
.tb-image-treatment-overlay{
  position:absolute;
  inset:0;
  display:block;
  pointer-events:none;
  background:var(--tb-image-treatment-color,var(--brand-primary));
  opacity:var(--tb-image-treatment-opacity,.2);
  z-index:1;
}
.tb-image-treatment--standard{mix-blend-mode:normal}
.tb-image-treatment--tint{mix-blend-mode:color}
.tb-image-frame-surface>.tb-image-treatment-overlay{z-index:1}
.hero-bg>.tb-image-treatment-overlay{z-index:0}
.hero-media>.tb-image-treatment-overlay{z-index:1}
.hero-media::before{z-index:2}
.hero-image-finish-treatment{z-index:2}
.inner-hero>.tb-inner-hero-treatment{z-index:0}
.inner-hero-image::before{z-index:1}
.inner-hero-image>.container{z-index:2}
.cta>.tb-cta-treatment{z-index:-2}
.service-image-card>.tb-service-card-treatment{z-index:-2}
.services-editorial-image>.tb-service-editorial-treatment{z-index:0}
.services-editorial-image::after{z-index:1}
.service-alternating-media>.tb-image-treatment-overlay,
.service-accordion-media>.tb-image-treatment-overlay,
.services-page-alternating-media>.tb-image-treatment-overlay,
.services-page-editorial-media>.tb-image-treatment-overlay,
.services-page-image-card-media>.tb-image-treatment-overlay,
.services-page-feature-media>.tb-image-treatment-overlay{z-index:1}
.service-alternating-media,.service-accordion-media,
.services-page-alternating-media,.services-page-editorial-media,
.services-page-image-card-media,.services-page-feature-media,
.why-bg-media{position:relative;isolation:isolate}
.service-alternating-media::after{z-index:2}
.tb-project-media{position:relative;isolation:isolate;overflow:hidden}
.tb-project-media>.tb-project-treatment{z-index:1}
.project>.tb-project-media{height:100%}
.home-premium .project>.tb-project-media img{height:100%}
.project .project-caption{z-index:2}
.why-bg-media>.tb-why-treatment{z-index:0}


/* ==========================================================
   V2.9.0 Premium Top-Level Navigation Effects & Separators
   Explicit .nav-top-* scoping prevents any effect leaking into
   standard dropdown or mega-menu links/cards.
   ========================================================== */
@media(min-width:981px){
  /* V2.9.1: mega-menu parents must remain position:static. The full-width
     Editorial panel is intentionally positioned against the header/viewport,
     not against the Services trigger. */
  .nav>.nav-top-item{flex:0 0 auto}
  .nav>.nav-top-item:not(.has-mega-menu){position:relative}
  .nav>.has-mega-menu.nav-top-item{position:static}
  .nav-top-link{position:relative;display:inline-flex!important;align-items:center;min-height:38px;isolation:isolate;transition:color var(--tb-nav-motion-duration,0ms) ease,transform var(--tb-nav-motion-duration,0ms) cubic-bezier(.22,1,.36,1),opacity var(--tb-nav-motion-duration,0ms) ease,background-color var(--tb-nav-motion-duration,0ms) ease!important}
  .nav-label{position:relative;display:inline-block;z-index:1}
  .nav-parent{position:relative}
  .nav-parent .nav-top-link{min-height:38px}

  /* Separator colour automatically inherits the current nav surface when requested. */
  .nav>.nav-top-item+.nav-top-item::before{position:absolute;left:-12px;top:50%;z-index:3;pointer-events:none;color:var(--tb-nav-separator-color,currentColor);opacity:var(--tb-nav-separator-opacity,.17)}
  .header--nav-separator-fine-vertical .nav>.nav-top-item+.nav-top-item::before{content:"";width:1px;height:24px;background:var(--tb-nav-separator-color,currentColor);transform:translateY(-50%)}
  .header--nav-separator-short-vertical .nav>.nav-top-item+.nav-top-item::before{content:"";width:1px;height:13px;background:var(--tb-nav-separator-color,currentColor);transform:translateY(-50%)}
  .header--nav-separator-accent-vertical .nav>.nav-top-item+.nav-top-item::before{content:"";width:1px;height:15px;background:var(--brand-accent);opacity:.32;transform:translateY(-50%)}
  .header--nav-separator-centre-dot .nav>.nav-top-item+.nav-top-item::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--tb-nav-separator-color,currentColor);transform:translate(-1px,-50%)}
  .header--nav-separator-micro-diamond .nav>.nav-top-item+.nav-top-item::before{content:"";width:5px;height:5px;background:var(--tb-nav-separator-color,currentColor);transform:translate(-1px,-50%) rotate(45deg)}
  .header--nav-separator-fine-slash .nav>.nav-top-item+.nav-top-item::before{content:"/";width:auto;height:auto;background:none;font-size:.72em;font-weight:500;line-height:1;transform:translate(-2px,-50%) rotate(-5deg)}
  .header--nav-separator-accent-tick .nav>.nav-top-item+.nav-top-item::before{content:"";width:1px;height:10px;background:var(--brand-accent);opacity:.38;transform:translate(-1px,-50%) rotate(20deg)}
  .header--nav-separator-wide-spacing .nav{gap:34px}
  .header--nav-separator-strength-standard.header--nav-separator-wide-spacing .nav{gap:38px}
  .header--nav-separator-strength-strong.header--nav-separator-wide-spacing .nav{gap:42px}
  .header--nav-separator-grouped-ends .nav{border-inline:1px solid color-mix(in srgb,var(--tb-nav-separator-color,currentColor) 17%,transparent);padding-inline:18px}
  .header--nav-separator-strength-standard.header--nav-separator-grouped-ends .nav{border-inline-color:color-mix(in srgb,var(--tb-nav-separator-color,currentColor) 28%,transparent)}
  .header--nav-separator-strength-strong.header--nav-separator-grouped-ends .nav{border-inline-color:color-mix(in srgb,var(--tb-nav-separator-color,currentColor) 46%,transparent)}
  .header--nav-separator-strength-standard.header--nav-separator-accent-vertical .nav>.nav-top-item+.nav-top-item::before{opacity:.46}
  .header--nav-separator-strength-strong.header--nav-separator-accent-vertical .nav>.nav-top-item+.nav-top-item::before{opacity:.64}
  .header--nav-separator-strength-standard.header--nav-separator-accent-tick .nav>.nav-top-item+.nav-top-item::before{opacity:.52}
  .header--nav-separator-strength-strong.header--nav-separator-accent-tick .nav>.nav-top-item+.nav-top-item::before{opacity:.70}

  /* Mega-menu triggers stay position:static so their full-width panels remain
     viewport-contained. Draw the trigger's separator on .nav-parent instead. */
  .nav>.nav-top-item+.has-mega-menu::before{display:none!important}
  .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{position:absolute;left:-12px;top:50%;z-index:3;pointer-events:none;color:var(--tb-nav-separator-color,currentColor);opacity:var(--tb-nav-separator-opacity,.17)}
  .header--nav-separator-fine-vertical .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{content:"";width:1px;height:24px;background:var(--tb-nav-separator-color,currentColor);transform:translateY(-50%)}
  .header--nav-separator-short-vertical .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{content:"";width:1px;height:13px;background:var(--tb-nav-separator-color,currentColor);transform:translateY(-50%)}
  .header--nav-separator-accent-vertical .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{content:"";width:1px;height:15px;background:var(--brand-accent);opacity:.32;transform:translateY(-50%)}
  .header--nav-separator-centre-dot .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--tb-nav-separator-color,currentColor);transform:translate(-1px,-50%)}
  .header--nav-separator-micro-diamond .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{content:"";width:5px;height:5px;background:var(--tb-nav-separator-color,currentColor);transform:translate(-1px,-50%) rotate(45deg)}
  .header--nav-separator-fine-slash .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{content:"/";width:auto;height:auto;background:none;font-size:.72em;font-weight:500;line-height:1;transform:translate(-2px,-50%) rotate(-5deg)}
  .header--nav-separator-accent-tick .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{content:"";width:1px;height:10px;background:var(--brand-accent);opacity:.38;transform:translate(-1px,-50%) rotate(20deg)}
  .header--nav-separator-strength-standard.header--nav-separator-accent-vertical .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{opacity:.46}
  .header--nav-separator-strength-strong.header--nav-separator-accent-vertical .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{opacity:.64}
  .header--nav-separator-strength-standard.header--nav-separator-accent-tick .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{opacity:.52}
  .header--nav-separator-strength-strong.header--nav-separator-accent-tick .nav>.nav-top-item+.has-mega-menu>.nav-parent::before{opacity:.70}

  /* Glass surfaces get a small contrast assist because blur softens 1px details. */
  .header--style-glass:not(.header-scrolled),.header--style-glass-dark:not(.header-scrolled){--tb-nav-separator-opacity:.30}

  /* Shared hover/current state. Services retains the state while its submenu is open. */
  .header:not(.header--nav-hover-classic-colour) .nav-top-link:hover,
  .header:not(.header--nav-hover-classic-colour) .nav-top-link:focus-visible,
  .header:not(.header--nav-hover-classic-colour) .nav-top-link.active,
  .header:not(.header--nav-hover-classic-colour) .nav-item.active>.nav-parent .nav-top-link,
  .header:not(.header--nav-hover-classic-colour) .nav-item.submenu-open>.nav-parent .nav-top-link{color:var(--tb-nav-fx-color,currentColor)!important}
  .header:not(.header--nav-hover-classic-colour) .nav-parent:hover .submenu-toggle,
  .header:not(.header--nav-hover-classic-colour) .nav-parent:focus-within .submenu-toggle,
  .header:not(.header--nav-hover-classic-colour) .nav-item.active>.nav-parent .submenu-toggle,
  .header:not(.header--nav-hover-classic-colour) .nav-item.submenu-open>.nav-parent .submenu-toggle{color:var(--tb-nav-fx-color,currentColor)!important}

  /* Classic stays intentionally equivalent to the historical colour-only state. */
  .header--nav-hover-classic-colour .nav-top-link:hover,
  .header--nav-hover-classic-colour .nav-top-link:focus-visible,
  .header--nav-hover-classic-colour .nav-top-link.active,
  .header--nav-hover-classic-colour .nav-item.active>.nav-parent .nav-top-link,
  .header--nav-hover-classic-colour .nav-item.submenu-open>.nav-parent .nav-top-link{color:var(--tb-nav-fx-color,var(--brand-accent))!important}
  .header--nav-hover-classic-colour .nav-parent:hover .submenu-toggle,
  .header--nav-hover-classic-colour .nav-parent:focus-within .submenu-toggle,
  .header--nav-hover-classic-colour .nav-item.active>.nav-parent .submenu-toggle,
  .header--nav-hover-classic-colour .nav-item.submenu-open>.nav-parent .submenu-toggle{color:var(--tb-nav-fx-color,var(--brand-accent))!important}

  /* Underline Reveal */
  .header--nav-hover-underline-reveal .nav-label::after,
  .header--nav-hover-underline-centre .nav-label::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1.5px;background:var(--tb-nav-fx-color,currentColor);transform-origin:left center;transform:scaleX(0);transition:transform var(--tb-nav-motion-duration,0ms) cubic-bezier(.22,1,.36,1)}
  .header--nav-hover-underline-reveal .nav-top-link:hover .nav-label::after,
  .header--nav-hover-underline-reveal .nav-top-link:focus-visible .nav-label::after,
  .header--nav-hover-underline-reveal .nav-top-link.active .nav-label::after,
  .header--nav-hover-underline-reveal .nav-item.active>.nav-parent .nav-label::after,
  .header--nav-hover-underline-reveal .nav-item.submenu-open>.nav-parent .nav-label::after{transform:scaleX(1)}

  /* Underline Centre */
  .header--nav-hover-underline-centre .nav-label::after{transform-origin:center center}
  .header--nav-hover-underline-centre .nav-top-link:hover .nav-label::after,
  .header--nav-hover-underline-centre .nav-top-link:focus-visible .nav-label::after,
  .header--nav-hover-underline-centre .nav-top-link.active .nav-label::after,
  .header--nav-hover-underline-centre .nav-item.active>.nav-parent .nav-label::after,
  .header--nav-hover-underline-centre .nav-item.submenu-open>.nav-parent .nav-label::after{transform:scaleX(1)}

  /* Accent Dot */
  .header--nav-hover-accent-dot .nav-label::after{content:"";position:absolute;left:50%;bottom:-8px;width:4px;height:4px;border-radius:50%;background:var(--tb-nav-fx-color,currentColor);opacity:0;transform:translate(-50%,3px) scale(.65);transition:opacity var(--tb-nav-motion-duration,0ms) ease,transform var(--tb-nav-motion-duration,0ms) cubic-bezier(.22,1,.36,1)}
  .header--nav-hover-accent-dot .nav-top-link:hover .nav-label::after,
  .header--nav-hover-accent-dot .nav-top-link:focus-visible .nav-label::after,
  .header--nav-hover-accent-dot .nav-top-link.active .nav-label::after,
  .header--nav-hover-accent-dot .nav-item.active>.nav-parent .nav-label::after,
  .header--nav-hover-accent-dot .nav-item.submenu-open>.nav-parent .nav-label::after{opacity:1;transform:translate(-50%,0) scale(1)}

  /* Soft Highlight / Premium Pill */
  .header--nav-hover-soft-highlight .nav-top-link,
  .header--nav-hover-premium-pill .nav-top-link{padding:7px 10px;margin:-7px -10px;border-radius:7px}
  .header--nav-hover-premium-pill .nav-top-link{padding-inline:13px;margin-inline:-13px;border-radius:999px}
  .header--nav-hover-soft-highlight .nav-top-link:hover,
  .header--nav-hover-soft-highlight .nav-top-link:focus-visible,
  .header--nav-hover-soft-highlight .nav-top-link.active,
  .header--nav-hover-soft-highlight .nav-item.active>.nav-parent .nav-top-link,
  .header--nav-hover-soft-highlight .nav-item.submenu-open>.nav-parent .nav-top-link{background:color-mix(in srgb,var(--tb-nav-fx-color,currentColor) 9%,transparent)}
  .header--nav-hover-premium-pill .nav-top-link:hover,
  .header--nav-hover-premium-pill .nav-top-link:focus-visible,
  .header--nav-hover-premium-pill .nav-top-link.active,
  .header--nav-hover-premium-pill .nav-item.active>.nav-parent .nav-top-link,
  .header--nav-hover-premium-pill .nav-item.submenu-open>.nav-parent .nav-top-link{background:color-mix(in srgb,var(--tb-nav-fx-color,currentColor) 13%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tb-nav-fx-color,currentColor) 14%,transparent)}
  .header--nav-hover-soft-highlight .nav-parent:hover,
  .header--nav-hover-premium-pill .nav-parent:hover{border-radius:999px}

  /* Text Lift */
  .header--nav-hover-text-lift .nav-top-link:hover,
  .header--nav-hover-text-lift .nav-top-link:focus-visible,
  .header--nav-hover-text-lift .nav-item.submenu-open>.nav-parent .nav-top-link{transform:translateY(-2px)}

  /* Accent Bracket — pseudo elements stay on .nav-label so top-item separators remain independent. */
  .header--nav-hover-accent-bracket .nav-label::before,
  .header--nav-hover-accent-bracket .nav-label::after{position:absolute;top:50%;color:var(--tb-nav-fx-color,currentColor);opacity:0;transition:opacity var(--tb-nav-motion-duration,0ms) ease,transform var(--tb-nav-motion-duration,0ms) cubic-bezier(.22,1,.36,1);font-weight:500}
  .header--nav-hover-accent-bracket .nav-label::before{content:"[";left:-9px;transform:translate(-3px,-52%)}
  .header--nav-hover-accent-bracket .nav-label::after{content:"]";right:-9px;transform:translate(3px,-52%)}
  .header--nav-hover-accent-bracket .nav-top-link:hover .nav-label::before,
  .header--nav-hover-accent-bracket .nav-top-link:focus-visible .nav-label::before,
  .header--nav-hover-accent-bracket .nav-top-link.active .nav-label::before,
  .header--nav-hover-accent-bracket .nav-item.active>.nav-parent .nav-label::before,
  .header--nav-hover-accent-bracket .nav-item.submenu-open>.nav-parent .nav-label::before{opacity:.72;transform:translate(0,-52%)}
  .header--nav-hover-accent-bracket .nav-top-link:hover .nav-label::after,
  .header--nav-hover-accent-bracket .nav-top-link:focus-visible .nav-label::after,
  .header--nav-hover-accent-bracket .nav-top-link.active .nav-label::after,
  .header--nav-hover-accent-bracket .nav-item.active>.nav-parent .nav-label::after,
  .header--nav-hover-accent-bracket .nav-item.submenu-open>.nav-parent .nav-label::after{opacity:.72;transform:translate(0,-52%)}

  /* Background Sweep */
  .header--nav-hover-background-sweep .nav-label{background-image:linear-gradient(90deg,color-mix(in srgb,var(--tb-nav-fx-color,currentColor) 12%,transparent),color-mix(in srgb,var(--tb-nav-fx-color,currentColor) 12%,transparent));background-repeat:no-repeat;background-position:0 100%;background-size:0 100%;padding:4px 2px;margin:-4px -2px;transition:background-size var(--tb-nav-motion-duration,0ms) cubic-bezier(.22,1,.36,1)}
  .header--nav-hover-background-sweep .nav-top-link:hover .nav-label,
  .header--nav-hover-background-sweep .nav-top-link:focus-visible .nav-label,
  .header--nav-hover-background-sweep .nav-top-link.active .nav-label,
  .header--nav-hover-background-sweep .nav-item.active>.nav-parent .nav-label,
  .header--nav-hover-background-sweep .nav-item.submenu-open>.nav-parent .nav-label{background-size:100% 100%}

  /* Minimal Fade de-emphasises peers instead of adding decoration. */
  .header--nav-hover-minimal-fade .nav:has(.nav-top-link:hover) .nav-top-link:not(:hover),
  .header--nav-hover-minimal-fade .nav:has(.nav-top-link:focus-visible) .nav-top-link:not(:focus-visible){opacity:.48}

  /* Sliding Line: JS updates --tb-nav-slide-left/width and returns to the active page on leave. */
  .header--nav-hover-sliding-line .nav{position:relative}
  .header--nav-hover-sliding-line .nav::after{content:"";position:absolute;left:0;bottom:-7px;width:var(--tb-nav-slide-width,0px);height:1.5px;background:var(--tb-nav-fx-color,currentColor);opacity:var(--tb-nav-slide-visible,0);transform:translateX(var(--tb-nav-slide-left,0px));transition:transform var(--tb-nav-motion-duration,0ms) cubic-bezier(.22,1,.36,1),width var(--tb-nav-motion-duration,0ms) cubic-bezier(.22,1,.36,1),opacity 120ms ease;pointer-events:none}
}

@media(max-width:980px){
  /* Mobile uses the established tap/active treatment; desktop decoration never leaks into the stacked menu. */
  .nav>.nav-top-item::before,.nav>.nav-top-item::after,.nav-label::before,.nav-label::after{display:none!important}
  .nav-top-link{transform:none!important;opacity:1!important;background:none!important;box-shadow:none!important;margin:0!important;padding:0!important}
  .header--nav-separator-grouped-ends .nav{border-inline:0!important;padding-inline:0!important}
  .header--nav-separator-wide-spacing .nav{gap:0!important}
}
@media(prefers-reduced-motion:reduce){
  .nav-top-link,.nav-label,.nav-label::before,.nav-label::after,.header--nav-hover-sliding-line .nav::after{transition:none!important;transform:none}
  .header--nav-hover-text-lift .nav-top-link:hover,.header--nav-hover-text-lift .nav-top-link:focus-visible{transform:none!important}
}

/* ================================================================
   V2.12.14 — Header CTA Font Weight
   The navigation CTA may inherit Button Design, match the menu weight,
   or use an explicit weight without changing other primary buttons.
   ================================================================ */
.header .header-cta{
  font-weight:var(--header-cta-font-weight,var(--tb-btn-primary-weight,850))!important;
}


/* ==========================================================
   V2.15.0 Case Studies — controlled long-form showcase pages
   ========================================================== */
.project--linked,.project-detail--linked{display:block;color:inherit;text-decoration:none}
.project-case-link{margin-top:9px!important;color:#fff!important;font-size:.67rem!important;font-weight:850!important;letter-spacing:.02em}
.project-detail--linked{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.project-detail--linked:hover{transform:translateY(-3px);box-shadow:0 18px 46px color-mix(in srgb,var(--brand-dark) 10%,transparent);border-color:color-mix(in srgb,var(--brand-accent) 40%,var(--line))}
.project-detail-link{display:inline-block;margin-top:16px;color:var(--brand-accent);font-size:.76rem;font-weight:900}

.case-study-page{overflow:hidden}
.case-study-section{position:relative}
.case-study-spacing--compact{padding:clamp(48px,6vw,76px) 0}
.case-study-spacing--standard{padding:clamp(72px,8vw,118px) 0}
.case-study-spacing--spacious{padding:clamp(96px,10vw,156px) 0}
.case-study-section.case-study-no-top{padding-top:0}
.case-study-section.case-study-no-bottom{padding-bottom:0}
.case-study-bg-white{background:#fff;color:var(--brand-body)}
.case-study-bg-light{background:color-mix(in srgb,var(--brand-light) 88%,#fff);color:var(--brand-body)}
.case-study-bg-dark{background:var(--brand-dark);color:#fff}
.case-study-bg-brand{background:var(--brand-primary);color:#fff}
.case-study-bg-dark h2,.case-study-bg-dark h3,.case-study-bg-brand h2,.case-study-bg-brand h3{color:#fff}
.case-study-bg-dark .prose p,.case-study-bg-dark p,.case-study-bg-brand .prose p,.case-study-bg-brand p{color:rgba(255,255,255,.76)}
.case-study-bg-dark .eyebrow,.case-study-bg-brand .eyebrow{color:var(--brand-accent)}
.case-study-align--center{text-align:center}.case-study-align--center .prose{margin-left:auto;margin-right:auto}.case-study-align--center .case-study-cta-buttons{justify-content:center}

.case-study-split{display:grid;grid-template-columns:var(--cs-copy,1fr) var(--cs-media,1fr);gap:clamp(44px,7vw,96px);align-items:center}
.case-study-v-align--top{align-items:start}.case-study-v-align--center{align-items:center}
.case-study-split--text-only{grid-template-columns:minmax(0,820px);justify-content:start}
.case-study-image--left{grid-template-columns:var(--cs-media,1fr) var(--cs-copy,1fr)}
.case-study-image--left .case-study-split-copy{order:2}.case-study-image--left .case-study-split-media{order:1}
.case-study-split-copy h2,.case-study-copy h2,.case-study-section-intro h2,.case-study-inline-cta h2{margin:0;color:var(--brand-heading);font-size:clamp(2.15rem,4.2vw,4rem);line-height:1;letter-spacing:-.055em}
.case-study-bg-dark .case-study-split-copy h2,.case-study-bg-brand .case-study-split-copy h2,.case-study-bg-dark .case-study-copy h2,.case-study-bg-brand .case-study-copy h2,.case-study-bg-dark .case-study-section-intro h2,.case-study-bg-brand .case-study-section-intro h2,.case-study-bg-dark .case-study-inline-cta h2,.case-study-bg-brand .case-study-inline-cta h2{color:#fff}
.case-study-split-copy .prose,.case-study-copy .prose,.case-study-section-intro .prose,.case-study-inline-cta .prose{margin-top:25px}
.case-study-split-copy .prose p,.case-study-copy .prose p,.case-study-section-intro .prose p,.case-study-inline-cta .prose p{font-size:.98rem;line-height:1.86;color:var(--brand-muted)}
.case-study-split-media{position:relative;min-height:440px}.case-study-split-media .case-study-frame,.case-study-split-media img{width:100%;height:100%;min-height:440px;object-fit:cover}
.case-study-copy--narrow{max-width:780px}.case-study-copy--standard{max-width:960px}.case-study-copy--wide{max-width:1180px}
.case-study-copy.case-study-align--center{margin-left:auto;margin-right:auto}.case-study-copy.case-study-align--center .prose{max-width:900px}

.case-study-showcase{margin:0 auto}.case-study-showcase--small{width:min(320px,calc(100% - 48px))}.case-study-showcase--medium{width:min(560px,calc(100% - 48px))}.case-study-showcase--contained{width:min(1180px,calc(100% - 48px))}.case-study-showcase--wide{width:min(1500px,calc(100% - 36px))}.case-study-showcase--full{width:100%}
.case-study-showcase-media{position:relative;overflow:hidden;background:var(--brand-dark)}
.case-study-showcase img{display:block;width:100%;height:auto;max-height:min(78vh,900px);object-fit:cover}
.case-study-showcase--full img{max-height:min(82vh,980px)}
@media(min-width:1025px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .case-study-showcase-media--scroll{background-image:var(--case-study-scroll-image);background-position:var(--case-study-scroll-position,center center);background-repeat:no-repeat;background-size:cover;background-attachment:fixed}
  .case-study-showcase-media--scroll>img{opacity:0}
}
.case-study-aspect--16-9 .case-study-showcase-media,.case-study-split-media.case-study-aspect--16-9{aspect-ratio:16/9}.case-study-aspect--21-9 .case-study-showcase-media{aspect-ratio:21/9}.case-study-aspect--4-3 .case-study-showcase-media,.case-study-split-media.case-study-aspect--4-3{aspect-ratio:4/3}.case-study-split-media.case-study-aspect--4-5{aspect-ratio:4/5}
.case-study-aspect--16-9 .case-study-showcase-media img,.case-study-aspect--21-9 .case-study-showcase-media img,.case-study-aspect--4-3 .case-study-showcase-media img,.case-study-split-media[class*="case-study-aspect--"] .case-study-frame,.case-study-split-media[class*="case-study-aspect--"] img{width:100%;height:100%;max-height:none;min-height:0;object-fit:cover}
.case-study-showcase figcaption{width:min(1180px,calc(100% - 48px));margin:12px auto 0;color:var(--brand-muted);font-size:.75rem;line-height:1.6}
.case-study-bg-dark .case-study-showcase figcaption,.case-study-bg-brand .case-study-showcase figcaption{color:rgba(255,255,255,.68)}

.case-study-stack-main{display:grid;gap:clamp(38px,5.5vw,72px)}
.case-study-stack-top-group{display:grid;gap:clamp(14px,2vw,24px);width:100%}
.case-study-stack-top{width:100%;position:relative}
.case-study-stack-main.case-study-align--center .case-study-stack-top{margin-left:auto;margin-right:auto}
.case-study-stack-top--small{max-width:320px}.case-study-stack-top--medium{max-width:560px}.case-study-stack-top--large{max-width:840px}.case-study-stack-top--full{max-width:1180px}
.case-study-stack-media{position:relative;overflow:hidden}.case-study-stack-media img{display:block;width:100%;height:auto;object-fit:contain}
.case-study-stack-top.case-study-aspect--16-9 .case-study-stack-media{aspect-ratio:16/9}.case-study-stack-top.case-study-aspect--4-3 .case-study-stack-media{aspect-ratio:4/3}
.case-study-stack-top.case-study-aspect--16-9 .case-study-stack-media img,.case-study-stack-top.case-study-aspect--4-3 .case-study-stack-media img{width:100%;height:100%;object-fit:cover}
.case-study-stack-copy{width:100%}
.case-study-stack-bottom{margin-top:clamp(46px,6.5vw,88px)}
.case-study-stack-bottom.case-study-aspect--auto .case-study-showcase-media{background:transparent}

.case-study-split-showcase{width:min(1600px,calc(100% - 36px));margin:0 auto;display:grid;grid-template-columns:minmax(0,var(--cs-showcase-left,45fr)) minmax(0,var(--cs-showcase-right,55fr));gap:clamp(10px,1.2vw,18px);align-items:stretch}
.case-study-split-showcase--reverse .case-study-split-showcase-left{order:2}.case-study-split-showcase--reverse .case-study-split-showcase-right{order:1}.case-study-split-showcase--single{grid-template-columns:minmax(0,1000px);justify-content:center}.case-study-split-showcase--single .case-study-split-showcase-left{order:initial}
.case-study-split-showcase-left{min-width:0;padding:clamp(22px,2.8vw,42px) clamp(28px,4vw,64px) 0;background:inherit;display:flex;flex-direction:column}.case-study-split-showcase-copy{width:100%;max-width:720px}.case-study-split-showcase.case-study-align--center .case-study-split-showcase-copy{margin-left:auto;margin-right:auto;text-align:center}.case-study-split-showcase-copy h2{margin:0;color:var(--brand-heading);font-size:clamp(2rem,3.5vw,3.65rem);line-height:1;letter-spacing:-.05em}.case-study-split-showcase-copy .prose{margin-top:clamp(18px,1.4vw,24px)}.case-study-split-showcase-copy .prose p{font-size:.98rem;line-height:1.82;color:var(--brand-muted)}.case-study-bg-dark .case-study-split-showcase-copy h2,.case-study-bg-brand .case-study-split-showcase-copy h2{color:#fff}.case-study-bg-dark .case-study-split-showcase-copy .prose p,.case-study-bg-brand .case-study-split-showcase-copy .prose p{color:rgba(255,255,255,.78)}
.case-study-split-showcase-logo{margin-bottom:clamp(22px,2vw,32px)}.case-study-split-showcase.case-study-align--center .case-study-split-showcase-logo{margin-left:auto;margin-right:auto}.case-study-split-showcase-logo img{display:block;width:100%;height:auto;object-fit:contain}.case-study-split-showcase-logo--small{max-width:190px}.case-study-split-showcase-logo--medium{max-width:285px}.case-study-split-showcase-logo--large{max-width:390px}
.case-study-split-showcase-main,.case-study-split-showcase-supporting figure,.case-study-split-showcase-right{margin:0;min-width:0}.case-study-split-showcase-main{margin-top:clamp(42px,3vw,52px);padding-top:0}.case-study-split-showcase-media{position:relative;overflow:hidden;background:color-mix(in srgb,var(--brand-dark) 88%,#000)}.case-study-split-showcase-media img{display:block;width:100%;height:100%;object-fit:cover}.case-study-split-showcase-aspect--auto .case-study-split-showcase-media img{height:auto;object-fit:contain}.case-study-split-showcase-aspect--square .case-study-split-showcase-media{aspect-ratio:1}.case-study-split-showcase-aspect--3-2 .case-study-split-showcase-media{aspect-ratio:3/2}.case-study-split-showcase-aspect--4-3 .case-study-split-showcase-media{aspect-ratio:4/3}.case-study-split-showcase-aspect--16-9 .case-study-split-showcase-media{aspect-ratio:16/9}
.case-study-split-showcase-supporting{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1vw,14px);margin-top:clamp(8px,1vw,14px)}.case-study-split-showcase-supporting--count-1{grid-template-columns:1fr}.case-study-split-showcase-supporting--count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study-split-showcase-supporting--count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.case-study-split-showcase-supporting--contain .case-study-split-showcase-media img{object-fit:contain}.case-study-split-showcase-supporting--square .case-study-split-showcase-media{aspect-ratio:1}.case-study-split-showcase-supporting--4-3 .case-study-split-showcase-media{aspect-ratio:4/3}.case-study-split-showcase-supporting--16-9 .case-study-split-showcase-media{aspect-ratio:16/9}
.case-study-split-showcase-right{height:100%;align-self:stretch}.case-study-split-showcase-right>.case-study-split-showcase-media{height:100%}.case-study-split-showcase-right--natural>.case-study-split-showcase-media{height:auto}.case-study-split-showcase-right--natural img{height:auto;object-fit:contain}.case-study-split-showcase-right--cover img{height:100%;min-height:100%;object-fit:cover}

.case-study-brand-showcase{display:grid;gap:clamp(34px,5vw,64px)}.case-study-brand-copy{max-width:840px}.case-study-brand-showcase.case-study-align--center .case-study-brand-copy{margin-left:auto;margin-right:auto}.case-study-brand-copy h2{margin:0;color:var(--brand-heading);font-size:clamp(2.15rem,4.2vw,4rem);line-height:1;letter-spacing:-.055em}.case-study-brand-copy .prose{margin-top:25px}.case-study-brand-copy .prose p{font-size:.98rem;line-height:1.86;color:var(--brand-muted)}.case-study-bg-dark .case-study-brand-copy h2,.case-study-bg-brand .case-study-brand-copy h2{color:#fff}.case-study-bg-dark .case-study-brand-copy .prose p,.case-study-bg-brand .case-study-brand-copy .prose p{color:rgba(255,255,255,.76)}.case-study-brand-asset{display:flex}.case-study-align--center .case-study-brand-asset{justify-content:center}.case-study-brand-media{position:relative;max-width:100%;overflow:hidden}.case-study-brand-media img{display:block;width:100%;height:auto;object-fit:contain}.case-study-brand-showcase--small .case-study-brand-media{width:min(360px,80vw)}.case-study-brand-showcase--medium .case-study-brand-media{width:min(720px,90vw)}.case-study-brand-showcase--large .case-study-brand-media{width:min(1120px,100%)}

.case-study-section-intro{max-width:850px;margin:0 0 clamp(34px,5vw,60px)}.case-study-section-intro .prose{max-width:760px}.case-study-section-intro h2{font-size:clamp(2rem,3.7vw,3.6rem)}
.case-study-gallery{display:grid;gap:clamp(14px,2vw,26px)}.case-study-gallery--two{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study-gallery--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.case-study-gallery--feature-left,.case-study-gallery--feature-right{grid-template-columns:1.45fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr))}.case-study-gallery--feature-right{grid-template-columns:1fr 1.45fr}
.case-study-gallery--feature-left .case-study-gallery-item:first-child,.case-study-gallery--feature-right .case-study-gallery-item:first-child{grid-row:1/3}.case-study-gallery--feature-right .case-study-gallery-item:first-child{grid-column:2}.case-study-gallery--feature-right .case-study-gallery-item:nth-child(2),.case-study-gallery--feature-right .case-study-gallery-item:nth-child(3){grid-column:1}
.case-study-gallery-item{margin:0;min-width:0}.case-study-gallery-media{position:relative;overflow:hidden;background:var(--brand-dark);aspect-ratio:4/3}.case-study-gallery--feature-left .case-study-gallery-item:first-child .case-study-gallery-media,.case-study-gallery--feature-right .case-study-gallery-item:first-child .case-study-gallery-media{height:100%;aspect-ratio:auto;min-height:520px}.case-study-gallery-media img{display:block;width:100%;height:100%;object-fit:cover}.case-study-gallery-item figcaption{margin-top:10px;font-size:.72rem;line-height:1.5;color:var(--brand-muted)}.case-study-bg-dark .case-study-gallery-item figcaption,.case-study-bg-brand .case-study-gallery-item figcaption{color:rgba(255,255,255,.65)}

.case-study-image-grid43{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(14px,1.8vw,24px)}.case-study-image-grid43-item{margin:0;min-width:0;grid-column:span 3}.case-study-image-grid43-item--bottom{grid-column:span 4}.case-study-image-grid43-media{position:relative;overflow:hidden;background:var(--brand-dark)}.case-study-image-grid43-media img{display:block;width:100%;height:100%;object-fit:cover}.case-study-image-grid43-top--square .case-study-image-grid43-item--top .case-study-image-grid43-media{aspect-ratio:1}.case-study-image-grid43-top--4-3 .case-study-image-grid43-item--top .case-study-image-grid43-media{aspect-ratio:4/3}.case-study-image-grid43-top--3-2 .case-study-image-grid43-item--top .case-study-image-grid43-media{aspect-ratio:3/2}.case-study-image-grid43-bottom--square .case-study-image-grid43-item--bottom .case-study-image-grid43-media{aspect-ratio:1}.case-study-image-grid43-bottom--4-3 .case-study-image-grid43-item--bottom .case-study-image-grid43-media{aspect-ratio:4/3}.case-study-image-grid43-bottom--3-2 .case-study-image-grid43-item--bottom .case-study-image-grid43-media{aspect-ratio:3/2}.case-study-image-grid43-bottom--16-9 .case-study-image-grid43-item--bottom .case-study-image-grid43-media{aspect-ratio:16/9}
.case-study-stacked-story{display:grid;gap:clamp(36px,4vw,58px)}.case-study-stacked-story-copy{width:100%}.case-study-stacked-story-copy h2{margin:0;color:var(--brand-heading);font-size:clamp(2rem,3.7vw,3.6rem);line-height:1;letter-spacing:-.045em}.case-study-stacked-story-copy .prose{margin-top:clamp(18px,1.8vw,28px)}.case-study-stacked-story-copy .prose p{font-size:.98rem;line-height:1.8;color:var(--brand-muted)}.case-study-stack-text--narrow{max-width:760px}.case-study-stack-text--standard{max-width:920px}.case-study-stack-text--wide{max-width:1120px}.case-study-stacked-story.case-study-align--center .case-study-stacked-story-copy{margin-left:auto;margin-right:auto}.case-study-bg-dark .case-study-stacked-story-copy h2,.case-study-bg-brand .case-study-stacked-story-copy h2{color:#fff}.case-study-bg-dark .case-study-stacked-story-copy .prose p,.case-study-bg-brand .case-study-stacked-story-copy .prose p{color:rgba(255,255,255,.76)}.case-study-stacked-story-images{display:grid}.case-study-stacked-story-images--contained{width:min(980px,100%);margin-left:auto;margin-right:auto}.case-study-stacked-story-images--wide{width:min(1280px,100%);margin-left:auto;margin-right:auto}.case-study-stacked-story-images--full{width:100%}.case-study-stacked-story-gap--compact{gap:12px}.case-study-stacked-story-gap--standard{gap:clamp(18px,2vw,30px)}.case-study-stacked-story-gap--spacious{gap:clamp(28px,3vw,48px)}.case-study-stacked-story-image{margin:0}.case-study-stacked-story-media{position:relative;overflow:hidden;background:var(--brand-dark)}.case-study-stacked-story-media img{display:block;width:100%;height:100%;object-fit:cover}.case-study-stacked-story-aspect--auto .case-study-stacked-story-media img{height:auto;object-fit:contain}.case-study-stacked-story-aspect--16-9 .case-study-stacked-story-media{aspect-ratio:16/9}.case-study-stacked-story-aspect--3-2 .case-study-stacked-story-media{aspect-ratio:3/2}.case-study-stacked-story-aspect--4-3 .case-study-stacked-story-media{aspect-ratio:4/3}

.case-study-grid-wrap{position:relative}.case-study-feature-grid,.case-study-results{display:grid;grid-template-columns:repeat(var(--case-study-cols,3),minmax(0,1fr));gap:clamp(16px,2.4vw,30px)}
.case-study-feature-wrap.case-study-align--center .case-study-section-intro{margin-left:auto;margin-right:auto;text-align:center}.case-study-feature-wrap.case-study-align--center .case-study-section-intro .prose{margin-left:auto;margin-right:auto}
.case-study-feature-card{padding:clamp(24px,3vw,38px);border:1px solid color-mix(in srgb,currentColor 13%,transparent);background:color-mix(in srgb,#fff 4%,transparent);min-height:230px}.case-study-bg-white .case-study-feature-card,.case-study-bg-light .case-study-feature-card{background:#fff;border-color:color-mix(in srgb,var(--brand-dark) 11%,transparent)}
.case-study-feature-marker{width:48px;height:48px;display:grid;place-items:center;margin-bottom:24px;color:var(--brand-accent);font-weight:900;font-size:.78rem;flex:0 0 auto}.case-study-feature-marker svg{width:100%;height:100%}.case-study-feature-card h3,.case-study-result-card h3{margin:0;color:var(--brand-heading);font-size:clamp(1.05rem,1.5vw,1.32rem);line-height:1.15}.case-study-feature-card p,.case-study-result-card p{margin:12px 0 0;color:var(--brand-muted);font-size:.87rem;line-height:1.7}.case-study-bg-dark .case-study-feature-card h3,.case-study-bg-brand .case-study-feature-card h3,.case-study-bg-dark .case-study-result-card h3,.case-study-bg-brand .case-study-result-card h3{color:#fff}
.case-study-feature-align--center .case-study-feature-card{text-align:center}.case-study-feature-align--center .case-study-feature-marker{margin-left:auto;margin-right:auto}
.case-study-feature-cards--none .case-study-feature-card{padding:0;border:0;background:transparent!important;min-height:0}
.case-study-feature-cards--minimal .case-study-feature-card{min-height:0;background:color-mix(in srgb,currentColor 2.5%,transparent);border-color:color-mix(in srgb,currentColor 10%,transparent)}.case-study-bg-white .case-study-feature-cards--minimal .case-study-feature-card,.case-study-bg-light .case-study-feature-cards--minimal .case-study-feature-card{background:color-mix(in srgb,var(--brand-dark) 2.5%,#fff);border-color:color-mix(in srgb,var(--brand-dark) 9%,transparent)}
.case-study-feature-size--small .case-study-feature-marker{width:36px;height:36px;margin-bottom:18px}.case-study-feature-size--small .case-study-feature-icon{width:24px!important;height:24px!important}
.case-study-feature-size--standard .case-study-feature-marker{width:48px;height:48px}.case-study-feature-size--standard .case-study-feature-icon{width:32px!important;height:32px!important}
.case-study-feature-size--large .case-study-feature-marker{width:66px;height:66px;margin-bottom:26px}.case-study-feature-size--large .case-study-feature-icon{width:56px!important;height:56px!important}
.case-study-feature-size--xlarge .case-study-feature-marker{width:86px;height:86px;margin-bottom:30px}.case-study-feature-size--xlarge .case-study-feature-icon{width:72px!important;height:72px!important}
.case-study-feature-size--oversized .case-study-feature-marker{width:112px;height:112px;margin-bottom:34px}.case-study-feature-size--oversized .case-study-feature-icon{width:96px!important;height:96px!important}
.case-study-feature-layout--horizontal .case-study-feature-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:clamp(16px,2vw,26px);align-content:start}.case-study-feature-layout--horizontal .case-study-feature-marker{grid-row:1/3;margin:0}.case-study-feature-layout--horizontal .case-study-feature-card p{grid-column:2}.case-study-feature-layout--horizontal.case-study-feature-align--center .case-study-feature-card{grid-template-columns:auto minmax(0,min(34rem,100%));justify-content:center;text-align:center}.case-study-feature-layout--horizontal.case-study-feature-align--center .case-study-feature-marker{margin:0}
.case-study-feature-layout--strip{gap:0}.case-study-feature-layout--strip .case-study-feature-card{min-height:0;border-radius:0}.case-study-feature-layout--strip.case-study-feature-cards--none .case-study-feature-card{padding:clamp(12px,2vw,28px)}.case-study-feature-layout--strip.case-study-feature-cards--none .case-study-feature-card+ .case-study-feature-card{border-left:1px solid color-mix(in srgb,currentColor 15%,transparent)}.case-study-bg-white .case-study-feature-layout--strip.case-study-feature-cards--none .case-study-feature-card+ .case-study-feature-card,.case-study-bg-light .case-study-feature-layout--strip.case-study-feature-cards--none .case-study-feature-card+ .case-study-feature-card{border-left-color:color-mix(in srgb,var(--brand-dark) 12%,transparent)}
.case-study-feature-layout--large{gap:clamp(24px,3.5vw,48px)}.case-study-feature-layout--large.case-study-feature-cards--cards .case-study-feature-card,.case-study-feature-layout--large.case-study-feature-cards--minimal .case-study-feature-card{padding:clamp(30px,4vw,52px);min-height:270px}.case-study-feature-layout--large .case-study-feature-card h3{font-size:clamp(1.15rem,1.8vw,1.5rem)}.case-study-feature-layout--large .case-study-feature-card p{font-size:.92rem;line-height:1.75}
.case-study-feature-layout--editorial{grid-template-columns:1fr!important;gap:0}.case-study-feature-layout--editorial .case-study-feature-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:clamp(22px,3vw,42px);align-items:start;min-height:0}.case-study-feature-layout--editorial .case-study-feature-marker{grid-row:1/3;margin:0}.case-study-feature-layout--editorial .case-study-feature-card p{grid-column:2}.case-study-feature-layout--editorial.case-study-feature-cards--cards{gap:14px}.case-study-feature-layout--editorial.case-study-feature-cards--cards .case-study-feature-card{padding:clamp(26px,3vw,40px)}.case-study-feature-layout--editorial.case-study-feature-cards--minimal .case-study-feature-card{padding:clamp(24px,3vw,36px);border-left:0;border-right:0;border-bottom:0}.case-study-feature-layout--editorial.case-study-feature-cards--minimal .case-study-feature-card:first-child{border-top-color:transparent}.case-study-feature-layout--editorial.case-study-feature-cards--none .case-study-feature-card{padding:clamp(26px,3vw,38px) 0}.case-study-feature-layout--editorial.case-study-feature-cards--none .case-study-feature-card+ .case-study-feature-card{border-top:1px solid color-mix(in srgb,currentColor 14%,transparent)}.case-study-bg-white .case-study-feature-layout--editorial.case-study-feature-cards--none .case-study-feature-card+ .case-study-feature-card,.case-study-bg-light .case-study-feature-layout--editorial.case-study-feature-cards--none .case-study-feature-card+ .case-study-feature-card{border-top-color:color-mix(in srgb,var(--brand-dark) 11%,transparent)}.case-study-feature-layout--editorial.case-study-feature-align--center .case-study-feature-card{display:block;text-align:center}.case-study-feature-layout--editorial.case-study-feature-align--center .case-study-feature-marker{margin:0 auto 22px}
.case-study-feature-layout--highlight{grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr)!important;gap:clamp(18px,2.5vw,34px);align-items:stretch}.case-study-feature-layout--highlight>.case-study-feature-card.is-highlighted{height:100%;padding:clamp(34px,4vw,58px)}.case-study-feature-layout--highlight.case-study-feature-cards--none>.case-study-feature-card.is-highlighted{padding:0}.case-study-feature-layout--highlight>.case-study-feature-card.is-highlighted h3{font-size:clamp(1.35rem,2.2vw,2rem);line-height:1.08}.case-study-feature-layout--highlight>.case-study-feature-card.is-highlighted p{font-size:.95rem;line-height:1.75;max-width:46rem}.case-study-feature-align--center.case-study-feature-layout--highlight>.case-study-feature-card.is-highlighted p{margin-left:auto;margin-right:auto}.case-study-highlight-supporting{display:grid;grid-template-columns:1fr;gap:clamp(12px,1.5vw,18px)}.case-study-highlight-supporting--many{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study-highlight-supporting .case-study-feature-card{min-height:0;padding:clamp(20px,2.3vw,30px)}.case-study-feature-cards--none .case-study-highlight-supporting .case-study-feature-card{padding:clamp(12px,1vw,18px) 0}.case-study-highlight-supporting .case-study-feature-card h3{font-size:clamp(1rem,1.25vw,1.2rem)}.case-study-highlight-supporting .case-study-feature-card p{font-size:.82rem;line-height:1.6}
.case-study-result-card{padding:clamp(24px,3vw,40px) 0;border-top:2px solid color-mix(in srgb,var(--brand-accent) 80%,transparent)}.case-study-result-value{margin-bottom:16px;color:var(--brand-accent);font-size:clamp(2.2rem,4vw,4.25rem);font-weight:900;line-height:.9;letter-spacing:-.055em}

.case-study-quote{position:relative;margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}.case-study-quote--narrow{max-width:900px}.case-study-quote--wide{max-width:1180px}.case-study-quote-mark{display:block;color:var(--brand-accent);font-family:Georgia,serif;font-size:clamp(4rem,7vw,7rem);line-height:.55;margin-bottom:20px}.case-study-quote-text p{margin:0;color:var(--brand-heading);font-size:clamp(1.45rem,2.8vw,2.65rem);font-weight:700;line-height:1.32;letter-spacing:-.03em}.case-study-quote-text p+p{margin-top:.85em}.case-study-quote-text a{color:inherit;text-decoration:underline;text-decoration-thickness:.06em;text-underline-offset:.14em}.case-study-bg-dark .case-study-quote-text p,.case-study-bg-brand .case-study-quote-text p{color:#fff}.case-study-quote footer{display:flex;gap:8px 14px;flex-wrap:wrap;margin-top:28px;color:var(--brand-muted);font-size:.82rem}.case-study-align--center.case-study-quote footer{justify-content:center}.case-study-quote footer strong{color:inherit}.case-study-quote footer span::before{content:'— ';opacity:.55}

.case-study-inline-cta{max-width:1000px}.case-study-inline-cta.case-study-align--center{margin-left:auto;margin-right:auto}.case-study-inline-cta .prose{max-width:760px}.case-study-inline-cta.case-study-align--center .prose{margin-left:auto;margin-right:auto}.case-study-cta-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.case-study-bg-dark .case-study-inline-cta .prose p,.case-study-bg-brand .case-study-inline-cta .prose p{color:rgba(255,255,255,.76)}
.case-study-bg-custom{background:var(--case-study-custom-bg,#fff);color:var(--case-study-custom-text,#000)}
.case-study-section.case-study-bg-custom :is(h2,h3,.case-study-quote-text p,.case-study-feature-card h3,.case-study-result-card h3,.case-study-split-showcase-copy h2,.case-study-brand-copy h2){color:var(--case-study-custom-text,#000)}
.case-study-section.case-study-bg-custom :is(p,.prose p,.case-study-gallery-item figcaption,.case-study-quote footer,.case-study-feature-card p,.case-study-result-card p,.case-study-split-showcase-copy .prose p,.case-study-brand-copy .prose p){color:color-mix(in srgb,var(--case-study-custom-text,#000) 76%,transparent)}
.case-study-section.case-study-bg-custom .eyebrow{color:var(--case-study-custom-text,#000);opacity:.72}

@media(max-width:1100px){.case-study-feature-grid,.case-study-results{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study-feature-layout--editorial{grid-template-columns:1fr!important}.case-study-highlight-supporting--many{grid-template-columns:1fr}}
@media(max-width:980px){.case-study-image-grid43-item,.case-study-image-grid43-item--bottom{grid-column:span 6}.case-study-image-grid43-item:last-child{grid-column:3/span 8}.case-study-split,.case-study-image--left{grid-template-columns:1fr;gap:38px}.case-study-split-showcase,.case-study-split-showcase--reverse{grid-template-columns:1fr;gap:14px;width:min(920px,calc(100% - 32px))}.case-study-split-showcase-left{padding-bottom:clamp(28px,4vw,48px)}.case-study-split-showcase .case-study-split-showcase-left{order:1}.case-study-split-showcase .case-study-split-showcase-right{order:2}.case-study-split-showcase-right--cover>.case-study-split-showcase-media{min-height:520px}.case-study-image--left .case-study-split-copy,.case-study-image--left .case-study-split-media{order:initial}.case-study-split-media,.case-study-split-media img{min-height:360px}.case-study-gallery--three{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study-gallery--feature-left,.case-study-gallery--feature-right{grid-template-columns:1fr 1fr;grid-template-rows:auto}.case-study-gallery--feature-left .case-study-gallery-item:first-child,.case-study-gallery--feature-right .case-study-gallery-item:first-child{grid-column:1/-1;grid-row:auto}.case-study-gallery--feature-right .case-study-gallery-item:first-child,.case-study-gallery--feature-right .case-study-gallery-item:nth-child(n+2){grid-column:auto}.case-study-gallery--feature-left .case-study-gallery-item:first-child .case-study-gallery-media,.case-study-gallery--feature-right .case-study-gallery-item:first-child .case-study-gallery-media{min-height:420px;aspect-ratio:16/9}.case-study-feature-layout--highlight{grid-template-columns:1fr!important}.case-study-highlight-supporting{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study-feature-layout--highlight>.case-study-feature-card.is-highlighted{min-height:0}}
@media(max-width:620px){.case-study-image-grid43{gap:12px}.case-study-image-grid43-item,.case-study-image-grid43-item--bottom,.case-study-image-grid43-item:last-child{grid-column:1/-1}.case-study-stacked-story{gap:30px}.case-study-spacing--compact{padding:48px 0}.case-study-split-showcase{width:calc(100% - 28px);gap:10px}.case-study-split-showcase-left{padding:clamp(22px,7vw,34px)}.case-study-split-showcase-logo--small{max-width:150px}.case-study-split-showcase-logo--medium{max-width:220px}.case-study-split-showcase-logo--large{max-width:290px}.case-study-split-showcase-main{margin-top:32px}.case-study-split-showcase-right--cover>.case-study-split-showcase-media{min-height:400px}.case-study-spacing--standard{padding:68px 0}.case-study-spacing--spacious{padding:84px 0}.case-study-showcase--small{width:min(260px,calc(100% - 28px))}.case-study-showcase--medium{width:min(460px,calc(100% - 28px))}.case-study-showcase--contained,.case-study-showcase--wide{width:calc(100% - 28px)}.case-study-showcase figcaption{width:calc(100% - 28px)}.case-study-split-media,.case-study-split-media img{min-height:300px}.case-study-stack-main{gap:34px}.case-study-stack-top--small{max-width:240px}.case-study-stack-top--medium{max-width:420px}.case-study-stack-bottom{margin-top:42px}.case-study-gallery--two,.case-study-gallery--three,.case-study-gallery--feature-left,.case-study-gallery--feature-right,.case-study-feature-grid,.case-study-results{grid-template-columns:1fr}.case-study-gallery--feature-left .case-study-gallery-item:first-child .case-study-gallery-media,.case-study-gallery--feature-right .case-study-gallery-item:first-child .case-study-gallery-media{min-height:0;aspect-ratio:4/3}.case-study-feature-card{min-height:0}.case-study-feature-size--oversized .case-study-feature-marker{width:88px;height:88px;margin-bottom:28px}.case-study-feature-size--oversized .case-study-feature-icon{width:72px!important;height:72px!important}.case-study-feature-layout--horizontal .case-study-feature-card{grid-template-columns:auto minmax(0,1fr)}.case-study-feature-layout--horizontal.case-study-feature-align--center .case-study-feature-card{grid-template-columns:1fr}.case-study-feature-layout--horizontal.case-study-feature-align--center .case-study-feature-marker{grid-row:auto;margin:0 auto 20px}.case-study-feature-layout--horizontal.case-study-feature-align--center .case-study-feature-card p{grid-column:1}.case-study-feature-layout--editorial .case-study-feature-card{grid-template-columns:1fr}.case-study-feature-layout--editorial .case-study-feature-marker{grid-row:auto;margin-bottom:20px}.case-study-feature-layout--editorial .case-study-feature-card p{grid-column:1}.case-study-highlight-supporting{grid-template-columns:1fr}.case-study-feature-layout--strip.case-study-feature-cards--none .case-study-feature-card{padding:24px 0}.case-study-feature-layout--strip.case-study-feature-cards--none .case-study-feature-card+ .case-study-feature-card{border-left:0;border-top:1px solid color-mix(in srgb,currentColor 15%,transparent)}.case-study-cta-buttons{flex-direction:column;align-items:stretch}.case-study-cta-buttons .btn{text-align:center}}
@media(max-width:520px){.case-study-split-showcase-supporting{grid-template-columns:1fr}.case-study-split-showcase-supporting figure:only-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.project-detail--linked{transition:none!important}.project-detail--linked:hover{transform:none!important}}

/* ==========================================================
   V2.16.16 — Mobile Header CTA + Configurable Menu Surface
   ========================================================== */
.header-cta-mobile{display:none}
@media(max-width:980px){
  /* The desktop CTA cannot safely share the narrow header row, so expose the
     same managed CTA as a full-width action inside the hamburger drawer. */
  .header .nav .header-cta-mobile{
    display:flex;
    width:100%;
    margin-top:12px;
    flex:0 0 auto;
  }
  body:not(.tb-button-design-active) .header .nav .header-cta-mobile{
    background:var(--brand-cta);
    color:var(--brand-cta-text)!important;
  }
  body:not(.tb-button-design-active) .header .nav .header-cta-mobile:hover,
  body:not(.tb-button-design-active) .header .nav .header-cta-mobile:focus-visible{
    background:var(--brand-cta-hover);
    color:var(--brand-cta-hover-text)!important;
  }
  .tb-button-design-active .header .nav .header-cta-mobile{
    color:var(--tb-btn-primary-text)!important;
  }
  .tb-button-design-active .header .nav .header-cta-mobile:hover,
  .tb-button-design-active .header .nav .header-cta-mobile:focus-visible{
    color:var(--tb-btn-primary-hover-text)!important;
  }

  /* One CMS-controlled surface applies consistently to the hamburger drawer
     and any standard / mega-menu children inside it. */
  .header .nav,
  .header .nav.open,
  .header--style-dark .nav.open,
  .header--style-transparent:not(.header-scrolled) .nav.open,
  .header--style-glass:not(.header-scrolled) .nav.open,
  .header--style-transparent-dark .nav.open,
  .header--style-glass-dark .nav.open{
    background:var(--tb-mobile-menu-bg,#fff)!important;
    color:var(--tb-mobile-menu-text,var(--brand-body))!important;
  }
  .header .nav.open>a:not(.header-cta-mobile),
  .header .nav.open .nav-parent>a,
  .header .nav.open .submenu-toggle{
    color:var(--tb-mobile-menu-text,var(--brand-body))!important;
  }
  .header .nav.open .submenu,
  .header .nav.open .submenu--mega,
  .header .nav.open .mega-menu-mobile{
    background:transparent!important;
    color:var(--tb-mobile-menu-text,var(--brand-body))!important;
  }
  .header .nav.open .submenu a,
  .header .nav.open .submenu--mega .mega-menu-mobile a{
    color:var(--tb-mobile-menu-text,var(--brand-body))!important;
    background:transparent!important;
  }
  .header .nav.open>a:not(.header-cta-mobile):hover,
  .header .nav.open>a:not(.header-cta-mobile):focus-visible,
  .header .nav.open .nav-parent>a:hover,
  .header .nav.open .nav-parent>a:focus-visible,
  .header .nav.open .submenu a:hover,
  .header .nav.open .submenu a:focus-visible,
  .header .nav.open .submenu--mega .mega-menu-mobile a:hover,
  .header .nav.open .submenu--mega .mega-menu-mobile a:focus-visible{
    background:color-mix(in srgb,var(--tb-mobile-menu-text) 9%,transparent)!important;
  }
}


@media(max-width:760px){
  .pricing-card{padding:26px}.pricing-badge{position:static;display:inline-flex;align-self:flex-start;margin-bottom:16px}.pricing-card--highlighted{padding-top:22px}.pricing-section-footer{align-items:flex-start;flex-direction:column}.pricing-section-footer .btn{width:100%}
  .custom-html-output .tb-table-scroll{margin-left:-4px;margin-right:-4px}
}

/* ==========================================================
   V2.16.43 — Shared Media Showcase (Pages + Case Studies)
   ========================================================== */
.tb-media-showcase-shell{position:relative}
.tb-media-showcase-shell--contained{width:min(calc(100% - 40px),1100px);margin-left:auto;margin-right:auto}
.tb-media-showcase-shell--wide.container{width:min(calc(100% - 40px),var(--container));margin-left:auto;margin-right:auto}
.tb-media-showcase-shell--full{width:100%}
.tb-media-showcase-shell--full .tb-media-showcase-intro{width:min(calc(100% - 40px),var(--container));margin-left:auto;margin-right:auto}
.tb-media-showcase-intro{max-width:820px;margin-bottom:clamp(28px,4vw,52px)}
.tb-media-showcase-intro--left{margin-left:0;margin-right:auto;text-align:left}
.tb-media-showcase-intro--center{margin-left:auto;margin-right:auto;text-align:center}
.tb-media-showcase-intro--right{margin-left:auto;margin-right:0;text-align:right}
.tb-media-showcase-intro h2{margin:0;color:var(--brand-heading);font-size:clamp(2rem,3.8vw,3.7rem);line-height:1;letter-spacing:-.045em}
.tb-media-showcase-intro .prose{margin-top:clamp(18px,2vw,28px)}
.tb-media-showcase-intro .prose p{margin:0;color:var(--brand-muted);font-size:.98rem;line-height:1.8}
.tb-media-showcase-grid+.tb-media-showcase-intro{margin-top:clamp(30px,4vw,54px);margin-bottom:0}
.block-bg-dark .tb-media-showcase-intro h2,.block-bg-brand .tb-media-showcase-intro h2,.case-study-bg-dark .tb-media-showcase-intro h2,.case-study-bg-brand .tb-media-showcase-intro h2{color:#fff}
.block-bg-dark .tb-media-showcase-intro .prose p,.block-bg-brand .tb-media-showcase-intro .prose p,.case-study-bg-dark .tb-media-showcase-intro .prose p,.case-study-bg-brand .tb-media-showcase-intro .prose p{color:rgba(255,255,255,.76)}
.case-study-bg-custom .tb-media-showcase-intro h2{color:var(--case-study-custom-text,#000)}
.case-study-bg-custom .tb-media-showcase-intro .prose p{color:color-mix(in srgb,var(--case-study-custom-text,#000) 76%,transparent)}

.tb-media-showcase-grid{display:grid;min-width:0}
.tb-media-showcase-gap--tight{gap:8px}
.tb-media-showcase-gap--standard{gap:clamp(14px,1.8vw,24px)}
.tb-media-showcase-gap--spacious{gap:clamp(22px,3vw,40px)}
.tb-media-showcase-grid--row,.tb-media-showcase-grid--caption-cards{grid-template-columns:repeat(var(--tb-media-cols,4),minmax(0,1fr))}
.tb-media-showcase-grid--before-after{grid-template-columns:repeat(2,minmax(0,1fr))}
.tb-media-showcase-grid--mosaic{grid-template-columns:1.55fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr))}
.tb-media-showcase-grid--mosaic .tb-media-showcase-item:first-child{grid-row:1/3}
.tb-media-showcase-grid--mosaic.tb-media-showcase-grid--reverse{grid-template-columns:1fr 1.55fr}
.tb-media-showcase-grid--mosaic.tb-media-showcase-grid--reverse .tb-media-showcase-item:first-child{grid-column:2}
.tb-media-showcase-grid--mosaic.tb-media-showcase-grid--reverse .tb-media-showcase-item:nth-child(n+2){grid-column:1}
.tb-media-showcase-grid--large-supporting{grid-template-columns:repeat(var(--tb-support-cols,3),minmax(0,1fr))}
.tb-media-showcase-grid--large-supporting .tb-media-showcase-item:first-child{grid-column:1/-1}

.tb-media-showcase-item{margin:0;min-width:0;position:relative;transition:transform .28s ease,box-shadow .28s ease}
.tb-media-showcase-link{display:block;color:inherit;text-decoration:none}
.tb-media-showcase-item.is-clickable .tb-media-showcase-link{cursor:pointer}
.tb-media-showcase-media{position:relative;overflow:hidden;background:color-mix(in srgb,var(--brand-dark) 92%,#fff);isolation:isolate}
.tb-media-showcase-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.2,.65,.3,1)}
.tb-media-showcase-ratio--square .tb-media-showcase-media{aspect-ratio:1}
.tb-media-showcase-ratio--4-3 .tb-media-showcase-media{aspect-ratio:4/3}
.tb-media-showcase-ratio--3-2 .tb-media-showcase-media{aspect-ratio:3/2}
.tb-media-showcase-ratio--16-9 .tb-media-showcase-media{aspect-ratio:16/9}
.tb-media-showcase-ratio--portrait .tb-media-showcase-media{aspect-ratio:4/5}
.tb-media-showcase-ratio--auto .tb-media-showcase-media{aspect-ratio:auto;background:transparent}
.tb-media-showcase-ratio--auto .tb-media-showcase-media img{height:auto;object-fit:contain}
.tb-media-showcase-grid--mosaic .tb-media-showcase-item:first-child .tb-media-showcase-media{height:100%;aspect-ratio:auto;min-height:440px}
.tb-media-showcase-grid--mosaic .tb-media-showcase-item:not(:first-child) .tb-media-showcase-media{height:100%}
.tb-media-showcase-grid--large-supporting .tb-media-showcase-item:first-child .tb-media-showcase-media{aspect-ratio:16/9}
.tb-media-showcase-label{position:absolute;left:16px;top:16px;z-index:5;padding:7px 10px;background:rgba(0,0,0,.72);color:#fff;font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.tb-media-showcase-hover-layer{position:absolute;inset:0;z-index:3;background:rgba(0,0,0,.24);opacity:0;transition:opacity .3s ease;pointer-events:none}
.tb-media-showcase-hover-copy{position:absolute;left:18px;right:18px;bottom:18px;z-index:4;color:#fff;display:grid;gap:6px;opacity:0;transform:translateY(8px);transition:opacity .28s ease,transform .28s ease;pointer-events:none;text-shadow:0 2px 16px rgba(0,0,0,.4);font-family:var(--font-body,var(--site-font));font-size:inherit;font-weight:var(--body-weight,400);line-height:var(--body-line-height,1.65);letter-spacing:var(--body-letter-spacing,0)}
.tb-media-showcase-hover-copy strong{font-family:var(--font-heading,var(--site-font));font-size:calc(1em + 5px);font-weight:var(--heading-weight,700);line-height:1.18;letter-spacing:var(--heading-letter-spacing,-.02em)}.tb-media-showcase-hover-copy span{font:inherit;line-height:1.5}
.tb-media-showcase-item figcaption{display:grid;gap:8px;margin-top:clamp(14px,1.4vw,20px);color:var(--brand-muted);font-family:var(--font-body,var(--site-font));font-size:inherit;font-weight:var(--body-weight,400);line-height:var(--body-line-height,1.65);letter-spacing:var(--body-letter-spacing,0)}
.tb-media-showcase-item figcaption strong{color:var(--brand-heading);font-family:var(--font-heading,var(--site-font));font-size:calc(1em + 5px);font-weight:var(--heading-weight,700);line-height:1.2;letter-spacing:var(--heading-letter-spacing,-.02em)}.tb-media-showcase-item figcaption .tb-media-showcase-caption-text{font:inherit;line-height:inherit;color:inherit}
.tb-media-showcase-cta{justify-self:start;margin-top:10px}
.block-bg-dark .tb-media-showcase-item figcaption,.block-bg-brand .tb-media-showcase-item figcaption,.case-study-bg-dark .tb-media-showcase-item figcaption,.case-study-bg-brand .tb-media-showcase-item figcaption{color:rgba(255,255,255,.68)}
.block-bg-dark .tb-media-showcase-item figcaption strong,.block-bg-brand .tb-media-showcase-item figcaption strong,.case-study-bg-dark .tb-media-showcase-item figcaption strong,.case-study-bg-brand .tb-media-showcase-item figcaption strong{color:#fff}
.case-study-bg-custom .tb-media-showcase-item figcaption,.case-study-bg-custom .tb-media-showcase-item figcaption strong{color:var(--case-study-custom-text,#000)}

@media(hover:hover) and (pointer:fine){
  .tb-media-showcase-hover--zoom .tb-media-showcase-item:hover img,.tb-media-showcase-hover--zoom .tb-media-showcase-link:focus-visible img{transform:scale(1.045)}
  .tb-media-showcase-hover--lift .tb-media-showcase-item:hover{transform:translateY(-6px);box-shadow:0 18px 45px rgba(0,0,0,.13)}
  .tb-media-showcase-hover--overlay .tb-media-showcase-item:hover .tb-media-showcase-hover-layer,.tb-media-showcase-hover--overlay .tb-media-showcase-link:focus-visible .tb-media-showcase-hover-layer{opacity:1}
  .tb-media-showcase-hover--zoom-overlay .tb-media-showcase-item:hover img,.tb-media-showcase-hover--zoom-overlay .tb-media-showcase-link:focus-visible img{transform:scale(1.045)}
  .tb-media-showcase-hover--zoom-overlay .tb-media-showcase-item:hover .tb-media-showcase-hover-layer,.tb-media-showcase-hover--zoom-overlay .tb-media-showcase-link:focus-visible .tb-media-showcase-hover-layer{opacity:1}
  .tb-media-showcase-hover--reveal-caption .tb-media-showcase-item:hover .tb-media-showcase-hover-layer,.tb-media-showcase-hover--reveal-caption .tb-media-showcase-link:focus-visible .tb-media-showcase-hover-layer{opacity:1}
  .tb-media-showcase-hover--reveal-caption .tb-media-showcase-item:hover .tb-media-showcase-hover-copy,.tb-media-showcase-hover--reveal-caption .tb-media-showcase-link:focus-visible .tb-media-showcase-hover-copy{opacity:1;transform:none}
}

/* Lightweight native lightbox — enhanced by assets/js/site.js; the anchor still works without JS. */
.tb-media-lightbox{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:28px;background:rgba(5,9,12,.92);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.tb-media-lightbox.is-open{opacity:1;visibility:visible}
.tb-media-lightbox-inner{position:relative;max-width:min(1500px,94vw);max-height:92vh;display:grid;place-items:center}
.tb-media-lightbox img{display:block;max-width:94vw;max-height:88vh;width:auto;height:auto;object-fit:contain}
.tb-media-lightbox-close{position:absolute;right:-8px;top:-48px;width:40px;height:40px;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.35);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;border-radius:50%}
body.tb-media-lightbox-open{overflow:hidden}

@media(max-width:980px){
  .tb-media-showcase-grid--row,.tb-media-showcase-grid--caption-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tb-media-showcase-grid--large-supporting{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tb-media-showcase-grid--mosaic{grid-template-columns:1.35fr 1fr}
}
@media(max-width:620px){
  .tb-media-showcase-shell--contained,.tb-media-showcase-shell--wide.container{width:min(calc(100% - 28px),var(--container))}
  .tb-media-showcase-shell--full .tb-media-showcase-intro{width:min(calc(100% - 28px),var(--container))}
  .tb-media-showcase-grid--mosaic,.tb-media-showcase-grid--mosaic.tb-media-showcase-grid--reverse,.tb-media-showcase-grid--before-after,.tb-media-showcase-grid--large-supporting{grid-template-columns:1fr;grid-template-rows:auto}
  .tb-media-showcase-grid--mosaic .tb-media-showcase-item:first-child,.tb-media-showcase-grid--mosaic.tb-media-showcase-grid--reverse .tb-media-showcase-item:first-child,.tb-media-showcase-grid--mosaic.tb-media-showcase-grid--reverse .tb-media-showcase-item:nth-child(n+2),.tb-media-showcase-grid--large-supporting .tb-media-showcase-item:first-child{grid-column:auto;grid-row:auto}
  .tb-media-showcase-grid--mosaic .tb-media-showcase-item:first-child .tb-media-showcase-media{min-height:0}
  .tb-media-showcase-mobile--auto.tb-media-showcase-grid--row,.tb-media-showcase-mobile--auto.tb-media-showcase-grid--caption-cards{grid-template-columns:1fr}
  .tb-media-showcase-mobile--1.tb-media-showcase-grid--row,.tb-media-showcase-mobile--1.tb-media-showcase-grid--caption-cards{grid-template-columns:1fr}
  .tb-media-showcase-mobile--2.tb-media-showcase-grid--row,.tb-media-showcase-mobile--2.tb-media-showcase-grid--caption-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tb-media-showcase-cta{max-width:100%}
  .tb-media-lightbox{padding:18px}.tb-media-lightbox img{max-width:96vw;max-height:82vh}
}
@media(prefers-reduced-motion:reduce){
  .tb-media-showcase-item,.tb-media-showcase-media img,.tb-media-showcase-hover-layer,.tb-media-showcase-hover-copy,.tb-media-lightbox{transition:none!important}
  .tb-media-showcase-item:hover,.tb-media-showcase-item:hover img{transform:none!important}
}
.media-showcase-section.media-showcase-spacing--compact{padding-top:48px;padding-bottom:48px}
.media-showcase-section.media-showcase-spacing--standard{padding-top:clamp(72px,8vw,116px);padding-bottom:clamp(72px,8vw,116px)}
.media-showcase-section.media-showcase-spacing--spacious{padding-top:clamp(96px,10vw,150px);padding-bottom:clamp(96px,10vw,150px)}

/* ======================================================================
   V2.16.44 — Controlled homepage/internal hero heading sizing
   Custom values set a desktop maximum only; viewport-based scaling remains.
   Automatic/inherited heroes do not receive these classes and therefore keep
   the exact pre-v2.16.44 typography rules.
   ====================================================================== */
@media (min-width:901px){
  .hero.hero--custom-heading-size h1{font-size:clamp(3rem,6vw,var(--tb-home-hero-heading-max,5.8rem))}
  .home-premium .hero.hero--custom-heading-size h1{font-size:clamp(3rem,6.3vw,var(--tb-home-hero-heading-max,6.4rem))}
  .inner-hero.inner-hero--custom-heading-size h1{font-size:clamp(2.5rem,5.5vw,var(--tb-inner-hero-heading-max,5rem))}
}
@media (max-width:900px) and (min-width:701px){
  .hero.hero--custom-heading-size h1,.home-premium .hero.hero--custom-heading-size h1{font-size:clamp(2.75rem,7vw,min(var(--tb-home-hero-heading-max,4.5rem),4.5rem))}
  .inner-hero.inner-hero--custom-heading-size h1{font-size:clamp(2.5rem,8vw,min(var(--tb-inner-hero-heading-max,4.4rem),4.4rem))}
}
@media (max-width:700px){
  .hero.hero--custom-heading-size h1,.home-premium .hero.hero--custom-heading-size h1{font-size:clamp(2.25rem,11vw,min(var(--tb-home-hero-heading-max,4.35rem),4.35rem))}
  .inner-hero.inner-hero--custom-heading-size h1{font-size:clamp(2.25rem,11vw,min(var(--tb-inner-hero-heading-max,4.4rem),4.4rem))}
}
