/* Total Healing Services, version 3. Layout system modelled on the Alevia reference (alevia.webflow.io):
   sage/slate palette, Geist + Merriweather italic accents, 1160 container, 100px sections, 16px radii, pill buttons.
   Written from scratch for this build; no template code or images are reused. Pages come from ../build_v3.py. */
:root {
  --sage: #52796f; --slate: #2f3e46; --teal: #354f52; --mist: #cad2c5; --tile: #f5f6fa; --line: #eaedf0;
  --ink: #0b0b0b; --muted: #4a4f52;
  --sans: "Geist", "Helvetica Neue", Arial, sans-serif;
  --serif: "Merriweather", Georgia, serif;
  --wrap: 72.5rem; --r: 16px; --gap: 2rem; --sec: clamp(4rem, 7vw, 6.25rem);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: var(--ink); font: 400 1rem/1.6 var(--sans); }
img, svg { max-width: 100%; display: block; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--sage); outline-offset: 3px; border-radius: 4px; }
.on-dark :focus-visible { outline-color: #fff; }
.skip { position: absolute; left: -999px; top: 0; background: #fff; color: var(--ink); padding: 0.75rem 1rem; z-index: 90; }
.skip:focus { left: 0.5rem; top: 0.5rem; }

h1, h2, h3 { margin: 0; font-weight: 400; text-wrap: balance; }
h1 { font-size: clamp(2.4rem, min(4.2vw, 8vh), 3.5rem); line-height: 1.1; font-weight: 500; }
.h2 { font-size: clamp(1.75rem, 2.8vw, 2.25rem); line-height: 1.2; }
.h5 { font-size: 1.375rem; line-height: 1.2; }
em, .it { font-family: var(--serif); font-style: italic; font-weight: 400; }
p { margin: 0; }
.muted { color: var(--muted); }
.medium { font-size: 1.125rem; line-height: 1.6; }
.eyebrow { font-size: 0.875rem; line-height: 1; letter-spacing: 0.3em; text-transform: uppercase; margin: 0 0 0.6rem; font-weight: 400; }
.eyebrow.dash::before { content: ""; display: inline-block; width: 1rem; height: 2px; background: currentColor; vertical-align: middle; margin-right: 0.75rem; }

.wrap { width: min(100% - 2.5rem, var(--wrap)); margin-inline: auto; }
.sec { padding-block: var(--sec); }
.head { margin-bottom: 2.5rem; }
.head.center { text-align: center; }
.head .h2 { max-width: 22ch; }
.head.center .h2 { margin-inline: auto; max-width: none; }

/* Draft markers. Remove at launch. */
.draft { background: #fff4c7; box-shadow: 0 0 0 3px #fff4c7; border-radius: 3px; }
.draft-bar { background: #3a2a00; color: #ffe9b0; font-size: 0.875rem; text-align: center; padding: 0.55rem 1rem; }

/* Pill button with arrow disc */
.btn { display: inline-flex; align-items: center; gap: 1rem; padding: 0.5rem 0.5rem 0.5rem 1.5rem; border-radius: 320px; background: var(--sage); color: #fff; text-decoration: none; font: 500 0.9rem/1.6 var(--sans); text-transform: uppercase; letter-spacing: 0.01em; border: 1px solid var(--sage); transition: background-color 0.3s ease, border-color 0.3s ease; min-height: 3.5rem; }
.btn i { width: 2.5rem; height: 2.5rem; border-radius: 50%; background: #fff; color: var(--ink); display: grid; place-items: center; flex: none; transition: transform 0.35s ease; }
.btn:hover { background: var(--teal); border-color: var(--teal); }
.btn:hover i { transform: rotate(45deg); }
.btn-light { background: #fff; color: var(--ink); border-color: var(--line); }
.btn-light i { background: var(--teal); color: #fff; }
.btn-light:hover { background: var(--tile); border-color: var(--mist); }
.btn-plain { padding: 0.5rem 1.5rem; justify-content: center; }
.ico { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ico-lg { width: 2rem; height: 2rem; }
.actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }

/* Nav: transparent over green, white once scrolled */
.nav { position: fixed; inset: 0 0 auto 0; z-index: 50; color: #fff; transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease; }
.nav .wrap { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 5.75rem; transition: min-height 0.3s ease; }
.nav.solid { background: #fff; color: var(--ink); box-shadow: 0 1px 0 var(--line); }
.nav.solid .wrap { min-height: 4.5rem; }
.logo { display: inline-block; background: #fff; border-radius: 12px; padding: 0.45rem 0.9rem; line-height: 0; text-decoration: none; }
.logo img { height: 2.6rem; width: auto; display: block; }
.nav.solid .logo { padding-inline: 0; background: transparent; border-radius: 0; }
.links { display: flex; align-items: center; gap: 2rem; }
.links a:not(.btn) { text-decoration: none; text-transform: uppercase; font-size: 0.9rem; letter-spacing: 0.04em; padding: 0.5rem 0; position: relative; }
.links a:not(.btn)::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 0.3s ease; }
.links a:not(.btn):hover::after, .links a[aria-current="page"]::after { transform: scaleX(1); }
.links .btn { min-height: 2.9rem; padding: 0.3rem 0.3rem 0.3rem 1.15rem; font-size: 0.8rem; gap: 0.7rem; background: #fff; color: var(--ink); border-color: #fff; }
.links .btn i { width: 2.2rem; height: 2.2rem; background: var(--teal); color: #fff; }
.nav.solid .links .btn { background: var(--sage); color: #fff; border-color: var(--sage); }
.nav.solid .links .btn i { background: #fff; color: var(--ink); }
.burger { display: none; }

/* Green grid ground shared by hero, banners, contact */
.ground { position: relative; color: #fff; isolation: isolate; overflow: hidden;
  background:
    linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px) 0 0 / 24px 24px,
    var(--sage); }
.ground.fade { background:
    linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(var(--sage) 0%, #5d8278 58%, #a9bdb6 84%, #fff 100%); }
.sq { position: absolute; width: 28px; height: 20px; background: rgba(255, 255, 255, 0.13); z-index: -1; animation: drift 9s ease-in-out infinite alternate; }
.sq:nth-child(2n) { animation-duration: 12s; animation-delay: -4s; }
.sq:nth-child(3n) { animation-duration: 15s; animation-delay: -8s; }
@keyframes drift { from { transform: translate3d(0, 0, 0); opacity: 0.5; } to { transform: translate3d(0, -24px, 0); opacity: 1; } }

/* Home hero */
.hero { padding: clamp(6.5rem, 15vh, 10.5rem) 0 clamp(2rem, 6vh, 6rem); min-height: min(100svh, 60rem); display: grid; align-items: center; }
.hero .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 8vw, 8rem); align-items: center; }
.hero-left { display: grid; gap: clamp(1.1rem, 3vh, 2rem); justify-items: start; min-width: 0; }
.hero-left h1 { max-width: 16ch; }
.hero-left .medium { max-width: 30rem; }
.proof { background: #fff; color: var(--ink); border-radius: var(--r); padding: 1.25rem 1.5rem; display: grid; gap: 0.6rem; max-width: 19rem; margin-top: clamp(0.5rem, 4vh, 3rem); box-shadow: 0 1.5rem 3rem -1.5rem rgba(47, 62, 70, 0.35); }
.proof div { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.proof b { font-weight: 500; font-size: 0.85rem; background: var(--mist); border-radius: 320px; padding: 0.2rem 0.7rem; }
.proof p { font: italic 400 0.9rem/1.45 var(--serif); }
.hero-right { position: relative; justify-self: center; width: min(100%, 27rem, 52vh); }
.hero-right::before { content: ""; position: absolute; inset: -6% -9% 12% -9%; background: #84a98c; border-radius: 3rem; transform: rotate(14deg); z-index: -1; opacity: 0.85; }
.hero-photo { aspect-ratio: 4 / 4.9; border-radius: 2.5rem; overflow: hidden; background: #f4f4f4; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.callcard { position: absolute; right: -2.5rem; bottom: 14%; background: #fff; color: var(--ink); border-radius: var(--r); padding: 0.9rem 1.25rem 0.9rem 0.9rem; display: flex; align-items: center; gap: 0.9rem; text-decoration: none; transform: rotate(3deg); box-shadow: 0 1.5rem 3rem -1rem rgba(47, 62, 70, 0.4); animation: bob 5s ease-in-out infinite alternate; }
.callcard i { width: 2.9rem; height: 2.9rem; border-radius: 50%; background: var(--teal); color: #fff; display: grid; place-items: center; flex: none; }
.callcard strong { display: block; font-size: 1.35rem; font-weight: 400; line-height: 1.2; white-space: nowrap; }
.callcard span { font-size: 0.95rem; color: var(--muted); }
@keyframes bob { from { transform: rotate(3deg) translateY(0); } to { transform: rotate(1.5deg) translateY(-10px); } }

/* Inner banner */
.banner { min-height: clamp(24rem, 62vh, 34rem); display: grid; align-items: end; padding: 9rem 0 clamp(3rem, 7vw, 6.25rem); }
.banner-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.13; z-index: -1; filter: grayscale(1); }
.banner .eyebrow { color: var(--mist); }
.banner h1 { font-size: clamp(2.1rem, 3.6vw, 3rem); font-weight: 400; line-height: 1.2; max-width: 22ch; }
.banner p.medium { margin-top: 1rem; max-width: 36rem; color: #e6ece9; }
.banner .actions { margin-top: 1.75rem; }

/* About split */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); align-items: center; }
.split-img { border-radius: var(--r); overflow: hidden; aspect-ratio: 564 / 480; }
.split-img img, .px img { width: 100%; height: 112%; object-fit: cover; will-change: transform; }
.split-copy { display: grid; gap: 1.5rem; justify-items: start; padding-left: clamp(0rem, 3vw, 3rem); }
.split-copy .h2 { max-width: 18ch; }

.about-duo { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: var(--gap); }
.about-portrait, .about-room { border-radius: var(--r); overflow: hidden; height: clamp(22rem, 42vw, 34rem); }
.about-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 10%; }
@media (max-width: 40rem) {
  .creds li { grid-template-columns: 2rem auto; gap: 0.5rem 0.75rem; } .creds span { grid-column: 1 / -1; } .about-duo { grid-template-columns: 1fr; } .about-room { height: 14rem; } }

/* Service cards */
.cards { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); list-style: none; margin: 0; padding: 0; }
.scard { display: block; text-decoration: none; background: #fff; border-radius: var(--r); overflow: hidden; box-shadow: 0 0.75rem 2.5rem -1rem rgba(47, 62, 70, 0.16); transition: box-shadow 0.35s ease, transform 0.35s ease; height: 100%; }
.scard:hover { transform: translateY(-4px); box-shadow: 0 1.5rem 3rem -1rem rgba(47, 62, 70, 0.28); }
.scard-img { aspect-ratio: 564 / 369; overflow: hidden; }
.scard-img img { width: 100%; height: 112%; object-fit: cover; transition: scale 0.6s ease; will-change: transform; }
.scard:hover .scard-img img { scale: 1.04; }
.scard-body { position: relative; text-align: center; padding: 3.25rem 1.5rem 2.25rem; display: grid; gap: 0.5rem; }
.scard-body .tag { position: absolute; left: 50%; top: 0; translate: -50% -50%; width: 4rem; height: 4rem; border-radius: var(--r); background: var(--mist); color: var(--teal); display: grid; place-items: center; }
.scard-body p { color: var(--muted); }

.cards.three { grid-template-columns: repeat(3, 1fr); }
.contact.top .infos { margin-top: 1.5rem; padding-top: 0; }

.scard-body.person { padding-top: 1.75rem; }

.quote { margin: 0; max-width: 46rem; font: italic 400 clamp(1.6rem, 2.8vw, 2.25rem)/1.25 var(--serif); }
.quote footer { margin-top: 1rem; font: 400 1.0625rem/1.6 var(--sans); color: var(--muted); max-width: 40rem; }
.tile .chips { margin-top: 1rem; } .tile .chips li { background: #fff; }
.tile { min-width: 0; } .tile .chips li, .tile .checks span { overflow-wrap: anywhere; }
.tile .checks { margin-top: 1rem; }
.tiles.info .tile { min-height: 0; gap: 0; }
.creds { list-style: none; margin: 1rem 0 0; padding: 0; }
.creds li { display: grid; grid-template-columns: 2.25rem auto 1fr; gap: 1rem; align-items: center; padding: 0.9rem 0; border-top: 1px solid var(--line); }
.creds li:first-child { border-top: 0; padding-top: 0.25rem; }
.creds i { width: 2.25rem; height: 2.25rem; color: var(--sage); display: grid; place-items: center; }
.creds i .ico { width: 2.25rem; height: 2.25rem; stroke-width: 1.4; }
.creds b { font-weight: 600; font-size: 0.95rem; letter-spacing: 0.02em; border: 1.5px solid var(--teal); border-radius: 8px; padding: 0.4rem 0.8rem; white-space: nowrap; background: #fff; }
.creds strong { display: block; font-weight: 500; line-height: 1.3; }
.creds span { font-size: 0.95rem; color: var(--muted); line-height: 1.45; }

/* Facts row (honest counts, not marketing stats) */
.facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); text-align: center; list-style: none; margin: 0; padding: 0; }
.facts b { display: block; font-size: 2.5rem; line-height: 1.2; font-weight: 400; font-variant-numeric: tabular-nums; }
.facts li > span { color: var(--muted); font-size: 0.95rem; }

/* Why: photo + 2x2 tiles */
.why { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--gap); }
.why-img { border-radius: var(--r); overflow: hidden; min-height: 26rem; }
.tiles { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); list-style: none; margin: 0; padding: 0; }
.tile { background: var(--tile); border-radius: var(--r); padding: 2rem; display: flex; flex-direction: column; gap: 0.5rem; min-height: 16rem; height: 100%; transition: background-color 0.35s ease, color 0.35s ease; }
.tile .ico-lg { margin-bottom: auto; }
.tile h3 { font-size: 1.125rem; line-height: 1.6; margin-top: 2rem; }
.tile p { color: var(--muted); transition: color 0.35s ease; }
.tile.fill, .tiles:not(.info) .tile:hover { background: var(--teal); color: #fff; }
.tile.fill p, .tiles:not(.info) .tile:hover p { color: #cfd8d6; }
.tiles.row4 { grid-template-columns: repeat(4, 1fr); }

/* Steps band */
.steps-band .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); align-items: start; }
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.steps li { display: grid; grid-template-columns: 4rem 1fr; gap: 1rem; align-items: center; }
.steps i { width: 4rem; height: 4rem; border-radius: var(--r); background: var(--teal); display: grid; place-items: center; }
.steps h3 { font-size: 1.125rem; line-height: 1.3; }
.steps p { color: #d5dfdb; }

/* Journey: numbered row on service pages */
.journey { list-style: none; margin: 2.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; text-align: center; counter-reset: j; }
.journey li { counter-increment: j; display: grid; gap: 1rem; justify-items: center; font-size: 0.95rem; }
.journey li::before { content: counter(j); width: 4rem; height: 4rem; border-radius: var(--r); background: var(--mist); display: grid; place-items: center; font-size: 2rem; }

/* Service overview */
.overview .big { font-size: clamp(1.25rem, 2.2vw, 1.75rem); line-height: 1.35; max-width: 60rem; }
.duo { display: grid; grid-template-columns: 1.8fr 1fr; gap: var(--gap); margin-top: 2.5rem; }
.duo div { border-radius: var(--r); overflow: hidden; aspect-ratio: auto; height: clamp(16rem, 34vw, 30rem); }
.checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
.checks li { display: grid; grid-template-columns: 1.5rem 1fr; gap: 0.75rem; align-items: start; }
.checks .ico { color: var(--sage); margin-top: 0.2rem; }
.chips { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.chips li, .chips a { display: inline-block; border-radius: 320px; background: var(--tile); padding: 0.45rem 1rem; text-decoration: none; transition: background-color 0.3s ease; }
.chips li:has(a) { padding: 0; background: none; }
.chips a:hover { background: var(--mist); }
.incl { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); align-items: start; }
.incl > div { background: var(--tile); border-radius: var(--r); padding: 2.25rem; display: grid; gap: 1.25rem; height: 100%; align-content: start; }

/* FAQ */
.faq { display: grid; grid-template-columns: 0.75fr 1.25fr; gap: var(--gap); align-items: start; }
.faq-head { display: grid; gap: 1.5rem; }
.qa details { border-bottom: 1px solid var(--line); }
.qa summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 0; font-size: 1.125rem; }
.qa summary::-webkit-details-marker { display: none; }
.qa summary .ico { transition: transform 0.3s ease; flex: none; }
.qa details[open] summary .ico { transform: rotate(180deg); }
.qa details p { padding: 0 2.5rem 1.4rem 0; color: var(--muted); }

/* Contact / book ground */
.contact { padding: clamp(9rem, 20vh, 12rem) 0 var(--sec); }
.contact .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); align-items: stretch; }
.contact .wrap > *, .panel-list a > *, .infos li > * { min-width: 0; overflow-wrap: anywhere; }
.contact-left { display: flex; flex-direction: column; gap: 1rem; }
.contact-left h1 { font-weight: 400; }
.infos { margin-top: auto; padding-top: 3rem; display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; list-style: none; padding-left: 0; margin-bottom: 0; }
.infos li { display: grid; grid-template-columns: 3rem 1fr; gap: 0.9rem; align-items: center; font-size: 0.95rem; line-height: 1.45; }
.infos i { width: 3rem; height: 3rem; border-radius: 0.75rem; background: var(--teal); display: grid; place-items: center; }
.infos a { text-decoration: none; }
.panel { background: #fff; color: var(--ink); border-radius: var(--r); padding: clamp(1.25rem, 3vw, 2rem); box-shadow: 0 2rem 4rem -2rem rgba(47, 62, 70, 0.5); }
.panel .h5 { margin-bottom: 1rem; }
.panel-list { display: grid; gap: 0.75rem; }
.panel-list a { display: grid; grid-template-columns: 3rem 1fr auto; gap: 1rem; align-items: center; text-decoration: none; background: var(--tile); border-radius: 0.75rem; padding: 1rem; transition: background-color 0.3s ease; }
.panel-list a:hover { background: var(--mist); }
.panel-list i { width: 3rem; height: 3rem; border-radius: 0.75rem; background: var(--mist); color: var(--teal); display: grid; place-items: center; }
.panel-list small { display: block; color: var(--muted); font-size: 0.9rem; }
.bookpanel { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.bookpanel-head { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; align-items: center; padding: 1.5rem 1.75rem; border-bottom: 1px solid var(--line); }
.bookpanel-head i { width: 3rem; height: 3rem; border-radius: 0.75rem; background: var(--mist); color: var(--teal); display: grid; place-items: center; }
.bookpanel-head .h5 { margin: 0; }
.bookpanel-foot { padding: 1rem 1.75rem; border-top: 1px solid var(--line); font-size: 0.9rem; }
.widget { position: relative; height: clamp(26rem, 62vh, 40rem); overflow-y: auto; padding: 0.5rem 1rem; background: #fff; }
.widget #intakeq { opacity: 0; transition: opacity 0.4s ease; }
.widget.ready #intakeq { opacity: 1; }
.widget.ready .skeleton { display: none; }
.skeleton { position: absolute; inset: 1.5rem 1.75rem auto; display: grid; gap: 1rem; }
.skeleton span { height: 5.5rem; border-radius: 0.75rem; background: linear-gradient(100deg, var(--tile) 40%, #fff 50%, var(--tile) 60%) 0 0 / 200% 100%; animation: shimmer 1.4s linear infinite; }
.skeleton p { color: var(--muted); font-size: 0.95rem; text-align: center; }
@keyframes shimmer { to { background-position: -200% 0; } }

.urgent { border-left: 4px solid #a4262c; background: #f9eaea; color: #4a1114; padding: 1rem 1.25rem; border-radius: 0 0.75rem 0.75rem 0; }
.urgent a { font-weight: 600; }

/* CTA + footer */
.cta { background: linear-gradient(rgba(47, 62, 70, 0.95), rgba(47, 62, 70, 0.95)), url("assets/hero.webp") center / cover; color: #fff; padding-block: var(--sec); }
.cta .wrap { display: flex; justify-content: space-between; align-items: center; gap: 3rem; flex-wrap: wrap; }
.cta h2 { font-size: clamp(1.6rem, 2.6vw, 2.25rem); line-height: 1.2; max-width: 22ch; }
.footer { background: var(--slate); color: #eaedf0; padding: var(--sec) 0 0; }
.footer .cols { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 3rem; }
.footer .logo { margin-bottom: 1.5rem; }
.footer .logo img { height: 3rem; }
.footer h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: 0.02em; margin-bottom: 1rem; }
.footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.footer a { text-decoration: none; }
.footer a:hover { text-decoration: underline; }
.footer .fine { margin-top: 3.5rem; border-top: 1px solid rgba(255, 255, 255, 0.16); padding: 1.5rem 0 2rem; font-size: 0.88rem; display: flex; justify-content: space-between; gap: 1rem 2rem; flex-wrap: wrap; }

.phone-bar { display: none; }

/* Scroll reveal (only when JS is on and motion is allowed) */
.js [data-r] { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity 0.8s cubic-bezier(0.2, 0.6, 0.2, 1), transform 0.8s cubic-bezier(0.2, 0.6, 0.2, 1); transition-delay: calc(var(--d, 0) * 90ms); }
.js [data-r].in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js [data-r] { opacity: 1; transform: none; transition: none; }
  .sq, .callcard, .skeleton span { animation: none; }
  * { transition-duration: 0.01ms !important; }
}

@media (max-height: 47.5rem) and (min-width: 62.01rem) { .proof { display: none; } }
@media (max-width: 80rem) { .callcard { right: -0.5rem; } }
@media (max-width: 62rem) {
  .hero .wrap, .split, .why, .steps-band .wrap, .faq, .contact .wrap, .incl { grid-template-columns: 1fr; }
  .hero { min-height: 0; }
  .hero-right { width: min(100%, 22rem); margin-top: 1rem; }
  .callcard { right: -0.5rem; }
  .split-copy { padding-left: 0; }
  .facts, .tiles.row4 { grid-template-columns: 1fr 1fr; }
  .cards.three { grid-template-columns: 1fr 1fr; }
  .journey { grid-template-columns: repeat(3, 1fr); row-gap: 2rem; }
  .footer .cols { grid-template-columns: 1fr 1fr; }
  .why-img { min-height: 18rem; max-height: 24rem; }
  .links { display: none; }
  .burger { display: block; position: relative; }
  .burger summary { list-style: none; cursor: pointer; min-height: 2.75rem; padding: 0 1rem; display: inline-flex; align-items: center; border: 1px solid currentColor; border-radius: 320px; text-transform: uppercase; font-size: 0.85rem; letter-spacing: 0.04em; }
  .burger summary::-webkit-details-marker { display: none; }
  .burger nav { position: absolute; right: 0; top: calc(100% + 0.75rem); background: #fff; color: var(--ink); border-radius: var(--r); padding: 0.5rem 1.5rem; min-width: 16rem; box-shadow: 0 2rem 4rem -1rem rgba(47, 62, 70, 0.45); }
  .burger nav a { display: block; padding: 0.95rem 0; text-decoration: none; text-transform: uppercase; font-size: 0.9rem; letter-spacing: 0.04em; border-top: 1px solid var(--line); }
  .burger nav a:first-child { border-top: 0; }
  body { padding-bottom: 4.5rem; }
  .phone-bar { display: grid; grid-template-columns: 1.5fr 1fr; gap: 0.5rem; position: fixed; inset: auto 0 0 0; z-index: 60; padding: 0.55rem 0.75rem calc(0.55rem + env(safe-area-inset-bottom)); background: var(--slate); }
  .phone-bar .btn { min-height: 3rem; justify-content: center; padding: 0.4rem 1rem; font-size: 0.82rem; }
  .phone-bar .btn-light { border-color: #fff; }
}
@media (max-width: 40rem) {
  .cards, .cards.three, .tiles, .tiles.row4, .duo { grid-template-columns: 1fr; }
  .tile { min-height: 0; }
  .tile h3 { margin-top: 1.25rem; }
  .duo div { height: 15rem; }
  .logo img { height: 2.1rem; }
  .logo { padding: 0.35rem 0.6rem; }
  .footer .cols { grid-template-columns: 1fr; gap: 2rem; }
  .infos { grid-template-columns: 1fr; }
  .callcard strong { font-size: 1.1rem; }
  .callcard { padding: 0.7rem 1rem 0.7rem 0.7rem; bottom: 8%; }
  .hero-right::before { inset: -4% -4% 12% -4%; }
  .cta .btn { width: 100%; justify-content: space-between; }
}
