:root {
 --presta-primary: #006b5a;
 --presta-accent: #00b894;
 --presta-mint: #e6f6f2;
 --presta-background: #f2f1eb;
 --presta-card: #ffffff;
 --presta-ink: #111827;
 --presta-muted: #4b5563;
 --presta-border: #e5e7eb;

 /* Motion system - premium, subtle, consistent */
 --ease-soft: cubic-bezier(0.16, 1, 0.3, 1);
 --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
 --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
 --ease-emphasized: cubic-bezier(0.2, 0.8, 0.2, 1);

 --duration-instant: 100ms;
 --duration-fast: 160ms;
 --duration-normal: 220ms;
 --duration-medium: 360ms;
 --duration-slow: 520ms;
 --duration-page: 560ms;

 --appear-distance: 18px;
 --appear-duration: 0.72s;
 --appear-stagger: 55ms;
 --hover-lift: -2px;
 --hover-scale: 1.015;
 --focus-ring: 0 0 0 3px rgba(0, 107, 90, 0.22);

 --shadow-lift: 0 14px 34px rgba(0, 107, 90, 0.18);
 --shadow-card: 0 24px 60px rgba(17, 24, 39, 0.08);
 --shadow-card-hover: 0 20px 48px rgba(17, 24, 39, 0.1);
 --shadow-btn-hover: 0 16px 36px rgba(0, 107, 90, 0.22);
 --shadow-premium: 0 1px 2px rgba(17, 24, 39, 0.04), 0 14px 34px rgba(17, 24, 39, 0.07);
 --surface-line: rgba(0, 107, 90, 0.1);
}

*,
*::before,
*::after {
 box-sizing: border-box;
}

html {
 scroll-behavior: auto;
 overflow-x: clip;
}

body {
 margin: 0;
 min-height: 100vh;
 font-family: Inter, ui-sans-serif, system-ui, sans-serif;
 color: var(--presta-ink);
 background: var(--presta-background);
 -webkit-font-smoothing: antialiased;
 overflow-x: clip;
}

body::before {
 content: "";
 position: fixed;
 inset: 0;
 z-index: -1;
 pointer-events: none;
 background:
  radial-gradient(circle at 12% 4%, rgba(0, 184, 148, 0.08), transparent 28rem),
  radial-gradient(circle at 92% 34%, rgba(0, 107, 90, 0.055), transparent 26rem);
}

/* A quiet sense of progress during long pages. */
.scroll-progress {
 position: fixed;
 inset: 0 0 auto;
 z-index: 10090;
 height: 2px;
 pointer-events: none;
 transform: scaleX(var(--scroll-progress, 0));
 transform-origin: left center;
 background: linear-gradient(90deg, var(--presta-primary), var(--presta-accent));
 box-shadow: 0 1px 8px rgba(0, 184, 148, 0.38);
 will-change: transform;
}

/* Skip link - keyboard first */
.skip-link {
 position: absolute;
 top: 0.75rem;
 left: 0.75rem;
 z-index: 10050;
 padding: 0.65rem 1rem;
 border-radius: 999px;
 background: var(--presta-primary);
 color: #fff;
 font-size: 0.88rem;
 font-weight: 800;
 text-decoration: none;
 transform: translateY(-160%);
 transition: transform var(--duration-fast) var(--ease-soft);
}

.skip-link:focus,
.skip-link:focus-visible {
 transform: translateY(0);
 outline: 2px solid #fff;
 outline-offset: 3px;
}

/* ── Page transitions ── */
#presta-transition {
 position: fixed;
 inset: 0;
 z-index: 10000;
 background: #006b5a;
 opacity: 0;
 pointer-events: none;
 transition: opacity var(--duration-page) var(--ease-emphasized);
 will-change: opacity;
}

html.presta-page-leaving #presta-transition,
html.presta-page-loading.presta-page-from-nav #presta-transition {
 opacity: 1;
 pointer-events: auto;
}

html.presta-page-loading .page-shell {
 opacity: 0;
}

html.presta-page-leaving .page-shell,
.page-shell.is-leaving {
 opacity: 0;
 pointer-events: none;
}

html.presta-page-entered .page-shell {
 opacity: 1;
 transform: translateY(0);
}

/* Scroll / entrance reveals */
.presta-appear {
 opacity: 0;
 transform: translate3d(0, var(--appear-distance), 0);
 will-change: opacity, transform;
}

.presta-appear.is-visible {
 animation: presta-appear-in var(--appear-duration) var(--ease-soft) forwards;
 animation-delay: var(--appear-delay, 0ms);
}

@keyframes presta-appear-in {
 from {
 opacity: 0;
 transform: translate3d(0, var(--appear-distance), 0);
 }

 to {
 opacity: 1;
 transform: translate3d(0, 0, 0);
 }
}

/* Image reveal */
.hero-image,
.feature-row-media img,
.service-detail-media img {
 transition: transform var(--duration-slow) var(--ease-soft), opacity var(--duration-medium) var(--ease-out);
}

.hero-visual.presta-appear:not(.is-visible) .hero-image {
 opacity: 0.6;
 transform: scale(0.98) translateY(8px);
}

.hero-visual.presta-appear.is-visible .hero-image {
 opacity: 1;
 transform: scale(1) translateY(0);
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
 :root {
 --appear-distance: 0px;
 --appear-duration: 0.01ms;
 --duration-instant: 0.01ms;
 --duration-fast: 0.01ms;
 --duration-normal: 0.01ms;
 --duration-medium: 0.01ms;
 --duration-slow: 0.01ms;
 --duration-page: 120ms;
 }

 #presta-transition {
 transition-duration: 0.12s;
 }

 .page-shell {
 transition-duration: 0.12s !important;
 }

 .presta-appear,
 .presta-appear.is-visible {
 opacity: 1;
 transform: none;
 animation: none;
 will-change: auto;
 }

 .faq-answer,
 .faq-item,
 .faq-question svg,
 .btn,
 .service-card,
 .value-card,
 .benefit-card,
 .testimonial-card,
 .contact-card,
 .stat-card,
 .link-arrow,
 .header-nav a,
 .menu-toggle,
 .lang-menu-toggle,
 .lang-menu-panel,
 .lang-menu-item,
 .form-row input,
 .form-row textarea,
 .form-row select {
 transition: none !important;
 }

 .faq-item[open] .faq-answer {
 grid-template-rows: 1fr;
 opacity: 1;
 }

 .mobile-nav-panel.is-open .mobile-nav a {
 opacity: 1;
 transform: none;
 animation: none;
 }

 .btn:hover,
 .service-card:hover,
 .value-card:hover,
 .benefit-card:hover,
 .testimonial-card:hover,
 .stat-card:hover,
 .contact-card:hover {
 transform: none;
 }
}

/* ── Editorial illustration system ── */
.editorial-visual {
 position: relative;
 width: 100%;
 max-width: 68rem;
 margin: 0 auto 2.5rem;
 overflow: hidden;
 border-radius: clamp(1.35rem, 3vw, 2.25rem);
 background: #ebe9e1;
 box-shadow: 0 28px 70px rgba(17, 24, 39, 0.09);
}

.editorial-visual::after {
 content: "";
 position: absolute;
 inset: 0;
 pointer-events: none;
 border: 1px solid rgba(255, 255, 255, 0.72);
 border-radius: inherit;
 box-shadow: inset 0 0 0 1px rgba(0, 107, 90, 0.035);
}

.editorial-visual img {
 display: block;
 width: 100%;
 height: auto;
 transition: transform 1.1s var(--ease-soft), filter var(--duration-slow) var(--ease-out);
}

.editorial-visual:hover img {
 transform: scale(1.018);
 filter: saturate(1.025);
}

.editorial-visual--page {
 margin-top: 0.5rem;
 margin-bottom: 0;
}

/* Services become an editorial index beneath the image, not another card wall. */
body[data-page="home"] .service-grid {
 gap: 0 1.25rem;
}

body[data-page="home"] .service-card {
 border: 0;
 border-top: 1px solid rgba(0, 107, 90, 0.16);
 border-radius: 0;
 padding: 1.25rem 0.35rem 1rem;
 background: transparent;
 box-shadow: none;
}

body[data-page="home"] .service-card:hover {
 transform: translateY(-2px);
 border-color: var(--presta-accent);
 box-shadow: none;
}

body[data-page="home"] .service-card::before {
 display: none;
}

/* Value statements read as concise editorial columns. */
.values-grid .value-card,
body[data-page="pros"] .benefit-card {
 border: 0;
 border-top: 1px solid rgba(0, 107, 90, 0.16);
 border-radius: 0;
 padding: 1.35rem 0.75rem;
 background: transparent;
 box-shadow: none;
}

.values-grid .value-card:hover,
body[data-page="pros"] .benefit-card:hover {
 transform: translateY(-2px);
 border-color: var(--presta-accent);
 box-shadow: none;
}

.values-grid .value-card::before,
body[data-page="pros"] .benefit-card::before {
 display: none;
}

/* The services catalogue becomes a spacious two-column index. */
body[data-page="services"] .service-detail-grid {
 max-width: 66rem;
 gap: 0 2.5rem;
}

body[data-page="services"] .service-detail {
 border: 0;
 border-top: 1px solid rgba(0, 107, 90, 0.16);
 border-radius: 0;
 padding: 2rem 0.5rem;
 background: transparent;
 box-shadow: none;
}

body[data-page="services"] .service-detail:hover {
 transform: none;
 border-color: var(--presta-accent);
 box-shadow: none;
}

body[data-page="services"] .service-detail::before {
 display: none;
}

body[data-page="services"] .service-detail-copy {
 align-content: start;
}

/* Contact methods are a list; the form remains the one intentional card. */
body[data-page="contact"] .contact-cards {
 gap: 0;
}

body[data-page="contact"] .contact-card {
 border: 0;
 border-top: 1px solid rgba(0, 107, 90, 0.16);
 border-radius: 0;
 padding: 1.2rem 0.5rem;
 background: transparent;
 box-shadow: none;
 text-align: left;
}

body[data-page="contact"] .contact-card:hover {
 transform: none;
 border-color: var(--presta-accent);
 box-shadow: none;
}

body[data-page="contact"] .contact-card::before {
 display: none;
}

@media (min-width: 768px) {
 body[data-page="services"] .service-detail-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 /* Center a trailing odd card so it doesn’t sit alone on the left. */
 body[data-page="services"] .service-detail:last-child:nth-child(odd) {
  grid-column: 1 / -1;
  max-width: 32rem;
  margin-inline: auto;
  width: 100%;
 }

 body[data-page="guide"] .how.section-block,
 body[data-page="home"] #how {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(18rem, 0.75fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
 }

 body[data-page="home"] #how .section-head {
  grid-column: 1 / -1;
  margin-bottom: -0.5rem;
 }

 body[data-page="guide"] .editorial-visual--journey,
 body[data-page="home"] #how .editorial-visual--journey {
  margin: 0;
 }

 body[data-page="guide"] .steps,
 body[data-page="home"] #how .steps {
  gap: 0;
  max-width: none;
 }

 body[data-page="guide"] .steps li,
 body[data-page="home"] #how .steps li {
  grid-template-columns: auto 1fr;
  justify-items: start;
  gap: 1rem;
  padding: 1.35rem 0;
  border-radius: 0;
  border-top: 1px solid rgba(0, 107, 90, 0.16);
  background: transparent;
  box-shadow: none;
  text-align: left;
 }

 body[data-page="guide"] .steps li:hover,
 body[data-page="home"] #how .steps li:hover {
  transform: translateX(3px);
  box-shadow: none;
 }

 body[data-page="guide"] .steps li::before,
 body[data-page="home"] #how .steps li::before {
  display: none;
 }

 body[data-page="home"] #how > p:last-child {
  grid-column: 2;
  margin: -2.75rem 0 0 !important;
 }

 body[data-page="pros"] main > .section-block:has(.editorial-visual--pro) {
  display: grid;
  grid-template-columns: minmax(18rem, 0.7fr) minmax(0, 1.3fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 4.5rem);
 }

 body[data-page="pros"] main > .section-block:has(.editorial-visual--pro) .section-head {
  text-align: left;
  margin: 0;
 }

 body[data-page="pros"] main > .section-block:has(.editorial-visual--pro) .eyebrow {
  justify-content: flex-start;
 }

 body[data-page="pros"] .editorial-visual--pro {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
 }
}

@media (max-width: 767px) {
 .editorial-visual {
  margin-bottom: 1.5rem;
  border-radius: 1.25rem;
 }

 .editorial-visual img {
  min-height: 15rem;
  object-fit: cover;
  object-position: center;
 }

 .editorial-visual--services img {
  object-position: 48% center;
 }

 body[data-page="guide"] .steps,
 body[data-page="home"] #how .steps {
  gap: 0;
 }

 body[data-page="guide"] .steps li,
 body[data-page="home"] #how .steps li {
  grid-template-columns: auto 1fr;
  justify-items: start;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 0.25rem;
  border: 0;
  border-top: 1px solid rgba(0, 107, 90, 0.16);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: left;
 }

 body[data-page="guide"] .steps li::before,
 body[data-page="home"] #how .steps li::before {
  display: none;
 }

 body[data-page="guide"] .steps li > div,
 body[data-page="home"] #how .steps li > div {
  text-align: left;
 }
}

@media (min-width: 1024px) {
 /* True visual centering for the three header groups. */
 .site-header {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) auto minmax(12rem, 1fr);
  align-items: center;
  column-gap: clamp(1rem, 2vw, 2rem);
 }

 .site-header .logo {
  justify-self: start;
 }

 .site-header .header-nav {
  justify-self: center;
  margin: 0;
  gap: 0.2rem;
 }

 .site-header .header-actions {
  justify-self: end;
  margin: 0;
  gap: 0.7rem;
 }

 /* Compact editorial services composition. */
 body[data-page="home"] .services {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(19rem, 0.92fr);
  grid-template-rows: auto auto auto;
  align-items: center;
  gap: 2.25rem clamp(2.5rem, 5vw, 5rem);
 }

 body[data-page="home"] .services .section-head {
  grid-column: 1 / -1;
  max-width: 48rem;
  margin: 0;
  text-align: left;
 }

 body[data-page="home"] .services .section-head .eyebrow {
  justify-content: flex-start;
 }

 body[data-page="home"] .services .section-head p:last-child {
  max-width: 42rem;
  margin-inline: 0;
 }

 body[data-page="home"] .services .editorial-visual--services {
  grid-column: 1;
  grid-row: 2 / span 2;
  align-self: stretch;
  height: clamp(27rem, 35vw, 33rem);
  margin: 0;
 }

 body[data-page="home"] .services .editorial-visual--services img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 48% center;
 }

 body[data-page="home"] .services .service-grid {
  grid-column: 2;
  grid-row: 2;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
 }

 body[data-page="home"] .services .service-card {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 0.9rem;
  padding: 0.85rem 0.25rem;
  text-align: left;
 }

 body[data-page="home"] .services .service-icon {
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 2.35rem;
  height: 2.35rem;
  margin: 0;
 }

 body[data-page="home"] .services .service-card h3,
 body[data-page="home"] .services .service-card p {
  grid-column: 2;
 }

 body[data-page="home"] .services > p:last-child {
  grid-column: 2;
  grid-row: 3;
  justify-self: start;
  margin: -1rem 0 0 !important;
 }
}

/* ── Final header, store badge and FAQ refinements ── */
/* Keep the blurred header crisp and readable; the glass effect is now a tint,
   rather than a partly transparent surface over the page imagery. */
body[data-page] .site-header::before,
body[data-page] .site-header.is-scrolled::before {
 border-color: rgba(176, 255, 233, 0.14);
 background: rgba(0, 44, 39, 0.92);
 backdrop-filter: blur(22px) saturate(1.15);
 -webkit-backdrop-filter: blur(22px) saturate(1.15);
}

body[data-page] .site-header {
 padding-bottom: 1.15rem;
}

.store-badge {
 display: grid;
 place-items: center;
 width: 7.75rem;
 height: 2.6rem;
 overflow: hidden;
 border-radius: 0.5rem;
}

.store-badge img,
.cta-band .store-badge img {
 width: 100%;
 height: 100%;
 max-width: none;
 object-fit: fill;
}

/* The supplied App Store file has generous transparent padding. This keeps
   its visible badge optically matched to Google Play without changing assets. */
.store-badge:first-child img {
 transform: scaleY(1.45);
}

/* The normalized SVG frames remove the uneven transparent padding baked into
   the source badges, so both storefront marks share one optical height. */
.store-badge {
 display: inline-flex;
 width: auto;
 height: 2.65rem;
 overflow: visible;
}

.store-badge img,
.cta-band .store-badge img,
.store-badge:first-child img {
 width: auto;
 height: 100%;
 max-width: none;
 object-fit: contain;
 transform: none;
}

/* The original App Store artwork carries much more transparent padding than
   Google Play. Balance the visible marks, while keeping the source assets. */
.store-badge:first-child {
 overflow: visible;
}

.store-badge:first-child img {
 height: 4rem;
 transform: scaleX(1.16);
}

body[data-page="home"] .hero-background,
body[data-page="home"] .hero--immersive:hover .hero-background {
 transform: none;
 transition: none;
}

/* FAQ is a calm editorial index rather than a stack of interchangeable cards. */
body[data-page="faq"] .faq-section {
 display: grid;
 grid-template-columns: minmax(10rem, 0.4fr) minmax(0, 1fr);
 align-items: start;
 gap: clamp(1.5rem, 5vw, 5rem);
 width: min(100%, 68rem);
 margin-inline: auto;
 padding: clamp(3.5rem, 7vw, 6.25rem) 0;
 border-top: 1px solid var(--presta-border);
}

body[data-page="faq"] .page-hero + .faq-section {
 border-top: 0;
}

body[data-page="faq"] .faq-section + .faq-section {
 margin-top: 0;
}

body[data-page="faq"] .faq-section > .eyebrow {
 position: sticky;
 top: 6.5rem;
 margin: 0 !important;
 color: var(--presta-primary);
 font-size: clamp(1.5rem, 2vw, 2rem);
 font-weight: 800;
 letter-spacing: -0.055em;
 text-transform: none;
 justify-content: flex-start;
 text-align: left;
}

body[data-page="faq"] .faq-list {
 width: 100%;
 max-width: none;
 margin: 0;
 gap: 0;
 counter-reset: faq;
}

body[data-page="faq"] .faq-item {
 position: relative;
 border: 0;
 border-top: 1px solid var(--presta-border);
 border-radius: 0;
 background: transparent;
 box-shadow: none;
}

body[data-page="faq"] .faq-item:last-child {
 border-bottom: 1px solid var(--presta-border);
}

body[data-page="faq"] .faq-item[open] {
 border-color: rgba(0, 107, 90, 0.28);
 background: rgba(0, 107, 90, 0.035);
 box-shadow: none;
}

body[data-page="faq"] .faq-question {
 position: relative;
 justify-content: flex-start;
 gap: 1rem;
 padding: 1.35rem 3rem 1.35rem 3.4rem;
 color: var(--presta-ink);
 font-size: clamp(1rem, 1.4vw, 1.08rem);
 text-align: left;
}

body[data-page="faq"] .faq-question::before {
 position: absolute;
 left: 0;
 top: 1.42rem;
 counter-increment: faq;
 content: counter(faq, decimal-leading-zero);
 color: var(--presta-primary);
 font-size: 0.72rem;
 font-weight: 800;
 letter-spacing: 0.08em;
}

body[data-page="faq"] .faq-question span {
 text-align: left;
}

body[data-page="faq"] .faq-question svg {
 position: absolute;
 right: 0.15rem;
 width: 1.15rem;
 height: 1.15rem;
}

body[data-page="faq"] .faq-answer {
 padding-inline: 3.4rem 3rem;
 font-size: 0.98rem;
 text-align: left;
}

body[data-page="faq"] .faq-item[open] .faq-answer {
 padding: 0 3rem 1.45rem 3.4rem;
}

@media (max-width: 767px) {
 body[data-page="faq"] .faq-section {
  grid-template-columns: 1fr;
  gap: 1.25rem;
  padding: 3rem 0;
 }

 body[data-page="faq"] .faq-section > .eyebrow {
  position: static;
 }

 body[data-page="faq"] .faq-question {
  padding: 1.1rem 2rem 1.1rem 2.8rem;
 }

 body[data-page="faq"] .faq-question::before {
  top: 1.18rem;
 }

 body[data-page="faq"] .faq-answer,
 body[data-page="faq"] .faq-item[open] .faq-answer {
  padding-left: 2.8rem;
  padding-right: 2rem;
 }
}

/* Flat depth system: no drop shadows, including hover and open states. */
*,
*::before,
*::after {
 box-shadow: none !important;
 text-shadow: none !important;
}

.hero-image,
.store-badge,
.editorial-visual img {
 filter: none !important;
}

@media (min-width: 1024px) {
 .site-header {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) auto minmax(12rem, 1fr);
  align-items: center;
  column-gap: clamp(1rem, 2vw, 2rem);
 }

 .site-header .logo {
  justify-self: start;
 }

 .site-header .header-nav {
  justify-self: center;
  margin: 0;
  gap: 0.2rem;
 }

 .site-header .header-actions {
  justify-self: end;
  margin: 0;
  gap: 0.7rem;
 }
}

img {
 max-width: 100%;
 height: auto;
}

a {
 color: inherit;
 text-decoration: none;
}

/* Focus visibility - keyboard only */
:focus {
 outline: none;
}

:focus-visible {
 outline: 2px solid var(--presta-primary);
 outline-offset: 3px;
 box-shadow: var(--focus-ring);
}

.btn:focus-visible,
.menu-toggle:focus-visible,
.lang-menu-toggle:focus-visible,
.lang-menu-item:focus-visible,
.faq-question:focus-visible {
 outline: 2px solid var(--presta-primary);
 outline-offset: 3px;
}

.page-shell {
 width: 100%;
 max-width: 1180px;
 margin: 0 auto;
 padding-top: max(1.25rem, env(safe-area-inset-top));
 padding-bottom: max(3rem, env(safe-area-inset-bottom));
 padding-left: max(clamp(1rem, 4vw, 2.5rem), env(safe-area-inset-left));
 padding-right: max(clamp(1rem, 4vw, 2.5rem), env(safe-area-inset-right));
 transition:
 opacity var(--duration-page) var(--ease-emphasized),
 transform var(--duration-page) var(--ease-emphasized);
}

/* ── Header ── */
.site-header {
 position: sticky;
 top: max(0.55rem, env(safe-area-inset-top));
 z-index: 200;
 display: grid;
 grid-template-columns: minmax(0, 1fr) auto auto;
 align-items: center;
 gap: 0.5rem 0.65rem;
 padding: 0.5rem 0 1.5rem;
 isolation: isolate;
 transition: padding var(--duration-normal) var(--ease-soft);
}

.site-header::before {
 content: "";
 position: absolute;
 z-index: -1;
 inset: -0.35rem -0.75rem 0.65rem;
 border: 1px solid transparent;
 border-radius: 1.25rem;
 background: rgba(242, 241, 235, 0);
 box-shadow: 0 12px 36px rgba(17, 24, 39, 0);
 backdrop-filter: blur(0);
 -webkit-backdrop-filter: blur(0);
 transition:
  background var(--duration-medium) var(--ease-soft),
  border-color var(--duration-medium) var(--ease-soft),
  box-shadow var(--duration-medium) var(--ease-soft),
  backdrop-filter var(--duration-medium) var(--ease-soft);
}

.site-header.is-scrolled::before {
 border-color: rgba(255, 255, 255, 0.72);
 background: rgba(242, 241, 235, 0.78);
 box-shadow: 0 14px 40px rgba(17, 24, 39, 0.08);
 backdrop-filter: blur(18px) saturate(1.25);
 -webkit-backdrop-filter: blur(18px) saturate(1.25);
}

.logo {
 display: inline-flex;
 align-items: center;
 gap: 0.65rem;
 transition: opacity var(--duration-fast) var(--ease-out);
}

.logo:hover {
 opacity: 0.88;
}

.logo-mark {
 display: grid;
 place-items: center;
 width: 2.75rem;
 height: 2.75rem;
 border-radius: 1.05rem;
 box-shadow: var(--shadow-lift);
 overflow: hidden;
 transition: transform var(--duration-normal) var(--ease-soft);
}

.logo:hover .logo-mark {
 transform: scale(1.03);
}

.logo-mark svg {
 width: 100%;
 height: 100%;
}

.logo-word {
 font-size: 1.45rem;
 font-weight: 900;
 letter-spacing: -0.07em;
 color: var(--presta-primary);
}

.header-nav {
 display: none;
 flex-wrap: wrap;
 justify-content: flex-end;
 gap: 0.15rem;
 margin-left: auto;
 font-size: 0.84rem;
 font-weight: 600;
 color: var(--presta-muted);
}

.header-nav a {
 position: relative;
 padding: 0.4rem 0.65rem;
 border-radius: 0.5rem;
 transition:
 color var(--duration-fast) var(--ease-out),
 background var(--duration-fast) var(--ease-out);
}

.header-nav a::after {
 content: "";
 position: absolute;
 left: 0.65rem;
 right: 0.65rem;
 bottom: 0.2rem;
 height: 1.5px;
 border-radius: 1px;
 background: var(--presta-primary);
 transform: scaleX(0);
 transform-origin: left center;
 transition: transform var(--duration-normal) var(--ease-soft);
 opacity: 0.85;
}

.header-nav a:hover {
 color: var(--presta-primary);
 background: rgba(0, 107, 90, 0.05);
}

.header-nav a:hover::after,
.header-nav a.is-active::after {
 transform: scaleX(1);
}

.header-nav a.is-active {
 color: var(--presta-primary);
}

.header-actions {
 position: relative;
 z-index: 210;
 display: flex;
 gap: 0.5rem;
 align-items: center;
}

/* ── Language switcher (dropdown submenu) ── */
.lang-menu {
 position: relative;
 z-index: 220;
}

.lang-menu.is-open {
 z-index: 10020;
}

.lang-menu-toggle {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 0.3rem;
 min-height: 2.35rem;
 padding: 0 0.7rem 0 0.85rem;
 border-radius: 999px;
 border: 1px solid rgba(0, 107, 90, 0.12);
 background: rgba(0, 107, 90, 0.05);
 color: var(--presta-primary);
 font-family: inherit;
 font-size: 0.75rem;
 font-weight: 800;
 letter-spacing: 0.04em;
 cursor: pointer;
 transition:
 background var(--duration-fast) var(--ease-out),
 border-color var(--duration-fast) var(--ease-out),
 box-shadow var(--duration-fast) var(--ease-out),
 transform var(--duration-fast) var(--ease-out);
}

.lang-menu-toggle:hover {
 background: rgba(0, 107, 90, 0.09);
 border-color: rgba(0, 107, 90, 0.22);
}

.lang-menu-toggle:active {
 transform: scale(0.97);
}

.lang-menu-toggle svg {
 width: 0.85rem;
 height: 0.85rem;
 opacity: 0.7;
 transition: transform var(--duration-fast) var(--ease-soft);
}

.lang-menu.is-open .lang-menu-toggle {
 background: var(--presta-card);
 border-color: rgba(0, 107, 90, 0.22);
 box-shadow: 0 4px 14px rgba(17, 24, 39, 0.08);
}

.lang-menu.is-open .lang-menu-toggle svg {
 transform: rotate(180deg);
}

.lang-menu-panel {
 position: absolute;
 top: calc(100% + 0.4rem);
 right: 0;
 z-index: 10021;
 min-width: 9.5rem;
 padding: 0.35rem;
 border-radius: 0.85rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
 box-shadow: 0 16px 40px rgba(17, 24, 39, 0.12);
 display: grid;
 gap: 0.15rem;
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
 transform: translateY(-6px) scale(0.98);
 transform-origin: top right;
 transition:
 opacity var(--duration-fast) var(--ease-out),
 transform var(--duration-fast) var(--ease-soft),
 visibility var(--duration-fast) var(--ease-out);
}

.lang-menu.is-open .lang-menu-panel {
 display: grid;
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
 transform: translateY(0) scale(1);
}

.lang-menu-panel[hidden] {
 display: none;
}

.lang-menu-item {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.75rem;
 padding: 0.55rem 0.75rem;
 border-radius: 0.6rem;
 font-size: 0.84rem;
 font-weight: 700;
 color: var(--presta-ink);
 text-decoration: none;
 transition:
 background var(--duration-fast) var(--ease-out),
 color var(--duration-fast) var(--ease-out);
}

.lang-menu-item:hover {
 background: rgba(0, 107, 90, 0.07);
 color: var(--presta-primary);
}

.lang-menu-item.is-active {
 background: var(--presta-mint);
 color: var(--presta-primary);
}

.lang-menu-item-code {
 font-size: 0.72rem;
 font-weight: 800;
 letter-spacing: 0.04em;
 opacity: 0.7;
}

/* Mobile panel variant */
.mobile-nav-panel .lang-menu {
 margin-top: 1.25rem;
 z-index: 10075;
}

.mobile-nav-panel .lang-menu.is-open {
 z-index: 10076;
}

.mobile-nav-panel .lang-menu-panel {
 z-index: 10077;
}

.mobile-nav-panel .lang-menu-toggle {
 min-width: 8rem;
 border-color: rgba(255, 255, 255, 0.2);
 background: rgba(255, 255, 255, 0.1);
 color: #fff;
}

.mobile-nav-panel .lang-menu-toggle:hover {
 background: rgba(255, 255, 255, 0.16);
 border-color: rgba(255, 255, 255, 0.28);
}

.mobile-nav-panel .lang-menu.is-open .lang-menu-toggle {
 background: rgba(255, 255, 255, 0.18);
 box-shadow: none;
}

.mobile-nav-panel .lang-menu-panel {
 left: 50%;
 right: auto;
 transform: translateX(-50%) translateY(-6px) scale(0.98);
 transform-origin: top center;
}

.mobile-nav-panel .lang-menu.is-open .lang-menu-panel {
 transform: translateX(-50%) translateY(0) scale(1);
}

.btn-label-short {
 display: none;
}

/* ── Mobile menu ── */
.mobile-menu {
 display: block;
 position: relative;
 z-index: 10060;
}

.menu-toggle {
 display: grid;
 place-items: center;
 width: 2.75rem;
 height: 2.75rem;
 padding: 0;
 border: 1.5px solid rgba(0, 107, 90, 0.15);
 border-radius: 0.85rem;
 background: var(--presta-card);
 color: var(--presta-primary);
 cursor: pointer;
 font: inherit;
 transition:
 background var(--duration-medium) var(--ease-soft),
 border-color var(--duration-medium) var(--ease-soft),
 color var(--duration-medium) var(--ease-soft),
 transform var(--duration-fast) var(--ease-out),
 box-shadow var(--duration-fast) var(--ease-out);
}

.menu-toggle:hover {
 border-color: rgba(0, 107, 90, 0.28);
 box-shadow: 0 4px 14px rgba(0, 107, 90, 0.1);
}

.menu-toggle:active {
 transform: scale(0.96);
}

.menu-toggle svg {
 width: 1.25rem;
 height: 1.25rem;
}

.menu-toggle .menu-bar {
 transition:
 transform var(--duration-medium) var(--ease-soft),
 opacity var(--duration-fast) var(--ease-out);
 transform-origin: center;
}

.mobile-menu.is-open .menu-toggle {
 position: fixed;
 top: max(1.25rem, env(safe-area-inset-top));
 right: max(clamp(1rem, 4vw, 2.5rem), env(safe-area-inset-right));
 z-index: 10080;
 border-color: rgba(255, 255, 255, 0.22);
 background: rgba(255, 255, 255, 0.1);
 color: #fff;
}

.mobile-menu.is-open .menu-bar--1 {
 transform: translateY(5px) rotate(45deg);
}

.mobile-menu.is-open .menu-bar--2 {
 opacity: 0;
 transform: scaleX(0);
}

.mobile-menu.is-open .menu-bar--3 {
 transform: translateY(-5px) rotate(-45deg);
}

.mobile-nav-panel {
 position: fixed;
 inset: 0;
 z-index: 10070;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 padding:
 max(5rem, calc(env(safe-area-inset-top) + 3rem))
 max(1.5rem, env(safe-area-inset-right))
 max(2rem, env(safe-area-inset-bottom))
 max(1.5rem, env(safe-area-inset-left));
 background: linear-gradient(165deg, #006b5a 0%, #004a40 100%);
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
 transition:
 opacity var(--duration-medium) var(--ease-soft),
 visibility var(--duration-medium) var(--ease-soft);
}

.mobile-nav-panel.is-open {
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
}

.mobile-nav {
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 0.5rem;
 width: min(100%, 20rem);
}

.mobile-nav a {
 display: block;
 width: 100%;
 padding: 1rem 1.25rem;
 border-radius: 1rem;
 font-size: clamp(1.2rem, 5vw, 1.5rem);
 font-weight: 800;
 text-align: center;
 color: #fff;
 opacity: 0;
 transform: translate3d(0, 16px, 0);
 transition:
 opacity var(--duration-normal) var(--ease-soft),
 transform var(--duration-normal) var(--ease-soft),
 background var(--duration-fast) var(--ease-out);
}

.mobile-nav-panel.is-open .mobile-nav a {
 animation: mobile-nav-item-in 0.45s var(--ease-soft) forwards;
}

.mobile-nav-panel.is-open .mobile-nav a:nth-child(1) { animation-delay: 0.05s; }
.mobile-nav-panel.is-open .mobile-nav a:nth-child(2) { animation-delay: 0.1s; }
.mobile-nav-panel.is-open .mobile-nav a:nth-child(3) { animation-delay: 0.15s; }
.mobile-nav-panel.is-open .mobile-nav a:nth-child(4) { animation-delay: 0.2s; }
.mobile-nav-panel.is-open .mobile-nav a:nth-child(5) { animation-delay: 0.25s; }
.mobile-nav-panel.is-open .mobile-nav a:nth-child(6) { animation-delay: 0.3s; }

.mobile-nav a:hover {
 background: rgba(255, 255, 255, 0.12);
 color: #fff;
}

.mobile-nav a:active {
 background: rgba(255, 255, 255, 0.18);
}

@keyframes mobile-nav-item-in {
 from {
 opacity: 0;
 transform: translate3d(0, 16px, 0);
 }

 to {
 opacity: 1;
 transform: translate3d(0, 0, 0);
 }
}

html.mobile-menu-open,
body.mobile-menu-open {
 overflow: hidden;
}

html.mobile-menu-open .page-shell {
 transform: none !important;
}

html.mobile-menu-open .presta-appear {
 transform: none !important;
 animation: none !important;
 opacity: 1 !important;
}

/* ── Buttons ── */
.btn {
 --magnet-x: 0px;
 --magnet-y: 0px;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 0.5rem;
 min-height: 3rem;
 padding: 0 1.35rem;
 border-radius: 999px;
 font-family: inherit;
 font-size: 0.92rem;
 font-weight: 800;
 border: none;
 cursor: pointer;
 text-decoration: none;
 transition:
 transform var(--duration-fast) var(--ease-soft),
 box-shadow var(--duration-normal) var(--ease-soft),
 background var(--duration-fast) var(--ease-out),
 color var(--duration-fast) var(--ease-out),
 border-color var(--duration-fast) var(--ease-out),
 opacity var(--duration-fast) var(--ease-out);
 will-change: transform;
}

.btn svg {
 transition: transform var(--duration-fast) var(--ease-soft);
}

.btn:hover {
 transform: translate3d(var(--magnet-x), calc(var(--magnet-y) + var(--hover-lift)), 0);
}

.btn:hover svg {
 transform: translateX(2px);
}

.btn:active {
 transform: translate3d(var(--magnet-x), var(--magnet-y), 0) scale(0.98);
 transition-duration: var(--duration-instant);
}

.btn.is-loading,
.btn:disabled {
 pointer-events: none;
 opacity: 0.72;
 cursor: not-allowed;
}

.btn[aria-disabled="true"] {
 cursor: not-allowed;
 opacity: 0.56;
 filter: saturate(0.72);
 box-shadow: none !important;
}

.btn[aria-disabled="true"]:hover {
 transform: none;
}

a.btn {
 cursor: pointer;
}

.btn-primary {
 background: var(--presta-primary);
 color: #fff;
 box-shadow: var(--shadow-lift);
}

.btn-primary:hover {
 box-shadow: var(--shadow-btn-hover);
 background: #005a4c;
}

.btn-secondary {
 background: var(--presta-card);
 color: var(--presta-primary);
 border: 1.5px solid rgba(0, 107, 90, 0.18);
}

.btn-secondary:hover {
 border-color: rgba(0, 107, 90, 0.35);
 background: #fafaf8;
 box-shadow: 0 8px 22px rgba(17, 24, 39, 0.06);
}

.btn-ghost {
 background: transparent;
 color: var(--presta-muted);
 font-weight: 700;
 min-height: 2.5rem;
 padding-inline: 0.75rem;
}

.btn-ghost:hover {
 color: var(--presta-primary);
 background: rgba(0, 107, 90, 0.06);
 transform: none;
}

.btn-lg {
 min-height: 3.35rem;
 padding-inline: 1.65rem;
}

.cta-band .btn-primary {
 background: #fff;
 color: var(--presta-primary);
 box-shadow: none;
}

.cta-band .btn-primary:hover {
 background: #f5f5f0;
 box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
}

.eyebrow {
 display: flex;
 align-items: center;
 gap: 0.65rem;
 margin: 0 0 1rem;
 font-size: 0.82rem;
 font-weight: 700;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 color: var(--presta-muted);
}

.badge {
 display: inline-flex;
 align-items: center;
 padding: 0.2rem 0.65rem;
 border-radius: 999px;
 background: var(--presta-mint);
 color: var(--presta-primary);
 font-size: 0.72rem;
 font-weight: 800;
 letter-spacing: 0.06em;
}

.hero {
 position: relative;
 display: grid;
 gap: 2.5rem;
 align-items: center;
 padding: 1rem 0 4rem;
}

.hero::before {
 content: "";
 position: absolute;
 z-index: -1;
 width: clamp(18rem, 42vw, 33rem);
 aspect-ratio: 1;
 right: clamp(-10rem, -7vw, -3rem);
 top: 44%;
 border-radius: 50%;
 background: radial-gradient(circle, rgba(0, 184, 148, 0.13), rgba(0, 107, 90, 0.025) 52%, transparent 70%);
 filter: blur(2px);
 transform: translateY(-50%);
 animation: ambient-breathe 8s var(--ease-in-out) infinite alternate;
}

.hero-copy {
 min-width: 0;
}

.hero h1 {
 margin: 0 0 1rem;
 font-size: clamp(1.85rem, 5vw + 0.5rem, 3.6rem);
 font-weight: 900;
 letter-spacing: -0.045em;
 line-height: 1.08;
 text-wrap: balance;
}

.hero-highlight {
 position: relative;
 color: var(--presta-primary);
}

.hero-highlight::after {
 content: "";
 position: absolute;
 z-index: -1;
 left: -0.08em;
 right: -0.08em;
 bottom: 0.02em;
 height: 0.24em;
 border-radius: 999px;
 background: rgba(0, 184, 148, 0.16);
 transform: scaleX(0);
 transform-origin: left;
 animation: highlight-sweep 0.8s 0.55s var(--ease-soft) forwards;
}

.lead {
 margin: 0 0 1.75rem;
 max-width: 34rem;
 font-size: clamp(1rem, 1.5vw + 0.75rem, 1.08rem);
 line-height: 1.65;
 color: var(--presta-muted);
}

.hero .lead {
 margin-inline: 0;
}

.hero-cta {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 margin-bottom: 1rem;
 justify-content: flex-start;
}

/* App store badges */
.store-badges {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.65rem 0.75rem;
 margin: 0 0 1.25rem;
}

.store-badge {
 display: inline-flex;
 align-items: center;
 line-height: 0;
 border-radius: 0.45rem;
 transition:
 opacity var(--duration-fast) var(--ease-out),
 transform var(--duration-fast) var(--ease-soft);
}

.store-badge:hover {
 opacity: 0.92;
 transform: translateY(-1px);
}

.store-badge:active {
 transform: translateY(0) scale(0.98);
}

.store-badge img {
 display: block;
 height: 2.5rem;
 width: auto;
 max-width: min(100%, 10rem);
 object-fit: contain;
}

.cta-band .store-badges {
 justify-content: center;
 margin: 1rem 0 0;
}

.cta-band .store-badge img {
 height: 2.65rem;
}

@media (max-width: 479px) {
 .store-badges {
 justify-content: center;
 width: 100%;
 }

 .hero .store-badges {
 justify-content: center;
 }

 .store-badge img {
 height: 2.35rem;
 }
}

.hero-trust {
 display: flex;
 flex-wrap: wrap;
 gap: 0.65rem 1.25rem;
 margin: 0;
 padding: 0;
 list-style: none;
 font-size: 0.88rem;
 font-weight: 600;
 color: var(--presta-primary);
 justify-content: flex-start;
}

.hero-trust li::before {
 content: "✓ ";
 color: var(--presta-accent);
}

.hero-visual {
 --parallax-x: 0px;
 --parallax-y: 0px;
 display: flex;
 justify-content: center;
 align-items: center;
}

.hero-image {
 display: block;
 width: min(100%, 340px);
 height: auto;
 border-radius: clamp(1rem, 3vw, 1.5rem);
 filter: drop-shadow(0 24px 34px rgba(0, 107, 90, 0.13));
 transform: translate3d(var(--parallax-x), var(--parallax-y), 0) rotate(var(--parallax-rotate, 0deg));
 will-change: transform;
}

@keyframes ambient-breathe {
 to { transform: translateY(-50%) scale(1.08); opacity: 0.78; }
}

@keyframes highlight-sweep {
 to { transform: scaleX(1); }
}

.section-head h2 {
 margin: 0 0 0.75rem;
 font-size: clamp(1.75rem, 4vw, 2.35rem);
 font-weight: 900;
 letter-spacing: -0.035em;
}

.section-head p:last-child {
 margin: 0;
 color: var(--presta-muted);
 line-height: 1.6;
}

/* ── Site-wide centering system ── */
main > :not(.hero) {
 text-align: center;
}

/* Constrain and center common content blocks */
.section-head,
.page-hero,
.faq-list,
.timeline,
.steps,
.service-detail-grid,
.contact-grid,
.values-grid,
.benefit-grid,
.testimonial-grid,
.team-grid,
.stats-band,
.service-grid {
 margin-inline: auto;
 width: 100%;
}

.section-head {
 max-width: 40rem;
 margin-top: 0;
 margin-bottom: 2rem;
}

.page-hero {
 max-width: 42rem;
}

.section-head .eyebrow,
.page-hero .eyebrow,
.split-card .eyebrow,
.faq-section > .eyebrow {
 justify-content: center;
}

.section-head p:last-child,
.page-hero .lead,
.split-card p,
.service-detail p,
.lead {
 margin-inline: auto;
 max-width: 36rem;
}

.service-icon,
.benefit-icon,
.team-photo {
 margin-inline: auto;
}

.service-tags,
.zone-list,
.cta-band-actions,
.testimonial-card footer {
 justify-content: center;
}

.stars,
.testimonial-card blockquote,
.faq-answer,
.service-card,
.value-card,
.benefit-card,
.stat-card,
.team-card,
.contact-card,
.split-card {
 text-align: center;
}

/* Steps - number above copy, fully centered */
.steps {
 max-width: 36rem;
 margin-inline: auto;
 display: grid;
 gap: 1rem;
 padding: 0;
 list-style: none;
}

.steps li {
 display: grid;
 grid-template-columns: 1fr;
 justify-items: center;
 align-items: start;
 gap: 0.75rem;
 text-align: center;
 padding: 1.35rem 1.5rem;
 border-radius: 1.25rem;
 background: var(--presta-card);
 box-shadow: 0 10px 28px rgba(17, 24, 39, 0.05);
 transition:
 transform var(--duration-normal) var(--ease-soft),
 box-shadow var(--duration-normal) var(--ease-soft);
}

.steps li > div {
 max-width: 28rem;
 width: 100%;
}

.contact-form {
 text-align: left;
}

.services,
.how,
.split,
.section-block,
.testimonials,
.faq-section,
.zones {
 padding: 3.5rem 0;
}

.service-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
 gap: 1rem;
 max-width: 100%;
}

/* ── Cards ── */
.service-card {
 padding: 1.35rem;
 border-radius: 1.25rem;
 background: var(--presta-card);
 border: 1px solid rgba(255, 255, 255, 0.8);
 box-shadow: 0 12px 32px rgba(17, 24, 39, 0.05);
 transition:
 transform var(--duration-normal) var(--ease-soft),
 box-shadow var(--duration-normal) var(--ease-soft),
 border-color var(--duration-normal) var(--ease-out);
}

.service-card:hover {
 transform: translateY(-3px);
 box-shadow: var(--shadow-card-hover);
 border-color: rgba(0, 107, 90, 0.12);
}

.service-icon {
 display: grid;
 place-items: center;
 width: 2.5rem;
 height: 2.5rem;
 margin-bottom: 0.75rem;
 border-radius: 0.75rem;
 background: var(--presta-mint);
 color: var(--presta-primary);
 transition: transform var(--duration-normal) var(--ease-soft);
}

.service-card:hover .service-icon {
 transform: scale(1.06);
}

.service-icon svg {
 width: 1.35rem;
 height: 1.35rem;
}

.service-card h3 {
 margin: 0 0 0.4rem;
 font-size: 1.05rem;
}

.service-card p {
 margin: 0;
 font-size: 0.9rem;
 line-height: 1.5;
 color: var(--presta-muted);
}

.steps li:hover {
 transform: translateY(-2px);
 box-shadow: 0 14px 32px rgba(17, 24, 39, 0.07);
}

.step-num {
 display: grid;
 place-items: center;
 width: 2.5rem;
 height: 2.5rem;
 border-radius: 999px;
 background: var(--presta-mint);
 color: var(--presta-primary);
 font-weight: 900;
 font-size: 1rem;
 transition: transform var(--duration-normal) var(--ease-soft);
}

.steps li:hover .step-num {
 transform: scale(1.05);
}

.steps h3 {
 margin: 0 0 0.35rem;
 font-size: 1.05rem;
}

.steps p {
 margin: 0;
 color: var(--presta-muted);
 line-height: 1.55;
 font-size: 0.95rem;
}

.split {
 display: grid;
 gap: 1rem;
}

.split-card {
 padding: 2rem;
 border-radius: 1.5rem;
 background: var(--presta-card);
 box-shadow: var(--shadow-card);
 transition:
 transform var(--duration-normal) var(--ease-soft),
 box-shadow var(--duration-normal) var(--ease-soft);
}

.split-card:hover {
 transform: translateY(-2px);
 box-shadow: 0 28px 64px rgba(17, 24, 39, 0.1);
}

.split-card h2 {
 margin: 0 0 0.75rem;
 font-size: clamp(1.35rem, 3vw, 1.65rem);
 font-weight: 900;
 letter-spacing: -0.03em;
}

.split-card p {
 margin: 0 auto 1.35rem;
 color: var(--presta-muted);
 line-height: 1.6;
 max-width: 28rem;
}

.split-card--provider {
 background: linear-gradient(145deg, #ffffff 0%, var(--presta-mint) 100%);
}

.cta-band {
 margin-top: 1rem;
 padding: 2.5rem clamp(1.5rem, 4vw, 3rem);
 border-radius: 1.75rem;
 text-align: center;
 background: linear-gradient(135deg, var(--presta-primary) 0%, #005246 100%);
 color: #fff;
 box-shadow: var(--shadow-lift);
}

.cta-band h2 {
 margin: 0 0 0.65rem;
 font-size: clamp(1.5rem, 4vw, 2rem);
 font-weight: 900;
 letter-spacing: -0.03em;
}

.cta-band p {
 margin: 0 0 1.5rem;
 opacity: 0.88;
}

.site-footer {
 display: grid;
 gap: 1.5rem;
 justify-items: center;
 padding: 3rem 0 1rem;
 border-top: 1px solid var(--presta-border);
 margin-top: 2rem;
 text-align: center;
 width: 100%;
}

.footer-brand {
 display: grid;
 justify-items: center;
}

.footer-links {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 0.75rem 1.25rem;
 font-size: 0.9rem;
 font-weight: 600;
 color: var(--presta-muted);
}

.footer-links a:hover {
 color: var(--presta-primary);
}

.footer-brand p {
 margin: 0.35rem 0 0;
 font-size: 0.88rem;
 color: var(--presta-muted);
}

.footer-copy {
 margin: 0;
 font-size: 0.82rem;
 color: var(--presta-muted);
}

.footer-cols {
 display: grid;
 gap: 1.5rem 2rem;
 width: 100%;
 max-width: 40rem;
 margin-inline: auto;
 justify-items: center;
}

.footer-col {
 text-align: center;
}

.footer-col h3 {
 margin: 0 0 0.65rem;
 font-size: 0.78rem;
 font-weight: 800;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--presta-ink);
}

.footer-col ul {
 margin: 0;
 padding: 0;
 list-style: none;
 display: grid;
 gap: 0.45rem;
 justify-items: center;
}

.footer-col a {
 font-size: 0.88rem;
 font-weight: 600;
 color: var(--presta-muted);
 transition: color var(--duration-fast) var(--ease-out);
}

.footer-col a:hover {
 color: var(--presta-primary);
}

.header-nav a.is-active,
.mobile-nav a.is-active {
 color: var(--presta-primary);
}

.mobile-nav-panel.is-open .mobile-nav a.is-active {
 background: rgba(255, 255, 255, 0.16);
 color: #fff;
}

/* ── Page hero (subpages) ── */
.page-hero {
 padding: 2rem 0 3rem;
 max-width: 42rem;
 margin-inline: auto;
 text-align: center;
}

.page-hero h1 {
 margin: 0 0 1rem;
 font-size: clamp(2rem, 5vw, 3rem);
 font-weight: 900;
 letter-spacing: -0.04em;
 line-height: 1.05;
 text-wrap: balance;
}

.page-hero .lead {
 margin: 0;
}

/* ── Stats ── */
.stats-band {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr));
 gap: 1rem;
 padding: 2rem 0 3rem;
}

.stat-card {
 padding: 1.35rem 1.25rem;
 border-radius: 1.15rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
 text-align: center;
 transition:
 transform var(--duration-normal) var(--ease-soft),
 box-shadow var(--duration-normal) var(--ease-soft),
 border-color var(--duration-normal) var(--ease-out);
}

.stat-card:hover {
 transform: translateY(-2px);
 box-shadow: 0 12px 28px rgba(17, 24, 39, 0.06);
 border-color: rgba(0, 107, 90, 0.14);
}

.stat-card strong {
 display: block;
 font-size: clamp(1.75rem, 4vw, 2.25rem);
 font-weight: 900;
 letter-spacing: -0.04em;
 color: var(--presta-primary);
 line-height: 1;
 margin-bottom: 0.35rem;
}

.stat-card span {
 font-size: 0.82rem;
 font-weight: 600;
 color: var(--presta-muted);
}

/* ── Testimonials ── */
.testimonials {
 padding: 3.5rem 0;
}

.testimonial-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
 gap: 1rem;
}

.testimonial-card {
 padding: 1.5rem;
 border-radius: 1.25rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
 transition:
 transform var(--duration-normal) var(--ease-soft),
 box-shadow var(--duration-normal) var(--ease-soft),
 border-color var(--duration-normal) var(--ease-out);
}

.testimonial-card:hover {
 transform: translateY(-2px);
 box-shadow: 0 14px 32px rgba(17, 24, 39, 0.07);
 border-color: rgba(0, 107, 90, 0.12);
}

.testimonial-card blockquote {
 margin: 0 0 1rem;
 font-size: 0.95rem;
 line-height: 1.6;
 color: var(--presta-ink);
}

.testimonial-card footer {
 display: flex;
 align-items: center;
 gap: 0.75rem;
}

.testimonial-avatar {
 width: 2.5rem;
 height: 2.5rem;
 border-radius: 50%;
 background: var(--presta-mint);
 display: grid;
 place-items: center;
 font-size: 0.75rem;
 font-weight: 900;
 color: var(--presta-primary);
}

.testimonial-card cite {
 font-style: normal;
 font-size: 0.85rem;
 font-weight: 700;
}

.testimonial-card cite span {
 display: block;
 font-weight: 600;
 color: var(--presta-muted);
 font-size: 0.78rem;
}

.stars {
 color: #f59e0b;
 font-size: 0.85rem;
 letter-spacing: 0.05em;
 margin-bottom: 0.75rem;
}

/* ── Zones ── */
.zones {
 padding: 3.5rem 0;
}

.zone-list {
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem;
 margin: 0;
 padding: 0;
 list-style: none;
}

.zone-list li {
 padding: 0.4rem 0.85rem;
 border-radius: 999px;
 background: var(--presta-mint);
 color: var(--presta-primary);
 font-size: 0.82rem;
 font-weight: 700;
}

/* ── Feature rows ── */
.feature-rows {
 display: grid;
 gap: 1rem;
}

.feature-row {
 display: grid;
 gap: 1.5rem;
 align-items: center;
 padding: 1.5rem;
 border-radius: 1.25rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
}

.feature-row:nth-child(even) .feature-row-media {
 order: 2;
}

.feature-row-media {
 border-radius: 1rem;
 overflow: hidden;
 border: 1px solid var(--presta-border);
}

.feature-row-media img {
 display: block;
 width: 100%;
}

.feature-row h3 {
 margin: 0 0 0.5rem;
 font-size: 1.15rem;
}

.feature-row p {
 margin: 0;
 color: var(--presta-muted);
 line-height: 1.6;
 font-size: 0.95rem;
}

/* ── FAQ ── */
.faq-section {
 padding: 3.5rem 0;
}

.faq-list {
 display: grid;
 gap: 0.65rem;
 max-width: 42rem;
 margin-inline: auto;
 width: 100%;
}

.faq-item {
 border-radius: 1rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
 overflow: hidden;
 transition:
 border-color var(--duration-medium) var(--ease-soft),
 box-shadow var(--duration-medium) var(--ease-soft);
}

.faq-item[open] {
 border-color: rgba(0, 107, 90, 0.22);
 box-shadow: 0 10px 28px rgba(0, 107, 90, 0.08);
}

.faq-question {
 display: flex;
 align-items: center;
 justify-content: center;
 gap: 0.75rem;
 width: 100%;
 padding: 1.1rem 1.25rem;
 border: none;
 background: transparent;
 font-family: inherit;
 font-size: 0.95rem;
 font-weight: 700;
 text-align: center;
 color: var(--presta-ink);
 cursor: pointer;
 transition:
 color var(--duration-fast) var(--ease-out),
 background var(--duration-fast) var(--ease-out);
}

.faq-question span {
 text-align: center;
}

.faq-question:hover {
 background: rgba(0, 107, 90, 0.03);
 color: var(--presta-primary);
}

.faq-item[open] .faq-question {
 color: var(--presta-primary);
}

.faq-question svg {
 flex-shrink: 0;
 width: 1.1rem;
 height: 1.1rem;
 color: var(--presta-primary);
 transition: transform var(--duration-medium) var(--ease-soft);
}

.faq-item[open] .faq-question svg {
 transform: rotate(180deg);
}

.faq-answer {
 display: grid;
 grid-template-rows: 0fr;
 opacity: 0;
 padding: 0 1.25rem;
 color: var(--presta-muted);
 line-height: 1.65;
 font-size: 0.92rem;
 transition:
 grid-template-rows var(--duration-medium) var(--ease-soft),
 opacity var(--duration-normal) var(--ease-out),
 padding var(--duration-medium) var(--ease-soft);
}

.faq-answer-inner {
 overflow: hidden;
 min-height: 0;
}

.faq-item[open] .faq-answer {
 grid-template-rows: 1fr;
 opacity: 1;
 padding: 0 1.25rem 1.15rem;
}

/* ── Values / team ── */
.values-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
 gap: 1rem;
}

.value-card {
 padding: 1.35rem;
 border-radius: 1.15rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
 transition:
 transform var(--duration-normal) var(--ease-soft),
 box-shadow var(--duration-normal) var(--ease-soft),
 border-color var(--duration-normal) var(--ease-out);
}

.value-card:hover {
 transform: translateY(-2px);
 box-shadow: 0 12px 28px rgba(17, 24, 39, 0.06);
 border-color: rgba(0, 107, 90, 0.12);
}

.value-card h3 {
 margin: 0 0 0.4rem;
 font-size: 1rem;
 color: var(--presta-primary);
}

.value-card p {
 margin: 0;
 font-size: 0.9rem;
 line-height: 1.55;
 color: var(--presta-muted);
}

.team-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
 gap: 1rem;
}

.team-card {
 text-align: center;
 padding: 1.25rem;
 border-radius: 1.15rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
 transition:
 transform var(--duration-normal) var(--ease-soft),
 box-shadow var(--duration-normal) var(--ease-soft);
}

.team-card:hover {
 transform: translateY(-2px);
 box-shadow: 0 12px 28px rgba(17, 24, 39, 0.06);
}

.team-photo {
 width: 5rem;
 height: 5rem;
 margin: 0 auto 0.75rem;
 border-radius: 50%;
 background: var(--presta-mint);
 display: grid;
 place-items: center;
 font-size: 1.25rem;
 font-weight: 900;
 color: var(--presta-primary);
 transition: transform var(--duration-normal) var(--ease-soft);
}

.team-card:hover .team-photo {
 transform: scale(1.04);
}

.team-card h3 {
 margin: 0 0 0.2rem;
 font-size: 0.95rem;
}

.team-card p {
 margin: 0;
 font-size: 0.82rem;
 color: var(--presta-muted);
}

/* ── Service detail cards ── */
.service-detail-grid {
 display: grid;
 gap: 1.25rem;
 max-width: 42rem;
 margin-inline: auto;
}

.service-detail {
 display: grid;
 grid-template-columns: 1fr;
 gap: 1.25rem;
 padding: 1.75rem clamp(1.25rem, 3vw, 2rem);
 border-radius: 1.35rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
 text-align: center;
 justify-items: center;
 transition:
 transform var(--duration-normal) var(--ease-soft),
 box-shadow var(--duration-normal) var(--ease-soft),
 border-color var(--duration-normal) var(--ease-out);
}

.service-detail:hover {
 transform: translateY(-2px);
 box-shadow: 0 14px 36px rgba(17, 24, 39, 0.07);
 border-color: rgba(0, 107, 90, 0.12);
}

.service-detail-copy {
 width: 100%;
 max-width: 34rem;
 margin-inline: auto;
 display: grid;
 justify-items: center;
}

.service-detail-media {
 width: 100%;
 max-width: 34rem;
 margin-inline: auto;
 border-radius: 1rem;
 overflow: hidden;
 aspect-ratio: 16 / 10;
 background: var(--presta-mint);
}

.service-detail-media img {
 width: 100%;
 height: 100%;
 object-fit: cover;
}

.service-detail h2 {
 margin: 0 0 0.5rem;
 font-size: 1.35rem;
}

.service-detail p {
 margin: 0 auto 1rem;
 max-width: 32rem;
 color: var(--presta-muted);
 line-height: 1.6;
}

.service-tags {
 display: flex;
 flex-wrap: wrap;
 justify-content: center;
 gap: 0.4rem;
 margin: 0;
 padding: 0;
 list-style: none;
}

.service-tags li {
 padding: 0.25rem 0.65rem;
 border-radius: 999px;
 background: var(--presta-mint);
 font-size: 0.75rem;
 font-weight: 700;
 color: var(--presta-primary);
 transition: transform var(--duration-fast) var(--ease-soft);
}

.service-detail:hover .service-tags li {
 transform: translateY(-1px);
}

/* ── Pro benefits ── */
.benefit-grid {
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
 gap: 1rem;
}

.benefit-card {
 padding: 1.35rem;
 border-radius: 1.15rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
 transition:
 transform var(--duration-normal) var(--ease-soft),
 box-shadow var(--duration-normal) var(--ease-soft),
 border-color var(--duration-normal) var(--ease-out);
}

.benefit-card:hover {
 transform: translateY(-2px);
 box-shadow: 0 12px 28px rgba(17, 24, 39, 0.06);
 border-color: rgba(0, 107, 90, 0.12);
}

.benefit-icon {
 display: grid;
 place-items: center;
 width: 2.5rem;
 height: 2.5rem;
 margin-bottom: 0.75rem;
 border-radius: 0.75rem;
 background: var(--presta-mint);
 color: var(--presta-primary);
 transition: transform var(--duration-normal) var(--ease-soft);
}

.benefit-card:hover .benefit-icon {
 transform: scale(1.06);
}

.benefit-icon svg {
 width: 1.25rem;
 height: 1.25rem;
}

.benefit-card h3 {
 margin: 0 0 0.35rem;
 font-size: 1rem;
}

.benefit-card p {
 margin: 0;
 font-size: 0.88rem;
 line-height: 1.55;
 color: var(--presta-muted);
}

/* ── Contact ── */
.contact-grid {
 display: grid;
 gap: 1.5rem;
 max-width: 56rem;
 margin-inline: auto;
 width: 100%;
 align-items: start;
}

.contact-cards {
 display: grid;
 gap: 1rem;
}

.contact-card {
 padding: 1.25rem;
 border-radius: 1rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
 text-align: center;
 transition:
 transform var(--duration-normal) var(--ease-soft),
 box-shadow var(--duration-normal) var(--ease-soft),
 border-color var(--duration-normal) var(--ease-out);
}

.contact-card:hover {
 transform: translateY(-2px);
 box-shadow: 0 10px 24px rgba(17, 24, 39, 0.06);
 border-color: rgba(0, 107, 90, 0.12);
}

.contact-card h3 {
 margin: 0 0 0.35rem;
 font-size: 0.95rem;
}

.contact-card p,
.contact-card a {
 margin: 0;
 font-size: 0.92rem;
 color: var(--presta-muted);
 transition: color var(--duration-fast) var(--ease-out);
}

.contact-card a:hover {
 color: var(--presta-primary);
}

.contact-form {
 display: grid;
 gap: 1rem;
 padding: 1.5rem;
 border-radius: 1.25rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
 text-align: left;
 width: 100%;
 max-width: 100%;
 margin-inline: auto;
}

.contact-form .btn {
 width: 100%;
 justify-self: stretch;
}

.form-row {
 display: grid;
 gap: 0.35rem;
}

.form-row label {
 font-size: 0.82rem;
 font-weight: 700;
 color: var(--presta-ink);
}

.form-row input,
.form-row textarea,
.form-row select {
 width: 100%;
 padding: 0.75rem 0.9rem;
 border: 1px solid var(--presta-border);
 border-radius: 0.65rem;
 font-family: inherit;
 font-size: 0.92rem;
 color: var(--presta-ink);
 background: #fff;
 transition:
 border-color var(--duration-fast) var(--ease-out),
 box-shadow var(--duration-fast) var(--ease-out),
 background var(--duration-fast) var(--ease-out);
}

.form-row textarea {
 min-height: 8rem;
 resize: vertical;
}

.form-row input:hover,
.form-row textarea:hover,
.form-row select:hover {
 border-color: rgba(0, 107, 90, 0.28);
}

.form-row input:focus,
.form-row textarea:focus,
.form-row select:focus {
 outline: none;
 border-color: var(--presta-primary);
 box-shadow: 0 0 0 3px rgba(0, 107, 90, 0.14);
}

.form-row input.is-invalid,
.form-row textarea.is-invalid,
.form-row select.is-invalid {
 border-color: #dc2626;
 box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
}

.form-feedback {
 margin: 0;
 font-size: 0.88rem;
 font-weight: 600;
 line-height: 1.45;
 min-height: 1.25rem;
 opacity: 0;
 transform: translateY(4px);
 transition:
 opacity var(--duration-normal) var(--ease-out),
 transform var(--duration-normal) var(--ease-soft),
 color var(--duration-fast) var(--ease-out);
}

.form-feedback.is-visible {
 opacity: 1;
 transform: translateY(0);
}

.form-feedback.is-success {
 color: var(--presta-primary);
}

.form-feedback.is-error {
 color: #dc2626;
}

/* ── Timeline ── */
.timeline {
 display: grid;
 gap: 1rem;
 max-width: 32rem;
 margin-inline: auto;
 width: 100%;
}

.timeline-item {
 display: grid;
 grid-template-columns: 1fr;
 justify-items: center;
 gap: 0.5rem;
 align-items: start;
 text-align: center;
 padding: 1.15rem 1.25rem;
 border-radius: 1.15rem;
 background: var(--presta-card);
 border: 1px solid var(--presta-border);
}

.timeline-year {
 padding: 0.35rem 0.65rem;
 border-radius: 0.5rem;
 background: var(--presta-mint);
 color: var(--presta-primary);
 font-size: 0.78rem;
 font-weight: 800;
}

.timeline-item h3 {
 margin: 0 0 0.25rem;
 font-size: 1rem;
}

.timeline-item p {
 margin: 0 auto;
 max-width: 26rem;
 font-size: 0.9rem;
 color: var(--presta-muted);
 line-height: 1.55;
}

.section-block {
 padding: 3.5rem 0;
}

.link-arrow {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 font-size: 0.92rem;
 font-weight: 800;
 color: var(--presta-primary);
 transition:
 gap var(--duration-normal) var(--ease-soft),
 opacity var(--duration-fast) var(--ease-out);
}

.link-arrow svg {
 transition: transform var(--duration-normal) var(--ease-soft);
}

.link-arrow:hover {
 gap: 0.55rem;
}

.link-arrow:hover svg {
 transform: translateX(3px);
}

/* ── Touch: avoid sticky hover lift ── */
@media (hover: none) {
 .service-card:hover,
 .value-card:hover,
 .benefit-card:hover,
 .testimonial-card:hover,
 .stat-card:hover,
 .contact-card:hover,
 .split-card:hover,
 .service-detail:hover,
 .team-card:hover,
 .steps li:hover,
 .btn:hover {
 transform: none;
 }

 .btn:active {
 transform: scale(0.98);
 }
}

/* ── Small phones ── */
@media (max-width: 479px) {
 .site-header {
 gap: 0.4rem;
 }

 .logo-word {
 font-size: 1.25rem;
 }

 .header-actions .btn-ghost {
 display: none;
 }

 /* Keep hamburger reachable - primary CTA lives in hero */
 .btn-header-cta {
 display: none;
 }

 .lang-menu-toggle {
 min-height: 2.5rem;
 min-width: 2.5rem;
 padding: 0 0.55rem 0 0.7rem;
 font-size: 0.7rem;
 }

 .menu-toggle {
 width: 2.75rem;
 height: 2.75rem;
 }

 .btn-label-full {
 display: none;
 }

 .btn-label-short {
 display: inline;
 }

 .hero {
 padding-bottom: 2.5rem;
 text-align: center;
 }

 .hero-copy,
 .hero-visual {
 justify-self: center;
 width: 100%;
 }

 .hero .lead {
 margin-inline: auto;
 }

 .eyebrow {
 justify-content: center;
 flex-wrap: wrap;
 }

 .lead {
 margin-inline: auto;
 }

 .hero-cta {
 flex-direction: column;
 align-items: stretch;
 justify-content: center;
 }

 .hero-cta .btn {
 width: 100%;
 }

 .hero-trust {
 flex-direction: column;
 align-items: center;
 justify-content: center;
 gap: 0.5rem;
 }

 .hero-image {
 width: min(85vw, 260px);
 }

 .service-grid {
 grid-template-columns: 1fr;
 }

 .steps li {
 padding: 1.15rem 1.1rem;
 gap: 0.9rem;
 }

 .split-card {
 padding: 1.5rem;
 }

 .split-card .btn {
 width: 100%;
 }

 .cta-band {
 padding: 2rem 1.25rem;
 border-radius: 1.25rem;
 }

 .cta-band-actions .btn {
 width: 100%;
 }
}

/* ── Phones & small tablets ── */
@media (min-width: 480px) and (max-width: 767px) {
 .header-actions .btn-ghost {
 display: none;
 }

 .hero {
 text-align: center;
 }

 .hero-copy {
 width: 100%;
 }

 .eyebrow {
 justify-content: center;
 }

 .lead,
 .hero .lead {
 margin-inline: auto;
 }

 .hero-cta {
 justify-content: center;
 }

 .hero-trust {
 justify-content: center;
 }

 .hero-image {
 width: min(70vw, 300px);
 }

 .service-grid {
 grid-template-columns: repeat(2, 1fr);
 }

 .split-card .btn {
 width: 100%;
 }
}

/* ── Tablets ── */
@media (min-width: 768px) {
 .site-header {
 display: flex;
 flex-wrap: nowrap;
 align-items: center;
 gap: 0.75rem 1rem;
 padding-bottom: 2rem;
 }

 .header-nav {
 display: flex;
 margin-left: auto;
 }

 .header-actions {
 margin-left: 0;
 flex-shrink: 0;
 }

 .mobile-menu {
 display: none;
 }

 .header-nav a {
 padding: 0.4rem 0.5rem;
 }
}

/* ── Premium surface and interaction layer ── */
.service-card,
.value-card,
.benefit-card,
.testimonial-card,
.stat-card,
.contact-card,
.split-card,
.service-detail,
.steps li {
 position: relative;
 isolation: isolate;
 overflow: hidden;
}

.service-card::before,
.value-card::before,
.benefit-card::before,
.testimonial-card::before,
.stat-card::before,
.contact-card::before,
.split-card::before,
.service-detail::before,
.steps li::before {
 content: "";
 position: absolute;
 z-index: -1;
 inset: 0;
 pointer-events: none;
 background: radial-gradient(
  260px circle at var(--pointer-x, 50%) var(--pointer-y, 50%),
  rgba(0, 184, 148, 0.11),
  transparent 62%
 );
 opacity: 0;
 transition: opacity var(--duration-medium) var(--ease-out);
}

.is-pointer-active::before {
 opacity: 1;
}

.service-card:hover .service-icon,
.benefit-card:hover .benefit-icon {
 transform: translateY(-2px) rotate(-3deg) scale(1.08);
}

.cta-band {
 position: relative;
 isolation: isolate;
 overflow: hidden;
 box-shadow: 0 24px 64px rgba(0, 82, 70, 0.22);
}

.cta-band::before,
.cta-band::after {
 content: "";
 position: absolute;
 z-index: -1;
 width: 18rem;
 aspect-ratio: 1;
 border-radius: 50%;
 pointer-events: none;
}

.cta-band::before {
 top: -13rem;
 right: -4rem;
 border: 1px solid rgba(255, 255, 255, 0.13);
 box-shadow: 0 0 0 3rem rgba(255, 255, 255, 0.025), 0 0 0 6rem rgba(255, 255, 255, 0.018);
}

.cta-band::after {
 left: -11rem;
 bottom: -14rem;
 background: rgba(0, 184, 148, 0.18);
}

.section-head h2,
.page-hero h1,
.cta-band h2 {
 text-wrap: balance;
}

@media (min-width: 768px) {
 .services,
 .how,
 .section-block,
 .testimonials,
 .faq-section,
 .zones {
  padding-block: clamp(4.5rem, 7vw, 6.5rem);
 }

 .section-head {
  margin-bottom: 2.75rem;
 }

 .service-grid,
 .values-grid,
 .benefit-grid,
 .testimonial-grid {
  gap: 1.25rem;
 }
}

@media (prefers-reduced-motion: reduce) {
 body::before,
 .hero::before,
 .hero-highlight::after {
  animation: none;
 }

 .hero-highlight::after {
  transform: scaleX(1);
 }

 .hero-image {
  transform: none !important;
 }
}

@media (min-width: 768px) and (max-width: 1023px) {
 .header-nav {
 font-size: 0.78rem;
 gap: 0;
 }

 .header-nav a {
 padding: 0.35rem 0.4rem;
 }

 .btn-header-cta {
 min-height: 2.65rem;
 padding-inline: 0.95rem;
 font-size: 0.82rem;
 }
}

@media (min-width: 768px) {
 .hero {
 grid-template-columns: 1.05fr 0.95fr;
 gap: 2.5rem;
 text-align: left;
 align-items: center;
 }

 .hero-copy {
 justify-self: start;
 width: 100%;
 }

 .hero .lead {
 margin-inline: 0;
 }

 .hero-cta,
 .hero-trust {
 justify-content: flex-start;
 }

 .hero-visual {
 justify-content: flex-end;
 }

 .split {
 grid-template-columns: 1fr 1fr;
 max-width: 100%;
 margin-inline: auto;
 }

 .site-footer {
 text-align: center;
 }

 .footer-cols {
 justify-items: center;
 }

 .faq-list {
 max-width: 42rem;
 }

 .values-grid,
 .benefit-grid {
 max-width: 56rem;
 }

 .testimonial-grid {
 max-width: 60rem;
 }
}

/* ── Desktop ── */
@media (min-width: 1024px) {
 .hero {
 gap: 3.5rem;
 padding-bottom: 5rem;
 }

 .hero-image {
 width: min(100%, 380px);
 }

 .services,
 .how,
 .split {
 padding: 4rem 0;
 }
}

/* ── Large screens ── */
@media (min-width: 1280px) {
 .page-shell {
 padding-inline: 2.5rem;
 }

 .hero-image {
 width: min(100%, 420px);
 }

 .service-grid {
 grid-template-columns: repeat(5, 1fr);
 }
}

@media (min-width: 768px) {
 .feature-row {
 grid-template-columns: 1fr 1fr;
 }

 .feature-row:nth-child(even) .feature-row-copy {
 order: 1;
 }

 /* Only use side-by-side service layout when media is present */
 .service-detail:has(.service-detail-media) {
 grid-template-columns: 0.95fr 1.05fr;
 text-align: left;
 justify-items: stretch;
 align-items: center;
 max-width: none;
 }

 .service-detail:has(.service-detail-media) .service-detail-copy {
 max-width: none;
 justify-items: start;
 text-align: left;
 }

 .service-detail:has(.service-detail-media) .service-tags {
 justify-content: flex-start;
 }

 .service-detail:has(.service-detail-media) p {
 margin-inline: 0;
 }

 .service-detail:has(.service-detail-media):nth-child(even) .service-detail-copy {
 order: -1;
 }

 .contact-grid {
 grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
 gap: 1.75rem;
 text-align: left;
 }

 .contact-cards {
 text-align: left;
 }

 .contact-cards .contact-card {
 text-align: left;
 }

 .footer-cols {
 grid-template-columns: repeat(3, 1fr);
 max-width: 48rem;
 align-items: start;
 }
}

/* ── Experimental immersive homepage hero ── */
body[data-page="home"] .site-header {
 color: #fff;
}

body[data-page="home"] .site-header::before,
body[data-page="home"] .site-header.is-scrolled::before {
 border-color: transparent;
 background: rgba(0, 35, 31, 0.035);
 box-shadow: none;
 backdrop-filter: blur(22px) saturate(1.12);
 -webkit-backdrop-filter: blur(22px) saturate(1.12);
}

body[data-page="home"] .site-header .logo-word,
body[data-page="home"] .site-header .header-nav,
body[data-page="home"] .site-header .header-nav a {
 color: rgba(255, 255, 255, 0.9);
}

body[data-page="home"] .site-header .header-nav a:hover,
body[data-page="home"] .site-header .header-nav a.is-active {
 color: #fff;
 background: rgba(255, 255, 255, 0.1);
}

body[data-page="home"] .site-header .header-nav a::after {
 background: #74e0c8;
}

body[data-page="home"] .site-header .lang-menu-toggle,
body[data-page="home"] .site-header .menu-toggle {
 color: #fff;
 border-color: rgba(255, 255, 255, 0.18);
 background: rgba(255, 255, 255, 0.1);
}

body[data-page="home"] .site-header .btn-header-cta {
 color: #003d35;
 background: #7ce4cc;
 box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16);
}

body[data-page="home"] .hero--immersive {
 position: relative;
 isolation: isolate;
 display: grid;
 grid-template-columns: 1fr;
 align-items: center;
 min-height: clamp(38rem, 66vw, 45rem);
 width: 100vw;
 margin: -6.75rem calc(50% - 50vw) 3rem;
 padding-block: clamp(4rem, 8vw, 6.5rem) clamp(3rem, 7vw, 5.5rem);
 padding-inline: max(2.5rem, calc((100vw - 1180px) / 2 + 2.5rem));
 overflow: hidden;
 border-radius: 0;
 color: #fff;
 background: #003d35;
 box-shadow: 0 32px 80px rgba(0, 61, 53, 0.22);
}

body[data-page="home"] .hero--immersive::before {
 content: "";
 position: absolute;
 z-index: -1;
 inset: 0;
 width: auto;
 aspect-ratio: auto;
 border-radius: inherit;
 background:
  linear-gradient(90deg, rgba(0, 27, 25, 0.94) 0%, rgba(0, 42, 37, 0.78) 38%, rgba(0, 38, 34, 0.22) 72%, rgba(0, 25, 23, 0.12) 100%),
  linear-gradient(0deg, rgba(0, 25, 23, 0.36), transparent 42%);
 filter: none;
 transform: none;
 animation: none;
}

body[data-page="home"] .hero-background {
 position: absolute;
 z-index: -2;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
 transform: scale(1.01);
 transition: transform 1.4s var(--ease-soft), filter var(--duration-slow) var(--ease-out);
}

body[data-page="home"] .hero--immersive:hover .hero-background {
 transform: scale(1.025);
}

body[data-page="home"] .hero--immersive .hero-copy {
 position: relative;
 z-index: 1;
 width: min(100%, 38rem);
 justify-self: start;
 text-align: left;
}

body[data-page="home"] .hero--immersive h1 {
 max-width: 11.5ch;
 margin-top: 2.25rem;
 margin-bottom: 1.25rem;
 color: #fff;
 font-size: clamp(2.7rem, 5.2vw, 4.8rem);
 line-height: 0.98;
 letter-spacing: -0.06em;
 text-shadow: 0 2px 24px rgba(0, 0, 0, 0.16);
}

body[data-page="home"] .hero--immersive .hero-highlight {
 color: #74e0c8;
}

body[data-page="home"] .hero--immersive .hero-highlight::after {
 display: none;
}

body[data-page="home"] .hero--immersive .lead {
 max-width: 35rem;
 margin: 0 0 1.75rem;
 color: rgba(255, 255, 255, 0.82);
 font-size: clamp(1rem, 1.6vw, 1.12rem);
 line-height: 1.65;
}

body[data-page="home"] .hero--immersive .btn-primary {
 color: #003d35;
 background: #7ce4cc;
 box-shadow: 0 16px 38px rgba(0, 0, 0, 0.2);
}

body[data-page="home"] .hero--immersive .btn-primary:hover {
 color: #002f2a;
 background: #94edd9;
 box-shadow: 0 20px 44px rgba(0, 0, 0, 0.25);
}

body[data-page="home"] .hero--immersive .btn-secondary {
 color: #fff;
 border-color: rgba(255, 255, 255, 0.28);
 background: rgba(255, 255, 255, 0.1);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
 backdrop-filter: blur(10px);
 -webkit-backdrop-filter: blur(10px);
}

body[data-page="home"] .hero--immersive .btn-secondary:hover {
 border-color: rgba(255, 255, 255, 0.48);
 background: rgba(255, 255, 255, 0.17);
 box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
}

body[data-page="home"] .hero--immersive .store-badges {
 margin-bottom: 1rem;
}

body[data-page="home"] .hero--immersive .store-badge {
 filter: drop-shadow(0 5px 12px rgba(0, 0, 0, 0.18));
}

body[data-page="home"] .hero--immersive .hero-trust {
 gap: 0.5rem;
 color: rgba(255, 255, 255, 0.88);
 font-size: 0.78rem;
}

body[data-page="home"] .hero--immersive .hero-trust li {
 padding: 0.45rem 0.7rem;
 border: 1px solid rgba(255, 255, 255, 0.12);
 border-radius: 999px;
 background: rgba(0, 42, 37, 0.38);
 backdrop-filter: blur(8px);
 -webkit-backdrop-filter: blur(8px);
}

body[data-page="home"] .hero--immersive .hero-trust li::before {
 color: #74e0c8;
}

@media (max-width: 767px) {
 body[data-page="home"] .hero--immersive {
  min-height: 43rem;
  width: 100vw;
  margin: -6rem calc(50% - 50vw) 3rem;
  padding: 7.25rem 1.25rem 1.5rem;
  align-items: end;
  text-align: left;
 }

 body[data-page="home"] .hero--immersive::before {
  background:
   linear-gradient(0deg, rgba(0, 27, 25, 0.98) 0%, rgba(0, 34, 30, 0.8) 52%, rgba(0, 27, 25, 0.2) 100%),
   linear-gradient(90deg, rgba(0, 27, 25, 0.56), rgba(0, 27, 25, 0.12));
 }

 body[data-page="home"] .hero-background {
  object-position: 66% center;
 }

 body[data-page="home"] .hero--immersive .hero-copy {
  width: 100%;
 }

 body[data-page="home"] .hero--immersive h1 {
  max-width: 12ch;
  font-size: clamp(2.3rem, 11vw, 3.35rem);
 }

 body[data-page="home"] .hero--immersive .hero-cta,
 body[data-page="home"] .hero--immersive .store-badges,
 body[data-page="home"] .hero--immersive .hero-trust {
  justify-content: flex-start;
 }

 body[data-page="home"] .hero--immersive .hero-cta .btn {
  flex: none;
 }

 body[data-page="home"] .hero--immersive .hero-trust li {
  padding: 0.35rem 0;
  border: 0;
  background: transparent;
  backdrop-filter: none;
 }
}

@media (prefers-reduced-motion: reduce) {
 body[data-page="home"] .hero--immersive .hero-background,
 body[data-page="home"] .hero--immersive:hover .hero-background {
  transform: none;
  transition: none;
 }
}

/* ── Immersive visual language across the full site ── */
body:not([data-page="home"]) .site-header {
 color: #fff;
}

body:not([data-page="home"]) .site-header::before,
body:not([data-page="home"]) .site-header.is-scrolled::before {
 border-color: transparent;
 background: rgba(0, 35, 31, 0.035);
 box-shadow: none;
 backdrop-filter: blur(22px) saturate(1.12);
 -webkit-backdrop-filter: blur(22px) saturate(1.12);
}

body:not([data-page="home"]) .site-header .logo-word,
body:not([data-page="home"]) .site-header .header-nav,
body:not([data-page="home"]) .site-header .header-nav a {
 color: rgba(255, 255, 255, 0.9);
}

body:not([data-page="home"]) .site-header .header-nav a:hover,
body:not([data-page="home"]) .site-header .header-nav a.is-active {
 color: #fff;
 background: rgba(255, 255, 255, 0.1);
}

body:not([data-page="home"]) .site-header .header-nav a::after {
 background: #74e0c8;
}

body:not([data-page="home"]) .site-header .lang-menu-toggle,
body:not([data-page="home"]) .site-header .menu-toggle {
 color: #fff;
 border-color: rgba(255, 255, 255, 0.18);
 background: rgba(255, 255, 255, 0.1);
}

body:not([data-page="home"]) .site-header .btn-header-cta {
 color: #003d35;
 background: #7ce4cc;
}

body:not([data-page="home"]) .page-hero {
 position: relative;
 isolation: isolate;
 display: grid;
 align-content: center;
 width: 100vw;
 max-width: none;
 min-height: clamp(25rem, 42vw, 31rem);
 margin: -6.75rem calc(50% - 50vw) 2.5rem;
 padding: clamp(9rem, 14vw, 11rem) max(1.25rem, calc((100vw - 1180px) / 2 + 2.5rem)) clamp(4rem, 7vw, 6rem);
 overflow: hidden;
 color: #fff;
 background:
  radial-gradient(circle at 78% 22%, rgba(0, 184, 148, 0.2), transparent 28rem),
  radial-gradient(circle at 15% 110%, rgba(116, 224, 200, 0.12), transparent 24rem),
  linear-gradient(125deg, #002f2b, #005247 72%, #006b5a);
}

body:not([data-page="home"]) .page-hero::after {
 content: "";
 position: absolute;
 z-index: -1;
 width: 26rem;
 aspect-ratio: 1;
 right: -8rem;
 bottom: -18rem;
 border: 1px solid rgba(255, 255, 255, 0.09);
 border-radius: 50%;
 box-shadow: 0 0 0 4rem rgba(255, 255, 255, 0.018), 0 0 0 8rem rgba(255, 255, 255, 0.012);
}

body:not([data-page="home"]) .page-hero .eyebrow,
body:not([data-page="home"]) .page-hero .lead {
 color: rgba(255, 255, 255, 0.76);
}

body:not([data-page="home"]) .page-hero h1 {
 color: #fff;
 font-size: clamp(2.5rem, 5.4vw, 4.8rem);
 line-height: 0.98;
 letter-spacing: -0.055em;
}

body[data-page="home"] .services,
body[data-page="home"] .testimonials {
 position: relative;
 isolation: isolate;
 width: 100vw;
 margin-inline: calc(50% - 50vw);
 padding-inline: max(1.25rem, calc((100vw - 1180px) / 2 + 2.5rem));
 overflow: hidden;
 color: #fff;
 background:
  radial-gradient(circle at 88% 12%, rgba(0, 184, 148, 0.18), transparent 25rem),
  linear-gradient(135deg, #003a34, #005247);
}

body[data-page="home"] .services .section-head h2,
body[data-page="home"] .testimonials .section-head h2 {
 color: #fff;
}

body[data-page="home"] .services .section-head p,
body[data-page="home"] .testimonials .section-head p,
body[data-page="home"] .services .eyebrow,
body[data-page="home"] .testimonials .eyebrow {
 color: rgba(255, 255, 255, 0.72);
}

body[data-page="home"] .services .service-card {
 border-top-color: rgba(255, 255, 255, 0.18);
 color: #fff;
}

body[data-page="home"] .services .service-card p {
 color: rgba(255, 255, 255, 0.68);
}

body[data-page="home"] .services .service-icon {
 color: #003d35;
 background: #7ce4cc;
}

body[data-page="home"] .services .link-arrow,
body[data-page="home"] .testimonials .link-arrow {
 color: #7ce4cc;
}

body[data-page="home"] .testimonials {
 background:
  radial-gradient(circle at 12% 90%, rgba(0, 184, 148, 0.15), transparent 23rem),
  linear-gradient(145deg, #002f2b, #00463e);
}

body[data-page="home"] .testimonials .testimonial-card {
 color: #fff;
 border-color: rgba(255, 255, 255, 0.12);
 background: rgba(255, 255, 255, 0.07);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
 backdrop-filter: blur(10px);
 -webkit-backdrop-filter: blur(10px);
}

body[data-page="home"] .testimonials .testimonial-card blockquote,
body[data-page="home"] .testimonials .testimonial-card cite {
 color: #fff;
}

body[data-page="home"] .testimonials .testimonial-card cite span {
 color: rgba(255, 255, 255, 0.62);
}

body[data-page="home"] .testimonials .testimonial-avatar {
 color: #003d35;
 background: #7ce4cc;
}

.site-footer {
 position: relative;
 width: 100vw;
 margin: 4rem calc(50% - 50vw) -3rem;
 padding: 4rem max(1.25rem, calc((100vw - 1180px) / 2 + 2.5rem)) 2rem;
 border-top: 0;
 color: #fff;
 background:
  radial-gradient(circle at 84% 10%, rgba(0, 184, 148, 0.13), transparent 23rem),
  #002f2b;
}

.site-footer .logo-word,
.site-footer .footer-col h3 {
 color: #fff;
}

.site-footer .footer-brand p,
.site-footer .footer-copy,
.site-footer .footer-col a,
.site-footer .footer-links {
 color: rgba(255, 255, 255, 0.64);
}

.site-footer .footer-col a:hover,
.site-footer .footer-links a:hover {
 color: #7ce4cc;
}

@media (max-width: 767px) {
 body:not([data-page="home"]) .page-hero {
  min-height: 25rem;
  margin-top: -6rem;
  padding: 8rem 1.25rem 3.5rem;
 }

 body:not([data-page="home"]) .page-hero h1 {
  font-size: clamp(2.45rem, 12vw, 3.5rem);
 }

 body[data-page="home"] .services,
 body[data-page="home"] .testimonials {
  padding-inline: 1rem;
 }
}

/* ── UI audit: homepage responsive corrections ──
   Keep the two dark homepage sections visually continuous, and reserve enough
   space for the header at the tablet breakpoint. */
body[data-page="home"] .hero--immersive {
 margin-bottom: 0;
}

/* White editorial bridge between the hero and service catalogue. The content
   is deliberately linear: dividers establish rhythm without card surfaces. */
.assurance-strip {
 display: grid;
 grid-template-columns: minmax(16rem, 0.75fr) minmax(0, 1.55fr);
 align-items: center;
 gap: clamp(2.5rem, 6vw, 6rem);
 width: 100vw;
 margin-inline: calc(50% - 50vw);
 padding: clamp(4rem, 7vw, 6.5rem) max(1.25rem, calc((100vw - 1180px) / 2 + 2.5rem));
 color: var(--presta-ink);
 text-align: left;
 background: #fff;
}

.assurance-intro {
 max-width: 25rem;
 text-align: left;
}

.assurance-intro .eyebrow {
 justify-content: flex-start;
 margin-bottom: 0.8rem;
 color: var(--presta-primary);
}

.assurance-intro h2 {
 margin: 0;
 font-size: clamp(1.9rem, 3.2vw, 3rem);
 font-weight: 900;
 line-height: 1.05;
 letter-spacing: -0.05em;
 text-wrap: balance;
}

.assurance-points {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 margin: 0;
 padding: 0;
 border-block: 1px solid var(--presta-border);
 list-style: none;
}

.assurance-points li {
 display: grid;
 align-content: start;
 gap: 1.4rem;
 min-width: 0;
 padding: 1.75rem clamp(1.1rem, 2.2vw, 2rem);
 text-align: left;
}

.assurance-points li:first-child {
 padding-left: 0;
}

.assurance-points li:last-child {
 padding-right: 0;
}

.assurance-points li + li {
 border-left: 1px solid var(--presta-border);
}

.assurance-number {
 color: var(--presta-primary);
 font-size: 0.72rem;
 font-weight: 800;
 letter-spacing: 0.1em;
}

.assurance-points h3 {
 margin: 0 0 0.5rem;
 font-size: 1rem;
 font-weight: 800;
}

.assurance-points p {
 margin: 0;
 color: var(--presta-muted);
 font-size: 0.9rem;
 line-height: 1.55;
}

@media (max-width: 767px) {
 .assurance-strip {
  grid-template-columns: 1fr;
  gap: 2.25rem;
  padding-block: 3.75rem;
 }

 .assurance-intro {
  max-width: 22rem;
 }

 .assurance-points {
  grid-template-columns: 1fr;
 }

 .assurance-points li {
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: 0.75rem;
  padding: 1.35rem 0;
 }

 .assurance-points li + li {
  border-top: 1px solid var(--presta-border);
  border-left: 0;
 }
}

@media (min-width: 768px) and (max-width: 1023px) {
 .assurance-strip {
  grid-template-columns: 1fr;
  gap: 2.5rem;
 }

 .assurance-intro {
  max-width: 38rem;
 }
}

@media (min-width: 768px) and (max-width: 1023px) {
 body[data-page="home"] .hero--immersive {
  padding-top: 8rem;
  padding-bottom: 4rem;
 }

 body[data-page="home"] .hero--immersive::before {
  background:
   linear-gradient(90deg, rgba(0, 27, 25, 0.96) 0%, rgba(0, 42, 37, 0.86) 44%, rgba(0, 38, 34, 0.44) 72%, rgba(0, 25, 23, 0.16) 100%),
   linear-gradient(0deg, rgba(0, 25, 23, 0.4), transparent 42%);
 }

 body[data-page="home"] .hero--immersive .lead {
  max-width: 25rem;
 }
}

/* Final desktop composition overrides. */
@media (min-width: 1024px) {
 .site-header {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) auto minmax(12rem, 1fr);
  align-items: center;
  column-gap: clamp(1rem, 2vw, 2rem);
 }

 .site-header .logo { justify-self: start; }
 .site-header .header-nav { justify-self: center; margin: 0; gap: 0.2rem; }
 .site-header .header-actions { justify-self: end; margin: 0; gap: 0.7rem; }

 body[data-page="home"] .services {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(19rem, 0.92fr);
  grid-template-rows: auto auto auto;
  align-items: center;
  gap: 2.25rem clamp(2.5rem, 5vw, 5rem);
 }

 body[data-page="home"] .services .section-head {
  grid-column: 1 / -1;
  max-width: 48rem;
  margin: 0;
  text-align: left;
 }

 body[data-page="home"] .services .section-head .eyebrow { justify-content: flex-start; }
 body[data-page="home"] .services .section-head p:last-child { max-width: 42rem; margin-inline: 0; }

 body[data-page="home"] .services .editorial-visual--services {
  grid-column: 1;
  grid-row: 2 / span 2;
  align-self: stretch;
  height: clamp(27rem, 35vw, 33rem);
  margin: 0;
 }

 body[data-page="home"] .services .editorial-visual--services img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 48% center;
 }

 body[data-page="home"] .services .service-grid {
  grid-column: 2;
  grid-row: 2;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
 }

 body[data-page="home"] .services .service-card {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 0.9rem;
  padding: 0.85rem 0.25rem;
  text-align: left;
 }

 body[data-page="home"] .services .service-icon {
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 2.35rem;
  height: 2.35rem;
  margin: 0;
 }

 body[data-page="home"] .services .service-card h3,
 body[data-page="home"] .services .service-card p { grid-column: 2; }

 body[data-page="home"] .services > p:last-child {
  grid-column: 2;
  grid-row: 3;
  justify-self: start;
  margin: -1rem 0 0 !important;
 }
}

/* ── Responsiveness polish (360 → 1024) ──
   Hardens mobile CTAs, tablet assurance, and orphan grids.
   Full-bleed sections keep width: 100vw + margin calc(50% - 50vw);
   do NOT set max-width: 100% on them or they clip inside .page-shell. */

/* Inputs and media never force horizontal scroll on small phones. */
.form-row input,
.form-row textarea,
.form-row select,
.contact-form,
.service-detail,
.editorial-visual,
.editorial-visual img {
 max-width: 100%;
}

/* Compact phones (iPhone SE / 360) */
@media (max-width: 379px) {
 .page-shell {
  padding-left: max(0.85rem, env(safe-area-inset-left));
  padding-right: max(0.85rem, env(safe-area-inset-right));
 }

 body[data-page="home"] .hero--immersive {
  min-height: 38rem;
  padding: 6.5rem 0.9rem 1.25rem;
 }

 body[data-page="home"] .hero--immersive h1 {
  max-width: none;
  font-size: clamp(2rem, 10.5vw, 2.6rem);
 }

 .store-badge {
  height: 2.35rem;
 }

 .store-badge:first-child img {
  height: 3.4rem;
 }

 .assurance-strip {
  padding-inline: 0.9rem;
 }

 .stats-band {
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
 }

 .stat-card {
  padding: 1rem 0.75rem;
 }

 .stat-card strong {
  font-size: 1.45rem;
 }

 .stat-card span {
  font-size: 0.72rem;
 }
}

/* All phones: full-width hero CTAs + safer trust chips */
@media (max-width: 767px) {
 body[data-page="home"] .hero--immersive .hero-cta {
  flex-direction: column;
  align-items: stretch;
  width: 100%;
 }

 body[data-page="home"] .hero--immersive .hero-cta .btn {
  width: 100%;
  justify-content: center;
 }

 body[data-page="home"] .hero--immersive .store-badges {
  justify-content: flex-start;
  width: 100%;
 }

 body[data-page="home"] .hero--immersive .hero-trust {
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
 }

 /* Stats read better as a 2×2 board on phones */
 .stats-band {
  grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 /* Single-column home services by default on phones */
 body[data-page="home"] .service-grid {
  grid-template-columns: 1fr;
 }

 /* Long FAQ questions wrap cleanly next to the chevron */
 body[data-page="faq"] .faq-question {
  align-items: flex-start;
 }

 body[data-page="faq"] .faq-question span {
  flex: 1;
  min-width: 0;
  text-wrap: balance;
 }

 body[data-page="faq"] .faq-question svg {
  margin-top: 0.2rem;
 }

 body[data-page="contact"] .contact-grid {
  gap: 2rem;
 }

 body[data-page="contact"] .contact-form {
  padding: 1.25rem 1rem;
 }

 .cta-band-actions {
  flex-direction: column;
  align-items: stretch;
 }

 .cta-band-actions .btn {
  width: 100%;
 }

 .cta-band .store-badges {
  justify-content: center;
 }

 .split {
  gap: 0.85rem;
 }

 .timeline-item,
 .steps li {
  padding-inline: 1rem;
 }
}

/* Mid phones: two-up service cards with centered orphan */
@media (min-width: 480px) and (max-width: 767px) {
 body[data-page="home"] .service-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
 }

 body[data-page="home"] .service-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
  max-width: 22rem;
  margin-inline: auto;
  width: 100%;
 }

 .testimonial-grid {
  grid-template-columns: 1fr;
 }
}

/* Tablets: avoid cramped multi-column compositions */
@media (min-width: 768px) and (max-width: 1023px) {
 .assurance-points {
  grid-template-columns: 1fr;
  border-block: 1px solid var(--presta-border);
 }

 .assurance-points li {
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 1rem;
  padding: 1.35rem 0;
  border-left: 0 !important;
 }

 .assurance-points li + li {
  border-top: 1px solid var(--presta-border);
  border-left: 0;
 }

 .assurance-points li:first-child,
 .assurance-points li:last-child {
  padding-left: 0;
  padding-right: 0;
 }

 .site-header {
  gap: 0.5rem 0.65rem;
 }

 .header-nav a {
  padding: 0.35rem 0.35rem;
 }

 .btn-header-cta {
  padding-inline: 0.85rem;
 }

 /* Stack home/guide/pros editorial grids until desktop split fits cleanly */
 body[data-page="home"] #how {
  grid-template-columns: 1fr;
  gap: 1.75rem;
 }

 body[data-page="home"] #how > p:last-child {
  grid-column: 1;
  margin: 0 !important;
  justify-self: start;
 }

 body[data-page="guide"] .how.section-block {
  grid-template-columns: 1fr;
 }

 body[data-page="pros"] main > .section-block:has(.editorial-visual--pro) {
  grid-template-columns: 1fr;
  gap: 1.75rem;
 }

 body[data-page="pros"] main > .section-block:has(.editorial-visual--pro) .editorial-visual--pro {
  grid-column: auto;
  grid-row: auto;
 }

 .contact-grid {
  grid-template-columns: 1fr;
 }

 .stats-band {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
 }

 .stat-card {
  padding: 1.1rem 0.75rem;
 }

 .stat-card span {
  font-size: 0.75rem;
 }
}

/* Wider tablets: restore 3-up assurance + contact split */
@media (min-width: 900px) and (max-width: 1023px) {
 .assurance-points {
  grid-template-columns: repeat(3, minmax(0, 1fr));
 }

 .assurance-points li {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.1rem;
  padding: 1.5rem clamp(0.85rem, 1.5vw, 1.35rem);
 }

 .assurance-points li + li {
  border-top: 0;
  border-left: 1px solid var(--presta-border);
 }

 .assurance-points li:first-child {
  padding-left: 0;
 }

 .assurance-points li:last-child {
  padding-right: 0;
 }

 .contact-grid {
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
 }
}

/* Touch: larger hit areas without changing desktop density */
@media (pointer: coarse) {
 .header-nav a {
  min-height: 2.5rem;
  display: inline-flex;
  align-items: center;
 }

 .lang-menu-toggle,
 .menu-toggle {
  min-height: 2.75rem;
  min-width: 2.75rem;
 }

 .faq-question {
  min-height: 3.25rem;
 }
}
