/* Fix: marquee label was getting visually covered by the scrolling track mid-animation */
.marquee-label{position:relative;z-index:2;background:var(--surface-chrome-alt);padding-right:12px;}
/* Fix: hero badge + trust row used dark on-chrome text color, unreadable against the hero photo in light theme */
:root .hero-badge{color:#ffffff;background:rgba(10,16,26,.32);border-color:rgba(255,255,255,.28);}
:root .hero-trust-item{color:rgba(255,255,255,.86);}
:root .hero-trust-item b{color:#ffffff;}

/* Home page mobile refinements — hero legibility + calculator visibility */

@media (max-width:640px){
    .hero h1{font-size:1.7rem;line-height:1.22;}
    .hero-lead{font-size:1rem;margin-bottom:20px;}
    .hero-badge{margin-bottom:16px;font-size:.76rem;padding:7px 14px 7px 7px;}
    .hero-cta-row{margin-bottom:22px;gap:12px;}
    .hero-trust{gap:10px 18px;}
    .hero-trust-item{font-size:.76rem;}
    .hero-bg img{object-position:center 22%;}
}

@media (max-width:1080px){
    .calc-shell:not(.calc-shell--modal) .result-panel{
          order:-1;
          position:sticky;
          top:calc(var(--header-h) + 12px);
          z-index:5;
          margin-bottom:6px;
    }
}


/* Hero price badge — enlarged to match reference size, repositioned */
.hero-price-cloud-wrap{
    width:180px;
    height:180px;
    bottom:-46px;
    right:-14px;
}
.hero-price-cloud-wrap .hpc-label{font-size:.95rem;}
.hero-price-cloud-wrap .hpc-amount{font-size:2.6rem;}
.hero-price-cloud-wrap .hpc-currency{font-size:1.4rem;}
.hero-price-cloud-wrap .hpc-sub{font-size:.82rem;}

@media (max-width:640px){
    .hero-price-cloud-wrap{
        width:132px;
        height:132px;
        bottom:-30px;
        right:-8px;
    }
    .hero-price-cloud-wrap .hpc-label{font-size:.68rem;}
    .hero-price-cloud-wrap .hpc-amount{font-size:1.9rem;}
    .hero-price-cloud-wrap .hpc-currency{font-size:1rem;}
    .hero-price-cloud-wrap .hpc-sub{font-size:.6rem;}
}

/* Hero background scrim — dark moody overlay + white text in both themes, matching reference site */
:root{
    --hero-scrim-radial:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 100%);
    --hero-scrim-linear:linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.5) 100%);
}
[data-theme="dark"]{
    --hero-scrim-radial:radial-gradient(120% 90% at 15% 10%, rgba(11,21,36,.16), rgba(7,13,23,.24) 45%, rgba(7,13,23,.38) 100%);
    --hero-scrim-linear:linear-gradient(100deg, rgba(7,13,23,.4) 10%, rgba(9,17,29,.3) 45%, rgba(9,17,29,.2) 100%);
}

/* Hero heading/lead — force white text + shadow so it reads over the dark overlay in light theme too */
:root .hero h1,
:root .hero h1 em{
    color:#ffffff;
    text-shadow:0 2px 14px rgba(0,0,0,.5);
}
.result-compare .box:first-child .result-bar-fill{background-image:linear-gradient(90deg,#d92d20,#f2867c)!important;} .result-compare .box:last-child .result-bar-fill{background-image:linear-gradient(90deg,#0e7a4e,#5fd39b)!important;} @media (max-width:640px){.hero h1{font-size:1.42rem;line-height:1.22;margin-bottom:10px;} .hero-lead{font-size:.9rem;line-height:1.5;margin-bottom:16px;} .hero-cta-row{gap:10px;margin-bottom:18px;} .hero-cta-row .btn{padding:12px 16px;font-size:.88rem;} .hero-bg img{object-position:62% 28%;} .hero-price-cloud-wrap{width:104px;height:104px;right:8px;bottom:10px;} .hero-price-cloud-wrap .hpc-label{font-size:.54rem;} .hero-price-cloud-wrap .hpc-amount{font-size:1.5rem;} .hero-price-cloud-wrap .hpc-currency{font-size:.8rem;} .hero-price-cloud-wrap .hpc-sub{font-size:.5rem;} .hero-price-cloud-wrap + div{padding-right:0;}} @media (max-width:1080px){.calc-shell:not(.calc-shell--modal) .result-compare{display:grid;grid-template-columns:1fr 1fr;gap:8px;}} :root:not([data-theme="dark"]) .hero h1, :root:not([data-theme="dark"]) .hero h1 em{text-shadow:0 1px 3px rgba(8,14,24,.45), 0 2px 18px rgba(8,14,24,.4);} :root:not([data-theme="dark"]) .hero-lead{color:#ffffff;text-shadow:0 1px 3px rgba(8,14,24,.45);} :root:not([data-theme="dark"]) .hero-trust-item{text-shadow:0 1px 3px rgba(8,14,24,.5);} .photo-collage-note{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;cursor:pointer;border:1px solid rgba(201,162,74,.45);animation:bsPulse 2.6s ease-out infinite;} @keyframes bsPulse{0%{box-shadow:0 0 0 0 rgba(201,162,74,.40);}70%{box-shadow:0 0 0 14px rgba(201,162,74,0);}100%{box-shadow:0 0 0 0 rgba(201,162,74,0);}} .photo-collage-note:hover{border-color:rgba(201,162,74,.85);} @media (prefers-reduced-motion:no-preference){.service-card.reveal,.process-step.reveal{transition-duration:.8s;} .service-card.reveal:nth-child(2),.process-step.reveal:nth-child(2){transition-delay:.08s;} .service-card.reveal:nth-child(3),.process-step.reveal:nth-child(3){transition-delay:.16s;} .service-card.reveal:nth-child(4),.process-step.reveal:nth-child(4){transition-delay:.24s;} .service-card.reveal:nth-child(5),.process-step.reveal:nth-child(5){transition-delay:.32s;} .service-card.reveal:nth-child(6),.process-step.reveal:nth-child(6){transition-delay:.40s;} .split.reveal{transform:translateY(42px);} .split.reveal.in{transform:translateY(0);}} @media (prefers-reduced-motion:reduce){.reveal{transition:none !important;opacity:1 !important;transform:none !important;}} .calc-panel .range-row{align-items:center;} .calc-panel .range-row b{font-size:1.35rem;line-height:1.15;letter-spacing:-.01em;} :root{--calc-bad:#d92d20;--calc-bad-bg:rgba(217,45,32,.07);--calc-bad-bd:rgba(217,45,32,.30);--calc-good:#0e7a4e;--calc-good-bg:rgba(14,122,78,.07);--calc-good-bd:rgba(14,122,78,.32);} [data-theme="dark"]{--calc-bad:#ff7a70;--calc-bad-bg:rgba(255,122,112,.10);--calc-bad-bd:rgba(255,122,112,.32);--calc-good:#5fd39b;--calc-good-bg:rgba(95,211,155,.10);--calc-good-bd:rgba(95,211,155,.32);} .result-compare .box .city{display:flex;align-items:center;gap:7px;} .result-compare .box .city::before{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;font-size:.66rem;font-weight:700;line-height:1;color:#fff;} .result-compare .box:first-child{background:var(--calc-bad-bg);border-color:var(--calc-bad-bd);} .result-compare .box:first-child .city::before{content:"\2715";background:var(--calc-bad);} .result-compare .box:first-child .val{color:var(--calc-bad);} .result-compare .box:first-child .result-bar-fill{background:var(--calc-bad);} .result-compare .box:last-child{background:var(--calc-good-bg);border-color:var(--calc-good-bd);} .result-compare .box:last-child .city::before{content:"\2713";background:var(--calc-good);} .result-compare .box:last-child .val{color:var(--calc-good);} .result-compare .box:last-child .result-bar-fill{background:var(--calc-good);} @media (max-width:1080px){.calc-shell:not(.calc-shell--modal) .result-panel{padding:14px 16px 16px;} .calc-shell:not(.calc-shell--modal) .result-panel .eyebrow{display:none;} .calc-shell:not(.calc-shell--modal) .result-big{font-size:1.95rem;margin-bottom:2px;} .calc-shell:not(.calc-shell--modal) .result-sub{font-size:.8rem;margin-bottom:10px;} .calc-shell:not(.calc-shell--modal) .result-compare{gap:8px;margin-bottom:10px;} .calc-shell:not(.calc-shell--modal) .result-compare .box{padding:8px 10px;} .calc-shell:not(.calc-shell--modal) .result-compare .val{font-size:1.05rem;} .calc-shell:not(.calc-shell--modal) .result-bar-track{display:none;} .calc-shell:not(.calc-shell--modal) .result-panel .btn{padding:11px 14px;font-size:.88rem;}} :root .hero-lead{
    color:rgba(255,255,255,.88);
}

/* Hero heading: lighter weight, uppercase, narrower column */
.hero h1{
    font-size:clamp(1.9rem, 3.4vw, 3.1rem);
    line-height:1.2;
    font-weight:400;
    text-transform:uppercase;
    letter-spacing:.2px;
    max-width:700px;
}
@media (max-width:640px){
    .hero h1{
        font-size:1.7rem;
        max-width:none;
    }
}

/* Fix: .hero is display:flex, so its lone .container child was shrink-wrapping to
   its content's width instead of stretching to max-width like every other section's
   .container — this shifted the hero text ~50px right of the header logo, marquee
   label and every section heading below it. Force it to stretch and align. */
.hero > .container{
    width:100%;
}

/* More breathing room above the hero heading, and a touch more before it on mobile */
.hero{
    padding-top:calc(var(--header-h) + 48px);
}
@media (max-width:640px){
    .hero{
        padding-top:calc(var(--header-h) + 20px);
    }
}


/* Hero price badge — clear the trust row so nothing overlaps on desktop */
@media (min-width: 900px){
    .hero-price-cloud-wrap + div{
        padding-right: 220px;
        box-sizing: border-box;
    }
}
@media (min-width: 641px) and (max-width: 899px){
    .hero-price-cloud-wrap + div{
        padding-right: 160px;
        box-sizing: border-box;
    }
}

/* Fix: in light theme, the floating (not-yet-scrolled) header sits directly over the
   hero photo with a gradient scrim that fades to fully transparent right where the
   nav links/phone number sit, so dark nav text disappeared into brighter parts of the
   photo. Keep a baseline scrim across the whole header height and add a soft white
   halo behind the text so it stays legible over any part of the photo. */
:root:not([data-theme="dark"]) .site-header::before{
    background:linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.5));
}
:root:not([data-theme="dark"]) .site-header:not(.is-scrolled) .main-nav .nav-link,
:root:not([data-theme="dark"]) .site-header:not(.is-scrolled) .brand,
:root:not([data-theme="dark"]) .site-header:not(.is-scrolled) .header-phone{
    text-shadow:0 1px 2px rgba(255,255,255,.9), 0 0 8px rgba(255,255,255,.7);
}


/* Hero price badge — clear the trust row on mobile too */
@media (max-width: 640px){
    .hero-price-cloud-wrap + div{
        padding-right: 120px;
        box-sizing: border-box;
        min-width:0;
        width:100%;
    }
}

/* Homepage calculator: open, card-free presentation. */
.calc-story .result-compare .box,
.calc-story .result-compare .box:first-child,
.calc-story .result-compare .box:last-child{
    background: transparent !important;
    border: 0 !important;
    border-radius: 0;
    box-shadow: none;
}

/* Homepage services: one full-size service at a time, with all six choices visible. */
.home-services-section{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 10% 12%, rgba(30,77,140,.11), transparent 25rem),
        linear-gradient(180deg,#f8fafc 0%,#eef3f8 100%);
}
[data-theme="dark"] .home-services-section{background:linear-gradient(180deg,var(--ink-950),var(--ink-800));}
.home-services-section::before{
    content:"";
    position:absolute;
    width:340px;
    height:340px;
    right:-190px;
    top:16%;
    border:1px solid rgba(var(--accent-rgb),.2);
    border-radius:50%;
    pointer-events:none;
}
.service-showcase{max-width:1120px;margin:0 auto;}
.service-showcase-tabs{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:8px;
    margin-bottom:14px;
    padding:8px;
    border:1px solid #d9e2ec;
    border-radius:20px;
    background:rgba(255,255,255,.72);
    box-shadow:0 14px 32px rgba(15,39,69,.06);
}
[data-theme="dark"] .service-showcase-tabs{border-color:var(--border-subtle);background:rgba(255,255,255,.045);}
.service-showcase-tab{
    min-width:0;
    min-height:68px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:3px;
    padding:10px 12px;
    border:0;
    border-radius:14px;
    background:transparent;
    color:#334155;
    cursor:pointer;
    text-align:left;
    transition:background .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease;
}
[data-theme="dark"] .service-showcase-tab{color:rgba(255,255,255,.72);}
.service-showcase-tab:hover{background:#edf3fa;color:#0f315b;transform:translateY(-1px);}
.service-showcase-tab:focus-visible{outline:3px solid rgba(30,77,140,.35);outline-offset:2px;}
.service-showcase-tab.is-active{
    color:#fff;
    background:var(--accent);
    box-shadow:0 10px 22px rgba(30,77,140,.24);
}
.service-tab-number{font-size:.72rem;font-weight:800;letter-spacing:.12em;opacity:.7;}
.service-tab-label{max-width:100%;font-size:.76rem;font-weight:750;line-height:1.2;overflow-wrap:anywhere;}
.service-showcase-panels{position:relative;}
.service-showcase-panels [hidden]{display:none!important;}
.service-card.service-card--stage{
    min-height:390px;
    position:relative;
    display:grid;
    grid-template-columns:72px minmax(0,.9fr) minmax(340px,1.1fr);
    grid-template-areas:
        "icon label media"
        "icon title media"
        "icon copy media"
        "icon link media";
    align-content:center;
    column-gap:24px;
    padding:30px;
    overflow:hidden;
    isolation:isolate;
    color:#111827;
    border:1px solid #d8e1eb;
    border-radius:30px;
    background:
        radial-gradient(circle at 88% 10%,rgba(30,77,140,.09),transparent 22rem),
        linear-gradient(135deg,#fff 0%,#f4f7fb 100%);
    box-shadow:0 22px 52px rgba(15,39,69,.1);
    animation:serviceStageIn .3s ease both;
}
.service-card.service-card--stage::before{
    content:"";
    position:absolute;
    width:300px;
    height:300px;
    right:-76px;
    top:-110px;
    border:1px solid rgba(30,77,140,.13);
    border-radius:50%;
    box-shadow:0 0 0 46px rgba(30,77,140,.035),0 0 0 92px rgba(30,77,140,.022);
    z-index:0;
}
.service-card.service-card--stage::after{
    content:attr(data-service-number);
    position:absolute;
    right:48px;
    top:42px;
    z-index:2;
    color:rgba(255,255,255,.9);
    font-family:var(--ff-display);
    font-size:clamp(3.8rem,7vw,6.4rem);
    font-weight:800;
    line-height:1;
    text-shadow:0 3px 22px rgba(15,39,69,.28);
}
.service-card.service-card--stage > *{position:relative;z-index:1;}
.service-card.service-card--stage .service-icon{
    grid-area:icon;
    width:70px;
    height:70px;
    align-self:start;
    background:#eaf1fa;
    border:1px solid #cfdbeb;
    color:var(--accent);
}
.service-card.service-card--stage .service-icon svg{width:31px;height:31px;}
.service-card.service-card--stage .tag,
.service-card.service-card--stage .service-option-label{
    grid-area:label;
    align-self:flex-start;
    justify-self:start;
    color:var(--accent-hover);
    background:#eaf1fa;
    border-radius:999px;
    padding:7px 12px;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.service-card.service-card--stage h3{
    grid-area:title;
    color:#111827;
    max-width:17ch;
    margin:14px 0 12px;
    font-size:clamp(1.85rem,3.2vw,2.65rem);
    line-height:1.08;
    overflow-wrap:normal;
    word-break:normal;
}
.service-card.service-card--stage p{grid-area:copy;max-width:48ch;margin:0;color:#526174;font-size:1rem;line-height:1.65;}
.service-card.service-card--stage .card-link{grid-area:link;justify-self:start;margin-top:24px;color:var(--accent);}
.service-stage-media{
    grid-area:media;
    align-self:stretch;
    min-width:0;
    height:328px;
    margin:0;
    overflow:hidden;
    border:1px solid #d7e0e9;
    border-radius:23px;
    background:#e8edf2;
    box-shadow:0 18px 38px rgba(15,39,69,.12);
}
.service-stage-media::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(15,39,69,.04),transparent 50%,rgba(15,39,69,.12));
}
.service-stage-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(.9) contrast(1.02) brightness(1.01);
    transform:scale(1.002);
}
.service-stage-media--arrival img{object-position:center 52%;}
.service-stage-media--mail img{object-position:center 48%;}
.service-stage-media--telephone img{object-position:center 44%;}
.service-stage-media--virtual img{object-position:center 48%;}
.service-stage-media--coworking img{object-position:center 50%;}
.service-stage-media--meeting img{object-position:center 46%;}
.service-stage-media--private img{object-position:center 48%;}
@keyframes serviceStageIn{from{opacity:.25;transform:translateY(8px)}to{opacity:1;transform:none}}

@media (max-width:900px){
    .service-showcase-tabs{grid-template-columns:repeat(3,minmax(0,1fr));}
    .service-showcase-tab{min-height:62px;}
    .service-card.service-card--stage{min-height:370px;grid-template-columns:64px minmax(0,.95fr) minmax(280px,1.05fr);column-gap:18px;padding:24px;}
    .service-card.service-card--stage .service-icon{width:62px;height:62px;}
    .service-card.service-card--stage h3{font-size:clamp(1.7rem,3.7vw,2.25rem);}
    .service-stage-media{height:300px;}
}
@media (max-width:620px){
    .home-services-section .section-head{margin-bottom:28px;}
    .service-showcase-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:6px;border-radius:16px;}
    .service-showcase-tab{min-height:56px;padding:8px 10px;border-radius:11px;}
    .service-tab-label{font-size:.72rem;}
    .service-card.service-card--stage{
        min-height:0;
        display:grid;
        grid-template-columns:1fr;
        grid-template-areas:
            "media"
            "label"
            "title"
            "copy"
            "link";
        align-content:start;
        padding:16px 18px 24px;
        border-radius:22px;
    }
    .service-card.service-card--stage::after{right:32px;top:32px;font-size:4.4rem;}
    .service-card.service-card--stage .service-icon{position:absolute;left:32px;top:32px;z-index:3;width:58px;height:58px;color:var(--accent);background:rgba(255,255,255,.94);border-color:rgba(255,255,255,.9);box-shadow:0 8px 22px rgba(15,39,69,.16);}
    .service-stage-media{width:100%;height:auto;aspect-ratio:16/9;margin:0 0 20px;border-radius:16px;}
    .service-card.service-card--stage h3{font-size:clamp(1.65rem,8.2vw,2.05rem);margin:14px 0 10px;letter-spacing:-.02em;}
    .service-card.service-card--stage p{font-size:.94rem;line-height:1.6;}
    .service-card.service-card--stage .card-link{margin-top:20px;}
}

/* Complementary industry bridge: explains how the six services combine. */
.home-industries-section{
    background:
        radial-gradient(circle at 8% 16%,rgba(30,77,140,.08),transparent 24rem),
        #f5f7fa;
    border-top:1px solid #e1e7ee;
    border-bottom:1px solid #e1e7ee;
}
.home-industries-shell{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(34px,6vw,76px);align-items:center;}
.home-industries-intro .eyebrow{color:var(--accent);}
.home-industries-intro h2{color:#111827;margin:15px 0 18px;font-size:clamp(2rem,4vw,3.25rem);}
.home-industries-intro p{color:#526174;font-size:1rem;line-height:1.75;margin:0 0 26px;}
.home-industries-intro .btn{color:var(--accent-hover);border-color:#aebfd3;background:#fff;}
.home-industries-intro .btn:hover,
.home-industries-intro .btn:focus-visible{color:#fff;border-color:var(--accent);background:var(--accent);}
.home-industries-grid{display:grid;gap:12px;}
.industry-bridge-card{
    display:grid;
    grid-template-columns:minmax(110px,.34fr) minmax(0,1fr) auto;
    grid-template-areas:"tag title link" "tag copy link";
    align-items:center;
    gap:4px 20px;
    min-height:136px;
    padding:24px 26px;
    border:1px solid #dce3eb;
    border-radius:18px;
    background:#fff;
    color:#111827;
    box-shadow:0 10px 28px rgba(15,39,69,.045);
    transition:transform .22s ease,background .22s ease,border-color .22s ease;
}
.industry-bridge-card:hover,.industry-bridge-card:focus-visible{transform:translateX(5px);background:#fff;border-color:rgba(30,77,140,.48);box-shadow:0 15px 34px rgba(15,39,69,.09);}
.industry-bridge-card:focus-visible{outline:3px solid rgba(30,77,140,.28);outline-offset:3px;}
.industry-bridge-card .tag{grid-area:tag;justify-self:start;color:var(--accent-hover);background:#eaf1fa;}
.industry-bridge-card h3{grid-area:title;margin:0;color:#111827;font-size:1.15rem;}
.industry-bridge-card p{grid-area:copy;margin:0;color:#64748b;font-size:.84rem;line-height:1.5;}
.industry-bridge-card .card-link{grid-area:link;color:var(--accent);white-space:nowrap;}
@media (max-width:980px){.home-industries-shell{grid-template-columns:1fr;}.home-industries-intro{max-width:720px;}}
@media (max-width:640px){.industry-bridge-card{grid-template-columns:1fr auto;grid-template-areas:"tag link" "title title" "copy copy";padding:21px;}.industry-bridge-card .card-link{font-size:.75rem;}.home-industries-intro .btn{width:100%;}}

@media (prefers-reduced-motion:reduce){.service-card.service-card--stage{animation:none;}.service-showcase-tab,.industry-bridge-card{transition:none;}}

/* Keep the process rail between the numbered badges; JavaScript sets its exact height. */
body.home-story .process-track{top:28px;bottom:auto;height:0;}
body.home-story .process-item{opacity:1;transform:none;}
body.home-story .process-item.is-active .process-badge{color:#fff;background:linear-gradient(180deg,#2b5fa5,#1e4d8c);}

/* The floor plan now acts as late-stage physical-location proof, not an early detour. */
.premises-trust-section .floorplan-frame{max-width:1080px;}
.premises-trust-grid{
    max-width:1080px;
    margin:22px auto 0;
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr;
    gap:14px;
}
.premises-trust-card{
    min-height:98px;
    display:flex;
    align-items:center;
    gap:14px;
    padding:20px 22px;
    border:1px solid var(--border-subtle);
    border-radius:var(--radius-md);
    background:var(--bg-surface);
    color:var(--text-heading);
    box-shadow:0 10px 28px rgba(15,39,69,.05);
}
.premises-trust-card > span:not(.google-mark){display:flex;flex-direction:column;gap:4px;}
.premises-trust-card strong{display:block;font-family:var(--ff-display);font-size:1rem;}
.premises-trust-card small{display:block;color:var(--text-muted);font-size:.78rem;line-height:1.45;}
.premises-trust-card--google{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;}
.premises-trust-card--google:hover{transform:translateY(-3px);border-color:rgba(var(--accent-rgb),.45);box-shadow:0 15px 34px rgba(15,39,69,.1);}
.premises-trust-card--google > svg{width:20px;height:20px;margin-left:auto;flex:none;color:var(--gold-600);}
.google-mark{
    width:42px;
    height:42px;
    flex:none;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:conic-gradient(from -35deg,#4285f4 0 27%,#34a853 27% 45%,#fbbc05 45% 68%,#ea4335 68% 100%);
    color:#fff;
    font:800 1.15rem/1 var(--ff-body);
    box-shadow:inset 0 0 0 5px var(--bg-surface);
}
@media (max-width:900px){
    .premises-trust-grid{grid-template-columns:1fr 1fr;}
    .premises-trust-card--google{grid-column:span 2;}
}
@media (max-width:620px){
    .premises-trust-grid{grid-template-columns:1fr;}
    .premises-trust-card--google{grid-column:auto;}
}

/* Contact details own the representative image; the closing banner stays single-purpose. */
.contact-showcase-section{background:var(--bg-surface);}
.contact-showcase{display:grid;grid-template-columns:minmax(290px,.72fr) minmax(0,1.28fr);gap:clamp(24px,5vw,58px);align-items:stretch;max-width:1120px;margin:0 auto;}
.contact-showcase-list{display:grid;gap:14px;}
.contact-showcase-card{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:15px;padding:22px;border-radius:var(--radius-md);color:#111827;background:#fff;border:1px solid #dce3eb;box-shadow:0 10px 28px rgba(15,39,69,.045);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
.contact-showcase-card:hover,.contact-showcase-card:focus-visible{transform:translateX(4px);box-shadow:0 16px 34px rgba(10,26,44,.18);border-color:rgba(var(--accent-rgb),.7);}
.contact-showcase-card > span:last-child{min-width:0;display:flex;flex-direction:column;gap:3px;}
.contact-showcase-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#eaf1fa;color:var(--accent);}
.contact-showcase-icon svg{width:23px;height:23px;}
.contact-showcase-card small{font-size:.69rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:800;}
.contact-showcase-card strong{font-size:.93rem;color:#111827;overflow-wrap:anywhere;}
.contact-showcase-card em{font-size:.78rem;color:#64748b;font-style:normal;}
.contact-showcase-media{position:relative;min-height:480px;margin:0;overflow:hidden;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);}
.contact-showcase-media img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 38%;}
.contact-showcase-media::after{content:"";position:absolute;inset:58% 0 0;background:linear-gradient(transparent,rgba(7,19,33,.78));pointer-events:none;}
.contact-showcase-media figcaption{position:absolute;z-index:1;left:24px;right:24px;bottom:22px;color:#fff;font-weight:700;font-size:.9rem;}
.final-booking-section{min-height:auto!important;padding-top:60px;padding-bottom:90px;}
.cta-band--simple{padding:clamp(46px,7vw,82px) clamp(24px,7vw,92px);}
.cta-band--simple{border:1px solid #d7e1ed;background:radial-gradient(circle at 82% 20%,rgba(30,77,140,.1),transparent 23rem),linear-gradient(135deg,#fff,#edf3fa);box-shadow:0 20px 48px rgba(15,39,69,.08);}
.cta-band--simple h2{max-width:800px;font-size:clamp(1.9rem,4vw,3.25rem);color:#111827;}
.cta-band--simple p{color:#526174;}
.cta-band--simple .eyebrow{color:var(--accent)!important;}
.cta-band--simple .cta-actions{margin-top:26px;}
@media (max-width:820px){.contact-showcase{grid-template-columns:1fr;}.contact-showcase-media{min-height:360px;}}
@media (max-width:520px){.contact-showcase-media{min-height:290px;}.contact-showcase-card{padding:18px;grid-template-columns:42px minmax(0,1fr);}.contact-showcase-icon{width:42px;height:42px;border-radius:12px;}.final-booking-section{padding-top:34px;padding-bottom:64px;}}
