/* Regional presentation and accessibility refinements. */
:root { --regional-ink: #102b46; }
:focus-visible { outline: 3px solid #087b98; outline-offset: 5px; }
.nav-glass-pill { border: 1px solid rgba(16,43,70,.1); border-radius:999px; box-shadow: 0 8px 32px rgba(16,43,70,.07); }
.nav-glass-links > .group:focus-within > .absolute { opacity:1; visibility:visible; }
.hero-track { height:250vh; }
.hero-headline { letter-spacing:-.05em; font-weight:800; text-wrap:balance; }
.hero-layer-base .hero-overlay-gradient { background:linear-gradient(100deg,rgba(250,253,255,.94),rgba(250,253,255,.72),rgba(250,253,255,.89)); }
.hero-content-container { max-width:66rem; }
.hero-description { max-width:43rem; line-height:1.75; color:#42566a; text-wrap:pretty; }
.hero-badge { height:auto; padding:.55rem 1rem; background:#fff; border-color:#e7d6e2; }
.hero-badge-text { font-size: max(1rem, .66rem); letter-spacing:.09em; line-height:1.5; }
.hero-buttons-row .btn { min-height:3.2rem; padding-inline:1.55rem; font-size: max(1rem, .9rem); }
.hero-delivery-note { margin-top:1.75rem; font-size: max(1rem, .6rem); letter-spacing:.12em; font-weight:700; color:#536b7e; display:flex; flex-wrap:wrap; justify-content:center; gap:.65rem; }
.hero-layer-base:focus-within { z-index:21; }
.hero-layer-reveal:focus-within { clip-path:none!important; }
.hero-layer-reveal:focus-within #hero-reveal-content { opacity:1!important; }
/* Shared regional section: light brand palette with a distinct boundary. */
.regional-section { padding:5rem 0; margin-block:3rem; background:#eff9fb; color:#102b46; position:relative; overflow:hidden; border-block:1px solid #d9eaf0; isolation:isolate; }
.regional-section::before { content:""; position:absolute; inset:0 0 auto; height:4px; background:#06B6D4; pointer-events:none; }
.regional-heading { display:grid; grid-template-columns:1.25fr 1fr; gap:4rem; align-items:end; margin-bottom:2.75rem; }
.regional-eyebrow { color:#087e93; font-size: max(1rem, .65rem); font-weight:700; letter-spacing:.17em; margin-bottom:1.25rem; }
.regional-heading h2 { font-size: max(1rem, clamp(1.9rem,3vw,2.8rem)); letter-spacing:-.045em; line-height:1.18; font-weight:700; }
.regional-heading h2 span { color:#c41565; }
.regional-heading > p { color:#526579; line-height:1.85; font-size: max(1rem, .95rem); max-width:30rem; }
.regional-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.15rem; }
.regional-card { --region-accent:#06B6D4; padding:2rem; border:1px solid #dce7ed; border-top:3px solid var(--region-accent); border-radius:1.1rem; background:#fff; box-shadow:0 10px 28px -16px #102b4626; display:flex; flex-direction:column; align-items:start; transition:transform .25s,border-color .25s,box-shadow .25s; }
.regional-card:nth-child(2) { --region-accent:#E11D74; }
.regional-card:is(:hover,:focus-within) { transform:translateY(-5px); border-color:var(--region-accent); box-shadow:0 16px 32px -18px #102b4638; }
.regional-code { color:#087e93; background:#ecfbfd; padding:.45rem .65rem; border-radius:.4rem; letter-spacing:.12em; font-size: max(1rem, .65rem); font-weight:700; }
.regional-card:nth-child(2) .regional-code { color:#c41565; background:#fff0f6; }
.regional-card h3 { font-size: max(1rem, 1.55rem); letter-spacing:-.03em; margin:1.9rem 0 1rem; font-weight:700; }
.regional-card p { color:#526579; line-height:1.85; font-size: max(1rem, .88rem); margin-bottom:2rem; }
.regional-card a { color:#102b46; font-size: max(1rem, .8rem); font-weight:700; margin-top:auto; display:flex; width:100%; justify-content:space-between; gap:1rem; }
.regional-card a span { color:#c41565; }
.regional-card a:hover { color:#c41565; }
.regional-bottom { margin-top:2rem; border-top:1px solid #dce7ed; padding-top:1.5rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; color:#526579; font-size: max(1rem, .78rem); }
.regional-bottom a { color:#fff; background:#c41565; border-radius:999px; padding:.85rem 1.2rem; font-weight:700; }
.regional-bottom a:hover { background:#a81055; }
.regional-section :focus-visible { outline-color:#087e93; }
.service-region-label { margin:1rem auto 0; width:fit-content; border:1px solid #b4d2dc; background:#fffffff0; border-radius:2rem; color:#20475b; padding:.5rem 1rem; font-size: max(1rem, .75rem); font-weight:600; }
.who-intro-glass { border-radius:1.5rem; box-shadow:0 12px 40px #132b4210; }
.why-work-item { border-radius:1rem; }
.seo-breadcrumbs.breadcrumbs > ol { margin-inline:auto; }
.site-footer-main { border-top:1px solid #dce7ed; }
@media(max-width:767px) {
  .regional-section { padding:3rem 0; margin-block:2rem; }
  .regional-heading { grid-template-columns:1fr; gap:1.3rem; }
  .regional-grid { grid-template-columns:1fr; }
  .regional-card { padding:1.5rem; }
  .regional-card h3 { margin-top:1.3rem; }
  .regional-bottom { flex-direction:column; line-height:1.7; }
  .hero-badge-text { font-size: max(1rem, .56rem); letter-spacing:.025em; }
  .hero-content-container { padding-inline:1.2rem; }
  .hero-delivery-note { font-size: max(1rem, .5rem); letter-spacing:.03em; margin-top:1.15rem; gap:.4rem; }
}
@media(max-height:560px) {
  .hero-content-container { padding-top:5rem; padding-bottom:2rem; }
  .hero-headline { font-size: max(1rem, 1.65rem); }
  .hero-description { font-size: max(1rem, .8rem); margin-top:.5rem; }
  .hero-badge { margin-bottom:.5rem; }
  .hero-delivery-note,.hero-scroll-indicator { display:none; }
  .hero-buttons-row { margin-top:.65rem; }
  .hero-buttons-row .btn { min-height:2.4rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .hero-track { height:100svh!important; }
  .hero-layer-reveal { clip-path:none!important; }
  #hero-reveal-content { opacity:1!important; }
}

/* Flat service artwork and branded interaction states. */
.petal-service-no { color:#a8b0bc; -webkit-text-stroke:0; }
.petal-service-card:is(:hover,:focus-visible) .petal-service-no { color:#E11D74; -webkit-text-stroke:0; }
.petal-service-card:nth-child(even):is(:hover,:focus-visible) .petal-service-no { color:#06B6D4; }
.petal-service-img { width:112px; height:112px; max-width:72%; max-height:112px; filter:none; }
.petal-service-card:focus-visible { border-color:#06B6D4; outline:3px solid #06B6D4; outline-offset:4px; }

/* Readable text with room to wrap at every breakpoint. */
html { font-size:100%; }
.btn,.badge,.hero-pill,.nav-lang-btn { height:auto; min-height:2.75rem; white-space:normal; line-height:1.5; }
.hero-badge { max-width:100%; text-align:center; }
.hero-badge-text,.regional-eyebrow,.regional-code,.hero-delivery-note { letter-spacing:.035em; }
.hero-pills-row { flex-wrap:wrap; }
.hero-delivery-note { display:block; line-height:1.6; max-width:40rem; }
.hero-content-container { padding-bottom:4.5rem; }
.hero-scroll-indicator { padding-bottom:.75rem; }
.regional-bottom { flex-wrap:wrap; }
.regional-card a { flex-wrap:wrap; line-height:1.6; }
.site-footer-contact-text,.site-footer-email,.seo-breadcrumbs { overflow-wrap:anywhere; }
.petal-service-card { height:auto; min-height:0; }
.petal-service-visual { flex:0 0 auto; min-height:6rem; }
.petal-service-img { width:88px; height:88px; }
.petal-service-title { margin-top:.5rem; }
.petal-service-card:hover .petal-service-img,.petal-service-card:hover .petal-service-title { transform:none; }
.petal-service-desc { display:block; position:static; opacity:1; transform:none; overflow:visible; margin-top:.8rem; -webkit-line-clamp:unset; line-clamp:unset; }
.petal-service-arrow { position:static; opacity:1; transform:none; margin-top:auto; align-self:flex-end; }
.petal-service-desc + .petal-service-arrow { margin-top:1rem; }
@media(max-width:1279px) {
 .nav-glass-links { display:none!important; }
 #mobileMenuBtn { display:inline-flex!important; }
 .nav-cta-btn { display:none!important; }
}
@media(min-width:1280px) {
 .site-header-float .nav-link { padding-inline:.55rem; gap:.3rem; }
 .nav-glass-pill { gap:.6rem; }
}
@media(max-width:767px) {
 .hero-headline { font-size:1.85rem; }
 .hero-content-container { padding-top:6rem; padding-bottom:4rem; }
 .hero-badge { padding:.4rem .65rem; margin-bottom:.8rem; }
 .hero-buttons-row { gap:.6rem; margin-top:1rem; }
 .hero-delivery-note { margin-top:1rem; }
 .regional-card { min-width:0; }
 .regional-bottom a { text-align:center; }
}
@media(max-height:740px) and (max-width:991px) {
 .hero-track { height:auto!important; }
 .hero-sticky-frame { position:relative; height:auto; min-height:850px; }
 .hero-layer-base { visibility:hidden; }
 .hero-layer-reveal { clip-path:none!important; }
 #hero-reveal-content { opacity:1!important; }
 .hero-scroll-indicator { display:none; }
}

/* Solid section surfaces: alternate per page, independent of content classes. */
body { background:#fff; }
body main section[data-surface][data-surface] {
 background-color:var(--section-surface)!important;
 background-image:none!important;
 border-top:1px solid #dce7ec!important;
 border-bottom:0!important;
 position:relative;
 isolation:isolate;
 color:#102b46;
}
main section[data-surface="white"] { --section-surface:#ffffff; }
main section[data-surface="cyan"] { --section-surface:#edf8fa; }
main section[data-surface="slate"] { --section-surface:#f1f4f8; }
body main section[data-surface][data-surface]::before,
body main section[data-surface][data-surface]::after { background:none!important; box-shadow:none!important; }
body main section[data-surface][data-surface] > :is(.why-work-deco,.stats-band-bg,.stats-band-veil,.cta-bg,.cta-orb,.section-orb) { display:none!important; }
main section.regional-section { margin-block:0; padding-block:clamp(3.5rem,6vw,5rem); }
.regional-section .regional-card { background:#fff; }
.hero-overlay-gradient { background:rgba(255,255,255,.82)!important; }
/* A quiet, solid footer with clear contrast and the original colored logo. */
.site-footer { background:#e4edf2!important; background-image:none!important; color:#102b46; border-top:1px solid #cbdbe4; }
.site-footer-media,.site-footer::before,.site-footer::after { display:none!important; }
.site-footer :is(.site-footer-desc,.site-footer-heading,.site-footer-links a,.site-footer-contact-label,.site-footer-contact-text,.site-footer-email,.site-footer-copy,.site-footer-lang-btn) { color:#30495c!important; }
.site-footer-heading { color:#102b46!important; }
.site-footer :is(.site-footer-contact-card,.site-footer-email) { background:#fff!important; border-color:#ccdde6!important; }
.site-footer-contact-icon { background:#e8f8fb!important; color:#087e93!important; }
.site-footer-links a:hover,.site-footer-lang-btn:hover { color:#c41565!important; }
.site-footer-lang { background:#fff; border:1px solid #ccdde6; }
.site-footer-bottom { background:#dbe7ee; border-top:1px solid #c8d9e3; backdrop-filter:none; }
.site-footer-main { border-top:0; }
.site-footer-heading i,.site-footer-links a i { color:#087e93!important; }

/* Requested exact palette: white / #f8f8f8, with #354c6a feature bands. */
main section[data-surface="gray"] { --section-surface:#f8f8f8; }
main section[data-surface="navy"] { --section-surface:#354c6a; }
body main section[data-surface="navy"][data-surface] { color:#fff; border-top-color:#354c6a!important; }
body main section[data-surface="navy"] :is(h2,h3,p,.stats-band-num,.stats-band-label,.stats-band-copy,.clients-band-title,.clients-band-desc,.section-label,.bh-lead,.bh-cyan,.bh-accent) { color:#fff!important; -webkit-text-fill-color:currentColor; }
body main section[data-surface="navy"] :is(.stats-band-copy,.clients-band-desc) { color:#e4eaf2!important; }
.site-footer,.site-footer-bottom { background:#354c6a!important; background-image:none!important; color:#fff; }
.site-footer { border-top-color:#354c6a; }
.site-footer-bottom { border-top:1px solid #64768b; }
.site-footer :is(.site-footer-desc,.site-footer-heading,.site-footer-links a,.site-footer-contact-label,.site-footer-contact-text,.site-footer-email,.site-footer-copy,.site-footer-lang-btn) { color:#fff!important; }
.site-footer :is(.site-footer-contact-card,.site-footer-email,.site-footer-lang) { background:#354c6a!important; border-color:#718095!important; }
.site-footer :is(.site-footer-heading i,.site-footer-links a i) { color:#a7e9f2!important; }
.site-footer-links a:hover,.site-footer-lang-btn:hover { color:#a7e9f2!important; }
.site-footer-lang-btn.font-extrabold { background:#fff!important; color:#354c6a!important; }
.clients-band .clients-band-title.brand-heading span { color:#fff!important; -webkit-text-fill-color:#fff!important; }
/* Keep product screenshots visible and backgrounds stable on hover. */
body[data-page="products"] .media-card-shade { display: none; }
body[data-page="products"] .media-card:hover {
  background: #fff;
  border-color: #cbd5e1 !important;
  box-shadow: 0 12px 28px -18px rgba(53, 76, 106, .3) !important;
  transform: translateY(-3px);
}
body[data-page="products"] .media-card:hover .media-card-media img { transform: none; }
body[data-page="products"] .media-card:focus-visible { outline: 3px solid #354c6a; outline-offset: 4px; }

/* Keep expanded service menus usable on short screens. */
.dropdown-panel { max-height:75vh; overflow-y:auto; }
.mobile-service-shortcut { padding-inline-start:2.75rem!important; font-size:1rem!important; }

/* Client referrals: shared promotion and dedicated page. */
.referral-promo{background:#f8f8f8!important;border-top:1px solid #e1e6eb;padding:clamp(3rem,6vw,5rem) 0;color:#152e49}
.referral-promo-inner{display:flex;align-items:center;justify-content:space-between;gap:2.5rem}
.referral-promo-inner>div{max-width:780px}.referral-eyebrow{font-weight:700;color:#087e91;margin-bottom:1rem}
.referral-promo h2{font-size:clamp(1.6rem,2.5vw,2.5rem);font-weight:800;line-height:1.25;margin:0 0 1rem;letter-spacing:-.025em}
.referral-promo p{font-size:1rem;line-height:1.8}.referral-promo .referral-note{margin-top:.8rem;color:#526378}
.referral-button{display:inline-flex;align-items:center;justify-content:center;gap:1rem;background:#bd0c62;color:#fff!important;padding:1rem 1.35rem;border-radius:10px;font-size:1rem;font-weight:700;flex-shrink:0;text-align:center;max-width:100%}
.referral-button:hover{background:#97104f}.referral-button:focus-visible{outline:3px solid #087e91;outline-offset:4px}
.referral-footer-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.5rem;padding-bottom:1.5rem;border-top:1px solid #ffffff30;position:relative;font-size:1rem;color:#fff}
.referral-footer-link a{color:#fff;text-decoration:underline;text-underline-offset:5px;font-weight:700}
.referral-page h2{font-size:clamp(1.6rem,2.7vw,2.5rem);line-height:1.25;font-weight:800;margin-bottom:1.2rem}
.referral-page p{font-size:1.0625rem;line-height:1.85}.referral-intro{display:grid;grid-template-columns:1.5fr 1fr;gap:4rem;align-items:center}.referral-intro .btn-a{display:inline-flex;margin-top:1.5rem}
.referral-reward{background:#354c6a;color:white;border-radius:22px;padding:3rem 2rem;text-align:center}.referral-reward>span{font-size:1.15rem}.referral-reward strong{display:block;font-size:clamp(3rem,6vw,5.5rem);line-height:1.2;color:#a5ecf5;margin:1rem 0}.referral-reward p{color:white}
.referral-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2rem}.referral-steps article{background:white;border:1px solid #e0e6ec;border-radius:16px;padding:2rem}.referral-step{display:block;color:#087e91;font-size:1.8rem;font-weight:800;margin-bottom:1.5rem}.referral-steps h3{font-size:1.35rem;font-weight:750;margin-bottom:.8rem}.referral-terms{padding-top:1.5rem;border-top:1px solid #e0e6ec;margin-top:2rem}
#referral-form{scroll-margin-top:7rem}.referral-page .contact-studio-panel{box-shadow:0 12px 36px #18314a0b}
@media(max-width:900px){.referral-promo-inner{align-items:flex-start;flex-direction:column}.referral-intro{gap:2rem}.referral-steps{grid-template-columns:1fr}.referral-steps article{padding:1.5rem}}
@media(max-width:600px){.referral-intro{grid-template-columns:1fr}.referral-reward{padding:2rem 1rem}.referral-footer-link{align-items:flex-start;flex-direction:column}.referral-button{width:100%}.referral-page .contact-studio-panel{padding:1.25rem}}

.referral-promo .referral-rate{font-size:1.25rem;font-weight:750;color:#bd0c62;margin-bottom:.6rem}

/* Referral visual polish. */
.referral-promo .referral-promo-inner{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.85fr);gap:clamp(2rem,5vw,5rem);max-width:1320px;align-items:center}
.referral-promo .referral-promo-inner>div{max-width:720px}.referral-promo .referral-eyebrow{display:inline-block;background:#eaf4f6;border:1px solid #d1e8ed;border-radius:7px;padding:.4rem .85rem;font-size:1rem;margin-bottom:1.15rem}
.referral-promo h2{font-size:clamp(1.8rem,2.6vw,2.5rem);line-height:1.25}.referral-promo p[data-i18n="referral_body"]{font-size:1.125rem;line-height:1.85;color:#415770;max-width:660px}.referral-promo .referral-rate{font-size:clamp(1.125rem,1.6vw,1.35rem);margin-bottom:.8rem}.referral-promo .referral-note{font-size:1rem;color:#526378}.referral-promo .referral-button{margin-top:1.4rem;width:auto}
.referral-art{margin:0;max-width:500px;width:100%;justify-self:center}.referral-art img{display:block;width:100%;height:auto}
.referral-page .referral-reward{position:relative;background:#354c6a;border:1px solid #526b88;box-shadow:0 16px 38px #18314a16;padding:2.5rem;border-radius:24px;overflow:hidden}
.referral-reward-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 1.3rem;background:#ffffff12;border:1px solid #ffffff35;border-radius:18px;color:#a5ecf5;font-size:1.75rem}
.referral-page .referral-reward>span{display:block;color:#fff;font-size:1.125rem;font-weight:600}.referral-page .referral-reward strong{font-size:clamp(3.5rem,6vw,5rem);font-weight:800;margin:1rem 0 1.5rem;letter-spacing:-.035em}.referral-page .referral-reward p{color:#fff!important;font-size:1.0625rem!important;line-height:1.75;background:#ffffff0c;border-top:1px solid #ffffff35;padding:1.25rem 1rem 0;margin:0;opacity:1}
.site-footer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.3rem}.site-footer-actions .site-footer-cta{margin:0}.site-footer-referral{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border:1px solid #a5ecf5;border-radius:999px;color:#fff!important;padding:.65rem 1rem;font-size:1rem;line-height:1.45;font-weight:650;max-width:100%;text-align:center}.site-footer-referral:hover{background:#ffffff14}.site-footer-referral:focus-visible{outline:3px solid #a5ecf5;outline-offset:3px}
@media(max-width:700px){.referral-promo .referral-promo-inner{grid-template-columns:1fr;gap:1.5rem}.referral-art{max-width:340px}.referral-page .referral-reward{padding:2rem 1.25rem}.referral-promo .referral-button{width:100%}.site-footer-actions{gap:.7rem}}
