/* 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; }
