:root {
    --color-ink: #13231c;
    --color-surface: #f5f7f3;
    --color-brand: #176b45;
    --color-accent: #d9f46b;
    --space: clamp(1rem, 3vw, 2rem);
    --content: 78rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--color-ink); background: #fff; font: 1rem/1.6 system-ui, sans-serif; }
body { overflow-x: hidden; }
a { color: inherit; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 10; padding: .75rem; background: #fff; }
.site-footer { display: flex; gap: var(--space); align-items: center; justify-content: space-between; padding: 1rem max(var(--space), calc((100% - var(--content)) / 2)); background: var(--color-ink); color: #fff; }
.site-footer { align-items: flex-start; flex-wrap: wrap; }
.site-footer nav { display: flex; gap: 1rem; flex-wrap: wrap; }
.brand { font-weight: 800; text-decoration: none; }
.container, .content-page { width: min(calc(100% - 2 * var(--space)), var(--content)); margin-inline: auto; }
.section { padding-block: clamp(3rem, 8vw, 7rem); }
.section:nth-child(even) { background: var(--color-surface); }
.section--hero { background: var(--color-brand); color: #fff; }
.eyebrow { color: var(--color-brand); font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.section--hero .eyebrow { color: var(--color-accent); }
h1, h2 { max-width: 18ch; line-height: 1.08; }
h1 { font-size: clamp(2.4rem, 8vw, 5.8rem); }
h2 { font-size: clamp(2rem, 5vw, 3.6rem); }

.hero {
    position: relative;
    isolation: isolate;
    min-height: clamp(44rem, 82vh, 58rem);
    display: grid;
    align-items: center;
    overflow: hidden;
    background: #f7f5f0;
}

.hero__media,
.hero__shade {
    position: absolute;
    inset: 0;
}

.hero__media {
    z-index: -2;
    background-color: #f7f5f0;
    background-image: var(--rng99-hero-image, url('../images/hero-99rng-real-v2.jpg'));
    background-position: right center;
    background-repeat: no-repeat;
    background-size: auto 100%;
}

.hero__shade {
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, .99) 0%, rgba(255, 255, 255, .95) 34%, rgba(255, 255, 255, .54) 54%, rgba(255, 255, 255, 0) 74%),
        linear-gradient(0deg, rgba(19, 35, 28, .08), transparent 34%);
}

.hero__mobile-card {
    display: none;
}

.hero__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
    padding-block: clamp(4rem, 8vw, 7rem);
}

.hero__content {
    width: min(100%, 44rem);
}

.hero__eyebrow {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin: 0 0 1.3rem;
    color: var(--color-brand);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.hero__eyebrow-dot {
    width: .65rem;
    height: .65rem;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 0 .35rem rgba(217, 244, 107, .3);
}

.hero__title {
    max-width: 12ch;
    margin: 0;
    color: var(--color-ink);
    font-size: clamp(3rem, 6.1vw, 6.5rem);
    font-weight: 780;
    letter-spacing: -.055em;
    line-height: .94;
    text-wrap: balance;
}

.hero__title span {
    color: var(--color-brand);
}

.hero__lead {
    max-width: 38rem;
    margin: 1.65rem 0 0;
    color: #3f4c46;
    font-size: clamp(1.08rem, 1.55vw, 1.35rem);
    line-height: 1.52;
}

.hero__benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(.8rem, 1.8vw, 1.5rem);
    max-width: 43rem;
    margin: 2rem 0 0;
    padding: 0;
    list-style: none;
}

.hero__benefits li {
    display: grid;
    grid-template-columns: 2rem 1fr;
    gap: .65rem;
    align-items: start;
    color: #26352e;
    font-size: .88rem;
    font-weight: 650;
    line-height: 1.4;
}

.hero__check {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: #fff;
    box-shadow: 0 .5rem 1.5rem rgba(19, 35, 28, .1);
}

.hero__actions {
    display: flex;
    gap: 1.25rem;
    align-items: center;
    margin-top: 2rem;
}

.hero__cta {
    display: inline-flex;
    min-height: 4.4rem;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1rem 1.2rem 1rem 1.55rem;
    border-radius: .45rem;
    color: #fff;
    background: var(--color-brand);
    box-shadow: 0 1rem 2.5rem rgba(23, 107, 69, .24);
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
    transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.hero__cta:hover,
.hero__cta:focus-visible {
    background: #10583a;
    box-shadow: 0 1.2rem 3rem rgba(23, 107, 69, .32);
    transform: translateY(-2px);
}

.hero__cta:focus-visible {
    outline: .2rem solid var(--color-accent);
    outline-offset: .2rem;
}

.hero__cta-icon {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    font-size: 1.3rem;
}

.hero__note {
    margin: 0;
    color: #52615a;
    font-size: .82rem;
    font-weight: 650;
}

.hero__note span {
    margin-right: .35rem;
    color: var(--color-brand);
}

@media (max-width: 64rem) {
    .hero__media { background-position: 68% center; }
    .hero__shade {
        background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.96) 43%, rgba(255,255,255,.3) 80%);
    }
    .hero__content { width: min(100%, 38rem); }
    .hero__benefits { grid-template-columns: 1fr; max-width: 31rem; }
}

@media (max-width: 47.99rem) {
    .hero {
        --hero-mobile-media-height: clamp(18rem, 86vw, 23rem);
        min-height: auto;
        display: block;
        padding-top: var(--hero-mobile-media-height);
        background: #fff;
    }

    .hero__media {
        bottom: auto;
        height: var(--hero-mobile-media-height);
        background-position: 69% 48%;
    }

    .hero__shade {
        bottom: auto;
        height: var(--hero-mobile-media-height);
        background: linear-gradient(0deg, #fff 0%, rgba(255,255,255,0) 45%);
    }

    .hero__mobile-card {
        position: absolute;
        top: calc(var(--hero-mobile-media-height) - 3.35rem);
        right: 1rem;
        left: 1rem;
        z-index: 2;
        display: flex;
        min-height: 5.25rem;
        gap: .8rem;
        align-items: center;
        padding: .9rem 1rem;
        border: 1px solid rgba(19,35,28,.08);
        border-radius: 1rem;
        background: rgba(255,255,255,.96);
        box-shadow: 0 1rem 2.5rem rgba(19,35,28,.16);
        backdrop-filter: blur(.8rem);
    }

    .hero__mobile-card-icon {
        display: grid;
        flex: 0 0 2.5rem;
        width: 2.5rem;
        aspect-ratio: 1;
        place-items: center;
        border-radius: 50%;
        color: #fff;
        background: var(--color-brand);
    }

    .hero__mobile-card-icon svg {
        width: 1.25rem;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.8;
    }

    .hero__mobile-card > span:last-child {
        display: grid;
        line-height: 1.25;
    }

    .hero__mobile-card strong {
        font-size: .85rem;
    }

    .hero__mobile-card small {
        margin-top: .2rem;
        color: #66736c;
        font-size: .7rem;
    }

    .hero__container {
        padding-block: 3.6rem 2.75rem;
    }

    .hero__content {
        width: 100%;
    }

    .hero__eyebrow {
        margin-bottom: 1rem;
        font-size: .68rem;
        line-height: 1.35;
    }

    .hero__title {
        max-width: none;
        font-size: clamp(2.45rem, 10.8vw, 3.35rem);
        line-height: .96;
    }

    .hero__lead {
        margin-top: 1.15rem;
        font-size: 1rem;
        line-height: 1.5;
    }

    .hero__benefits {
        gap: .65rem;
        margin-top: 1.25rem;
    }

    .hero__benefits li {
        grid-template-columns: 1.55rem 1fr;
        gap: .55rem;
        font-size: .78rem;
    }

    .hero__check {
        width: 1.55rem;
        height: 1.55rem;
        font-size: .72rem;
    }

    .hero__actions {
        align-items: stretch;
        flex-direction: column;
        margin-top: 1.4rem;
    }

    .hero__cta {
        width: 100%;
        min-height: 3.9rem;
        padding: .75rem .8rem .75rem 1.15rem;
        border-radius: .7rem;
    }

    .hero__note {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .hero__cta { transition: none; }
}

.offer {
    position: relative;
    padding-block: clamp(5rem, 10vw, 9rem);
    overflow: hidden;
    background:
        radial-gradient(circle at 92% 8%, rgba(217, 244, 107, .25), transparent 20rem),
        var(--color-surface);
}

.offer::before {
    position: absolute;
    top: 4rem;
    right: -4rem;
    width: 14rem;
    height: 14rem;
    border: 1px solid rgba(23, 107, 69, .12);
    border-radius: 50%;
    box-shadow: 0 0 0 2.8rem rgba(23, 107, 69, .035), 0 0 0 5.6rem rgba(23, 107, 69, .025);
    content: '';
}

.offer__container {
    position: relative;
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.offer__intro {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(16rem, .7fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.offer__eyebrow {
    display: flex;
    gap: .85rem;
    align-items: center;
    margin: 0 0 1.1rem;
    color: var(--color-brand);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.offer__eyebrow span {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    border: 1px solid rgba(23, 107, 69, .28);
    border-radius: 50%;
    font-size: .68rem;
    letter-spacing: 0;
}

.offer__title {
    max-width: 16ch;
    margin: 0;
    color: var(--color-ink);
    font-size: clamp(2.65rem, 5.6vw, 5.6rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .98;
    text-wrap: balance;
}

.offer__title em {
    color: var(--color-brand);
    font-style: normal;
}

.offer__summary {
    margin: 0 0 .55rem;
    padding-left: 1.25rem;
    border-left: .18rem solid var(--color-accent);
    color: #536159;
    font-size: clamp(1rem, 1.5vw, 1.16rem);
    line-height: 1.65;
}

.offer__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(20rem, .82fr);
    gap: clamp(1rem, 2.5vw, 2rem);
}

.offer__spotlight {
    position: relative;
    min-height: 34rem;
    display: flex;
    flex-direction: column;
    padding: clamp(1.5rem, 3.5vw, 3.25rem);
    overflow: hidden;
    border-radius: 1.2rem;
    color: #fff;
    background:
        linear-gradient(145deg, rgba(255,255,255,.07), transparent 48%),
        var(--color-brand);
    box-shadow: 0 2rem 5rem rgba(19, 35, 28, .15);
}

.offer__spotlight::after {
    position: absolute;
    right: -6rem;
    bottom: -8rem;
    width: 22rem;
    height: 22rem;
    border: 1px solid rgba(217, 244, 107, .2);
    border-radius: 50%;
    box-shadow: 0 0 0 3.5rem rgba(217, 244, 107, .04), 0 0 0 7rem rgba(217, 244, 107, .025);
    content: '';
}

.offer__spotlight-top,
.offer__spotlight-copy,
.offer__types,
.offer__link {
    position: relative;
    z-index: 1;
}

.offer__spotlight-top {
    display: flex;
    align-items: start;
    justify-content: space-between;
}

.offer__status {
    display: inline-flex;
    gap: .55rem;
    align-items: center;
    padding: .55rem .8rem;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.offer__status span {
    width: .52rem;
    height: .52rem;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 0 .25rem rgba(217, 244, 107, .13);
}

.offer__mark {
    color: rgba(255, 255, 255, .12);
    font-size: clamp(3.5rem, 7vw, 6rem);
    font-weight: 900;
    letter-spacing: -.1em;
    line-height: .7;
}

.offer__spotlight-copy {
    width: min(100%, 34rem);
    margin-top: auto;
}

.offer__kicker {
    margin: 0 0 .8rem;
    color: var(--color-accent);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.offer__spotlight h3 {
    max-width: 18ch;
    margin: 0;
    font-size: clamp(2rem, 3.4vw, 3.35rem);
    letter-spacing: -.04em;
    line-height: 1.03;
}

.offer__spotlight-copy > p:last-child {
    max-width: 38rem;
    margin: 1.15rem 0 0;
    color: rgba(255, 255, 255, .75);
    line-height: 1.6;
}

.offer__types {
    display: flex;
    gap: .55rem;
    flex-wrap: wrap;
    margin: 1.7rem 0 0;
    padding: 0;
    list-style: none;
}

.offer__types li {
    padding: .5rem .8rem;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    color: rgba(255, 255, 255, .86);
    font-size: .76rem;
    font-weight: 700;
}

.offer__link {
    display: inline-flex;
    width: fit-content;
    gap: 1rem;
    align-items: center;
    margin-top: 1.75rem;
    color: var(--color-accent);
    font-weight: 800;
    text-decoration: none;
}

.offer__link span:last-child {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    transition: transform .2s ease;
}

.offer__link:hover span:last-child,
.offer__link:focus-visible span:last-child {
    transform: translate(.2rem, -.2rem);
}

.offer__link:focus-visible {
    outline: .18rem solid var(--color-accent);
    outline-offset: .35rem;
    border-radius: .2rem;
}

.offer__reasons {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.offer__reasons li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: clamp(1rem, 2.2vw, 1.75rem);
    align-items: start;
    padding: clamp(1.35rem, 2.8vw, 2.15rem);
    border: 1px solid rgba(19, 35, 28, .08);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 .8rem 2.4rem rgba(19, 35, 28, .045);
}

.offer__number {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    border-radius: .7rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font-size: .72rem;
    font-weight: 900;
}

.offer__reasons h3 {
    margin: .1rem 0 .45rem;
    color: var(--color-ink);
    font-size: clamp(1.18rem, 1.8vw, 1.45rem);
    line-height: 1.2;
}

.offer__reasons p {
    margin: 0;
    color: #617067;
    font-size: .93rem;
    line-height: 1.58;
}

@media (max-width: 60rem) {
    .offer__intro { grid-template-columns: 1fr; gap: 1.5rem; }
    .offer__summary { max-width: 42rem; }
    .offer__layout { grid-template-columns: 1fr; }
    .offer__spotlight { min-height: 31rem; }
    .offer__reasons { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .offer__reasons li { grid-template-columns: 1fr; }
}

@media (max-width: 47.99rem) {
    .offer { padding-block: 4.5rem; }
    .offer::before { display: none; }
    .offer__title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .offer__spotlight { min-height: 35rem; padding: 1.4rem; }
    .offer__mark { font-size: 3.5rem; }
    .offer__reasons { grid-template-columns: 1fr; }
    .offer__reasons li { grid-template-columns: auto 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .offer__link span:last-child { transition: none; }
}

.services {
    padding-block: clamp(5rem, 10vw, 9rem);
    background: #fff;
}

.services__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.services__intro {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(16rem, .7fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.services__eyebrow {
    display: flex;
    gap: .85rem;
    align-items: center;
    margin: 0 0 1.1rem;
    color: var(--color-brand);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.services__eyebrow span {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    border: 1px solid rgba(23, 107, 69, .28);
    border-radius: 50%;
    font-size: .68rem;
    letter-spacing: 0;
}

.services__title {
    max-width: 17ch;
    margin: 0;
    color: var(--color-ink);
    font-size: clamp(2.65rem, 5.6vw, 5.6rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .98;
    text-wrap: balance;
}

.services__title em {
    color: var(--color-brand);
    font-style: normal;
}

.services__summary {
    margin: 0 0 .55rem;
    padding-left: 1.25rem;
    border-left: .18rem solid var(--color-accent);
    color: #536159;
    font-size: clamp(1rem, 1.5vw, 1.16rem);
    line-height: 1.65;
}

.services__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 1.6rem);
}

.service-card {
    position: relative;
    min-height: 34rem;
    display: flex;
    flex-direction: column;
    padding: clamp(1.35rem, 3vw, 2.2rem);
    overflow: hidden;
    border: 1px solid rgba(19, 35, 28, .09);
    border-radius: 1.2rem;
    color: var(--color-ink);
    background: #f7f8f5;
    text-decoration: none;
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.service-card:hover,
.service-card:focus-visible {
    border-color: rgba(23, 107, 69, .35);
    box-shadow: 0 1.8rem 4.5rem rgba(19, 35, 28, .11);
    transform: translateY(-.35rem);
}

.service-card:focus-visible {
    outline: .2rem solid var(--color-accent);
    outline-offset: .2rem;
}

.service-card--featured {
    color: #fff;
    background: var(--color-brand);
}

.service-card--accent {
    background: #eef7d7;
}

.service-card__top {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.service-card__index {
    color: #637068;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .1em;
}

.service-card--featured .service-card__index {
    color: rgba(255, 255, 255, .6);
}

.service-card__arrow {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    place-items: center;
    border: 1px solid rgba(19, 35, 28, .1);
    border-radius: 50%;
    background: #fff;
    color: var(--color-brand);
    font-size: 1.2rem;
    transition: transform .25s ease, background-color .25s ease;
}

.service-card:hover .service-card__arrow,
.service-card:focus-visible .service-card__arrow {
    background: var(--color-accent);
    transform: rotate(8deg) translate(.1rem, -.1rem);
}

.service-card__visual {
    position: relative;
    height: 13rem;
    display: grid;
    place-items: center;
    margin: .4rem 0 .1rem;
}

.service-card__visual::before {
    position: absolute;
    width: 12rem;
    height: 12rem;
    border-radius: 50%;
    background: rgba(23, 107, 69, .065);
    content: '';
}

.service-card--featured .service-card__visual::before {
    background: rgba(217, 244, 107, .11);
}

.service-card__visual svg {
    position: relative;
    z-index: 1;
    width: min(100%, 20rem);
    height: 12rem;
    fill: none;
    stroke: var(--color-brand);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 3;
}

.service-card--featured .service-card__visual svg {
    stroke: var(--color-accent);
}

.service-card__copy {
    position: relative;
    z-index: 1;
    margin-top: auto;
}

.service-card__label {
    margin: 0 0 .45rem;
    color: var(--color-brand);
    font-size: .74rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.service-card--featured .service-card__label {
    color: var(--color-accent);
}

.service-card h3 {
    margin: 0;
    font-size: clamp(1.8rem, 3.5vw, 3rem);
    letter-spacing: -.045em;
    line-height: 1;
}

.service-card__copy > p:last-child {
    max-width: 34rem;
    margin: 1rem 0 0;
    color: #647168;
    line-height: 1.6;
}

.service-card--featured .service-card__copy > p:last-child {
    color: rgba(255, 255, 255, .72);
}

.service-card__tags {
    position: relative;
    z-index: 1;
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

.service-card__tags li {
    padding: .4rem .7rem;
    border: 1px solid rgba(19, 35, 28, .11);
    border-radius: 999px;
    color: #536159;
    background: rgba(255, 255, 255, .45);
    font-size: .7rem;
    font-weight: 750;
}

.service-card--featured .service-card__tags li {
    border-color: rgba(255, 255, 255, .18);
    color: rgba(255, 255, 255, .8);
    background: rgba(255, 255, 255, .06);
}

@media (max-width: 60rem) {
    .services__intro { grid-template-columns: 1fr; gap: 1.5rem; }
    .services__summary { max-width: 42rem; }
}

@media (max-width: 47.99rem) {
    .services { padding-block: 4.5rem; }
    .services__title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .services__grid { grid-template-columns: 1fr; }
    .service-card { min-height: 31rem; }
    .service-card__visual { height: 11rem; }
    .service-card__visual svg { height: 10rem; }
}

@media (prefers-reduced-motion: reduce) {
    .service-card,
    .service-card__arrow { transition: none; }
}

.benefits {
    position: relative;
    isolation: isolate;
    padding-block: clamp(5rem, 10vw, 9rem);
    overflow: hidden;
    color: #fff;
    background: #10251c;
}

.benefits::before {
    position: absolute;
    inset: 0;
    z-index: -2;
    opacity: .22;
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size: 4rem 4rem;
    content: '';
}

.benefits__glow {
    position: absolute;
    z-index: -1;
    top: -18rem;
    left: 50%;
    width: 48rem;
    height: 48rem;
    border-radius: 50%;
    background: rgba(44, 142, 96, .2);
    filter: blur(8rem);
    transform: translateX(-50%);
}

.benefits__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.benefits__intro {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(16rem, .7fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.benefits__eyebrow {
    display: flex;
    gap: .85rem;
    align-items: center;
    margin: 0 0 1.1rem;
    color: var(--color-accent);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.benefits__eyebrow span {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    border: 1px solid rgba(217, 244, 107, .35);
    border-radius: 50%;
    font-size: .68rem;
    letter-spacing: 0;
}

.benefits__title {
    max-width: 16ch;
    margin: 0;
    color: #fff;
    font-size: clamp(2.65rem, 5.6vw, 5.6rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .98;
    text-wrap: balance;
}

.benefits__title em {
    color: var(--color-accent);
    font-style: normal;
}

.benefits__summary {
    margin: 0 0 .55rem;
    padding-left: 1.25rem;
    border-left: .18rem solid var(--color-accent);
    color: rgba(255, 255, 255, .64);
    font-size: clamp(1rem, 1.5vw, 1.16rem);
    line-height: 1.65;
}

.benefits__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 1.6rem);
}

.benefit-card {
    min-height: 24rem;
    display: flex;
    flex-direction: column;
    padding: clamp(1.4rem, 3vw, 2.4rem);
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 1.2rem;
    background: rgba(255, 255, 255, .055);
    box-shadow: inset 0 1px rgba(255, 255, 255, .04);
}

.benefit-card--featured {
    grid-row: span 2;
    min-height: 49.6rem;
    background:
        radial-gradient(circle at 80% 15%, rgba(217, 244, 107, .16), transparent 18rem),
        rgba(255, 255, 255, .075);
}

.benefit-card--accent {
    color: var(--color-ink);
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.benefit-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.benefit-card__number {
    color: rgba(255, 255, 255, .42);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.benefit-card--accent .benefit-card__number {
    color: rgba(19, 35, 28, .5);
}

.benefit-card__head svg {
    width: 3.6rem;
    height: 3.6rem;
    padding: .75rem;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: .85rem;
    fill: none;
    stroke: var(--color-accent);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.benefit-card--accent .benefit-card__head svg {
    border-color: rgba(19, 35, 28, .13);
    stroke: var(--color-brand);
    background: rgba(255, 255, 255, .22);
}

.benefit-card__copy {
    margin-top: auto;
}

.benefit-card__label {
    margin: 0 0 .65rem;
    color: var(--color-accent);
    font-size: .74rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.benefit-card--accent .benefit-card__label {
    color: var(--color-brand);
}

.benefit-card h3 {
    max-width: 19ch;
    margin: 0;
    font-size: clamp(1.65rem, 3vw, 2.75rem);
    letter-spacing: -.04em;
    line-height: 1.05;
}

.benefit-card--featured h3 {
    max-width: 14ch;
    font-size: clamp(2.2rem, 4.3vw, 4.2rem);
}

.benefit-card__copy > p:last-child {
    max-width: 34rem;
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, .6);
    line-height: 1.65;
}

.benefit-card--accent .benefit-card__copy > p:last-child {
    color: rgba(19, 35, 28, .68);
}

.benefit-card__meter {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .4rem;
    margin-top: 2rem;
}

.benefit-card__meter span {
    height: .35rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
}

.benefit-card__meter span:nth-child(-n+4) {
    background: var(--color-accent);
}

.benefits__footer {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    justify-content: space-between;
    margin-top: clamp(2rem, 4vw, 3rem);
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, .12);
}

.benefits__footer p {
    margin: 0;
    color: rgba(255, 255, 255, .68);
}

.benefits__footer p span {
    display: inline-grid;
    width: 1.7rem;
    height: 1.7rem;
    margin-right: .55rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    font-size: .75rem;
    font-weight: 900;
}

.benefits__footer a {
    display: inline-flex;
    gap: 1rem;
    align-items: center;
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}

.benefits__footer a span:last-child {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    transition: transform .2s ease;
}

.benefits__footer a:hover span:last-child,
.benefits__footer a:focus-visible span:last-child {
    transform: translate(.2rem, -.2rem);
}

.benefits__footer a:focus-visible {
    outline: .18rem solid var(--color-accent);
    outline-offset: .35rem;
    border-radius: .2rem;
}

@media (max-width: 60rem) {
    .benefits__intro { grid-template-columns: 1fr; gap: 1.5rem; }
    .benefits__summary { max-width: 42rem; }
    .benefit-card--featured { min-height: 49rem; }
}

@media (max-width: 47.99rem) {
    .benefits { padding-block: 4.5rem; }
    .benefits__title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .benefits__grid { grid-template-columns: 1fr; }
    .benefit-card,
    .benefit-card--featured { min-height: 25rem; grid-row: auto; }
    .benefits__footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .benefits__footer a span:last-child { transition: none; }
}

.before-after {
    position: relative;
    padding-block: clamp(5rem, 10vw, 9rem);
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 92%, rgba(217, 244, 107, .22), transparent 22rem),
        #f7f8f5;
}

.before-after__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.before-after__intro {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(16rem, .7fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.before-after__eyebrow {
    display: flex;
    gap: .85rem;
    align-items: center;
    margin: 0 0 1.1rem;
    color: var(--color-brand);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.before-after__eyebrow span {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    border: 1px solid rgba(23, 107, 69, .28);
    border-radius: 50%;
    font-size: .68rem;
    letter-spacing: 0;
}

.before-after__title {
    max-width: 15ch;
    margin: 0;
    color: var(--color-ink);
    font-size: clamp(2.65rem, 5.6vw, 5.6rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .98;
    text-wrap: balance;
}

.before-after__title em {
    color: var(--color-brand);
    font-style: normal;
}

.before-after__summary {
    margin: 0 0 .55rem;
    padding-left: 1.25rem;
    border-left: .18rem solid var(--color-accent);
    color: #536159;
    font-size: clamp(1rem, 1.5vw, 1.16rem);
    line-height: 1.65;
}

.before-after__gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 1.6rem);
    align-items: stretch;
}

.comparison-card {
    min-width: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    padding: .7rem;
    border: 1px solid rgba(19, 35, 28, .08);
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 1.5rem 4rem rgba(19, 35, 28, .08);
}

.comparison-card__image {
    position: relative;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    border-radius: .9rem;
    background: #dfded8;
    cursor: ew-resize;
    touch-action: pan-y;
    user-select: none;
}

.comparison-card__layer {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    object-fit: cover;
    pointer-events: none;
}

.comparison-card__after {
    position: absolute;
    inset: 0;
    clip-path: inset(0 0 0 var(--position));
    pointer-events: none;
}

.comparison-card__range {
    position: absolute;
    z-index: 5;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: ew-resize;
    appearance: none;
    touch-action: pan-y;
}

.comparison-card__label {
    position: absolute;
    z-index: 2;
    top: 1rem;
    padding: .52rem .82rem;
    border-radius: 999px;
    color: #fff;
    background: rgba(19, 35, 28, .78);
    backdrop-filter: blur(.6rem);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.comparison-card__label--before { left: 1rem; }
.comparison-card__label--after {
    right: 1rem;
    color: var(--color-ink);
    background: var(--color-accent);
}

.comparison-card__divider {
    position: absolute;
    z-index: 2;
    top: 0;
    bottom: 0;
    left: var(--position);
    width: 2px;
    background: rgba(255, 255, 255, .95);
    transform: translateX(-50%);
    pointer-events: none;
}

.comparison-card__divider span {
    position: absolute;
    top: 50%;
    left: 50%;
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border: .28rem solid #fff;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    box-shadow: 0 .7rem 2rem rgba(19, 35, 28, .2);
    font-size: 1rem;
    font-weight: 900;
    transform: translate(-50%, -50%);
}

.comparison-card__range:focus-visible ~ .comparison-card__divider span {
    outline: .22rem solid var(--color-brand);
    outline-offset: .22rem;
}

.comparison-card figcaption {
    display: flex;
    gap: 1rem;
    align-items: flex-end;
    justify-content: space-between;
    padding: 1.35rem .7rem .8rem;
}

.comparison-card__type {
    color: var(--color-brand);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.comparison-card h3 {
    max-width: 26ch;
    margin: .35rem 0 0;
    color: var(--color-ink);
    font-size: clamp(1.15rem, 2vw, 1.55rem);
    letter-spacing: -.025em;
    line-height: 1.2;
}

.comparison-card figcaption > p {
    flex: 0 0 auto;
    margin: 0;
    color: #758078;
    font-size: .68rem;
    font-weight: 700;
}

.before-after__footer {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    justify-content: space-between;
    margin-top: clamp(2rem, 4vw, 3rem);
    padding-top: 1.5rem;
    border-top: 1px solid rgba(19, 35, 28, .12);
}

.before-after__footer p {
    max-width: 44rem;
    margin: 0;
    color: #66736b;
    font-size: .86rem;
}

.before-after__footer p span {
    display: inline-grid;
    width: 1.7rem;
    height: 1.7rem;
    margin-right: .55rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
    font-family: Georgia, serif;
    font-size: .75rem;
    font-weight: 900;
}

.before-after__footer a {
    display: inline-flex;
    flex: 0 0 auto;
    gap: 1rem;
    align-items: center;
    color: var(--color-brand);
    font-weight: 800;
    text-decoration: none;
}

.before-after__footer a span:last-child {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    transition: transform .2s ease;
}

.before-after__footer a:hover span:last-child,
.before-after__footer a:focus-visible span:last-child {
    transform: translate(.2rem, -.2rem);
}

.before-after__footer a:focus-visible {
    outline: .18rem solid var(--color-brand);
    outline-offset: .35rem;
    border-radius: .2rem;
}

@media (max-width: 60rem) {
    .before-after__intro { grid-template-columns: 1fr; gap: 1.5rem; }
    .before-after__summary { max-width: 42rem; }
    .before-after__gallery { grid-template-columns: 1fr; }
}

@media (max-width: 47.99rem) {
    .before-after { padding-block: 4.5rem; }
    .before-after__title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .comparison-card figcaption { align-items: flex-start; flex-direction: column; }
    .before-after__footer { align-items: flex-start; flex-direction: column; }
    .before-after__footer a { flex: 1 1 auto; }
}

@media (prefers-reduced-motion: reduce) {
    .before-after__footer a span:last-child { transition: none; }
}

.process {
    position: relative;
    padding-block: clamp(5rem, 10vw, 9rem);
    overflow: hidden;
    background: #eaf2ec;
}

.process::before {
    position: absolute;
    right: -8rem;
    bottom: -10rem;
    width: 32rem;
    height: 32rem;
    border: 1px solid rgba(23, 107, 69, .1);
    border-radius: 50%;
    box-shadow: 0 0 0 5rem rgba(23, 107, 69, .025), 0 0 0 10rem rgba(23, 107, 69, .018);
    content: '';
}

.process__container {
    position: relative;
    display: grid;
    grid-template-columns: minmax(20rem, .8fr) minmax(0, 1.2fr);
    gap: clamp(3rem, 8vw, 8rem);
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
    align-items: start;
}

.process__intro {
    position: sticky;
    top: 2rem;
    padding: clamp(1.7rem, 3.5vw, 3rem);
    border-radius: 1.25rem;
    color: #fff;
    background:
        radial-gradient(circle at 85% 10%, rgba(217, 244, 107, .15), transparent 13rem),
        var(--color-brand);
    box-shadow: 0 2rem 5rem rgba(19, 35, 28, .14);
}

.process__eyebrow {
    display: flex;
    gap: .85rem;
    align-items: center;
    margin: 0 0 1.25rem;
    color: var(--color-accent);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.process__eyebrow span {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    border: 1px solid rgba(217, 244, 107, .35);
    border-radius: 50%;
    font-size: .68rem;
    letter-spacing: 0;
}

.process__title {
    max-width: 12ch;
    margin: 0;
    color: #fff;
    font-size: clamp(2.65rem, 4.7vw, 4.8rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .98;
    text-wrap: balance;
}

.process__title em {
    color: var(--color-accent);
    font-style: normal;
}

.process__summary {
    max-width: 31rem;
    margin: 1.4rem 0 0;
    color: rgba(255, 255, 255, .68);
    line-height: 1.65;
}

.process__facts {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

.process__facts span {
    padding: .45rem .7rem;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    color: rgba(255, 255, 255, .78);
    font-size: .7rem;
    font-weight: 750;
}

.process__cta {
    display: inline-flex;
    gap: 1rem;
    align-items: center;
    margin-top: clamp(2rem, 4vw, 3.5rem);
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}

.process__cta span:last-child {
    display: grid;
    width: 2.4rem;
    height: 2.4rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    transition: transform .2s ease;
}

.process__cta:hover span:last-child,
.process__cta:focus-visible span:last-child {
    transform: translate(.2rem, -.2rem);
}

.process__cta:focus-visible {
    outline: .18rem solid var(--color-accent);
    outline-offset: .35rem;
    border-radius: .2rem;
}

.process__steps {
    margin: 0;
    padding: 0;
    list-style: none;
}

.process-step {
    position: relative;
    display: grid;
    grid-template-columns: 3.2rem 1fr;
    gap: clamp(1rem, 2.5vw, 1.6rem);
}

.process-step:not(:last-child) {
    padding-bottom: 1rem;
}

.process-step__rail {
    position: relative;
    display: flex;
    justify-content: center;
}

.process-step__rail::after {
    position: absolute;
    top: 3.2rem;
    bottom: -1rem;
    left: 50%;
    width: 1px;
    background: rgba(23, 107, 69, .18);
    content: '';
}

.process-step:last-child .process-step__rail::after {
    display: none;
}

.process-step__rail span {
    position: relative;
    z-index: 1;
    display: grid;
    width: 3.2rem;
    height: 3.2rem;
    place-items: center;
    border: .4rem solid #eaf2ec;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    box-shadow: 0 .5rem 1.5rem rgba(19, 35, 28, .1);
    font-size: .68rem;
    font-weight: 900;
}

.process-step__card {
    display: grid;
    grid-template-columns: 4rem 1fr;
    gap: clamp(1rem, 2.5vw, 1.5rem);
    padding: clamp(1.35rem, 3vw, 2.1rem);
    border: 1px solid rgba(19, 35, 28, .08);
    border-radius: 1.1rem;
    background: rgba(255, 255, 255, .86);
    box-shadow: 0 1rem 3rem rgba(19, 35, 28, .055);
}

.process-step__icon {
    display: grid;
    width: 4rem;
    height: 4rem;
    place-items: center;
    border-radius: 1rem;
    background: #edf7d6;
}

.process-step__icon svg {
    width: 2.15rem;
    height: 2.15rem;
    fill: none;
    stroke: var(--color-brand);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.process-step__meta {
    margin: 0 0 .45rem;
    color: var(--color-brand);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.process-step h3 {
    margin: 0;
    color: var(--color-ink);
    font-size: clamp(1.25rem, 2.2vw, 1.7rem);
    letter-spacing: -.03em;
    line-height: 1.15;
}

.process-step__card p:last-child {
    margin: .75rem 0 0;
    color: #647168;
    line-height: 1.6;
}

@media (max-width: 60rem) {
    .process__container { grid-template-columns: 1fr; gap: 2rem; }
    .process__intro { position: relative; top: auto; }
    .process__title { max-width: 16ch; }
}

@media (max-width: 47.99rem) {
    .process { padding-block: 4.5rem; }
    .process::before { display: none; }
    .process__intro { padding: 1.4rem; }
    .process__title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .process-step { grid-template-columns: 2.6rem 1fr; gap: .7rem; }
    .process-step__rail span { width: 2.6rem; height: 2.6rem; border-width: .3rem; }
    .process-step__rail::after { top: 2.6rem; }
    .process-step__card { grid-template-columns: 1fr; padding: 1.2rem; }
    .process-step__icon { width: 3.4rem; height: 3.4rem; }
}

@media (prefers-reduced-motion: reduce) {
    .process__cta span:last-child { transition: none; }
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.calculator {
    position: relative;
    padding-block: clamp(5rem, 10vw, 9rem);
    overflow: hidden;
    background: #fff;
}

.calculator__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.calculator__intro {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(16rem, .7fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.calculator__eyebrow {
    display: flex;
    gap: .85rem;
    align-items: center;
    margin: 0 0 1.1rem;
    color: var(--color-brand);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.calculator__eyebrow span {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    border: 1px solid rgba(23, 107, 69, .28);
    border-radius: 50%;
    font-size: .68rem;
    letter-spacing: 0;
}

.calculator__title {
    max-width: 16ch;
    margin: 0;
    color: var(--color-ink);
    font-size: clamp(2.65rem, 5.6vw, 5.6rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .98;
    text-wrap: balance;
}

.calculator__title em {
    color: var(--color-brand);
    font-style: normal;
}

.calculator__summary {
    margin: 0 0 .55rem;
    padding-left: 1.25rem;
    border-left: .18rem solid var(--color-accent);
    color: #536159;
    font-size: clamp(1rem, 1.5vw, 1.16rem);
    line-height: 1.65;
}

.calculator__shell {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(20rem, .75fr);
    gap: clamp(1rem, 2.5vw, 1.6rem);
    align-items: start;
}

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

.calculator-fieldset {
    min-width: 0;
    margin: 0;
    padding: clamp(1.35rem, 3vw, 2rem);
    border: 1px solid rgba(19, 35, 28, .09);
    border-radius: 1.1rem;
    background: #f7f8f5;
}

.calculator-fieldset legend {
    display: flex;
    gap: .75rem;
    align-items: center;
    padding: 0 .45rem 0 0;
    color: var(--color-ink);
    font-size: clamp(1rem, 1.8vw, 1.25rem);
    font-weight: 800;
}

.calculator-fieldset legend span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: .6rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font-size: .72rem;
}

.calculator-services {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    margin-top: 1rem;
}

.calculator-service {
    position: relative;
    cursor: pointer;
}

.calculator-service input,
.calculator-condition input,
.calculator-extras input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.calculator-service__body {
    min-height: 7.2rem;
    display: grid;
    gap: .55rem;
    place-items: center;
    padding: .8rem;
    border: 1px solid rgba(19, 35, 28, .1);
    border-radius: .85rem;
    color: #5d6a62;
    background: #fff;
    font-size: .8rem;
    font-weight: 800;
    transition: border-color .2s ease, background-color .2s ease, color .2s ease, transform .2s ease;
}

.calculator-service__body svg {
    width: 2.7rem;
    height: 2.7rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.calculator-service input:checked + .calculator-service__body {
    border-color: var(--color-brand);
    color: #fff;
    background: var(--color-brand);
    box-shadow: 0 .8rem 2rem rgba(23, 107, 69, .16);
    transform: translateY(-.15rem);
}

.calculator-service input:focus-visible + .calculator-service__body,
.calculator-condition input:focus-visible + span,
.calculator-extras input:focus-visible + span {
    outline: .2rem solid var(--color-accent);
    outline-offset: .2rem;
}

.calculator-quantity {
    display: flex;
    gap: .6rem;
    align-items: center;
    margin-top: 1rem;
}

.calculator-quantity button {
    position: relative;
    display: grid;
    width: 3rem;
    height: 3rem;
    flex: 0 0 3rem;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: .75rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font: inherit;
    font-size: 0;
    font-weight: 850;
    line-height: 1;
    cursor: pointer;
}

.calculator-quantity button::before,
.calculator-quantity button[data-quantity-step="1"]::after {
    position: absolute;
    width: 1rem;
    height: .125rem;
    border-radius: 999px;
    background: currentColor;
    content: '';
}

.calculator-quantity button[data-quantity-step="1"]::after {
    transform: rotate(90deg);
}

.calculator-quantity button:focus-visible,
.calculator-postcode input:focus-visible {
    outline: .2rem solid var(--color-brand);
    outline-offset: .2rem;
}

.calculator-quantity label {
    display: block;
    width: 4.5rem;
    height: 3rem;
    flex: 0 0 4.5rem;
}

.calculator-quantity input {
    -webkit-appearance: none;
    -moz-appearance: textfield;
    appearance: textfield;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: 100%;
    padding: 0;
    border: 1px solid rgba(19, 35, 28, .13);
    border-radius: .75rem;
    color: var(--color-ink);
    background: #fff;
    font: inherit;
    font-weight: 850;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    text-align: center;
}

.calculator-quantity input::-webkit-inner-spin-button,
.calculator-quantity input::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.calculator-quantity output {
    color: #69766e;
    font-size: .86rem;
    font-weight: 750;
}

.calculator-condition {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
    margin-top: 1rem;
}

.calculator-condition label,
.calculator-extras label {
    position: relative;
    cursor: pointer;
}

.calculator-condition label > span {
    min-height: 5rem;
    display: grid;
    gap: .25rem;
    align-content: center;
    padding: .8rem;
    border: 1px solid rgba(19, 35, 28, .1);
    border-radius: .8rem;
    background: #fff;
}

.calculator-condition strong {
    color: var(--color-ink);
    font-size: .9rem;
}

.calculator-condition small {
    color: #728078;
    font-size: .68rem;
}

.calculator-condition input:checked + span {
    border-color: var(--color-brand);
    box-shadow: inset 0 0 0 1px var(--color-brand);
}

.calculator-condition input:checked + span::after {
    color: var(--color-brand);
    content: '✓';
    font-weight: 900;
}

.calculator-extras {
    display: flex;
    gap: .65rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.calculator-extras label > span {
    display: block;
    padding: .65rem .9rem;
    border: 1px solid rgba(19, 35, 28, .1);
    border-radius: 999px;
    color: #5e6b63;
    background: #fff;
    font-size: .8rem;
    font-weight: 750;
}

.calculator-extras input:checked + span {
    border-color: var(--color-brand);
    color: #fff;
    background: var(--color-brand);
}

.calculator-postcode {
    display: grid;
    gap: .45rem;
    max-width: 15rem;
    margin-top: 1rem;
}

.calculator-postcode span {
    color: #59665e;
    font-size: .76rem;
    font-weight: 750;
}

.calculator-postcode input {
    width: 100%;
    height: 3.25rem;
    padding-inline: 1rem;
    border: 1px solid rgba(19, 35, 28, .13);
    border-radius: .75rem;
    color: var(--color-ink);
    background: #fff;
    font: inherit;
}

.calculator-fieldset--postcode > p {
    margin: .75rem 0 0;
    color: #7a857f;
    font-size: .7rem;
}

.calculator-result {
    position: sticky;
    top: 2rem;
    padding: clamp(1.5rem, 3.5vw, 2.5rem);
    border-radius: 1.25rem;
    color: #fff;
    background:
        radial-gradient(circle at 90% 8%, rgba(217, 244, 107, .16), transparent 12rem),
        #10251c;
    box-shadow: 0 2rem 5rem rgba(19, 35, 28, .17);
}

.calculator-result__top {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    color: rgba(255, 255, 255, .52);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.calculator-result__top span:last-child {
    padding: .35rem .55rem;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 999px;
}

.calculator-result__gauge {
    height: .45rem;
    margin: 1.5rem 0 2rem;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
}

.calculator-result__gauge span {
    display: block;
    width: 67%;
    height: 100%;
    border-radius: inherit;
    background: var(--color-accent);
    transition: width .25s ease;
}

.calculator-result__kicker {
    margin: 0 0 .6rem;
    color: var(--color-accent);
    font-size: .75rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.calculator-result h3 {
    margin: 0;
    font-size: clamp(1.85rem, 3.5vw, 3rem);
    letter-spacing: -.045em;
    line-height: 1.04;
}

.calculator-result__description {
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, .62);
    line-height: 1.6;
}

.calculator-result__details {
    display: grid;
    gap: .65rem;
    margin: 1.75rem 0 0;
}

.calculator-result__details div {
    display: flex;
    gap: 1rem;
    align-items: baseline;
    justify-content: space-between;
    padding-bottom: .65rem;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.calculator-result__details dt {
    color: rgba(255, 255, 255, .48);
    font-size: .72rem;
}

.calculator-result__details dd {
    margin: 0;
    font-size: .78rem;
    font-weight: 750;
    text-align: right;
}

.calculator-result__price {
    display: grid;
    gap: .35rem;
    margin-top: 1.5rem;
    padding: 1.1rem;
    border: 1px solid rgba(217, 244, 107, .22);
    border-radius: .9rem;
    background: rgba(217, 244, 107, .08);
}

.calculator-result__price > span {
    color: rgba(255, 255, 255, .52);
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.calculator-result__price strong {
    color: var(--color-accent);
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    letter-spacing: -.035em;
    line-height: 1.05;
}

.calculator-result__price small {
    color: rgba(255, 255, 255, .48);
    font-size: .67rem;
    line-height: 1.45;
}

.calculator-result__cta {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1.25rem;
    padding: .85rem .9rem .85rem 1.1rem;
    border-radius: .75rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font-weight: 850;
    line-height: 1.3;
    text-decoration: none;
}

.calculator-result__cta span:last-child {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
}

.calculator-result__cta:focus-visible {
    outline: .2rem solid #fff;
    outline-offset: .2rem;
}

@media (max-width: 64rem) {
    .calculator__intro { grid-template-columns: 1fr; gap: 1.5rem; }
    .calculator__summary { max-width: 42rem; }
    .calculator__shell { grid-template-columns: 1fr; }
    .calculator-result { position: relative; top: auto; }
}

@media (max-width: 47.99rem) {
    .calculator { padding-block: 4.5rem; }
    .calculator__title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .calculator-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .calculator-condition { grid-template-columns: 1fr; }
    .calculator-service__body { min-height: 6.5rem; }
}

@media (prefers-reduced-motion: reduce) {
    .calculator-service__body,
    .calculator-result__gauge span { transition: none; }
}

.lead-form {
    padding-block: clamp(5rem, 10vw, 9rem);
    background:
        radial-gradient(circle at 8% 12%, rgba(217, 244, 107, .2), transparent 18rem),
        #eef3ed;
}

.lead-form__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.lead-form__intro {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr);
    gap: clamp(2rem, 7vw, 7rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.lead-form__eyebrow {
    display: flex;
    gap: .7rem;
    align-items: center;
    margin: 0 0 1.2rem;
    color: var(--color-brand);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.lead-form__eyebrow span {
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-ink);
    background: var(--color-accent);
    letter-spacing: 0;
}

.lead-form__title {
    max-width: 14ch;
    margin: 0;
    font-size: clamp(2.75rem, 5.8vw, 5.75rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .96;
    text-wrap: balance;
}

.lead-form__title em {
    color: var(--color-brand);
    font-style: normal;
}

.lead-form__intro-copy > p {
    margin: 0;
    color: #53615a;
    font-size: clamp(1rem, 1.35vw, 1.15rem);
    line-height: 1.65;
}

.lead-form__intro-copy ul {
    display: grid;
    gap: .6rem;
    margin: 1.4rem 0 0;
    padding: 0;
    list-style: none;
}

.lead-form__intro-copy li {
    display: flex;
    gap: .7rem;
    align-items: center;
    font-size: .84rem;
    font-weight: 750;
}

.lead-form__intro-copy li span {
    display: grid;
    width: 1.55rem;
    height: 1.55rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: #fff;
    box-shadow: 0 .4rem 1rem rgba(19, 35, 28, .08);
}

.lead-form__shell {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(19rem, .7fr);
    gap: clamp(1.25rem, 2.5vw, 2rem);
    align-items: start;
}

.lead-form__fields {
    display: grid;
    gap: 1rem;
}

.lead-form-group {
    padding: clamp(1.3rem, 3vw, 2.25rem);
    border: 1px solid rgba(19, 35, 28, .08);
    border-radius: 1.2rem;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 1.2rem 3.5rem rgba(19, 35, 28, .055);
}

.lead-form-group__heading {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1.5rem;
}

.lead-form-group__heading > span {
    display: grid;
    width: 2.4rem;
    height: 2.4rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
    font-size: .72rem;
    font-weight: 850;
}

.lead-form-group__heading h3 {
    margin: 0;
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    letter-spacing: -.025em;
    line-height: 1.2;
}

.lead-form-group__heading p {
    margin: .25rem 0 0;
    color: #748078;
    font-size: .76rem;
    line-height: 1.45;
}

.lead-form-grid {
    display: grid;
    gap: .9rem;
}

.lead-form-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lead-control {
    display: grid;
    gap: .45rem;
}

.lead-control > span,
.lead-choice-group legend {
    color: #53615a;
    font-size: .72rem;
    font-weight: 800;
}

.lead-control input,
.lead-control select,
.lead-control textarea {
    width: 100%;
    min-height: 3.2rem;
    padding: .75rem .9rem;
    border: 1px solid #d8dfda;
    border-radius: .68rem;
    color: var(--color-ink);
    background: #f9fbf8;
    font: inherit;
    font-size: .88rem;
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.lead-control textarea {
    min-height: 7rem;
    resize: vertical;
}

.lead-control input::placeholder,
.lead-control textarea::placeholder {
    color: #9aa49e;
}

.lead-control input:focus,
.lead-control select:focus,
.lead-control textarea:focus {
    border-color: var(--color-brand);
    outline: none;
    background: #fff;
    box-shadow: 0 0 0 .22rem rgba(23, 107, 69, .11);
}

.lead-control--message {
    margin-top: 1rem;
}

.lead-control--message small {
    justify-self: end;
    color: #8b958f;
    font-size: .65rem;
}

.lead-choice-group {
    margin: 1.35rem 0 0;
    padding: 0;
    border: 0;
}

.lead-choice-group legend {
    margin-bottom: .55rem;
}

.lead-segments,
.lead-checks {
    display: grid;
    gap: .65rem;
}

.lead-segments {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lead-checks {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lead-segments label,
.lead-checks label {
    position: relative;
    cursor: pointer;
}

.lead-segments input,
.lead-checks input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.lead-segments label > span,
.lead-checks label > span {
    display: grid;
    min-height: 3.5rem;
    align-content: center;
    padding: .65rem .8rem;
    border: 1px solid #dce2de;
    border-radius: .68rem;
    background: #f9fbf8;
    transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.lead-segments strong {
    font-size: .8rem;
}

.lead-segments small {
    color: #7c8781;
    font-size: .63rem;
}

.lead-checks label > span {
    min-height: 2.9rem;
    padding-left: 2.35rem;
    font-size: .72rem;
    font-weight: 750;
}

.lead-checks label > span::before {
    position: absolute;
    left: .8rem;
    width: .9rem;
    height: .9rem;
    border: 1px solid #abb7b0;
    border-radius: .22rem;
    content: '';
}

.lead-segments input:checked + span,
.lead-checks input:checked + span {
    border-color: var(--color-brand);
    background: rgba(23, 107, 69, .075);
    box-shadow: inset 0 0 0 1px var(--color-brand);
}

.lead-checks input:checked + span::before {
    border-color: var(--color-brand);
    background: var(--color-brand);
    box-shadow: inset 0 0 0 .2rem #fff;
}

.lead-segments input:focus-visible + span,
.lead-checks input:focus-visible + span {
    outline: .2rem solid rgba(23, 107, 69, .28);
    outline-offset: .15rem;
}

.lead-upload {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border: 1px dashed #aab7af;
    border-radius: .85rem;
    background: #f8faf7;
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease;
}

.lead-upload:hover {
    border-color: var(--color-brand);
    background: rgba(23, 107, 69, .04);
}

.lead-upload input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.lead-upload__icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .7rem;
    color: var(--color-brand);
    background: rgba(217, 244, 107, .55);
}

.lead-upload__icon svg {
    width: 1.6rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.lead-upload > span:last-child {
    display: grid;
}

.lead-upload strong {
    font-size: .82rem;
}

.lead-upload small {
    color: #7b8780;
    font-size: .65rem;
    line-height: 1.45;
}

.lead-upload input:focus-visible + .lead-upload__icon {
    outline: .2rem solid var(--color-brand);
    outline-offset: .15rem;
}

.lead-upload__files {
    display: grid;
    gap: .35rem;
    margin: .7rem 0 0;
    padding: 0;
    list-style: none;
}

.lead-upload__files li {
    padding: .5rem .7rem;
    border-radius: .45rem;
    color: #53615a;
    background: #eef3ed;
    font-size: .68rem;
}

.lead-form__consents {
    display: grid;
    gap: .65rem;
    padding: 1.1rem 1.2rem;
    border: 1px solid rgba(19, 35, 28, .08);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .72);
}

.lead-form__consents label {
    display: grid;
    grid-template-columns: 1.05rem 1fr;
    gap: .7rem;
    align-items: start;
    color: #59665f;
    font-size: .68rem;
    line-height: 1.55;
}

.lead-form__consents input {
    width: 1rem;
    height: 1rem;
    margin: .08rem 0 0;
    accent-color: var(--color-brand);
}

.lead-form__consents a {
    color: var(--color-brand);
    font-weight: 800;
}

.lead-form__honeypot {
    position: absolute;
    left: -9999px;
}

.lead-form__aside {
    position: sticky;
    top: 2rem;
}

.lead-form-card {
    padding: clamp(1.5rem, 3.5vw, 2.5rem);
    border-radius: 1.2rem;
    color: #fff;
    background:
        radial-gradient(circle at 95% 5%, rgba(217, 244, 107, .15), transparent 12rem),
        #10251c;
    box-shadow: 0 2rem 5rem rgba(19, 35, 28, .18);
}

.lead-form-card__eyebrow {
    margin: 0 0 1rem;
    color: var(--color-accent);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.lead-form-card h3 {
    margin: 0;
    font-size: clamp(1.8rem, 3.3vw, 2.75rem);
    letter-spacing: -.045em;
    line-height: 1.05;
}

.lead-form-card > p:not(.lead-form-card__eyebrow, .lead-form__status) {
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, .62);
    font-size: .82rem;
    line-height: 1.6;
}

.lead-form-card ol {
    display: grid;
    gap: 1rem;
    margin: 1.75rem 0 0;
    padding: 0;
    list-style: none;
}

.lead-form-card li {
    display: grid;
    grid-template-columns: 2rem 1fr;
    gap: .8rem;
    align-items: start;
}

.lead-form-card li > span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
    color: var(--color-accent);
    font-size: .68rem;
    font-weight: 850;
}

.lead-form-card li div {
    display: grid;
}

.lead-form-card li strong {
    font-size: .78rem;
}

.lead-form-card li small {
    color: rgba(255, 255, 255, .48);
    font-size: .65rem;
}

.lead-form-card__notice {
    display: grid;
    gap: .25rem;
    margin-top: 1.75rem;
    padding: .9rem;
    border: 1px solid rgba(217, 244, 107, .2);
    border-radius: .7rem;
    background: rgba(217, 244, 107, .07);
}

.lead-form-card__notice strong {
    color: var(--color-accent);
    font-size: .68rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.lead-form-card__notice span {
    color: rgba(255, 255, 255, .52);
    font-size: .65rem;
    line-height: 1.5;
}

.lead-form__submit {
    display: flex;
    width: 100%;
    min-height: 4rem;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
    padding: .8rem .8rem .8rem 1.1rem;
    border: 0;
    border-radius: .72rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font: inherit;
    font-weight: 850;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
}

.lead-form__submit span:last-child {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
}

.lead-form__submit:hover {
    box-shadow: 0 .8rem 2rem rgba(217, 244, 107, .18);
    transform: translateY(-2px);
}

.lead-form__submit:disabled {
    opacity: .72;
    cursor: wait;
    transform: none;
}

.lead-form__submit:focus-visible {
    outline: .2rem solid #fff;
    outline-offset: .2rem;
}

.lead-form__success {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .85rem;
    align-items: start;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid rgba(217, 244, 107, .4);
    border-radius: .8rem;
    color: #fff;
    background: rgba(217, 244, 107, .12);
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, .12);
}

.lead-form__success[hidden] {
    display: none;
}

.lead-form__success:focus-visible {
    outline: .2rem solid var(--color-accent);
    outline-offset: .2rem;
}

.lead-form__success-icon {
    display: grid;
    width: 2.3rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    font-weight: 900;
}

.lead-form__success strong {
    display: block;
    color: var(--color-accent);
    font-size: .86rem;
}

.lead-form__success p {
    margin: .35rem 0 0;
    color: rgba(255, 255, 255, .76);
    font-size: .72rem;
    line-height: 1.55;
}

.lead-form__status {
    min-height: 0;
    margin: .75rem 0 0;
    color: rgba(255, 255, 255, .62);
    font-size: .68rem;
    line-height: 1.5;
}

.lead-form__status:empty {
    display: none;
}

.lead-form__status[data-status="success"] {
    color: var(--color-accent);
}

.lead-form__status[data-status="error"] {
    color: #ffb9ad;
}

@media (max-width: 68rem) {
    .lead-form__intro { grid-template-columns: 1fr; gap: 1.5rem; }
    .lead-form__intro-copy { max-width: 42rem; }
    .lead-form__shell { grid-template-columns: 1fr; }
    .lead-form__aside { position: relative; top: auto; }
}

@media (max-width: 47.99rem) {
    .lead-form { padding-block: 4.5rem; }
    .lead-form__title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .lead-form-grid--three,
    .lead-segments { grid-template-columns: 1fr; }
    .lead-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lead-form-group { padding: 1.15rem; }
}

@media (prefers-reduced-motion: reduce) {
    .lead-control input,
    .lead-control select,
    .lead-control textarea,
    .lead-segments label > span,
    .lead-checks label > span,
    .lead-upload,
    .lead-form__submit { transition: none; }
}

.reviews {
    position: relative;
    overflow: hidden;
    padding-block: clamp(5rem, 10vw, 9rem);
    background: #fff;
}

.reviews::before {
    position: absolute;
    top: -9rem;
    right: -8rem;
    width: 28rem;
    height: 28rem;
    border-radius: 50%;
    background: rgba(217, 244, 107, .2);
    filter: blur(1px);
    content: '';
    pointer-events: none;
}

.reviews__container {
    position: relative;
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.reviews__header {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .65fr);
    gap: clamp(2rem, 7vw, 7rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.reviews__eyebrow {
    display: flex;
    gap: .7rem;
    align-items: center;
    margin: 0 0 1.2rem;
    color: var(--color-brand);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.reviews__eyebrow span {
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-ink);
    background: var(--color-accent);
    letter-spacing: 0;
}

.reviews__title {
    max-width: 15ch;
    margin: 0;
    font-size: clamp(2.75rem, 5.8vw, 5.75rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .96;
    text-wrap: balance;
}

.reviews__title em {
    color: var(--color-brand);
    font-style: normal;
}

.reviews__summary {
    margin: 0;
    color: #637069;
    font-size: clamp(1rem, 1.3vw, 1.12rem);
    line-height: 1.65;
}

.reviews__layout {
    display: grid;
    grid-template-columns: minmax(18rem, .7fr) minmax(0, 1.55fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: stretch;
}

.reviews-source {
    display: flex;
    min-height: 33rem;
    flex-direction: column;
    padding: clamp(1.5rem, 3vw, 2.35rem);
    border-radius: 1.2rem;
    color: #fff;
    background:
        radial-gradient(circle at 90% 8%, rgba(217, 244, 107, .16), transparent 12rem),
        #10251c;
    box-shadow: 0 2rem 5rem rgba(19, 35, 28, .17);
}

.reviews-source__brand {
    display: flex;
    gap: .85rem;
    align-items: center;
}

.reviews-source__mark {
    display: grid;
    width: 3rem;
    height: 3rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .75rem;
    background: #fff;
}

.reviews-source__mark img {
    display: block;
    width: 1.75rem;
    height: 1.75rem;
}

.reviews-source__brand div {
    display: grid;
}

.reviews-source__brand strong {
    font-size: .86rem;
}

.reviews-source__brand span {
    color: rgba(255, 255, 255, .48);
    font-size: .65rem;
}

.reviews-source__status {
    display: inline-flex;
    width: fit-content;
    gap: .5rem;
    align-items: center;
    margin-top: 1.5rem;
    padding: .45rem .65rem;
    border: 1px solid rgba(217, 244, 107, .18);
    border-radius: 999px;
    color: var(--color-accent);
    background: rgba(217, 244, 107, .07);
    font-size: .62rem;
    font-weight: 800;
}

.reviews-source__status i {
    width: .42rem;
    height: .42rem;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 0 .22rem rgba(217, 244, 107, .13);
}

.reviews-source__rating {
    display: grid;
    gap: .6rem;
    margin-top: 2.5rem;
}

.reviews-source__rating strong {
    max-width: none;
    color: var(--color-accent);
    font-size: clamp(2.1rem, 4vw, 3.4rem);
    letter-spacing: -.05em;
    line-height: .95;
}

.reviews-source__stars {
    color: #fbbc04 !important;
    font-size: 1rem !important;
    font-weight: 850;
    letter-spacing: .08em;
    line-height: 1;
}

.reviews-source__rating span {
    color: rgba(255, 255, 255, .55);
    font-size: .7rem;
    line-height: 1.55;
}

.reviews-source dl {
    display: grid;
    gap: .65rem;
    margin: auto 0 0;
}

.reviews-source dl div {
    display: flex;
    gap: 1rem;
    align-items: baseline;
    justify-content: space-between;
    padding-bottom: .65rem;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.reviews-source dt {
    color: rgba(255, 255, 255, .42);
    font-size: .65rem;
}

.reviews-source dd {
    margin: 0;
    font-size: .68rem;
    font-weight: 750;
    text-align: right;
}

.reviews-source__link {
    display: flex;
    width: 100%;
    min-height: 4rem;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1.25rem;
    padding: .8rem .8rem .8rem 1.1rem;
    border-radius: .72rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font-weight: 850;
}

.reviews-source__link span {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
}

.reviews-feed {
    min-width: 0;
    padding: clamp(1.2rem, 2.5vw, 2rem);
    border: 1px solid #e0e6e1;
    border-radius: 1.2rem;
    background: #f5f7f3;
}

.reviews-feed__top {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.reviews-feed__top > div:first-child {
    display: grid;
}

.reviews-feed__top span {
    color: #879189;
    font-size: .62rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.reviews-feed__top strong {
    font-size: .9rem;
}

.reviews-nav {
    display: flex;
    gap: .55rem;
}

.reviews-nav button {
    display: grid;
    width: 2.65rem;
    height: 2.65rem;
    place-items: center;
    border: 1px solid #d8dfda;
    border-radius: 50%;
    color: var(--color-brand);
    background: #fff;
    font: inherit;
    cursor: pointer;
    transition: color .2s ease, background-color .2s ease, transform .2s ease;
}

.reviews-nav button:hover:not(:disabled) {
    color: #fff;
    background: var(--color-brand);
    transform: translateY(-2px);
}

.reviews-nav button:focus-visible {
    outline: .2rem solid rgba(23, 107, 69, .28);
    outline-offset: .15rem;
}

.reviews-nav button:disabled {
    cursor: default;
    opacity: .35;
}

.reviews-track {
    display: grid;
    grid-auto-columns: minmax(17rem, 72%);
    grid-auto-flow: column;
    gap: 1rem;
    overflow-x: auto;
    padding: .2rem .2rem 1rem;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-color: rgba(23, 107, 69, .35) transparent;
    scrollbar-width: thin;
}

.reviews-track:focus-visible {
    outline: .2rem solid rgba(23, 107, 69, .25);
    outline-offset: .2rem;
}

.review-card {
    display: flex;
    min-height: 25rem;
    flex-direction: column;
    padding: clamp(1.35rem, 3vw, 2rem);
    border: 1px solid rgba(19, 35, 28, .08);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 1rem 2.5rem rgba(19, 35, 28, .05);
    scroll-snap-align: start;
}

.review-card__top {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
}

.review-card__badge {
    padding: .4rem .55rem;
    border-radius: 999px;
    color: var(--color-brand);
    background: rgba(23, 107, 69, .08);
    font-size: .58rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.review-card__quote {
    color: var(--color-accent);
    font-family: Georgia, serif;
    font-size: 3.5rem;
    line-height: .7;
}

.review-card__topic {
    margin: 2rem 0 .6rem;
    color: var(--color-brand);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.review-card h3 {
    max-width: 14ch;
    margin: 0;
    font-size: clamp(1.4rem, 2.7vw, 2rem);
    letter-spacing: -.035em;
    line-height: 1.08;
}

.review-card__body {
    margin: 1rem 0 0;
    color: #647169;
    font-size: .82rem;
    line-height: 1.65;
}

.review-card__stars {
    margin-top: 1rem;
    color: #fbbc04;
    font-size: .88rem;
    font-weight: 850;
    letter-spacing: .08em;
}

.review-card__details {
    margin-top: .85rem;
    color: #647169;
    font-size: .75rem;
    line-height: 1.65;
}

.review-card__details summary {
    width: fit-content;
    color: var(--color-brand);
    font-weight: 800;
    cursor: pointer;
}

.review-card__details summary:hover {
    text-decoration: underline;
    text-underline-offset: .2em;
}

.review-card__details summary:focus-visible {
    border-radius: .2rem;
    outline: .18rem solid rgba(23, 107, 69, .25);
    outline-offset: .2rem;
}

.review-card__details p {
    margin: 1rem 0 0;
}

.review-card footer {
    display: grid;
    grid-template-columns: 2.7rem 1fr;
    gap: .8rem;
    align-items: center;
    margin-top: auto;
    padding-top: 1.5rem;
    border-top: 1px solid #e5e9e6;
}

.review-card__avatar {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: #edf1ed;
    object-fit: cover;
}

.review-card__avatar span {
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    background: #cdd6d0;
}

.review-card__avatar--brand {
    color: var(--color-brand);
    background: var(--color-accent);
    font-size: .75rem;
    font-weight: 900;
}

.review-card footer div:last-child {
    display: grid;
}

.review-card footer strong,
.review-card footer a {
    width: fit-content;
    color: var(--color-ink);
    font-size: .7rem;
    font-weight: 800;
    text-decoration: none;
}

.review-card footer a:hover {
    color: var(--color-brand);
    text-decoration: underline;
    text-underline-offset: .18em;
}

.review-card footer a:focus-visible {
    border-radius: .15rem;
    outline: .18rem solid rgba(23, 107, 69, .25);
    outline-offset: .18rem;
}

.review-card footer span {
    color: #8a948e;
    font-size: .62rem;
}

.review-card--google {
    border-color: rgba(66, 133, 244, .18);
    box-shadow: 0 1rem 2.5rem rgba(66, 133, 244, .07);
}

.review-card--editorial .review-card__badge {
    color: #58635d;
    background: #edf1ed;
}

.reviews-feed__note {
    display: flex;
    gap: .6rem;
    align-items: center;
    margin: .65rem 0 0;
    color: #7b867f;
    font-size: .64rem;
}

.reviews-feed__note span {
    display: grid;
    width: 1.3rem;
    height: 1.3rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
    font-size: .6rem;
    font-weight: 850;
}

@media (max-width: 68rem) {
    .reviews__header { grid-template-columns: 1fr; gap: 1.5rem; }
    .reviews__summary { max-width: 42rem; }
    .reviews__layout { grid-template-columns: 1fr; }
    .reviews-source { min-height: auto; }
    .reviews-source dl { margin-top: 2rem; }
}

@media (max-width: 47.99rem) {
    .reviews { padding-block: 4.5rem; }
    .reviews__title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .reviews-track { grid-auto-columns: 92%; }
    .review-card { min-height: 23rem; }
    .reviews-feed__top { align-items: flex-end; }
}

@media (prefers-reduced-motion: reduce) {
    .reviews-track { scroll-behavior: auto; }
    .reviews-nav button { transition: none; }
}

.service-areas {
    padding-block: clamp(5rem, 10vw, 9rem);
    color: #fff;
    background:
        radial-gradient(circle at 92% 9%, rgba(217, 244, 107, .13), transparent 23rem),
        #10251c;
}

.service-areas__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.service-areas__header {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .65fr);
    gap: clamp(2rem, 7vw, 7rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.service-areas__eyebrow {
    display: flex;
    gap: .7rem;
    align-items: center;
    margin: 0 0 1.2rem;
    color: var(--color-accent);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.service-areas__eyebrow span {
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-ink);
    background: var(--color-accent);
    letter-spacing: 0;
}

.service-areas__title {
    max-width: 14ch;
    margin: 0;
    font-size: clamp(2.75rem, 5.8vw, 5.75rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .96;
    text-wrap: balance;
}

.service-areas__title em {
    color: var(--color-accent);
    font-style: normal;
}

.service-areas__summary {
    margin: 0;
    color: rgba(255, 255, 255, .6);
    font-size: clamp(1rem, 1.3vw, 1.12rem);
    line-height: 1.65;
}

.service-areas__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: stretch;
}

.service-map {
    min-width: 0;
    padding: clamp(1.1rem, 2.5vw, 1.75rem);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 1.2rem;
    background: rgba(255, 255, 255, .045);
}

.service-map__top {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.service-map__top > div {
    display: grid;
}

.service-map__top span {
    color: rgba(255, 255, 255, .43);
    font-size: .61rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.service-map__top strong {
    font-size: .9rem;
}

.service-map__badge {
    padding: .4rem .55rem;
    border: 1px solid rgba(217, 244, 107, .16);
    border-radius: 999px;
    color: var(--color-accent) !important;
    background: rgba(217, 244, 107, .06);
}

.service-map__canvas {
    position: relative;
    min-height: 34rem;
    overflow: hidden;
    border-radius: .9rem;
    background:
        linear-gradient(rgba(255, 255, 255, .025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .025) 1px, transparent 1px),
        #183027;
    background-size: 2rem 2rem;
}

.service-map__canvas > svg {
    position: absolute;
    width: 100%;
    height: 100%;
    inset: 0;
}

.service-map__river,
.service-map__road,
.service-map__ring {
    fill: none;
}

.service-map__river {
    stroke: rgba(94, 174, 209, .24);
    stroke-width: 24;
}

.service-map__road {
    stroke: rgba(255, 255, 255, .09);
    stroke-width: 5;
}

.service-map__road--minor {
    stroke-width: 2;
}

.service-map__ring {
    stroke: var(--color-accent);
    stroke-dasharray: 7 9;
    transform-box: fill-box;
    transform-origin: center;
}

.service-map__ring--outer {
    opacity: .2;
    stroke-width: 2;
}

.service-map__ring--inner {
    opacity: .45;
    stroke-width: 3;
}

.service-map__blocks {
    fill: rgba(255, 255, 255, .035);
    stroke: rgba(255, 255, 255, .06);
    stroke-width: 2;
}

.service-map__pin {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    gap: .7rem;
    align-items: center;
    transform: translate(-50%, -50%);
}

.service-map__marker {
    position: relative;
    z-index: 2;
    display: grid;
    width: 3.5rem;
    height: 3.5rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    box-shadow: 0 .8rem 2rem rgba(0, 0, 0, .2);
}

.service-map__marker svg {
    width: 1.7rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.service-map__pulse {
    position: absolute;
    left: 1.75rem;
    width: 6rem;
    height: 6rem;
    border: 1px solid rgba(217, 244, 107, .35);
    border-radius: 50%;
    transform: translateX(-50%);
}

.service-map__pin > span:last-child {
    display: grid;
    min-width: 8rem;
    padding: .65rem .8rem;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: .55rem;
    background: rgba(16, 37, 28, .9);
    box-shadow: 0 .8rem 2rem rgba(0, 0, 0, .18);
}

.service-map__pin strong {
    font-size: .72rem;
}

.service-map__pin small {
    color: rgba(255, 255, 255, .52);
    font-size: .62rem;
}

.service-map__label {
    position: absolute;
    padding: .4rem .55rem;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: .4rem;
    color: rgba(255, 255, 255, .52);
    background: rgba(16, 37, 28, .76);
    font-size: .6rem;
    font-weight: 750;
}

.service-map__label--one { top: 27%; left: 24%; }
.service-map__label--two { right: 15%; bottom: 19%; }

.service-map__note {
    display: flex;
    gap: .6rem;
    align-items: center;
    margin: .9rem 0 0;
    color: rgba(255, 255, 255, .42);
    font-size: .62rem;
}

.service-map__note span {
    display: grid;
    width: 1.3rem;
    height: 1.3rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: var(--color-ink);
    background: var(--color-accent);
    font-size: .6rem;
    font-weight: 850;
}

.service-areas__content {
    display: grid;
    gap: 1rem;
}

.service-zones {
    display: grid;
    gap: .7rem;
}

.service-zone {
    display: grid;
    grid-template-columns: 2.5rem 1fr;
    gap: 1rem;
    padding: 1.15rem;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: .85rem;
    background: rgba(255, 255, 255, .045);
}

.service-zone__number {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-ink);
    background: var(--color-accent);
    font-size: .66rem;
    font-weight: 850;
}

.service-zone__heading {
    display: flex;
    gap: .7rem;
    align-items: center;
    justify-content: space-between;
}

.service-zone h3 {
    margin: 0;
    font-size: 1rem;
}

.service-zone__heading span {
    padding: .3rem .45rem;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 999px;
    color: rgba(255, 255, 255, .45);
    font-size: .54rem;
    font-weight: 750;
    text-transform: uppercase;
}

.service-zone p {
    margin: .35rem 0 0;
    color: rgba(255, 255, 255, .52);
    font-size: .68rem;
    line-height: 1.5;
}

.service-area-checker {
    align-self: end;
    padding: clamp(1.3rem, 3vw, 2rem);
    border-radius: 1rem;
    color: var(--color-ink);
    background: var(--color-accent);
}

.service-area-checker__eyebrow {
    margin: 0 0 .7rem !important;
    color: var(--color-brand) !important;
    font-size: .62rem !important;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.service-area-checker h3 {
    max-width: 13ch;
    margin: 0;
    font-size: clamp(1.55rem, 3vw, 2.2rem);
    letter-spacing: -.04em;
    line-height: 1.05;
}

.service-area-checker > p {
    margin: .75rem 0 0;
    color: rgba(19, 35, 28, .66);
    font-size: .68rem;
    line-height: 1.5;
}

.service-area-checker label {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .55rem;
    margin-top: 1.25rem;
}

.service-area-checker input {
    min-width: 0;
    height: 3.5rem;
    padding: .8rem 1rem;
    border: 1px solid rgba(19, 35, 28, .14);
    border-radius: .68rem;
    color: var(--color-ink);
    background: rgba(255, 255, 255, .88);
    font: inherit;
    font-weight: 750;
}

.service-area-checker input:focus {
    border-color: var(--color-brand);
    outline: .2rem solid rgba(23, 107, 69, .16);
    outline-offset: .1rem;
}

.service-area-checker input[aria-invalid="true"] {
    border-color: #b94735;
}

.service-area-checker button {
    display: flex;
    gap: .75rem;
    align-items: center;
    padding: .7rem .75rem .7rem 1rem;
    border: 0;
    border-radius: .68rem;
    color: #fff;
    background: var(--color-brand);
    font: inherit;
    font-size: .75rem;
    font-weight: 850;
    cursor: pointer;
}

.service-area-checker button span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
}

.service-area-checker button:focus-visible,
.service-area-checker__continue:focus-visible {
    outline: .2rem solid #fff;
    outline-offset: .2rem;
}

.service-area-checker__result {
    min-height: 1rem;
    color: var(--color-brand) !important;
    font-weight: 750;
}

.service-area-checker__result[data-status="error"] {
    color: #8f2f21 !important;
}

.service-area-checker__continue {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(19, 35, 28, .14);
    color: var(--color-brand);
    font-size: .72rem;
    font-weight: 850;
    text-decoration: none;
}

.service-area-checker__continue[hidden] { display: none; }

.service-area-checker__continue span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
}

@media (max-width: 68rem) {
    .service-areas__header { grid-template-columns: 1fr; gap: 1.5rem; }
    .service-areas__summary { max-width: 42rem; }
    .service-areas__layout { grid-template-columns: 1fr; }
}

@media (max-width: 47.99rem) {
    .service-areas { padding-block: 4.5rem; }
    .service-areas__title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .service-map__canvas { min-height: 26rem; }
    .service-map__pin { left: 43%; }
    .service-map__pin > span:last-child { min-width: 7rem; }
    .service-zone__heading { align-items: flex-start; flex-direction: column; }
    .service-area-checker label { grid-template-columns: 1fr; }
    .service-area-checker button { justify-content: space-between; }
}

@media (prefers-reduced-motion: reduce) {
    .service-map__ring { animation: none; }
}

.faq {
    padding-block: clamp(5rem, 10vw, 9rem);
    background:
        radial-gradient(circle at 8% 9%, rgba(217, 244, 107, .22), transparent 19rem),
        #f3f6f2;
}

.faq__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.faq__header {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .65fr);
    gap: clamp(2rem, 7vw, 7rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.faq__eyebrow {
    display: flex;
    gap: .7rem;
    align-items: center;
    margin: 0 0 1.2rem;
    color: var(--color-brand);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.faq__eyebrow span {
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-ink);
    background: var(--color-accent);
    letter-spacing: 0;
}

.faq__title {
    max-width: 14ch;
    margin: 0;
    font-size: clamp(2.75rem, 5.8vw, 5.75rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .96;
    text-wrap: balance;
}

.faq__title em {
    color: var(--color-brand);
    font-style: normal;
}

.faq__summary {
    margin: 0;
    color: #637069;
    font-size: clamp(1rem, 1.3vw, 1.12rem);
    line-height: 1.65;
}

.faq__layout {
    display: grid;
    grid-template-columns: minmax(18rem, .68fr) minmax(0, 1.5fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: start;
}

.faq-card {
    position: sticky;
    top: 2rem;
    padding: clamp(1.5rem, 3vw, 2.4rem);
    border-radius: 1.2rem;
    color: #fff;
    background:
        radial-gradient(circle at 92% 7%, rgba(217, 244, 107, .16), transparent 12rem),
        #10251c;
    box-shadow: 0 2rem 5rem rgba(19, 35, 28, .17);
}

.faq-card__icon {
    display: grid;
    width: 4rem;
    height: 4rem;
    place-items: center;
    border-radius: 1rem;
    color: var(--color-brand);
    background: var(--color-accent);
}

.faq-card__icon svg {
    width: 2.2rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.faq-card__eyebrow {
    margin: 2rem 0 .8rem;
    color: var(--color-accent);
    font-size: .65rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.faq-card h3 {
    max-width: 12ch;
    margin: 0;
    font-size: clamp(1.8rem, 3.2vw, 2.7rem);
    letter-spacing: -.045em;
    line-height: 1.05;
}

.faq-card > p:not(.faq-card__eyebrow) {
    margin: 1rem 0 0;
    color: rgba(255, 255, 255, .58);
    font-size: .75rem;
    line-height: 1.6;
}

.faq-card ul {
    display: grid;
    gap: .65rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

.faq-card li {
    display: flex;
    gap: .7rem;
    align-items: center;
    font-size: .7rem;
    font-weight: 750;
}

.faq-card li span {
    display: grid;
    width: 1.45rem;
    height: 1.45rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
}

.faq-card__cta {
    display: flex;
    min-height: 4rem;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1.75rem;
    padding: .8rem .8rem .8rem 1.1rem;
    border-radius: .72rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font-weight: 850;
    text-decoration: none;
    transition: box-shadow .2s ease, transform .2s ease;
}

.faq-card__cta span:last-child {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
}

.faq-card__cta:hover {
    box-shadow: 0 .8rem 2rem rgba(217, 244, 107, .18);
    transform: translateY(-2px);
}

.faq-card__cta:focus-visible {
    outline: .2rem solid #fff;
    outline-offset: .2rem;
}

.faq-list {
    display: grid;
    gap: .7rem;
}

.faq-item {
    border: 1px solid #dde4de;
    border-radius: .9rem;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 .7rem 2rem rgba(19, 35, 28, .035);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.faq-item[open] {
    border-color: rgba(23, 107, 69, .24);
    box-shadow: 0 1rem 2.8rem rgba(19, 35, 28, .065);
}

.faq-item summary {
    display: grid;
    grid-template-columns: 2.35rem 1fr 2.35rem;
    gap: 1rem;
    align-items: center;
    min-height: 5.3rem;
    padding: .9rem 1rem;
    cursor: pointer;
    list-style: none;
}

.faq-item summary::-webkit-details-marker {
    display: none;
}

.faq-item summary:focus-visible {
    border-radius: .8rem;
    outline: .2rem solid rgba(23, 107, 69, .24);
    outline-offset: .15rem;
}

.faq-item__number {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: rgba(23, 107, 69, .08);
    font-size: .65rem;
    font-weight: 850;
}

.faq-item__question {
    font-size: clamp(.92rem, 1.55vw, 1.08rem);
    font-weight: 800;
    line-height: 1.35;
}

.faq-item__toggle {
    position: relative;
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    border-radius: 50%;
    background: #eef3ed;
}

.faq-item__toggle::before,
.faq-item__toggle::after {
    position: absolute;
    width: .85rem;
    height: .12rem;
    border-radius: 999px;
    background: var(--color-brand);
    content: '';
    transition: transform .2s ease;
}

.faq-item__toggle::after {
    transform: rotate(90deg);
}

.faq-item[open] .faq-item__toggle {
    background: var(--color-accent);
}

.faq-item[open] .faq-item__toggle::after {
    transform: rotate(0);
}

.faq-item__answer {
    margin: 0 1rem 0 4.35rem;
    padding: 0 3.35rem 1.35rem 0;
}

.faq-item__answer p {
    margin: 0;
    color: #637069;
    font-size: .78rem;
    line-height: 1.7;
}

@media (max-width: 68rem) {
    .faq__header { grid-template-columns: 1fr; gap: 1.5rem; }
    .faq__summary { max-width: 42rem; }
    .faq__layout { grid-template-columns: 1fr; }
    .faq-card { position: relative; top: auto; }
    .faq-card h3 { max-width: 18ch; }
}

@media (max-width: 47.99rem) {
    .faq { padding-block: 4.5rem; }
    .faq__title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .faq-item summary { grid-template-columns: 2rem 1fr 2rem; gap: .7rem; min-height: 4.8rem; padding: .8rem; }
    .faq-item__number,
    .faq-item__toggle { width: 2rem; height: 2rem; }
    .faq-item__answer { margin-left: 3.5rem; padding-right: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
    .faq-card__cta,
    .faq-item,
    .faq-item__toggle::before,
    .faq-item__toggle::after { transition: none; }
}

.final-cta {
    padding-block: clamp(4rem, 8vw, 7rem);
    overflow: hidden;
    background: #fff;
}

.final-cta__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.final-cta__panel {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(24rem, .85fr);
    min-height: 42rem;
    overflow: hidden;
    border-radius: clamp(1.25rem, 3vw, 2.25rem);
    background: var(--color-accent);
    box-shadow: 0 2.5rem 6rem rgba(19, 35, 28, .13);
}

.final-cta__content {
    position: relative;
    z-index: 2;
    padding: clamp(2rem, 6vw, 5rem);
}

.final-cta__eyebrow {
    display: flex;
    gap: .7rem;
    align-items: center;
    margin: 0 0 1.4rem;
    color: var(--color-brand);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.final-cta__eyebrow span {
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    place-items: center;
    border: 1px solid rgba(23, 107, 69, .2);
    border-radius: 50%;
    background: rgba(255, 255, 255, .42);
    letter-spacing: 0;
}

.final-cta__title {
    max-width: 11ch;
    margin: 0;
    font-size: clamp(3rem, 5.8vw, 5.8rem);
    font-weight: 760;
    letter-spacing: -.06em;
    line-height: .93;
    text-wrap: balance;
}

.final-cta__title em {
    color: var(--color-brand);
    font-style: normal;
}

.final-cta__lead {
    max-width: 39rem;
    margin: 1.5rem 0 0;
    color: rgba(19, 35, 28, .67);
    font-size: clamp(.95rem, 1.4vw, 1.12rem);
    line-height: 1.65;
}

.final-cta__actions {
    display: flex;
    gap: .8rem;
    align-items: center;
    margin-top: 2rem;
}

.final-cta__primary {
    display: flex;
    min-width: min(100%, 19rem);
    min-height: 4.2rem;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: .85rem .85rem .85rem 1.25rem;
    border-radius: .78rem;
    color: #fff;
    background: var(--color-brand);
    box-shadow: 0 1rem 2.5rem rgba(23, 107, 69, .22);
    font-weight: 850;
    text-decoration: none;
    transition: box-shadow .2s ease, transform .2s ease;
}

.final-cta__primary span:last-child {
    display: grid;
    width: 2.45rem;
    height: 2.45rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
}

.final-cta__secondary {
    display: inline-flex;
    gap: .6rem;
    align-items: center;
    padding: .75rem;
    color: var(--color-brand);
    font-size: .75rem;
    font-weight: 850;
    text-decoration: none;
}

.final-cta__primary:hover,
.final-cta__secondary:hover {
    transform: translateY(-2px);
}

.final-cta__primary:hover {
    box-shadow: 0 1.2rem 3rem rgba(23, 107, 69, .3);
}

.final-cta__primary:focus-visible,
.final-cta__secondary:focus-visible {
    outline: .2rem solid #fff;
    outline-offset: .2rem;
}

.final-cta__steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 2.2rem 0 0;
    padding: 1.25rem 0 0;
    border-top: 1px solid rgba(19, 35, 28, .15);
    list-style: none;
}

.final-cta__steps li {
    display: grid;
    grid-template-columns: 1.65rem 1fr;
    gap: .55rem;
    align-items: start;
}

.final-cta__steps li > span {
    display: grid;
    width: 1.65rem;
    height: 1.65rem;
    place-items: center;
    border: 1px solid rgba(23, 107, 69, .22);
    border-radius: 50%;
    color: var(--color-brand);
    font-size: .55rem;
    font-weight: 850;
}

.final-cta__steps li div {
    display: grid;
}

.final-cta__steps strong {
    font-size: .68rem;
}

.final-cta__steps small {
    color: rgba(19, 35, 28, .53);
    font-size: .58rem;
    line-height: 1.4;
}

.final-cta__alternative {
    margin: 1.5rem 0 0;
    color: rgba(19, 35, 28, .55);
    font-size: .68rem;
}

.final-cta__alternative a {
    color: var(--color-brand);
    font-weight: 850;
}

.final-cta__visual {
    position: relative;
    min-height: 100%;
    overflow: hidden;
    background:
        radial-gradient(circle at 30% 42%, rgba(217, 244, 107, .12), transparent 14rem),
        var(--color-brand);
    clip-path: ellipse(88% 88% at 100% 50%);
}

.final-cta__orbit {
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
}

.final-cta__orbit--one {
    top: 8%;
    right: -12%;
    width: 32rem;
    height: 32rem;
}

.final-cta__orbit--two {
    right: 12%;
    bottom: -12%;
    width: 18rem;
    height: 18rem;
}

.final-cta-card {
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 1.8rem 4rem rgba(0, 0, 0, .2);
}

.final-cta-card--main {
    top: 15%;
    left: 14%;
    width: min(72%, 21rem);
    min-height: 25rem;
    padding: 1.35rem;
    transform: rotate(-4deg);
}

.final-cta-card__top {
    display: flex;
    justify-content: space-between;
    color: #88938c;
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.final-cta-card__illustration {
    display: grid;
    min-height: 14rem;
    margin-top: 1rem;
    place-items: center;
    border-radius: .75rem;
    color: var(--color-brand);
    background: #eef3ed;
}

.final-cta-card__illustration svg {
    width: 80%;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 4;
}

.final-cta-card__line {
    display: grid;
    grid-template-columns: 28% 1fr;
    gap: .55rem;
    margin-top: 1rem;
}

.final-cta-card__line span {
    height: .6rem;
    border-radius: 999px;
    background: #e3e9e4;
}

.final-cta-card__line span:last-child {
    background: rgba(23, 107, 69, .14);
}

.final-cta-card__line--short {
    grid-template-columns: 20% 55%;
}

.final-cta-card--photo {
    top: 9%;
    right: 3%;
    display: grid;
    width: 8.5rem;
    padding: 1rem;
    color: var(--color-brand);
    transform: rotate(6deg);
}

.final-cta-card--photo > svg {
    width: 2.2rem;
    margin: .7rem 0;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.final-cta-card__check {
    display: grid;
    width: 1.5rem;
    height: 1.5rem;
    place-items: center;
    justify-self: end;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
    font-size: .65rem;
}

.final-cta-card--photo strong,
.final-cta-card--result strong {
    font-size: .68rem;
}

.final-cta-card--photo small,
.final-cta-card--result small {
    color: #89948d;
    font-size: .57rem;
}

.final-cta-card--result {
    right: 4%;
    bottom: 11%;
    display: grid;
    grid-template-columns: 1rem 1fr;
    gap: .65rem;
    align-items: center;
    width: 13rem;
    padding: .9rem;
    transform: rotate(3deg);
}

.final-cta-card__dot {
    width: .75rem;
    height: .75rem;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 0 .25rem rgba(217, 244, 107, .22);
}

.final-cta-card--result div {
    display: grid;
}

.final-cta__footer {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: 1rem .4rem 0;
    color: #738078;
    font-size: .65rem;
}

.final-cta__footer strong {
    color: var(--color-brand);
}

@media (max-width: 68rem) {
    .final-cta__panel { grid-template-columns: 1fr; }
    .final-cta__visual { min-height: 32rem; clip-path: ellipse(90% 90% at 50% 100%); }
    .final-cta-card--main { top: 12%; left: 22%; }
}

@media (max-width: 47.99rem) {
    .final-cta { padding-block: 3rem; }
    .final-cta__content { padding: 1.5rem; }
    .final-cta__title { font-size: clamp(2.7rem, 13vw, 4rem); }
    .final-cta__actions { align-items: stretch; flex-direction: column; }
    .final-cta__primary { min-width: 100%; }
    .final-cta__secondary { justify-content: center; }
    .final-cta__steps { grid-template-columns: 1fr; }
    .final-cta__visual { min-height: 27rem; }
    .final-cta-card--main { left: 8%; width: 75%; min-height: 20rem; }
    .final-cta-card__illustration { min-height: 11rem; }
    .final-cta-card--photo { right: 1%; width: 7rem; }
    .final-cta-card--result { right: 2%; bottom: 7%; }
    .final-cta__footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .final-cta__primary,
    .final-cta__secondary { transition: none; }
}

.contact {
    padding-block: clamp(5rem, 10vw, 9rem);
    background:
        radial-gradient(circle at 90% 7%, rgba(217, 244, 107, .17), transparent 20rem),
        #f3f6f2;
}

.contact__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.contact__header {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .65fr);
    gap: clamp(2rem, 7vw, 7rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.contact__eyebrow {
    display: flex;
    gap: .7rem;
    align-items: center;
    margin: 0 0 1.2rem;
    color: var(--color-brand);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.contact__eyebrow span {
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-ink);
    background: var(--color-accent);
    letter-spacing: 0;
}

.contact__title {
    max-width: 13ch;
    margin: 0;
    font-size: clamp(2.75rem, 5.8vw, 5.75rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .96;
    text-wrap: balance;
}

.contact__title em {
    color: var(--color-brand);
    font-style: normal;
}

.contact__summary {
    margin: 0;
    color: #637069;
    font-size: clamp(1rem, 1.3vw, 1.12rem);
    line-height: 1.65;
}

.contact__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(20rem, .65fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: stretch;
}

.contact-channels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.contact-channel {
    --channel-color: var(--color-brand);
    --channel-color-dark: #0d5438;
    --channel-glow: rgba(23, 107, 69, .22);
    position: relative;
    display: grid;
    grid-template-columns: 3.75rem 1fr 2.25rem;
    gap: 1rem;
    align-items: center;
    min-height: 11rem;
    padding: clamp(1.2rem, 2.5vw, 1.7rem);
    overflow: hidden;
    border: 1px solid #dde4de;
    border-radius: 1rem;
    color: var(--color-ink);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 1.2rem 3rem rgba(19, 35, 28, .05);
    text-decoration: none;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.contact-channel::after {
    position: absolute;
    right: -3rem;
    bottom: -4rem;
    width: 9rem;
    height: 9rem;
    border-radius: 50%;
    background: color-mix(in srgb, var(--channel-color) 11%, transparent);
    content: '';
    pointer-events: none;
    transition: transform .35s ease;
}

a.contact-channel:hover {
    border-color: color-mix(in srgb, var(--channel-color) 34%, transparent);
    box-shadow: 0 1.5rem 3.5rem var(--channel-glow);
    transform: translateY(-3px);
}

a.contact-channel:hover::after {
    transform: scale(1.12);
}

a.contact-channel:focus-visible {
    outline: .2rem solid rgba(23, 107, 69, .28);
    outline-offset: .2rem;
}

.contact-channel__icon {
    position: relative;
    z-index: 1;
    display: grid;
    width: 3.75rem;
    height: 3.75rem;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(145deg, var(--channel-color), var(--channel-color-dark));
    box-shadow:
        0 .7rem 1.5rem var(--channel-glow),
        inset 0 1px 0 rgba(255, 255, 255, .24);
    transition: box-shadow .25s ease, transform .25s ease;
}

.contact-channel__icon::after {
    position: absolute;
    top: -.8rem;
    left: -.35rem;
    width: 3rem;
    height: 1.6rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, .16);
    content: '';
    pointer-events: none;
    transform: rotate(-22deg);
}

.contact-channel__icon svg {
    position: relative;
    z-index: 1;
    width: 1.72rem;
    height: 1.72rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.75;
}

a.contact-channel:hover .contact-channel__icon,
a.contact-channel:focus-visible .contact-channel__icon {
    box-shadow:
        0 1rem 2rem var(--channel-glow),
        inset 0 1px 0 rgba(255, 255, 255, .3);
    transform: translateY(-2px) rotate(-2deg) scale(1.04);
}

.contact-channel--phone {
    --channel-color: #176b45;
    --channel-color-dark: #0b422d;
    --channel-glow: rgba(23, 107, 69, .24);
}

.contact-channel--whatsapp {
    --channel-color: #2acb68;
    --channel-color-dark: #118442;
    --channel-glow: rgba(37, 211, 102, .22);
}

.contact-channel--email {
    --channel-color: #4f7fdb;
    --channel-color-dark: #274fa4;
    --channel-glow: rgba(48, 107, 196, .2);
}

.contact-channel--telegram {
    --channel-color: #35a9e8;
    --channel-color-dark: #1674b1;
    --channel-glow: rgba(37, 139, 204, .2);
}

.contact-channel--telegram .contact-channel__icon svg {
    width: 1.82rem;
    height: 1.82rem;
}

.contact-channel__content {
    position: relative;
    z-index: 1;
    display: grid;
    min-width: 0;
}

.contact-channel__content > span {
    color: #7c8880;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.contact-channel__content strong {
    margin-top: .25rem;
    overflow-wrap: anywhere;
    font-size: clamp(.85rem, 1.5vw, 1rem);
}

.contact-channel__content small {
    margin-top: .25rem;
    color: #929b95;
    font-size: .62rem;
}

.contact-channel__arrow {
    position: relative;
    z-index: 1;
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    border-radius: 50%;
    border: 1px solid color-mix(in srgb, var(--channel-color) 20%, transparent);
    color: var(--channel-color-dark);
    background: color-mix(in srgb, var(--channel-color) 12%, #fff);
}

.contact-channel.is-disabled {
    border-style: dashed;
    background: rgba(255, 255, 255, .56);
}

.contact-channel.is-disabled .contact-channel__content,
.contact-channel.is-disabled .contact-channel__icon {
    opacity: .58;
}

.contact-channel.is-disabled .contact-channel__arrow {
    color: #7e8982;
    background: #e2e8e3;
}

@media (prefers-reduced-motion: reduce) {
    .contact-channel,
    .contact-channel::after,
    .contact-channel__icon {
        transition: none;
    }
}

/* Ihre Anfrage form lab -------------------------------------------------- */
.section-lab-page--form {
    background: #eef3ed;
}

/* Mobile lead-form Sticky Dock ------------------------------------------ */
.lead-form-sticky-dock {
    display: none;
}

.lead-form-sticky-dock[hidden] {
    display: none !important;
}

@media (max-width: 47.99rem) {
    .lead-form-sticky-dock {
        position: fixed;
        right: max(.75rem, env(safe-area-inset-right));
        bottom: max(.75rem, env(safe-area-inset-bottom));
        left: max(.75rem, env(safe-area-inset-left));
        z-index: 110;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: .65rem .8rem;
        align-items: center;
        padding: .75rem;
        border: 1px solid rgba(255, 255, 255, .14);
        border-radius: 1rem;
        color: #fff;
        background: rgba(19, 35, 28, .94);
        box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, .28);
        -webkit-backdrop-filter: blur(1rem);
        backdrop-filter: blur(1rem);
    }

    .lead-form-sticky-dock__track {
        position: absolute;
        top: 0;
        right: .9rem;
        left: .9rem;
        height: .2rem;
        overflow: hidden;
        border-radius: 999px;
        background: rgba(255, 255, 255, .16);
    }

    .lead-form-sticky-dock__track > span {
        display: block;
        width: 0;
        height: 100%;
        border-radius: inherit;
        background: var(--color-accent);
        transition: width .25s ease;
    }

    .lead-form-sticky-dock__meta {
        display: grid;
        min-width: 3.3rem;
        text-align: center;
    }

    .lead-form-sticky-dock__meta strong {
        font-size: .95rem;
    }

    .lead-form-sticky-dock__meta > span {
        font-size: .6rem;
        opacity: .68;
    }

    .lead-form-sticky-dock button {
        display: flex;
        min-width: 0;
        min-height: 3.35rem;
        gap: .75rem;
        align-items: center;
        justify-content: space-between;
        padding: .4rem .45rem .4rem 1rem;
        border: 0;
        border-radius: .85rem;
        color: var(--color-brand);
        background: var(--color-accent);
        font: inherit;
        font-size: .84rem;
        font-weight: 900;
        cursor: pointer;
    }

    .lead-form-sticky-dock button > span:last-child {
        display: grid;
        width: 2.45rem;
        aspect-ratio: 1;
        flex: 0 0 auto;
        place-items: center;
        border-radius: 50%;
        color: #fff;
        background: var(--color-brand);
        transition: transform .2s ease;
    }

    .lead-form-sticky-dock button:hover > span:last-child,
    .lead-form-sticky-dock button:focus-visible > span:last-child {
        transform: translate(.1rem, -.1rem);
    }

    .lead-form-sticky-dock button:focus-visible {
        outline: .2rem solid #fff;
        outline-offset: .15rem;
    }

    .lead-form-sticky-dock button:disabled {
        opacity: .72;
        cursor: wait;
    }

    body.has-lead-form-sticky-dock .scroll-home {
        bottom: 6.75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lead-form-sticky-dock__track > span,
    .lead-form-sticky-dock button > span:last-child {
        transition: none;
    }
}

/* Mobile form action laboratory ----------------------------------------- */
.mobile-form-action-lab {
    background: #eef3ed;
}

.mobile-form-lab-intro {
    padding: clamp(3rem, 7vw, 5.5rem) var(--space) 0;
}

.mobile-form-lab-intro__inner {
    width: min(100%, var(--content));
    margin-inline: auto;
    padding: clamp(1.25rem, 4vw, 2.5rem);
    border: 1px solid rgba(19, 35, 28, .1);
    border-radius: 1.5rem;
    background: #fff;
    box-shadow: 0 1.5rem 4rem rgba(19, 35, 28, .07);
}

.mobile-form-lab-intro__eyebrow {
    margin: 0 0 .65rem;
    color: var(--color-brand);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.mobile-form-lab-intro h1 {
    max-width: 17ch;
    margin: 0;
    color: var(--color-ink);
    font-size: clamp(2rem, 5vw, 4.25rem);
    letter-spacing: -.055em;
    line-height: 1;
}

.mobile-form-lab-intro h1 + p {
    max-width: 48rem;
    margin: 1rem 0 0;
    color: #66736b;
    line-height: 1.6;
}

.mobile-form-lab-switcher {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1.5rem;
}

.mobile-form-lab-switcher button {
    display: grid;
    gap: .3rem;
    min-height: 6rem;
    padding: 1rem;
    border: 1px solid rgba(19, 35, 28, .12);
    border-radius: 1rem;
    color: var(--color-ink);
    background: #f7faf6;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.mobile-form-lab-switcher button[aria-pressed="true"] {
    border-color: var(--color-brand);
    color: #fff;
    background: var(--color-brand);
    box-shadow: 0 .8rem 2rem rgba(23, 107, 69, .16);
}

.mobile-form-lab-switcher button strong {
    font-size: .92rem;
}

.mobile-form-lab-switcher button span {
    color: #6c7871;
    font-size: .72rem;
    line-height: 1.35;
}

.mobile-form-lab-switcher button[aria-pressed="true"] span {
    color: rgba(255, 255, 255, .72);
}

.mobile-form-lab-intro__status {
    margin: 1rem 0 0;
    color: #607068;
    font-size: .82rem;
}

.mobile-form-lab-final,
.mobile-form-lab-dock {
    --mobile-lab-progress: 0%;
}

.mobile-form-lab-final {
    display: none;
}

.mobile-form-lab-dock[hidden] {
    display: none !important;
}

.mobile-form-lab-action__track {
    overflow: hidden;
    border-radius: 999px;
    background: rgba(19, 35, 28, .14);
}

.mobile-form-lab-action__track > span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--color-accent);
    transition: width .25s ease;
}

.mobile-form-lab-action__meta {
    display: grid;
}

.mobile-form-lab-action__meta strong {
    color: inherit;
}

.mobile-form-lab-action__meta > span {
    color: inherit;
    opacity: .68;
}

.mobile-form-lab-final button,
.mobile-form-lab-dock button {
    display: flex;
    min-height: 3.35rem;
    gap: .75rem;
    align-items: center;
    justify-content: space-between;
    padding: .4rem .45rem .4rem 1rem;
    border: 0;
    border-radius: .85rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font: inherit;
    font-size: .84rem;
    font-weight: 900;
    cursor: pointer;
}

.mobile-form-lab-final button > span:last-child,
.mobile-form-lab-dock button > span:last-child {
    display: grid;
    width: 2.45rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
}

@media (max-width: 47.99rem) {
    .mobile-form-lab-intro {
        padding-top: 1.25rem;
    }

    .mobile-form-lab-intro__inner {
        padding: 1rem;
        border-radius: 1.15rem;
    }

    .mobile-form-lab-intro h1 {
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .mobile-form-lab-switcher {
        grid-template-columns: 1fr;
        gap: .5rem;
    }

    .mobile-form-lab-switcher button {
        min-height: auto;
        padding: .8rem;
    }

    .mobile-form-action-lab[data-mobile-lab-variant="final"] .mobile-form-lab-final {
        display: grid;
        gap: .75rem;
        padding: 1rem;
        border: 1px solid rgba(19, 35, 28, .12);
        border-radius: 1rem;
        color: var(--color-ink);
        background: #fff;
        box-shadow: 0 1rem 2.5rem rgba(19, 35, 28, .08);
    }

    .mobile-form-lab-final .mobile-form-lab-action__track {
        height: .35rem;
    }

    .mobile-form-lab-final .mobile-form-lab-action__meta {
        gap: .2rem;
    }

    .mobile-form-lab-final .mobile-form-lab-action__meta > span {
        font-size: .76rem;
    }

    .mobile-form-lab-dock {
        position: fixed;
        right: max(.75rem, env(safe-area-inset-right));
        bottom: max(.75rem, env(safe-area-inset-bottom));
        left: max(.75rem, env(safe-area-inset-left));
        z-index: 110;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: .65rem .8rem;
        align-items: center;
        padding: .75rem;
        border: 1px solid rgba(255, 255, 255, .14);
        border-radius: 1rem;
        color: #fff;
        background: rgba(19, 35, 28, .96);
        box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, .28);
        backdrop-filter: blur(1rem);
    }

    .mobile-form-lab-dock .mobile-form-lab-action__track {
        position: absolute;
        top: 0;
        right: .9rem;
        left: .9rem;
        height: .2rem;
        background: rgba(255, 255, 255, .16);
    }

    .mobile-form-lab-dock .mobile-form-lab-action__meta {
        min-width: 3.3rem;
        text-align: center;
    }

    .mobile-form-lab-dock .mobile-form-lab-action__meta strong {
        font-size: .95rem;
    }

    .mobile-form-lab-dock .mobile-form-lab-action__meta > span {
        font-size: .6rem;
    }

    .mobile-form-lab-dock button {
        min-width: 0;
    }

    .mobile-form-action-lab[data-mobile-lab-variant="floating"] .mobile-form-lab-dock {
        left: auto;
        width: min(calc(100% - 1.5rem), 20rem);
        grid-template-columns: 3rem minmax(0, 1fr);
        border-radius: 1.25rem;
    }

    body.has-mobile-form-lab-dock .scroll-home {
        bottom: 6.75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mobile-form-lab-action__track > span {
        transition: none;
    }
}

.lead-form--enhanced {
    --lead-error: #c84f3f;
    --lead-error-soft: #fff2ef;
    --lead-progress: 0%;
}

.lead-form--enhanced .lead-form__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
}

.lead-form--enhanced .lead-form__shell {
    grid-template-columns: minmax(0, 1.7fr) minmax(21rem, .72fr);
}

.lead-form--enhanced .lead-form-card > ol {
    display: none;
}

.lead-progress {
    display: grid;
    gap: .8rem;
    margin-top: 1.5rem;
    padding: 1rem;
    border: 1px solid rgba(217, 244, 107, .2);
    border-radius: .9rem;
    background:
        radial-gradient(circle at 100% 0%, rgba(217, 244, 107, .1), transparent 9rem),
        rgba(255, 255, 255, .045);
    transition: border-color .25s ease, background-color .25s ease, box-shadow .25s ease;
}

.lead-progress[data-complete="true"] {
    border-color: rgba(217, 244, 107, .55);
    background:
        radial-gradient(circle at 100% 0%, rgba(217, 244, 107, .2), transparent 10rem),
        rgba(217, 244, 107, .07);
    box-shadow: 0 0 0 .2rem rgba(217, 244, 107, .05), 0 1rem 2.5rem rgba(0, 0, 0, .1);
}

.lead-progress__top {
    display: flex;
    gap: 1rem;
    align-items: baseline;
    justify-content: space-between;
}

.lead-progress__top > span {
    color: rgba(255, 255, 255, .62);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.lead-progress__top strong {
    color: var(--color-accent);
    font-size: 1.45rem;
    letter-spacing: -.04em;
    line-height: 1;
}

.lead-progress__track {
    position: relative;
    height: .6rem;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .18);
}

.lead-progress__track > span {
    position: absolute;
    width: var(--lead-progress);
    border-radius: inherit;
    background:
        linear-gradient(90deg, var(--color-accent), #efffa5 72%, var(--radius-lab-cyan, #69d7cf));
    box-shadow: 0 0 1rem rgba(217, 244, 107, .42);
    transition: width .35s cubic-bezier(.2, .75, .25, 1);
    inset: 0 auto 0 0;
}

.lead-progress__track > span::after {
    position: absolute;
    top: 50%;
    right: 0;
    width: .72rem;
    height: .72rem;
    border: .16rem solid #10251c;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 .25rem rgba(217, 244, 107, .12);
    content: "";
    transform: translate(20%, -50%);
}

.lead-progress > p {
    margin: 0;
    color: rgba(255, 255, 255, .68);
    font-size: .68rem;
    font-weight: 700;
}

.lead-progress ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lead-progress li {
    display: flex;
    gap: .4rem;
    align-items: center;
    color: rgba(255, 255, 255, .48);
    font-size: .58rem;
    line-height: 1.35;
}

.lead-progress li::before {
    width: .38rem;
    height: .38rem;
    flex: 0 0 auto;
    border-radius: 50%;
    background: rgba(255, 255, 255, .25);
    content: "";
}

.lead-progress li.is-complete {
    grid-column: 1 / -1;
    color: var(--color-accent);
    font-weight: 800;
}

.lead-progress li.is-complete::before {
    background: var(--color-accent);
    box-shadow: 0 0 0 .25rem rgba(217, 244, 107, .1);
}

.lead-form--enhanced :is(
    .lead-control,
    .lead-choice-group,
    .lead-form__consents label
) {
    position: relative;
}

.lead-form--enhanced .lead-control.is-complete > :is(input, select) {
    border-color: rgba(23, 107, 69, .36);
    background:
        linear-gradient(90deg, rgba(217, 244, 107, .08), transparent 36%),
        #fff;
}

.lead-form--enhanced .lead-choice-group.is-complete .lead-segments label:has(input:checked) > span,
.lead-form--enhanced .lead-form__consents label.is-complete {
    border-color: rgba(23, 107, 69, .34);
}

.lead-form--enhanced .lead-control.is-missing > :is(input, select, textarea) {
    border-color: var(--lead-error);
    background: var(--lead-error-soft);
    box-shadow: 0 0 0 .22rem rgba(200, 79, 63, .12);
}

.lead-form--enhanced .lead-control.is-missing > span:first-child,
.lead-form--enhanced .lead-choice-group.is-missing legend {
    color: var(--lead-error);
}

.lead-form--enhanced .lead-choice-group.is-missing .lead-segments {
    padding: .55rem;
    border: 1px solid rgba(200, 79, 63, .55);
    border-radius: .85rem;
    background: var(--lead-error-soft);
    box-shadow: 0 0 0 .2rem rgba(200, 79, 63, .08);
}

.lead-form--enhanced .lead-form__consents label.is-missing {
    margin: -.45rem;
    padding: .65rem;
    border: 1px solid rgba(200, 79, 63, .55);
    border-radius: .65rem;
    color: #842f25;
    background: var(--lead-error-soft);
    box-shadow: 0 0 0 .2rem rgba(200, 79, 63, .08);
}

.lead-form--enhanced .lead-form-group.has-missing-fields {
    border-color: rgba(200, 79, 63, .36);
    box-shadow: 0 0 0 .22rem rgba(200, 79, 63, .07), 0 1.2rem 3.5rem rgba(19, 35, 28, .055);
}

.lead-field-error {
    display: flex;
    gap: .4rem;
    align-items: center;
    margin-top: .1rem;
    color: var(--lead-error);
    font-size: .62rem;
    font-weight: 800;
    line-height: 1.35;
    animation: lead-field-error-in .24s ease-out;
}

.lead-field-error::before {
    display: grid;
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--lead-error);
    content: "!";
    font-size: .66rem;
    font-weight: 900;
}

.lead-form--enhanced .lead-form__status[data-status="error"] {
    padding: .75rem .85rem;
    border: 1px solid rgba(255, 185, 173, .25);
    border-radius: .65rem;
    background: rgba(200, 79, 63, .12);
}

.lead-form--enhanced .lead-form__status[data-status="success"] {
    padding: .75rem .85rem;
    border: 1px solid rgba(217, 244, 107, .25);
    border-radius: .65rem;
    background: rgba(217, 244, 107, .08);
}

@keyframes lead-field-error-in {
    from { opacity: 0; transform: translateY(-.25rem); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 68rem) {
    .lead-form--enhanced .lead-form__shell {
        grid-template-columns: 1fr;
    }

    .lead-form--enhanced .lead-form__aside {
        order: -1;
    }
}

@media (max-width: 32rem) {
    .lead-progress ul {
        grid-template-columns: 1fr;
    }

    .lead-progress li.is-complete {
        grid-column: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lead-progress__track > span {
        transition: none;
    }

    .lead-field-error {
        animation: none;
    }
}

/* Contact reference composition ----------------------------------------- */
.contact__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
}

.contact__layout {
    grid-template-columns: minmax(0, 1.65fr) minmax(24rem, .75fr);
    gap: 1.5rem;
}

.contact-channels {
    gap: 1.5rem;
}

.contact-channel {
    position: relative;
    grid-template-columns: 4.5rem minmax(0, 1fr) 2rem 3.1rem;
    gap: .85rem;
    min-height: 17rem;
    padding: 2rem;
    border-color: rgba(19, 35, 28, .08);
    border-radius: 1.6rem;
    background:
        radial-gradient(circle at 96% 100%, rgba(217, 244, 107, .2), transparent 11rem),
        #fff;
    box-shadow: 0 1rem 3rem rgba(19, 35, 28, .035);
}

.contact-channel::after {
    content: none;
}

a.contact-channel:hover,
.contact-channel:has(a:hover),
.contact-channel:has(button:hover) {
    border-color: rgba(23, 107, 69, .18);
    box-shadow: 0 1.4rem 3.8rem rgba(19, 35, 28, .08);
    transform: translateY(-3px);
}

.contact-channel__icon {
    width: 4.5rem;
    height: 4.5rem;
    overflow: visible;
    border: 0;
    border-radius: 1.15rem;
    color: #0b5638;
    background: #f1f8c9;
    box-shadow: none;
}

.contact-channel__icon::after {
    content: none;
}

.contact-channel__icon svg,
.contact-channel--telegram .contact-channel__icon svg {
    width: 2rem;
    height: 2rem;
    stroke-width: 1.8;
}

a.contact-channel:hover .contact-channel__icon,
a.contact-channel:focus-visible .contact-channel__icon {
    box-shadow: none;
    transform: none;
}

.contact-channel__content {
    align-self: center;
    color: var(--color-ink);
    text-decoration: none;
}

.contact-channel__content > span {
    color: #8a948e;
    font-size: .73rem;
    letter-spacing: .14em;
}

.contact-channel__content strong {
    display: block;
    max-width: 100%;
    margin-top: .45rem;
    overflow: hidden;
    font-size: clamp(1.15rem, 1.75vw, 1.55rem);
    letter-spacing: -.025em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contact-channel__content small {
    margin-top: .35rem;
    color: #879089;
    font-size: .76rem;
}

.contact-channel__badge {
    display: inline-flex;
    margin-left: .4rem;
    padding: .18rem .42rem;
    border-radius: 999px;
    color: #7f8982;
    background: #edf0ed;
    font-size: .55rem;
    letter-spacing: .08em;
    vertical-align: .08rem;
}

.contact-channel__copy {
    position: relative;
    z-index: 2;
    display: grid;
    width: 2rem;
    height: 2rem;
    align-self: center;
    padding: 0;
    place-items: center;
    overflow: visible;
    border: 0;
    border-radius: .5rem;
    color: #89928c;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    transition: color .2s ease, background-color .2s ease, transform .2s ease;
}

.contact-channel__copy::before {
    content: none !important;
}

.contact-channel__copy svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.contact-channel__copy:hover,
.contact-channel__copy:focus-visible,
.contact-channel__copy.is-copied {
    color: var(--color-brand);
    background: rgba(23, 107, 69, .08);
    box-shadow: none;
    transform: none;
}

.contact-channel__copy:focus-visible {
    outline: .16rem solid rgba(23, 107, 69, .24);
    outline-offset: .12rem;
}

.contact-channel__arrow {
    grid-column: 4;
    width: 3.1rem;
    height: 3.1rem;
    align-self: center;
    border: 0;
    color: #fff;
    background: #064d2f;
    text-decoration: none;
}

.contact-channel__arrow svg,
.contact-panel__cta svg,
.contact-panel__instagram > span:last-child svg {
    width: 1.15rem;
    height: 1.15rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.contact-channel.is-disabled {
    border-style: dashed;
    background:
        radial-gradient(circle at 96% 100%, rgba(217, 244, 107, .13), transparent 11rem),
        rgba(255, 255, 255, .68);
}

.contact-channel.is-disabled .contact-channel__content,
.contact-channel.is-disabled .contact-channel__icon {
    opacity: .72;
}

.contact-channel.is-disabled .contact-channel__arrow {
    border: 0;
    color: #a1aaa4;
    background: #edf0ed;
}

.contact-panel {
    position: relative;
    min-height: 35.5rem;
    overflow: hidden;
    padding: 2.25rem;
    border-radius: 1.8rem;
    background:
        linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px),
        radial-gradient(circle at 100% 0%, rgba(217, 244, 107, .22), transparent 18rem),
        #062116;
    background-size: 2.4rem 2.4rem, 2.4rem 2.4rem, auto, auto;
}

.contact-panel > * {
    position: relative;
    z-index: 1;
}

.contact-panel__brand > span {
    width: 3.2rem;
    height: 3.2rem;
    border-radius: .95rem;
    background: var(--color-accent);
}

.contact-panel__brand > span i {
    display: block;
    width: 1.45rem;
    height: 1.45rem;
    border: .28rem solid #062116;
}

.contact-panel__brand strong {
    font-size: 1.05rem;
}

.contact-panel__brand small {
    margin-top: .2rem;
    font-size: .68rem;
}

.contact-panel__eyebrow {
    margin-top: 2.8rem;
    font-size: .72rem;
    letter-spacing: .17em;
}

.contact-panel h3 {
    max-width: 10ch;
    font-size: clamp(2.6rem, 4.1vw, 4rem);
    line-height: .95;
}

.contact-panel h3 em {
    color: var(--color-accent);
    font-style: normal;
}

.contact-panel dl {
    margin-top: 2.6rem;
}

.contact-panel dl div {
    min-height: 3.4rem;
    padding-block: .9rem;
}

.contact-panel dt {
    font-size: .78rem;
}

.contact-panel dd {
    font-size: .82rem;
}

.contact-panel__cta {
    margin-top: 2.4rem;
}

.contact-panel__instagram {
    grid-template-columns: 1.2rem auto 1fr auto;
    min-height: 3.5rem;
    padding-inline: 1rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, .035);
}

.contact-panel__instagram svg {
    width: 1.15rem;
    height: 1.15rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.contact-panel__instagram > span:last-child {
    display: grid;
    place-items: center;
}

.contact-panel__instagram > span:last-child svg {
    stroke-width: 2;
}

.contact-trust {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 2rem 0 0;
    padding: 0;
    color: #747f78;
    font-size: .78rem;
    list-style: none;
}

.contact-trust li {
    display: flex;
    gap: .6rem;
    align-items: center;
}

.contact-trust li span {
    color: var(--color-brand);
    font-size: 1rem;
    font-weight: 800;
}

body.header-style-5 .contact-channel__icon {
    color: var(--rng-v5-primary);
    background: rgba(24, 210, 236, .13);
}

body.header-style-5 .contact-channel__arrow {
    background: var(--rng-v5-primary);
}

body.header-style-5 .contact-panel h3 em {
    color: var(--rng-v5-cyan);
}

@media (max-width: 72rem) {
    .contact__layout {
        grid-template-columns: 1fr;
    }

    .contact-panel {
        min-height: 34rem;
    }
}

@media (max-width: 52rem) {
    .contact-channels {
        grid-template-columns: 1fr;
    }

    .contact-channel {
        min-height: 12rem;
    }

    .contact-trust {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 34rem) {
    .contact-channel {
        grid-template-columns: 3.8rem minmax(0, 1fr) 2.7rem;
        min-height: 10.5rem;
        padding: 1.25rem;
        border-radius: 1.25rem;
    }

    .contact-channel__icon {
        width: 3.8rem;
        height: 3.8rem;
        border-radius: 1rem;
    }

    .contact-channel__copy {
        display: none;
    }

    .contact-channel__arrow {
        grid-column: 3;
        width: 2.7rem;
        height: 2.7rem;
    }

    .contact-channel__content strong {
        font-size: 1.05rem;
    }

    .contact-panel {
        min-height: auto;
        padding: 1.5rem;
        border-radius: 1.35rem;
    }

    .contact-panel h3 {
        font-size: clamp(2.45rem, 12vw, 3.25rem);
    }

    .contact-panel dl div {
        align-items: flex-start;
        flex-direction: column;
    }

    .contact-panel dd {
        max-width: 100%;
        text-align: left;
    }

    .contact-trust {
        grid-template-columns: 1fr;
        padding-inline: .25rem;
    }
}

/* Contact service-radius illustration ---------------------------------- */
@media (min-width: 52.01rem) {
    .contact-channels {
        min-height: 35.5rem;
        grid-template-rows: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 72.01rem) {
    .contact__layout {
        align-items: stretch;
    }

    .contact-channels {
        height: 100%;
    }
}

.contact-map {
    position: relative;
    grid-column: 1 / -1;
    min-height: 11rem;
    overflow: hidden;
    border: 1px solid rgba(23, 107, 69, .1);
    border-radius: 1.35rem;
    color: var(--color-ink);
    background:
        radial-gradient(circle at 48% 54%, rgba(217, 244, 107, .22), transparent 36%),
        linear-gradient(135deg, #f7faf7, #edf5ee);
    box-shadow: 0 1.2rem 3rem rgba(19, 35, 28, .06);
    text-decoration: none;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.contact-map:hover,
.contact-map:focus-visible {
    border-color: rgba(23, 107, 69, .28);
    box-shadow: 0 1.5rem 3.5rem rgba(19, 35, 28, .11);
    transform: translateY(-3px);
}

.contact-map:focus-visible {
    outline: .2rem solid rgba(23, 107, 69, .28);
    outline-offset: .2rem;
}

.contact-map__badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 3;
    display: inline-flex;
    gap: .55rem;
    align-items: center;
    padding: .65rem .85rem;
    border: 1px solid rgba(23, 107, 69, .11);
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 .7rem 1.8rem rgba(19, 35, 28, .09);
    backdrop-filter: blur(.7rem);
    font-size: .72rem;
}

.contact-map__badge svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: var(--color-brand);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.contact-map__canvas,
.contact-map__canvas svg {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
}

.contact-map__radius {
    fill: rgba(217, 244, 107, .1);
    stroke: rgba(181, 214, 49, .52);
    stroke-width: 1.5;
    transform-box: fill-box;
    transform-origin: center;
    animation: contact-map-pulse 3.8s ease-out infinite;
}

.contact-map__radius--middle {
    animation-delay: .65s;
}

.contact-map__radius--inner {
    animation-delay: 1.3s;
}

.contact-map__marker circle:first-child {
    fill: var(--color-brand);
    filter: drop-shadow(0 .45rem .6rem rgba(23, 107, 69, .25));
}

.contact-map__marker circle:last-child {
    fill: var(--color-accent);
}

.contact-map__footer {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    z-index: 3;
    display: flex;
    gap: 1rem;
    align-items: end;
    justify-content: space-between;
}

.contact-map__footer > span:first-child {
    display: grid;
    gap: .15rem;
}

.contact-map__footer strong {
    font-size: .78rem;
}

.contact-map__footer small {
    color: #748078;
    font-size: .64rem;
}

.contact-map__footer > span:last-child {
    display: grid;
    width: 2.45rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
    font-weight: 850;
    transition: transform .2s ease;
}

.contact-map__footer > span:last-child svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.contact-map:hover .contact-map__footer > span:last-child,
.contact-map:focus-visible .contact-map__footer > span:last-child {
    transform: translate(.1rem, -.1rem);
}

@keyframes contact-map-pulse {
    0%, 100% { opacity: .72; transform: scale(.92); }
    55% { opacity: .22; transform: scale(1.08); }
}

@media (max-width: 52rem) {
    .contact-map {
        min-height: 17rem;
    }
}

@media (max-width: 34rem) {
    .contact-map {
        min-height: 15rem;
        border-radius: 1.15rem;
    }

    .contact-map__badge {
        top: .8rem;
        left: .8rem;
        max-width: calc(100% - 1.6rem);
        padding: .55rem .7rem;
        font-size: .66rem;
    }

    .contact-map__footer {
        right: .8rem;
        bottom: .8rem;
        left: .8rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .contact-map,
    .contact-map__radius,
    .contact-map__footer > span:last-child {
        animation: none;
        transition: none;
    }
}

/* Kontakt map laboratory ---------------------------------------------- */
.contact-map-lab__section {
    min-height: 70vh;
    padding: clamp(4rem, 9vw, 8rem) 0;
    background:
        radial-gradient(circle at 12% 8%, rgba(217, 244, 107, .2), transparent 24rem),
        #f2f6f2;
}

.contact-map-lab__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.contact-map-lab__header {
    display: grid;
    gap: .85rem;
    max-width: 52rem;
    margin-bottom: 2rem;
}

.contact-map-lab__header p {
    margin: 0;
    color: var(--color-brand);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.contact-map-lab__header h1 {
    margin: 0;
    font-size: clamp(2.6rem, 6vw, 5.4rem);
    letter-spacing: -.055em;
    line-height: .95;
}

.contact-map-lab__header span {
    color: #637069;
    font-size: clamp(1rem, 1.7vw, 1.18rem);
    line-height: 1.65;
}

.contact-map-lab .contact-map {
    display: block;
    min-height: clamp(20rem, 48vw, 34rem);
}

/* Mobile Safari form-control normalization ------------------------------ */
.lead-control select {
    --lead-select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m5 7.5 5 5 5-5' stroke='%2313231c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
    height: 3.2rem;
    padding-right: 2.75rem;
    background-image: var(--lead-select-chevron);
    background-repeat: no-repeat !important;
    background-position: right .95rem center !important;
    background-size: 1.1rem 1.1rem !important;
}

.lead-control select:focus {
    background-image: var(--lead-select-chevron);
    background-repeat: no-repeat !important;
    background-position: right .95rem center !important;
    background-size: 1.1rem 1.1rem !important;
}

.lead-form--enhanced .lead-control.is-missing > select {
    background-image: var(--lead-select-chevron) !important;
}

.lead-form--enhanced .lead-control.is-complete > select {
    background-image:
        var(--lead-select-chevron),
        linear-gradient(90deg, rgba(217, 244, 107, .08), transparent 36%) !important;
    background-repeat: no-repeat, no-repeat !important;
    background-position: right .95rem center, 0 0 !important;
    background-size: 1.1rem 1.1rem, 100% 100% !important;
}

.lead-control input[type="date"] {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: 3.2rem;
}

@media (max-width: 47.99rem) {
    .lead-control input[type="date"] {
        -webkit-appearance: none;
        appearance: none;
        padding-right: 2.75rem;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Crect x='3.25' y='4.75' width='13.5' height='12' rx='2' stroke='%2313231c' stroke-width='1.6'/%3E%3Cpath d='M6.5 3.25v3M13.5 3.25v3M3.5 8.5h13' stroke='%2313231c' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right .95rem center;
        background-size: 1.1rem;
    }

    .lead-control input[type="date"]:focus {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Crect x='3.25' y='4.75' width='13.5' height='12' rx='2' stroke='%2313231c' stroke-width='1.6'/%3E%3Cpath d='M6.5 3.25v3M13.5 3.25v3M3.5 8.5h13' stroke='%2313231c' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
    }

    .lead-control input[type="date"]::-webkit-date-and-time-value {
        min-height: 1.5em;
        text-align: left;
    }

    .lead-control input[type="date"]::-webkit-calendar-picker-indicator {
        width: 2rem;
        height: 100%;
        margin: 0 -2rem 0 0;
        opacity: 0;
    }

    .lead-checks {
        grid-auto-rows: 3.5rem;
    }

    .lead-checks label,
    .lead-checks label > span {
        min-width: 0;
        height: 100%;
    }
}

/* Contact unified final contract ---------------------------------------- */
.contact .contact__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
}

.contact .contact__layout {
    grid-template-columns: minmax(0, 1.65fr) minmax(24rem, .75fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: start;
}

.contact .contact-channels {
    gap: clamp(.85rem, 1.8vw, 1.25rem);
}

.contact .contact-channel {
    grid-template-columns: 4rem minmax(0, 1fr) 1.8rem 2.75rem;
    gap: .75rem;
    min-height: 11rem;
    padding: clamp(1.25rem, 2vw, 1.6rem);
    border-radius: 1.2rem;
}

.contact .contact-channel__icon {
    width: 4rem;
    height: 4rem;
    border-radius: 1rem;
}

.contact .contact-channel__icon svg,
.contact .contact-channel--telegram .contact-channel__icon svg {
    width: 1.75rem;
    height: 1.75rem;
}

.contact .contact-channel__content > span {
    font-size: .65rem;
    letter-spacing: .1em;
}

.contact .contact-channel__content strong {
    margin-top: .3rem;
    font-size: clamp(.95rem, 1.35vw, 1.15rem);
}

.contact .contact-channel__content small {
    font-size: .7rem;
}

.contact .contact-channel__copy {
    width: 1.8rem;
    height: 1.8rem;
}

.contact .contact-channel__arrow {
    width: 2.75rem;
    height: 2.75rem;
}

.contact .contact-panel {
    min-height: auto;
    padding: clamp(1.5rem, 3vw, 2.4rem);
    border-radius: 1.2rem;
    background:
        radial-gradient(circle at 92% 7%, rgba(217, 244, 107, .16), transparent 12rem),
        #10251c;
    background-size: auto;
}

.contact .contact-panel__brand > span {
    width: 4rem;
    height: 4rem;
    border-radius: 1rem;
    font-size: 1.1rem;
}

.contact .contact-panel__brand strong {
    font-size: 1rem;
}

.contact .contact-panel__brand small {
    font-size: .58rem;
}

.contact .contact-panel__eyebrow {
    margin: 2rem 0 .8rem;
    font-size: .65rem;
    letter-spacing: .08em;
}

.contact .contact-panel h3 {
    max-width: 12ch;
    font-size: clamp(1.8rem, 3.2vw, 2.7rem);
    line-height: 1.05;
}

.contact .contact-panel dl {
    gap: .65rem;
    margin-top: 1.6rem;
}

.contact .contact-panel dl div {
    min-height: 0;
    padding-block: .65rem;
}

.contact .contact-panel dt {
    font-size: .62rem;
}

.contact .contact-panel dd {
    font-size: .7rem;
}

.contact .contact-panel__cta {
    min-height: 4rem;
    margin-top: 1.75rem;
    padding: .8rem .8rem .8rem 1.1rem;
    border-radius: .72rem;
    font-size: 1rem;
    letter-spacing: normal;
}

.contact .contact-panel__cta span.contact-panel__cta-icon {
    width: 2.35rem;
    height: 2.35rem;
    flex-basis: 2.35rem;
    background: var(--color-brand);
}

.contact .contact-panel__cta-icon i {
    width: auto;
    height: auto;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.contact .contact-panel__cta-icon i svg {
    width: 1rem;
    height: 1rem;
}

.contact .contact-panel__instagram {
    min-height: 3rem;
    margin-top: .8rem;
    padding: .65rem .8rem;
    border-radius: .65rem;
    font-size: .6rem;
}

@media (max-width: 72rem) {
    .contact .contact__layout {
        grid-template-columns: 1fr;
    }

    .contact .contact-panel {
        min-height: auto;
    }
}

@media (max-width: 52rem) {
    .contact .contact-channel {
        min-height: 9.5rem;
    }
}

@media (max-width: 34rem) {
    .contact .contact-channel {
        grid-template-columns: 3.5rem minmax(0, 1fr) 2.6rem;
        min-height: 8.75rem;
        padding: 1.1rem;
        border-radius: 1.05rem;
    }

    .contact .contact-channel__icon {
        width: 3.5rem;
        height: 3.5rem;
        border-radius: .9rem;
    }

    .contact .contact-channel__arrow {
        width: 2.6rem;
        height: 2.6rem;
    }

    .contact .contact-panel {
        padding: 1.5rem;
        border-radius: 1.2rem;
    }

    .contact .contact-panel h3 {
        font-size: clamp(2rem, 10vw, 2.7rem);
    }

    .contact .contact-panel__brand > span {
        width: 3.5rem;
        height: 3.5rem;
        border-radius: .9rem;
        font-size: 1rem;
    }

    .contact .contact-panel__cta {
        min-height: 4rem;
        padding-left: 1.1rem;
        border-radius: .72rem;
        font-size: .95rem;
    }

    .contact .contact-panel__cta span.contact-panel__cta-icon {
        width: 2.35rem;
        height: 2.35rem;
        flex-basis: 2.35rem;
    }
}

/* Contact section system alignment -------------------------------------- */
.contact__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
}

.contact__layout {
    grid-template-columns: minmax(0, 1.5fr) minmax(18rem, .68fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: start;
}

.contact-channels {
    gap: clamp(.85rem, 1.8vw, 1.25rem);
}

.contact-channel {
    grid-template-columns: 4rem minmax(0, 1fr) 1.8rem 2.75rem;
    gap: .75rem;
    min-height: 11rem;
    padding: clamp(1.25rem, 2vw, 1.6rem);
    border-radius: 1.2rem;
}

.contact-channel__icon {
    width: 4rem;
    height: 4rem;
    border-radius: 1rem;
}

.contact-channel__icon svg,
.contact-channel--telegram .contact-channel__icon svg {
    width: 1.75rem;
    height: 1.75rem;
}

.contact-channel__content > span {
    font-size: .65rem;
    letter-spacing: .1em;
}

.contact-channel__content strong {
    margin-top: .3rem;
    font-size: clamp(.95rem, 1.35vw, 1.15rem);
}

.contact-channel__content small {
    font-size: .7rem;
}

.contact-channel__copy {
    width: 1.8rem;
    height: 1.8rem;
}

.contact-channel__arrow {
    width: 2.75rem;
    height: 2.75rem;
}

.contact-panel {
    min-height: auto;
    padding: clamp(1.5rem, 3vw, 2.4rem);
    border-radius: 1.2rem;
    background:
        radial-gradient(circle at 92% 7%, rgba(217, 244, 107, .16), transparent 12rem),
        #10251c;
    background-size: auto;
}

.contact-panel__brand > span {
    width: 4rem;
    height: 4rem;
    border-radius: 1rem;
    font-size: 1.1rem;
}

.contact-panel__brand strong {
    font-size: 1rem;
}

.contact-panel__brand small {
    font-size: .58rem;
}

.contact-panel__eyebrow {
    margin: 2rem 0 .8rem;
    font-size: .65rem;
    letter-spacing: .08em;
}

.contact-panel h3 {
    max-width: 12ch;
    font-size: clamp(1.8rem, 3.2vw, 2.7rem);
    line-height: 1.05;
}

.contact-panel dl {
    gap: .65rem;
    margin-top: 1.6rem;
}

.contact-panel dl div {
    min-height: 0;
    padding-block: .65rem;
}

.contact-panel dt {
    font-size: .62rem;
}

.contact-panel dd {
    font-size: .7rem;
}

.contact-panel__cta {
    min-height: 4rem;
    margin-top: 1.75rem;
    padding: .8rem .8rem .8rem 1.1rem;
    border-radius: .72rem;
    font-size: 1rem;
    letter-spacing: normal;
}

.contact-panel__cta span.contact-panel__cta-icon {
    width: 2.35rem;
    height: 2.35rem;
    flex-basis: 2.35rem;
    background: var(--color-brand);
}

.contact-panel__cta-icon i {
    width: auto;
    height: auto;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.contact-panel__cta-icon i svg {
    width: 1rem;
    height: 1rem;
}

.contact-panel__instagram {
    min-height: 3rem;
    margin-top: .8rem;
    padding: .65rem .8rem;
    border-radius: .65rem;
    font-size: .6rem;
}

@media (max-width: 72rem) {
    .contact__layout {
        grid-template-columns: 1fr;
    }

    .contact-panel {
        min-height: auto;
    }
}

@media (max-width: 52rem) {
    .contact-channel {
        min-height: 9.5rem;
    }
}

@media (max-width: 34rem) {
    .contact-channel {
        grid-template-columns: 3.5rem minmax(0, 1fr) 2.6rem;
        min-height: 8.75rem;
        padding: 1.1rem;
        border-radius: 1.05rem;
    }

    .contact-channel__icon {
        width: 3.5rem;
        height: 3.5rem;
        border-radius: .9rem;
    }

    .contact-channel__arrow {
        width: 2.6rem;
        height: 2.6rem;
    }

    .contact-panel {
        padding: 1.5rem;
        border-radius: 1.2rem;
    }

    .contact-panel h3 {
        font-size: clamp(2rem, 10vw, 2.7rem);
    }

    .contact-panel__brand > span {
        width: 3.5rem;
        height: 3.5rem;
        border-radius: .9rem;
        font-size: 1rem;
    }

    .contact-panel__cta {
        min-height: 4rem;
        padding-left: 1.1rem;
        border-radius: .72rem;
        font-size: .95rem;
    }

    .contact-panel__cta span.contact-panel__cta-icon {
        width: 2.35rem;
        height: 2.35rem;
        flex-basis: 2.35rem;
    }
}

/* Unified horizontal grid lab ------------------------------------------ */
body.layout-grid-lab {
    --grid-lab-content: 78rem;
    --grid-lab-gutter: clamp(1rem, 3vw, 2rem);
}

body.layout-grid-lab.layout-grid-lab :is(
    .site-header__inner,
    .header-topline__inner,
    .hero__container,
    .offer__container,
    .services__container,
    .benefits__container,
    .before-after__container,
    .process__container,
    .calculator__container,
    .lead-form__container,
    .reviews__container,
    .service-areas__container,
    .faq__container,
    .final-cta__container,
    .contact__container
) {
    width: min(calc(100% - 2 * var(--grid-lab-gutter)), var(--grid-lab-content));
    margin-inline: auto;
}

body.layout-grid-lab.layout-grid-lab .site-footer {
    padding-inline: max(
        var(--grid-lab-gutter),
        calc((100% - var(--grid-lab-content)) / 2)
    );
}

body.layout-grid-lab .consent-banner {
    display: none !important;
}

body.layout-grid-lab.layout-grid-lab .layout-grid-lab__main::before,
body.layout-grid-lab.layout-grid-lab .layout-grid-lab__main::after {
    position: fixed;
    z-index: 30;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgba(23, 107, 69, .22);
    content: '';
    pointer-events: none;
}

body.layout-grid-lab.layout-grid-lab .layout-grid-lab__main::before {
    left: max(
        var(--grid-lab-gutter),
        calc((100% - var(--grid-lab-content)) / 2)
    );
}

body.layout-grid-lab.layout-grid-lab .layout-grid-lab__main::after {
    right: max(
        var(--grid-lab-gutter),
        calc((100% - var(--grid-lab-content)) / 2)
    );
}

@media (max-width: 47.99rem) {
    body.layout-grid-lab [data-mobile-sticky-header] {
        padding-inline: var(--grid-lab-gutter);
    }

    body.layout-grid-lab.layout-grid-lab [data-mobile-sticky-header] .site-header__inner {
        width: 100%;
        margin-inline: 0;
    }

    body.layout-grid-lab.layout-grid-lab .layout-grid-lab__main::before,
    body.layout-grid-lab.layout-grid-lab .layout-grid-lab__main::after {
        background: rgba(23, 107, 69, .14);
    }
}

/* Shared footer alignment ------------------------------------------------ */
.site-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 1.25rem 2rem;
    align-items: center;
    padding-block: 1.35rem;
}

.site-footer p {
    margin: 0;
    line-height: 1.4;
}

.site-footer p:nth-child(2) {
    text-align: center;
}

.site-footer nav {
    justify-content: flex-end;
    align-items: center;
}

.site-footer nav a {
    display: inline-flex;
    align-items: center;
    line-height: 1.4;
    white-space: nowrap;
}

@media (max-width: 64rem) {
    .site-footer {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }

    .site-footer p:nth-child(2) {
        text-align: right;
    }

    .site-footer nav {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
}

@media (max-width: 40rem) {
    .site-footer {
        grid-template-columns: 1fr;
        gap: .7rem;
    }

    .site-footer p:nth-child(2),
    .site-footer nav {
        grid-column: auto;
        justify-content: flex-start;
        text-align: left;
    }

    .site-footer nav {
        gap: .45rem 1rem;
        padding-top: .35rem;
    }
}

/* Einsatzgebiet interactive lab ----------------------------------------- */
.section-lab-page {
    min-height: 100vh;
    background: #10251c;
}

.service-areas--lab {
    --radius-lab-cyan: #69d7cf;
    --radius-lab-blue: #4d91da;
    overflow: hidden;
}

.service-areas--lab .service-areas__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
}

.service-map--interactive {
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .025)),
        rgba(255, 255, 255, .025);
    box-shadow: 0 2rem 6rem rgba(0, 0, 0, .18);
}

.service-map--interactive .service-map__canvas {
    min-height: 42rem;
    background: #071d14;
    box-shadow: inset 0 0 0 1px rgba(217, 244, 107, .08);
}

.radius-lab {
    --parallax-x: 0px;
    --parallax-y: 0px;
    --impact-x: 50%;
    --impact-y: 50%;
    position: absolute;
    isolation: isolate;
    overflow: hidden;
    border-radius: inherit;
    outline: 0;
    inset: 0;
}

.radius-lab::before {
    position: absolute;
    z-index: 7;
    border: 1px solid rgba(217, 244, 107, .18);
    border-radius: inherit;
    box-shadow: inset 0 0 4rem rgba(217, 244, 107, .035);
    content: "";
    pointer-events: none;
    inset: 0;
}

.radius-lab:focus-visible::before {
    border-color: rgba(217, 244, 107, .6);
    box-shadow: inset 0 0 0 .16rem rgba(217, 244, 107, .22);
}

.radius-lab__grid {
    position: absolute;
    z-index: -4;
    background:
        linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(rgba(105, 215, 207, .02) 1px, transparent 1px),
        linear-gradient(90deg, rgba(105, 215, 207, .02) 1px, transparent 1px);
    background-position:
        calc(50% + var(--parallax-x)) calc(50% + var(--parallax-y)),
        calc(50% + var(--parallax-x)) calc(50% + var(--parallax-y)),
        calc(50% - var(--parallax-x)) calc(50% - var(--parallax-y)),
        calc(50% - var(--parallax-x)) calc(50% - var(--parallax-y));
    background-size: 2rem 2rem, 2rem 2rem, 8rem 8rem, 8rem 8rem;
    transition: background-position .18s ease-out;
    inset: -3rem;
}

.radius-lab__aurora {
    position: absolute;
    z-index: -3;
    background:
        radial-gradient(circle at 24% 18%, rgba(77, 145, 218, .2), transparent 25%),
        radial-gradient(circle at 78% 72%, rgba(217, 244, 107, .16), transparent 29%),
        radial-gradient(circle at 50% 50%, rgba(23, 107, 69, .36), transparent 48%);
    filter: blur(.2rem);
    animation: radius-lab-aurora 9s ease-in-out infinite alternate;
    inset: -12%;
}

.radius-lab__zone,
.radius-lab__radar,
.radius-lab__waves span,
.radius-lab__orbit {
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    pointer-events: none;
}

.radius-lab__zone {
    z-index: -1;
    border: 1px solid rgba(217, 244, 107, .15);
    background: radial-gradient(circle, rgba(217, 244, 107, .025), transparent 68%);
    transform: translate(-50%, -50%);
}

.radius-lab__zone--outer {
    width: 76%;
    aspect-ratio: 1;
    border-style: dashed;
}

.radius-lab__zone--middle {
    width: 52%;
    aspect-ratio: 1;
    border-color: rgba(105, 215, 207, .22);
}

.radius-lab__zone--inner {
    width: 29%;
    aspect-ratio: 1;
    border-color: rgba(217, 244, 107, .3);
    box-shadow: 0 0 4rem rgba(217, 244, 107, .08);
}

.radius-lab__radar {
    z-index: -1;
    width: 72%;
    aspect-ratio: 1;
    background: conic-gradient(from 0deg, transparent 0 76%, rgba(105, 215, 207, .03) 82%, rgba(105, 215, 207, .24) 99%, transparent);
    filter: drop-shadow(0 0 1rem rgba(105, 215, 207, .12));
    mask: radial-gradient(circle, transparent 0 9%, #000 10% 100%);
    transform: translate(-50%, -50%);
    animation: radius-lab-radar 8s linear infinite;
}

.radius-lab__waves {
    position: absolute;
    z-index: 0;
    pointer-events: none;
    inset: 0;
}

.radius-lab__waves span {
    width: 8rem;
    aspect-ratio: 1;
    border: 1px solid rgba(217, 244, 107, .68);
    box-shadow: 0 0 1.2rem rgba(217, 244, 107, .12);
    opacity: 0;
    transform: translate(-50%, -50%) scale(.4);
    animation: radius-lab-wave 5.6s cubic-bezier(.18, .7, .2, 1) infinite;
    animation-delay: calc(var(--wave-index) * -1.4s);
}

.radius-lab__orbit {
    z-index: 1;
    border: 1px dashed rgba(255, 255, 255, .13);
    transform: translate(-50%, -50%);
    animation: radius-lab-orbit 16s linear infinite;
}

.radius-lab__orbit--one {
    width: 43%;
    aspect-ratio: 1;
}

.radius-lab__orbit--two {
    width: 65%;
    aspect-ratio: 1;
    border-color: rgba(105, 215, 207, .12);
    animation-duration: 24s;
    animation-direction: reverse;
}

.radius-lab__orbit i {
    position: absolute;
    top: 9%;
    left: 20%;
    width: .58rem;
    height: .58rem;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 0 .3rem rgba(217, 244, 107, .09), 0 0 1.2rem rgba(217, 244, 107, .6);
}

.radius-lab__orbit--two i {
    top: auto;
    right: 12%;
    bottom: 18%;
    left: auto;
    background: var(--radius-lab-cyan);
    box-shadow: 0 0 0 .3rem rgba(105, 215, 207, .08), 0 0 1.2rem rgba(105, 215, 207, .55);
}

.radius-lab__particles {
    position: absolute;
    z-index: 0;
    pointer-events: none;
    inset: 0;
}

.radius-lab__particles i {
    position: absolute;
    left: var(--particle-x);
    bottom: -1rem;
    width: .25rem;
    height: .25rem;
    border-radius: 50%;
    background: rgba(217, 244, 107, .65);
    box-shadow: 0 0 .8rem rgba(217, 244, 107, .45);
    animation: radius-lab-particle var(--particle-duration) linear infinite;
    animation-delay: var(--particle-delay);
}

.radius-lab__particles i:nth-child(1) { --particle-x: 8%; --particle-duration: 8s; --particle-delay: -2s; }
.radius-lab__particles i:nth-child(2) { --particle-x: 15%; --particle-duration: 11s; --particle-delay: -7s; }
.radius-lab__particles i:nth-child(3) { --particle-x: 23%; --particle-duration: 9s; --particle-delay: -4s; }
.radius-lab__particles i:nth-child(4) { --particle-x: 31%; --particle-duration: 13s; --particle-delay: -9s; }
.radius-lab__particles i:nth-child(5) { --particle-x: 39%; --particle-duration: 10s; --particle-delay: -3s; }
.radius-lab__particles i:nth-child(6) { --particle-x: 47%; --particle-duration: 12s; --particle-delay: -10s; }
.radius-lab__particles i:nth-child(7) { --particle-x: 54%; --particle-duration: 8.5s; --particle-delay: -6s; }
.radius-lab__particles i:nth-child(8) { --particle-x: 62%; --particle-duration: 14s; --particle-delay: -11s; }
.radius-lab__particles i:nth-child(9) { --particle-x: 69%; --particle-duration: 9.5s; --particle-delay: -5s; }
.radius-lab__particles i:nth-child(10) { --particle-x: 76%; --particle-duration: 12.5s; --particle-delay: -8s; }
.radius-lab__particles i:nth-child(11) { --particle-x: 83%; --particle-duration: 10.5s; --particle-delay: -1s; }
.radius-lab__particles i:nth-child(12) { --particle-x: 90%; --particle-duration: 13.5s; --particle-delay: -12s; }
.radius-lab__particles i:nth-child(13) { --particle-x: 34%; --particle-duration: 15s; --particle-delay: -13s; }
.radius-lab__particles i:nth-child(14) { --particle-x: 72%; --particle-duration: 11.5s; --particle-delay: -4.5s; }

.radius-lab__hotspot {
    position: absolute;
    z-index: 4;
    top: var(--hotspot-y);
    left: var(--hotspot-x);
    display: grid;
    min-width: 7.2rem;
    padding: .65rem .75rem .65rem 1.55rem;
    overflow: visible;
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: .75rem;
    color: rgba(255, 255, 255, .82);
    background: rgba(7, 29, 20, .72);
    box-shadow: 0 .7rem 2rem rgba(0, 0, 0, .18);
    font: inherit;
    text-align: left;
    backdrop-filter: blur(.7rem);
    cursor: pointer;
    transform: translate(-50%, -50%);
    transition: border-color .2s ease, box-shadow .2s ease, color .2s ease, transform .2s ease;
}

.radius-lab__hotspot::before {
    content: none !important;
}

.radius-lab__hotspot > span {
    position: absolute;
    top: 50%;
    left: .72rem;
    width: .5rem;
    height: .5rem;
    border-radius: 50%;
    background: var(--radius-lab-cyan);
    box-shadow: 0 0 0 .26rem rgba(105, 215, 207, .1), 0 0 1rem rgba(105, 215, 207, .55);
    transform: translateY(-50%);
}

.radius-lab__hotspot strong,
.radius-lab__hotspot small {
    pointer-events: none;
}

.radius-lab__hotspot strong {
    font-size: .72rem;
}

.radius-lab__hotspot small {
    color: rgba(255, 255, 255, .46);
    font-size: .56rem;
}

.radius-lab__hotspot:hover,
.radius-lab__hotspot:focus-visible,
.radius-lab__hotspot.is-active {
    border-color: rgba(217, 244, 107, .48);
    color: #fff;
    background: rgba(16, 62, 42, .88);
    box-shadow: 0 0 0 .2rem rgba(217, 244, 107, .07), 0 1rem 2.5rem rgba(0, 0, 0, .26);
    outline: 0;
    transform: translate(-50%, -50%) translateY(-.18rem);
}

.radius-lab__hotspot.is-active > span {
    background: var(--color-accent);
    box-shadow: 0 0 0 .35rem rgba(217, 244, 107, .12), 0 0 1.3rem rgba(217, 244, 107, .72);
}

.radius-lab__pin {
    z-index: 5;
}

.radius-lab__pin .service-map__marker {
    animation: radius-lab-pin 2.8s ease-in-out infinite;
}

.radius-lab__status {
    position: absolute;
    z-index: 5;
    bottom: 1rem;
    left: 50%;
    display: flex;
    width: min(calc(100% - 2rem), 26rem);
    gap: .75rem;
    align-items: center;
    padding: .8rem .9rem;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: .8rem;
    color: #fff;
    background: rgba(7, 29, 20, .76);
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, .22);
    backdrop-filter: blur(.8rem);
    transform: translateX(-50%);
}

.radius-lab__status > span {
    width: .62rem;
    height: .62rem;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 0 .35rem rgba(217, 244, 107, .1);
}

.radius-lab__status p {
    display: grid;
    margin: 0;
}

.radius-lab__status strong {
    font-size: .7rem;
}

.radius-lab__status small {
    color: rgba(255, 255, 255, .48);
    font-size: .58rem;
}

.radius-lab__impact {
    position: absolute;
    z-index: 3;
    top: var(--impact-y);
    left: var(--impact-x);
    width: 2rem;
    height: 2rem;
    border: 2px solid rgba(217, 244, 107, .8);
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -50%);
}

.radius-lab.is-reacting .radius-lab__impact {
    animation: radius-lab-impact .85s ease-out;
}

@keyframes radius-lab-wave {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.4); }
    12% { opacity: .65; }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(5.4); }
}

@keyframes radius-lab-radar {
    to { transform: translate(-50%, -50%) rotate(1turn); }
}

@keyframes radius-lab-orbit {
    to { transform: translate(-50%, -50%) rotate(1turn); }
}

@keyframes radius-lab-particle {
    0% { opacity: 0; transform: translate3d(0, 1rem, 0) scale(.7); }
    18% { opacity: .5; }
    80% { opacity: .2; }
    100% { opacity: 0; transform: translate3d(1.2rem, -44rem, 0) scale(1.5); }
}

@keyframes radius-lab-pin {
    0%, 100% { box-shadow: 0 .8rem 2rem rgba(0, 0, 0, .2), 0 0 0 0 rgba(217, 244, 107, .18); }
    50% { box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, .24), 0 0 0 1rem rgba(217, 244, 107, 0); }
}

@keyframes radius-lab-impact {
    0% { opacity: .9; transform: translate(-50%, -50%) scale(.25); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(4.5); }
}

@keyframes radius-lab-aurora {
    0% { opacity: .75; transform: translate3d(-1%, -1%, 0) scale(1); }
    100% { opacity: 1; transform: translate3d(2%, 2%, 0) scale(1.08); }
}

@media (max-width: 47.99rem) {
    .service-map--interactive .service-map__canvas {
        min-height: 35rem;
    }

    .radius-lab__zone--outer,
    .radius-lab__radar {
        width: 104%;
    }

    .radius-lab__zone--middle {
        width: 76%;
    }

    .radius-lab__zone--inner {
        width: 42%;
    }

    .radius-lab__orbit--one {
        width: 66%;
    }

    .radius-lab__orbit--two {
        width: 94%;
    }

    .radius-lab__hotspot {
        min-width: 0;
        padding: .58rem .65rem .58rem 1.35rem;
    }

    .radius-lab__hotspot strong {
        font-size: .62rem;
    }

    .radius-lab__hotspot small {
        display: none;
    }

    .radius-lab__pin {
        left: 50%;
    }

    .radius-lab__pin > span:last-child {
        display: none;
    }

    .radius-lab__status {
        bottom: .75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .radius-lab__aurora,
    .radius-lab__radar,
    .radius-lab__waves span,
    .radius-lab__orbit,
    .radius-lab__particles i,
    .radius-lab__pin .service-map__marker,
    .radius-lab.is-reacting .radius-lab__impact {
        animation: none;
    }

    .radius-lab__waves span {
        opacity: .16;
        transform: translate(-50%, -50%) scale(calc(1.2 + var(--wave-index)));
    }
}

@media (prefers-reduced-motion: reduce) {
    .contact-channel,
    .contact-channel__copy {
        transition: none;
    }
}

.contact-panel {
    display: flex;
    min-height: 23rem;
    flex-direction: column;
    padding: clamp(1.5rem, 3.2vw, 2.4rem);
    border-radius: 1.2rem;
    color: #fff;
    background:
        radial-gradient(circle at 91% 7%, rgba(217, 244, 107, .15), transparent 12rem),
        #10251c;
    box-shadow: 0 2rem 5rem rgba(19, 35, 28, .17);
}

.contact-panel__brand {
    display: flex;
    gap: .75rem;
    align-items: center;
}

.contact-panel__brand > span {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border-radius: .75rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font-size: 1.05rem;
    font-weight: 900;
}

.contact-panel__brand div {
    display: grid;
}

.contact-panel__brand strong {
    line-height: 1;
}

.contact-panel__brand small {
    color: rgba(255, 255, 255, .45);
    font-size: .58rem;
}

.contact-panel__eyebrow {
    margin: 2rem 0 .7rem;
    color: var(--color-accent);
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contact-panel h3 {
    max-width: 12ch;
    margin: 0;
    font-size: clamp(1.8rem, 3.2vw, 2.7rem);
    letter-spacing: -.045em;
    line-height: 1.05;
}

.contact-panel dl {
    display: grid;
    gap: .65rem;
    margin: 2rem 0 0;
}

.contact-panel dl div {
    display: flex;
    gap: 1rem;
    align-items: baseline;
    justify-content: space-between;
    padding-bottom: .65rem;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.contact-panel dt {
    color: rgba(255, 255, 255, .4);
    font-size: .62rem;
}

.contact-panel dd {
    max-width: 68%;
    margin: 0;
    font-size: .66rem;
    font-weight: 750;
    text-align: right;
}

.contact-panel__cta {
    display: flex;
    min-height: 4rem;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding: .8rem .8rem .8rem 1.1rem;
    border-radius: .72rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font-weight: 850;
    text-decoration: none;
    transition: box-shadow .2s ease, transform .2s ease;
}

.contact-panel__cta span:last-child {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
}

.contact-panel__cta:hover {
    box-shadow: 0 .8rem 2rem rgba(217, 244, 107, .18);
    transform: translateY(-2px);
}

.contact-panel__cta:focus-visible,
.contact-panel__instagram:focus-visible {
    outline: .2rem solid #fff;
    outline-offset: .2rem;
}

.contact-panel__instagram {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .65rem;
    align-items: center;
    margin-top: .8rem;
    padding: .7rem .8rem;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: .65rem;
    color: rgba(255, 255, 255, .52);
    font-size: .6rem;
    text-decoration: none;
}

.contact-panel__instagram strong {
    color: #fff;
    font-size: .68rem;
}

.contact__note {
    margin: 1.25rem 0 0;
    color: #7c8880;
    font-size: .65rem;
    text-align: center;
}

@media (max-width: 68rem) {
    .contact__header { grid-template-columns: 1fr; gap: 1.5rem; }
    .contact__summary { max-width: 42rem; }
    .contact__layout { grid-template-columns: 1fr; }
}

@media (max-width: 47.99rem) {
    .contact { padding-block: 4.5rem; }
    .contact__title { font-size: clamp(2.55rem, 12vw, 4rem); }
    .contact-channels { grid-template-columns: 1fr; }
    .contact-channel { min-height: 9rem; }
}

@media (prefers-reduced-motion: reduce) {
    .contact-channel,
    .contact-panel__cta { transition: none; }
}

/* Header design variants -------------------------------------------------- */

.site-header {
    position: relative;
    z-index: 50;
    width: 100%;
    color: var(--color-ink);
}

.site-header__inner {
    position: relative;
    display: flex;
    width: min(calc(100% - 2 * var(--space)), var(--content));
    min-height: 5.5rem;
    gap: clamp(1rem, 2.5vw, 2rem);
    align-items: center;
    justify-content: space-between;
    margin-inline: auto;
}

.header-brand {
    display: inline-flex;
    flex: 0 0 auto;
    gap: .65rem;
    align-items: center;
    color: inherit;
    text-decoration: none;
}

.header-brand__mark {
    display: grid;
    width: 2.9rem;
    height: 2.9rem;
    place-items: center;
    border-radius: .72rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font-size: 1rem;
    font-weight: 900;
    letter-spacing: -.04em;
}

.header-brand__copy {
    display: grid;
    line-height: 1;
}

.header-brand__copy strong {
    font-size: 1rem;
    letter-spacing: .05em;
}

.header-brand__copy small {
    margin-top: .28rem;
    color: #79857e;
    font-size: .52rem;
    font-weight: 700;
    letter-spacing: .02em;
    white-space: nowrap;
}

.header-nav {
    display: flex;
    gap: clamp(.85rem, 1.6vw, 1.45rem);
    align-items: center;
}

.header-nav > a {
    position: relative;
    color: inherit;
    font-size: .67rem;
    font-weight: 780;
    text-decoration: none;
    white-space: nowrap;
}

.header-nav > a::after {
    position: absolute;
    right: 0;
    bottom: -.48rem;
    left: 0;
    height: .12rem;
    border-radius: 999px;
    background: var(--color-brand);
    content: '';
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .2s ease;
}

.header-nav > a:hover::after,
.header-nav > a:focus-visible::after {
    transform: scaleX(1);
    transform-origin: left;
}

.header-nav > a:focus-visible,
.header-brand:focus-visible,
.header-phone:focus-visible,
.header-phone-circle:focus-visible,
.header-cta:focus-visible,
.header-topline a:focus-visible,
.header-service-strip a:focus-visible {
    outline: .18rem solid var(--color-accent);
    outline-offset: .25rem;
}

.header-actions {
    display: flex;
    flex: 0 0 auto;
    gap: .75rem;
    align-items: center;
}

.header-phone {
    display: flex;
    gap: .55rem;
    align-items: center;
    color: inherit;
    text-decoration: none;
}

.header-phone__icon {
    display: grid;
    width: 2.3rem;
    height: 2.3rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: rgba(23, 107, 69, .08);
    font-size: .75rem;
}

.header-phone > span:last-child {
    display: grid;
    line-height: 1.15;
}

.header-phone small,
.header-phone--compact small {
    color: #8a958e;
    font-size: .5rem;
    font-weight: 750;
    text-transform: uppercase;
}

.header-phone strong,
.header-phone--compact strong {
    font-size: .68rem;
    white-space: nowrap;
}

.header-phone--compact {
    display: grid;
    gap: .18rem;
    padding-right: .9rem;
    border-right: 1px solid #e1e6e2;
}

.header-cta {
    display: flex;
    min-height: 3.15rem;
    gap: .8rem;
    align-items: center;
    padding: .65rem .65rem .65rem 1rem;
    border-radius: .65rem;
    color: #fff;
    background: var(--color-brand);
    box-shadow: 0 .65rem 1.7rem rgba(23, 107, 69, .18);
    font-size: .67rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
    transition: box-shadow .2s ease, transform .2s ease;
}

.header-cta span {
    display: grid;
    width: 1.9rem;
    height: 1.9rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
}

.header-cta:hover {
    box-shadow: 0 .8rem 2rem rgba(23, 107, 69, .25);
    transform: translateY(-2px);
}

.header-phone-circle {
    display: grid;
    width: 3.15rem;
    height: 3.15rem;
    place-items: center;
    border: 1px solid rgba(19, 35, 28, .1);
    border-radius: 50%;
    color: var(--color-brand);
    background: #fff;
    font-size: .82rem;
    text-decoration: none;
}

.header-mobile-call {
    display: none;
}

.header-mobile {
    display: none;
    flex: 0 0 auto;
}

.header-mobile summary {
    display: grid;
    width: 3rem;
    height: 3rem;
    gap: .27rem;
    align-content: center;
    justify-items: center;
    border-radius: .65rem;
    background: var(--color-brand);
    cursor: pointer;
    list-style: none;
}

.header-mobile summary::-webkit-details-marker {
    display: none;
}

.header-mobile summary span {
    width: 1.1rem;
    height: .12rem;
    border-radius: 999px;
    background: #fff;
}

.header-mobile summary:focus-visible {
    outline: .2rem solid var(--color-accent);
    outline-offset: .2rem;
}

.header-mobile[open] summary span:first-child { transform: translateY(.39rem) rotate(45deg); }
.header-mobile[open] summary span:nth-child(2) { opacity: 0; }
.header-mobile[open] summary span:last-child { transform: translateY(-.39rem) rotate(-45deg); }

.header-mobile__panel {
    position: absolute;
    top: calc(100% - .35rem);
    right: 0;
    display: grid;
    width: min(23rem, calc(100vw - 2rem));
    gap: 1rem;
    padding: 1.1rem;
    border: 1px solid rgba(19, 35, 28, .1);
    border-radius: .9rem;
    color: var(--color-ink);
    background: #fff;
    box-shadow: 0 1.5rem 4rem rgba(19, 35, 28, .2);
}

.header-mobile__panel nav {
    display: grid;
}

.header-mobile__panel nav a {
    padding: .7rem .2rem;
    border-bottom: 1px solid #edf0ed;
    font-size: .8rem;
    font-weight: 780;
    text-decoration: none;
}

.header-mobile__phone {
    display: grid;
    color: var(--color-ink);
    text-decoration: none;
}

.header-mobile__phone span {
    color: #8b958f;
    font-size: .55rem;
    text-transform: uppercase;
}

.header-mobile__phone strong {
    font-size: .9rem;
}

.header-mobile__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .8rem 1rem;
    border-radius: .6rem;
    color: #fff;
    background: var(--color-brand);
    font-size: .75rem;
    font-weight: 850;
    text-decoration: none;
}

/* Variant 1: clean light */
.site-header--one {
    border-bottom: 1px solid #e8ece8;
    background: rgba(255, 255, 255, .97);
}

/* Variant 2: two-level corporate */
.site-header--two {
    border-bottom: 1px solid #e4e9e5;
    background: #fff;
}

.header-topline {
    color: rgba(255, 255, 255, .7);
    background: #10251c;
}

.header-topline__inner {
    display: flex;
    width: min(calc(100% - 2 * var(--space)), var(--content));
    min-height: 2.15rem;
    align-items: center;
    justify-content: space-between;
    margin-inline: auto;
    font-size: .55rem;
}

.header-topline__inner > span {
    display: flex;
    gap: .5rem;
    align-items: center;
}

.header-topline__inner i {
    width: .42rem;
    height: .42rem;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 0 .2rem rgba(217, 244, 107, .1);
}

.header-topline__inner > div {
    display: flex;
    gap: 1.25rem;
}

.header-topline a {
    color: inherit;
    font-weight: 700;
    text-decoration: none;
}

.site-header--two .site-header__inner {
    min-height: 5rem;
}

/* Variant 3: floating pill */
.site-header--three {
    position: absolute;
    top: 0;
    left: 0;
    padding-top: 1.25rem;
    background: transparent;
}

.site-header--three .site-header__inner {
    min-height: 4.7rem;
    padding: .65rem .7rem .65rem 1rem;
    border: 1px solid rgba(255, 255, 255, .65);
    border-radius: 999px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 1rem 3rem rgba(19, 35, 28, .13);
    backdrop-filter: blur(1rem);
}

.header-brand--compact .header-brand__mark {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 50%;
}

.header-nav--pill {
    padding: .72rem 1rem;
    border-radius: 999px;
    background: rgba(23, 107, 69, .06);
}

.site-header--three .header-cta {
    border-radius: 999px;
}

.site-header--three .header-mobile__panel {
    top: calc(100% + .7rem);
}

.header-style-3 .hero__container {
    padding-top: clamp(8rem, 12vw, 10rem);
}

/* Variant 4: bold dark with service strip */
.site-header--four {
    color: #fff;
    background: #10251c;
}

.site-header--four .site-header__inner {
    min-height: 6.1rem;
}

.site-header--four .header-brand__copy small,
.site-header--four .header-v4-tagline {
    color: rgba(255, 255, 255, .43);
}

.site-header--four .header-v4-tagline {
    padding-left: 1.2rem;
    border-left: 1px solid rgba(255, 255, 255, .12);
    font-size: .55rem;
    font-weight: 700;
    line-height: 1.45;
}

.site-header--four .header-nav > a::after {
    background: var(--color-accent);
}

.site-header--four .header-phone-circle {
    border-color: rgba(255, 255, 255, .12);
    color: var(--color-accent);
    background: rgba(255, 255, 255, .06);
}

.site-header--four .header-cta {
    color: var(--color-brand);
    background: var(--color-accent);
    box-shadow: none;
}

.site-header--four .header-cta span {
    color: #fff;
    background: var(--color-brand);
}

.header-service-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid rgba(255, 255, 255, .08);
    background: #183027;
}

.header-service-strip a {
    padding: .55rem 1rem;
    border-right: 1px solid rgba(255, 255, 255, .08);
    color: rgba(255, 255, 255, .58);
    font-size: .56rem;
    font-weight: 750;
    text-align: center;
    text-decoration: none;
    transition: color .2s ease, background-color .2s ease;
}

.header-service-strip a:hover {
    color: var(--color-ink);
    background: var(--color-accent);
}

.site-header--four .header-mobile summary {
    color: var(--color-brand);
    background: var(--color-accent);
}

.site-header--four .header-mobile summary span {
    background: var(--color-brand);
}

/* Variants 5 and 6: reference-inspired utility headers */
.site-header--five,
.site-header--six {
    padding: .55rem var(--space);
    background: #f6f5f1;
}

.site-header--five .site-header__inner,
.site-header--six .site-header__inner {
    width: min(100%, 105rem);
    min-height: 4.9rem;
    padding: .55rem .55rem .55rem clamp(1rem, 3vw, 2.25rem);
    border: 1px solid #e1e3df;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 .75rem 2rem rgba(19, 35, 28, .08);
}

.site-header--five .site-header__inner {
    border-radius: 999px;
}

.site-header--six .site-header__inner {
    min-height: 4.35rem;
    border-radius: .85rem;
}

.header-brand--wordmark {
    min-width: 7.6rem;
}

.header-wordmark {
    display: inline-flex;
    gap: .3rem;
    align-items: center;
    color: #151918;
    font-size: 1.35rem;
    letter-spacing: .04em;
    line-height: 1;
}

.header-wordmark > span {
    font-weight: 350;
    letter-spacing: -.1em;
}

.header-wordmark i {
    width: 1px;
    height: 1.45rem;
    background: currentColor;
    transform: rotate(12deg);
}

.header-wordmark strong {
    font-weight: 760;
}

.header-actions--reference {
    gap: .55rem;
}

.header-phone-reference {
    display: inline-flex;
    min-height: 3.25rem;
    gap: .65rem;
    align-items: center;
    padding: .65rem 1rem;
    border-radius: .15rem;
    color: #242a27;
    background: #f5f2ed;
    font-size: .76rem;
    text-decoration: none;
    white-space: nowrap;
}

.header-phone-reference svg {
    width: 1.15rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.header-preferences {
    display: flex;
    gap: .45rem;
    align-items: center;
}

.header-language {
    position: relative;
}

.header-language summary,
.header-theme-toggle {
    display: inline-flex;
    height: 3.25rem;
    align-items: center;
    justify-content: center;
    border: 1px solid #dfe3df;
    border-radius: 999px;
    color: #313834;
    background: #fff;
    cursor: pointer;
}

.header-language summary {
    min-width: 4.3rem;
    gap: .38rem;
    padding-inline: .8rem;
    font-size: .68rem;
    font-weight: 760;
    list-style: none;
}

.header-language summary::-webkit-details-marker {
    display: none;
}

.header-language__globe,
.header-language__globe svg {
    width: .95rem;
    height: .95rem;
}

.header-language__globe svg,
.header-theme-toggle svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.65;
}

.header-language__chevron {
    line-height: .7;
    transition: transform .2s ease;
}

.header-language[open] .header-language__chevron {
    transform: rotate(180deg);
}

.header-language__menu {
    position: absolute;
    top: calc(100% + .55rem);
    right: 0;
    z-index: 4;
    display: grid;
    width: 11rem;
    padding: .45rem;
    border: 1px solid #dfe3df;
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 1rem 2.5rem rgba(19, 35, 28, .16);
}

.header-language__menu > span {
    display: flex;
    gap: .55rem;
    align-items: center;
    padding: .55rem .65rem;
    border-radius: .45rem;
    font-size: .68rem;
}

.header-language__menu > span[aria-current] {
    color: var(--color-brand);
    background: rgba(23, 107, 69, .07);
}

.header-language__menu .is-disabled {
    color: #8b938f;
}

.header-language__menu small {
    margin-left: auto;
    font-size: .5rem;
    text-transform: uppercase;
}

.header-theme-toggle {
    width: 3.25rem;
    padding: 0;
}

.header-theme-toggle svg {
    width: 1.1rem;
    height: 1.1rem;
}

.header-theme-toggle__moon {
    display: none;
}

html[data-color-theme="dark"] .header-theme-toggle__sun {
    display: none;
}

html[data-color-theme="dark"] .header-theme-toggle__moon {
    display: block;
}

.header-cta--reference {
    min-height: 3.25rem;
    border-radius: 999px;
    box-shadow: none;
}

.header-v6-start {
    display: flex;
    flex: 0 0 auto;
    gap: .8rem;
    align-items: center;
}

.site-header--six .header-brand--wordmark {
    min-width: auto;
}

.site-header--six .header-wordmark {
    font-size: 1.05rem;
}

.site-header--six .header-wordmark i {
    height: 1.1rem;
}

.site-header--six .header-language summary,
.site-header--six .header-theme-toggle {
    height: 2.55rem;
}

.site-header--six .header-language summary {
    min-width: 3.8rem;
    padding-inline: .65rem;
}

.site-header--six .header-theme-toggle {
    width: 2.55rem;
}

.site-header--six .header-phone-reference,
.site-header--six .header-cta--reference {
    min-height: 3rem;
}

.header-language summary:focus-visible,
.header-theme-toggle:focus-visible,
.header-phone-reference:focus-visible {
    outline: .18rem solid var(--color-accent);
    outline-offset: .2rem;
}

.header-preferences--mobile {
    justify-content: flex-start;
}

.header-preferences--mobile .header-language__menu {
    right: auto;
    left: 0;
}

/* Color theme selected from header variants 5 and 6 */
html[data-color-theme="dark"] body.header-style-5,
html[data-color-theme="dark"] body.header-style-6 {
    --color-ink: #eff6f1;
    --color-surface: #142b22;
    color-scheme: dark;
    color: #eff6f1;
    background: #0d2119;
}

html[data-color-theme="dark"] body.header-style-5 .site-header--five,
html[data-color-theme="dark"] body.header-style-6 .site-header--six {
    background: #0d2119;
}

html[data-color-theme="dark"] body.header-style-5 .site-header__inner,
html[data-color-theme="dark"] body.header-style-6 .site-header__inner {
    border-color: rgba(255, 255, 255, .12);
    color: #eff6f1;
    background: rgba(20, 43, 34, .96);
    box-shadow: 0 .75rem 2rem rgba(0, 0, 0, .22);
}

html[data-color-theme="dark"] body.header-style-5 .header-wordmark,
html[data-color-theme="dark"] body.header-style-6 .header-wordmark,
html[data-color-theme="dark"] body.header-style-5 .header-phone-reference,
html[data-color-theme="dark"] body.header-style-6 .header-phone-reference {
    color: #eff6f1;
}

html[data-color-theme="dark"] body.header-style-5 .header-phone-reference,
html[data-color-theme="dark"] body.header-style-6 .header-phone-reference,
html[data-color-theme="dark"] body.header-style-5 .header-language summary,
html[data-color-theme="dark"] body.header-style-6 .header-language summary,
html[data-color-theme="dark"] body.header-style-5 .header-theme-toggle,
html[data-color-theme="dark"] body.header-style-6 .header-theme-toggle,
html[data-color-theme="dark"] body.header-style-5 .header-language__menu,
html[data-color-theme="dark"] body.header-style-6 .header-language__menu,
html[data-color-theme="dark"] body.header-style-5 .header-mobile__panel,
html[data-color-theme="dark"] body.header-style-6 .header-mobile__panel {
    border-color: rgba(255, 255, 255, .12);
    color: #eff6f1;
    background: #193229;
}

html[data-color-theme="dark"] body.header-style-5 main > section,
html[data-color-theme="dark"] body.header-style-6 main > section {
    color: #eff6f1;
    background-color: #10251c;
}

html[data-color-theme="dark"] body.header-style-5 .hero__shade,
html[data-color-theme="dark"] body.header-style-6 .hero__shade {
    background: linear-gradient(90deg, rgba(13, 33, 25, .98) 0%, rgba(13, 33, 25, .92) 34%, rgba(13, 33, 25, .48) 56%, rgba(13, 33, 25, .04) 76%);
}

html[data-color-theme="dark"] body.header-style-5 :is(.hero__title, .hero__lead, .hero__benefits li),
html[data-color-theme="dark"] body.header-style-6 :is(.hero__title, .hero__lead, .hero__benefits li) {
    color: #eff6f1;
}

html[data-color-theme="dark"] body.header-style-5 .hero__title span,
html[data-color-theme="dark"] body.header-style-6 .hero__title span,
html[data-color-theme="dark"] body.header-style-5 .hero__eyebrow,
html[data-color-theme="dark"] body.header-style-6 .hero__eyebrow {
    color: var(--color-accent);
}

html[data-color-theme="dark"] body.header-style-5 main :is(article, form, details),
html[data-color-theme="dark"] body.header-style-6 main :is(article, form, details) {
    border-color: rgba(255, 255, 255, .12);
}

@media (max-width: 75rem) {
    .header-nav { gap: .8rem; }
    .header-phone:not(.header-phone--compact) { display: none; }
    .header-v4-tagline { display: none; }
    .site-header--five .header-phone-reference,
    .site-header--six .header-phone-reference { display: none; }
    .site-header--five .site-header__inner,
    .site-header--six .site-header__inner { gap: .75rem; }
}

@media (max-width: 61.99rem) {
    .site-header__inner { min-height: 4.8rem; }
    .header-nav,
    .header-actions,
    .header-service-strip { display: none; }
    .header-mobile { display: block; }
    .header-topline { display: none; }
    .site-header--three { padding-top: .7rem; }
    .site-header--three .site-header__inner { width: min(calc(100% - 2rem), var(--content)); min-height: 4.4rem; }
    .site-header--four .site-header__inner { min-height: 5rem; }
    .site-header--five,
    .site-header--six { padding: .5rem; }
    .site-header--five .site-header__inner,
    .site-header--six .site-header__inner { width: 100%; min-height: 4.5rem; padding-left: 1rem; }
    .site-header--six .header-v6-start .header-preferences { display: none; }
}

@media (max-width: 47.99rem) {
    [data-mobile-sticky-header] {
        position: sticky;
        top: 0;
        z-index: 100;
        border-bottom: 0;
        padding: .55rem var(--space);
        background: #fff;
        transition: padding .22s ease, background-color .22s ease, box-shadow .22s ease, backdrop-filter .22s ease;
    }

    [data-mobile-sticky-header].is-scrolled {
        padding-block: .4rem;
        background: rgba(255, 255, 255, .68);
        box-shadow: 0 .65rem 2rem rgba(19, 35, 28, .12);
        backdrop-filter: blur(1rem) saturate(145%);
        -webkit-backdrop-filter: blur(1rem) saturate(145%);
    }

    [data-mobile-sticky-header] .site-header__inner {
        width: 100%;
        max-width: 100%;
        min-height: 4.35rem;
        gap: .55rem;
        padding: .45rem;
        border: 2px solid var(--color-brand);
        border-radius: 1.3rem;
        box-shadow: 0 .55rem 1.7rem rgba(19, 35, 28, .09);
        transition: min-height .22s ease, border-color .22s ease, background-color .22s ease, box-shadow .22s ease;
    }

    [data-mobile-sticky-header].is-scrolled .site-header__inner {
        min-height: 3.95rem;
        border-color: rgba(23, 107, 69, .58);
        background: rgba(255, 255, 255, .72);
        box-shadow: 0 .45rem 1.5rem rgba(19, 35, 28, .08), inset 0 0 0 1px rgba(255, 255, 255, .4);
    }

    body.header-style-2 .header-brand {
        flex: 1 1 auto;
        min-width: 0;
        gap: .5rem;
        margin-right: auto;
    }

    body.header-style-2 .header-brand__mark {
        width: 2.7rem;
        height: 2.7rem;
        border-radius: .65rem;
        font-size: .9rem;
    }

    body.header-style-2 .header-brand__copy strong {
        font-size: .8rem;
    }

    body.header-style-2 .header-brand__copy small {
        display: block;
        max-width: 5.5rem;
        margin-top: .18rem;
        font-size: .43rem;
        line-height: 1.15;
        white-space: normal;
    }

    body.header-style-2 .header-mobile-call {
        flex: 0 0 auto;
        display: inline-flex;
        min-height: 2.9rem;
        gap: .45rem;
        align-items: center;
        justify-content: center;
        padding: .5rem .75rem;
        border-radius: .65rem;
        color: #fff;
        background: var(--color-brand);
        font-size: .67rem;
        font-weight: 850;
        text-decoration: none;
        white-space: nowrap;
        box-shadow: 0 .45rem 1.2rem rgba(23,107,69,.18);
    }

    body.header-style-2 .header-mobile-call svg {
        width: 1rem;
        height: 1rem;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.8;
    }

    body.header-style-2 .header-mobile summary {
        flex: 0 0 auto;
        width: 2.9rem;
        height: 2.9rem;
    }

    body.header-style-2 .header-mobile__panel {
        top: calc(100% + .55rem);
        right: 0;
    }

    body.header-style-2 .header-mobile-call:focus-visible {
        outline: .2rem solid var(--color-accent);
        outline-offset: .18rem;
    }
}

@media (max-width: 34rem) {
    .header-brand__copy small { display: none; }
    .site-header--three .header-brand__copy { display: none; }
    .header-mobile__panel { right: -.2rem; }
    .header-brand--wordmark { min-width: auto; }
    .header-wordmark { font-size: 1.05rem; }
}

@media (max-width: 25rem) {
    body.header-style-2 .site-header--two .site-header__inner {
        gap: .4rem;
        padding: .38rem;
    }

    body.header-style-2 .header-brand {
        gap: .4rem;
    }

    body.header-style-2 .header-brand__mark {
        width: 2.55rem;
        height: 2.55rem;
    }

    body.header-style-2 .header-brand__copy small {
        max-width: 4.5rem;
    }

    body.header-style-2 .header-mobile-call {
        min-height: 2.7rem;
        padding-inline: .6rem;
        font-size: .61rem;
    }

    body.header-style-2 .header-mobile summary {
        width: 2.7rem;
        height: 2.7rem;
    }
}

@media (max-width: 22rem) {
    body.header-style-2 .header-mobile-call {
        width: 2.9rem;
        padding-inline: 0;
    }

    body.header-style-2 .header-mobile-call span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .header-nav > a::after,
    .header-cta,
    .header-service-strip a { transition: none; }
    .header-language__chevron { transition: none; }

    [data-mobile-sticky-header],
    [data-mobile-sticky-header] .site-header__inner {
        transition: none;
    }
}

.scroll-home {
    position: fixed;
    right: clamp(1rem, 2.2vw, 2rem);
    bottom: clamp(1rem, 2.2vw, 2rem);
    z-index: 90;
    display: grid;
    width: 4rem;
    height: 4rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 1rem 2.8rem rgba(19, 35, 28, .2);
    opacity: 0;
    pointer-events: none;
    transform: translateY(1rem) scale(.88);
    transition: opacity .22s ease, transform .22s ease, background-color .2s ease, box-shadow .2s ease;
    backdrop-filter: blur(.7rem);
}

.scroll-home.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

.scroll-home:hover {
    background: var(--color-accent);
    box-shadow: 0 1.2rem 3rem rgba(19, 35, 28, .26);
    transform: translateY(-2px) scale(1.03);
}

.scroll-home:focus-visible {
    outline: .22rem solid var(--color-accent);
    outline-offset: .25rem;
}

.scroll-home__progress {
    position: absolute;
    width: 100%;
    height: 100%;
    inset: 0;
    overflow: visible;
    transform: rotate(-90deg);
}

.scroll-home__track,
.scroll-home__value {
    fill: none;
    stroke-width: 1.5;
}

.scroll-home__track {
    stroke: rgba(23, 107, 69, .16);
}

.scroll-home__value {
    stroke: var(--color-brand);
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    stroke-linecap: round;
}

.scroll-home__icon {
    position: relative;
    z-index: 1;
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border-radius: 50%;
}

.scroll-home__icon svg {
    width: 1.55rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.25;
}

@media (max-width: 47.99rem) {
    .scroll-home { width: 3.5rem; height: 3.5rem; }
    .scroll-home__icon { width: 2.15rem; height: 2.15rem; }
    .scroll-home__icon svg { width: 1.35rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .scroll-home { transition: none; }
}

/* Header variant 5: blue/cyan palette preview ----------------------------- */
body.header-style-5 {
    --rng-v5-primary: #0632a2;
    --rng-v5-secondary: #151515;
    --rng-v5-text: #282828;
    --rng-v5-accent: #383737;
    --rng-v5-surface: #f9f9f9;
    --rng-v5-transparent: #00000000;
    --rng-v5-cyan: #18d2ec;
    --rng-v5-navy: #021136;
    --rng-v5-primary-alpha: #0632a2bf;
    --rng-v5-line: #cecece;
    --rng-v5-glass: #f9f9f9c2;
    --color-ink: var(--rng-v5-secondary);
    --color-surface: var(--rng-v5-surface);
    --color-brand: var(--rng-v5-primary);
    --color-accent: var(--rng-v5-cyan);
    color: var(--rng-v5-text);
    background: var(--rng-v5-surface);
}

body.header-style-5 .site-header--five {
    background: var(--rng-v5-surface);
}

body.header-style-5 .site-header--five .site-header__inner {
    border-color: var(--rng-v5-line);
    background: var(--rng-v5-glass);
    box-shadow: 0 .75rem 2rem rgba(2, 17, 54, .1);
}

body.header-style-5 .header-wordmark,
body.header-style-5 .header-phone-reference {
    color: var(--rng-v5-secondary);
}

body.header-style-5 .header-phone-reference {
    background: #f1f3f8;
}

body.header-style-5 .header-language summary,
body.header-style-5 .header-theme-toggle,
body.header-style-5 .header-language__menu {
    border-color: var(--rng-v5-line);
    color: var(--rng-v5-accent);
    background: #fff;
}

body.header-style-5 .header-language__menu > span[aria-current] {
    color: var(--rng-v5-primary);
    background: rgba(6, 50, 162, .08);
}

body.header-style-5 .header-cta--reference {
    background: var(--rng-v5-primary);
    box-shadow: 0 .7rem 1.8rem rgba(6, 50, 162, .2);
}

body.header-style-5 .header-cta--reference span {
    color: var(--rng-v5-navy);
    background: var(--rng-v5-cyan);
}

body.header-style-5 .header-nav > a::after {
    background: var(--rng-v5-cyan);
}

body.header-style-5 .hero {
    background: var(--rng-v5-surface);
}

body.header-style-5 .hero__shade {
    background:
        linear-gradient(90deg, rgba(249, 249, 249, .99) 0%, rgba(249, 249, 249, .95) 34%, rgba(249, 249, 249, .58) 54%, rgba(249, 249, 249, 0) 74%),
        linear-gradient(0deg, rgba(2, 17, 54, .08), transparent 34%);
}

body.header-style-5 .hero__title {
    color: var(--rng-v5-secondary);
}

body.header-style-5 .hero__lead,
body.header-style-5 .hero__benefits li,
body.header-style-5 .hero__note {
    color: var(--rng-v5-text);
}

body.header-style-5 .hero__check {
    color: var(--rng-v5-primary);
    box-shadow: 0 .5rem 1.5rem rgba(2, 17, 54, .1);
}

body.header-style-5 .hero__cta {
    background: var(--rng-v5-primary);
    box-shadow: 0 1rem 2.5rem rgba(6, 50, 162, .24);
}

body.header-style-5 .hero__cta:hover,
body.header-style-5 .hero__cta:focus-visible {
    background: var(--rng-v5-primary-alpha);
    box-shadow: 0 1.2rem 3rem rgba(6, 50, 162, .3);
}

body.header-style-5 :is(
    .offer,
    .before-after,
    .lead-form,
    .faq,
    .contact
) {
    background: linear-gradient(135deg, #fff 0%, var(--rng-v5-surface) 100%);
}

body.header-style-5 :is(
    .services,
    .calculator,
    .reviews,
    .final-cta
) {
    background: #fff;
}

body.header-style-5 .process {
    background: #eef2fb;
}

body.header-style-5 :is(
    .offer__spotlight,
    .process__intro,
    .calculator-result,
    .lead-form-card,
    .reviews-source,
    .faq-card,
    .contact-panel
) {
    background: linear-gradient(145deg, var(--rng-v5-primary) 0%, var(--rng-v5-navy) 100%);
    box-shadow: 0 2rem 5rem rgba(2, 17, 54, .18);
}

body.header-style-5 :is(.benefits, .service-areas) {
    background:
        radial-gradient(circle at 85% 15%, rgba(24, 210, 236, .14), transparent 24rem),
        var(--rng-v5-navy);
}

body.header-style-5 .benefits__glow {
    background: rgba(24, 210, 236, .18);
}

body.header-style-5 :is(
    .offer__reasons li,
    .service-card,
    .comparison-card,
    .process-step__card,
    .calculator-fieldset,
    .calculator-service__body,
    .calculator-condition label > span,
    .calculator-extras label > span,
    .lead-form-group,
    .lead-form__consents,
    .reviews-feed,
    .review-card,
    .faq-item,
    .contact-channel
) {
    border-color: var(--rng-v5-line);
    background: #fff;
    box-shadow: 0 1rem 2.8rem rgba(2, 17, 54, .055);
}

body.header-style-5 .service-card--featured,
body.header-style-5 .calculator-service input:checked + .calculator-service__body,
body.header-style-5 .calculator-extras input:checked + span {
    border-color: var(--rng-v5-primary);
    color: #fff;
    background: var(--rng-v5-primary);
}

body.header-style-5 .service-card--accent,
body.header-style-5 .process-step__icon {
    background: rgba(24, 210, 236, .12);
}

body.header-style-5 :is(
    .offer__summary,
    .offer__reasons p,
    .services__summary,
    .service-card__copy > p:last-child,
    .before-after__summary,
    .comparison-card figcaption > p,
    .before-after__footer p,
    .process-step__card p:last-child,
    .calculator__summary,
    .calculator-condition small,
    .calculator-postcode span,
    .lead-form__intro-copy > p,
    .lead-form-group__heading p,
    .lead-control > span,
    .lead-choice-group legend,
    .reviews__summary,
    .review-card__body,
    .reviews-feed__note,
    .faq__summary,
    .faq-item__answer p,
    .contact__summary,
    .contact-channel__content > span,
    .contact__note
) {
    color: rgba(40, 40, 40, .72);
}

body.header-style-5 :is(
    .offer__eyebrow span,
    .services__eyebrow span,
    .before-after__eyebrow span,
    .calculator__eyebrow span,
    .faq__eyebrow span
) {
    border-color: rgba(6, 50, 162, .28);
}

body.header-style-5 :is(
    .lead-control input,
    .lead-control select,
    .lead-control textarea,
    .calculator-quantity input,
    .calculator-postcode input,
    .service-area-checker input
) {
    border-color: var(--rng-v5-line);
    color: var(--rng-v5-text);
    background-color: var(--rng-v5-surface);
}

body.header-style-5 :is(
    .lead-control input,
    .lead-control select,
    .lead-control textarea,
    .calculator-quantity input,
    .calculator-postcode input,
    .service-area-checker input
):focus {
    border-color: var(--rng-v5-primary);
    background-color: #fff;
    box-shadow: 0 0 0 .22rem rgba(6, 50, 162, .12);
}

body.header-style-5 .final-cta__panel {
    background: linear-gradient(135deg, var(--rng-v5-cyan), #8cecf8);
    box-shadow: 0 2.5rem 6rem rgba(2, 17, 54, .15);
}

body.header-style-5 .final-cta__visual {
    background: linear-gradient(145deg, var(--rng-v5-primary), var(--rng-v5-navy));
}

body.header-style-5 .scroll-home {
    background: var(--rng-v5-glass);
    box-shadow: 0 1rem 2.8rem rgba(2, 17, 54, .18);
}

body.header-style-5 .scroll-home__track {
    stroke: rgba(6, 50, 162, .18);
}

html[data-color-theme="dark"] body.header-style-5 {
    --color-ink: #f9f9f9;
    --color-surface: #101b38;
    color-scheme: dark;
    color: #f9f9f9;
    background: var(--rng-v5-navy);
}

html[data-color-theme="dark"] body.header-style-5 .site-header--five {
    background: var(--rng-v5-navy);
}

html[data-color-theme="dark"] body.header-style-5 .site-header--five .site-header__inner,
html[data-color-theme="dark"] body.header-style-5 :is(
    .header-language summary,
    .header-theme-toggle,
    .header-language__menu,
    .header-mobile__panel
) {
    border-color: rgba(249, 249, 249, .16);
    color: #f9f9f9;
    background: rgba(21, 21, 21, .94);
}

html[data-color-theme="dark"] body.header-style-5 .header-wordmark,
html[data-color-theme="dark"] body.header-style-5 .header-phone-reference {
    color: #f9f9f9;
}

html[data-color-theme="dark"] body.header-style-5 .header-phone-reference {
    background: rgba(249, 249, 249, .08);
}

html[data-color-theme="dark"] body.header-style-5 main > section {
    color: #f9f9f9;
    background-color: var(--rng-v5-navy);
}

html[data-color-theme="dark"] body.header-style-5 :is(
    .offer,
    .services,
    .before-after,
    .process,
    .calculator,
    .lead-form,
    .reviews,
    .faq,
    .final-cta,
    .contact
) {
    background: linear-gradient(135deg, var(--rng-v5-navy) 0%, #101b38 100%);
}

html[data-color-theme="dark"] body.header-style-5 .hero__shade {
    background:
        linear-gradient(90deg, rgba(2, 17, 54, .99) 0%, rgba(2, 17, 54, .94) 34%, rgba(2, 17, 54, .62) 56%, rgba(2, 17, 54, .08) 76%),
        linear-gradient(0deg, rgba(0, 0, 0, .14), transparent 34%);
}

html[data-color-theme="dark"] body.header-style-5 :is(
    .hero__title,
    .hero__lead,
    .hero__benefits li,
    .hero__note
) {
    color: #f9f9f9;
}

html[data-color-theme="dark"] body.header-style-5 :is(
    .offer__reasons li,
    .service-card,
    .comparison-card,
    .process-step__card,
    .calculator-fieldset,
    .calculator-service__body,
    .calculator-condition label > span,
    .calculator-extras label > span,
    .lead-form-group,
    .lead-form__consents,
    .reviews-feed,
    .review-card,
    .faq-item,
    .contact-channel
) {
    border-color: rgba(249, 249, 249, .14);
    color: #f9f9f9;
    background: rgba(21, 21, 21, .78);
    box-shadow: 0 1rem 2.8rem rgba(0, 0, 0, .18);
}

html[data-color-theme="dark"] body.header-style-5 :is(
    .offer__summary,
    .offer__reasons p,
    .services__summary,
    .service-card__copy > p:last-child,
    .before-after__summary,
    .comparison-card figcaption > p,
    .before-after__footer p,
    .process-step__card p:last-child,
    .calculator__summary,
    .calculator-condition small,
    .calculator-postcode span,
    .lead-form__intro-copy > p,
    .lead-form-group__heading p,
    .lead-control > span,
    .lead-choice-group legend,
    .reviews__summary,
    .review-card__body,
    .reviews-feed__note,
    .faq__summary,
    .faq-item__answer p,
    .contact__summary,
    .contact-channel__content > span,
    .contact__note
) {
    color: rgba(249, 249, 249, .7);
}

html[data-color-theme="dark"] body.header-style-5 :is(
    .lead-control input,
    .lead-control select,
    .lead-control textarea,
    .calculator-quantity input,
    .calculator-postcode input,
    .service-area-checker input
) {
    border-color: rgba(249, 249, 249, .18);
    color: #f9f9f9;
    background-color: rgba(249, 249, 249, .07);
}

html[data-color-theme="dark"] body.header-style-5 .final-cta__panel {
    color: var(--rng-v5-secondary);
    background: linear-gradient(135deg, var(--rng-v5-cyan), #8cecf8);
}

/* Shared button shimmer --------------------------------------------------- */
:is(
    button:not(:disabled):not([data-quantity-step]),
    .header-cta,
    .header-mobile__cta,
    .header-mobile-call,
    .hero__cta,
    .offer__link,
    .benefits__footer a,
    .before-after__footer a,
    .process__cta,
    .calculator-result__cta,
    .reviews-source__link,
    .faq-card__cta,
    .final-cta__primary,
    .final-cta__secondary,
    .contact-panel__cta,
    .sofa-button
) {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.scroll-home {
    isolation: isolate;
    overflow: hidden;
}

:is(
    button:not(:disabled):not([data-quantity-step]),
    .header-cta,
    .header-mobile__cta,
    .header-mobile-call,
    .hero__cta,
    .offer__link,
    .benefits__footer a,
    .before-after__footer a,
    .process__cta,
    .calculator-result__cta,
    .reviews-source__link,
    .faq-card__cta,
    .final-cta__primary,
    .final-cta__secondary,
    .contact-panel__cta,
    .sofa-button,
    .scroll-home
)::before {
    position: absolute;
    top: -50%;
    left: -75%;
    z-index: 3;
    width: 40%;
    height: 200%;
    background: linear-gradient(
        100deg,
        transparent 0%,
        rgba(255, 255, 255, 0) 30%,
        rgba(255, 255, 255, .55) 50%,
        rgba(255, 255, 255, 0) 70%,
        transparent 100%
    );
    content: '';
    pointer-events: none;
    transform: rotate(18deg);
    animation: rng99-button-shimmer 5.5s ease-in-out infinite;
}

@keyframes rng99-button-shimmer {
    0% { left: -75%; }
    70%,
    100% { left: 125%; }
}

@media (prefers-reduced-motion: reduce) {
    :is(
        button:not(:disabled):not([data-quantity-step]),
        .header-cta,
        .header-mobile__cta,
        .header-mobile-call,
        .hero__cta,
        .offer__link,
        .benefits__footer a,
        .before-after__footer a,
        .process__cta,
        .calculator-result__cta,
        .reviews-source__link,
        .faq-card__cta,
        .final-cta__primary,
        .final-cta__secondary,
        .contact-panel__cta,
        .sofa-button,
        .scroll-home
    )::before {
        animation: none;
        content: none;
    }
}

/* Teppichreinigung Köln additions */
.carpet-hero .sofa-hero__media {
    background:
        linear-gradient(105deg, rgba(255,255,255,.12), transparent 55%),
        url('../images/carpet-after.jpg') 72% center / cover no-repeat;
}

.carpet-hero .sofa-hero__shade {
    background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.98) 39%, rgba(255,255,255,.68) 57%, rgba(255,255,255,.08) 80%);
}

.carpet-structure {
    background: var(--color-surface);
}

.carpet-structure__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr);
    gap: clamp(2rem, 6vw, 5.5rem);
    align-items: center;
}

.carpet-structure__visual {
    padding: clamp(1.4rem, 3vw, 2.4rem);
    border-radius: 1.3rem;
    background: var(--color-brand);
    box-shadow: 0 1.5rem 4rem rgba(19,35,28,.14);
}

.carpet-structure__sample {
    position: relative;
    min-height: clamp(24rem, 43vw, 36rem);
    overflow: hidden;
    border-radius: 1rem;
    background: #e9ebe7;
}

.carpet-structure__sample::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(19,35,28,.05), transparent 45%, rgba(19,35,28,.45));
    content: '';
    pointer-events: none;
}

.carpet-structure__sample img {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    display: block;
    object-fit: cover;
    object-position: 58% center;
}

.carpet-structure__marker {
    position: absolute;
    z-index: 1;
    display: inline-flex;
    gap: .55rem;
    align-items: center;
    padding: .5rem .7rem;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: .75rem;
    background: rgba(19,35,28,.82);
    color: #fff;
    font-size: .76rem;
    font-weight: 800;
    box-shadow: 0 .7rem 1.8rem rgba(0,0,0,.18);
    backdrop-filter: blur(.35rem);
}

.carpet-structure__marker i {
    display: grid;
    width: 1.65rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    background: var(--color-accent);
    color: var(--color-brand);
    font-size: .65rem;
    font-style: normal;
    font-weight: 900;
}

.carpet-structure__marker--surface {
    top: 10%;
    left: 7%;
}

.carpet-structure__marker--edge {
    right: 6%;
    bottom: 13%;
}

.carpet-structure__marker--back {
    bottom: 4%;
    left: 6%;
}

.carpet-structure__visual > p {
    margin: .8rem 0 0;
    color: rgba(255,255,255,.65);
    font-size: .76rem;
}

@media (max-width: 48rem) {
    .carpet-hero .sofa-hero__media {
        background-position: 62% center;
    }

    .carpet-hero .sofa-hero__shade {
        background: linear-gradient(0deg, #fff 0%, rgba(255,255,255,0) 48%);
    }

    .carpet-structure__layout {
        grid-template-columns: 1fr;
    }

    .carpet-structure__sample {
        min-height: 27rem;
    }

    .carpet-structure__marker {
        right: auto;
        left: .75rem;
        max-width: calc(100% - 1.5rem);
    }

    .carpet-structure__marker--surface { top: .75rem; }
    .carpet-structure__marker--edge { bottom: 4.4rem; }
    .carpet-structure__marker--back { bottom: .75rem; }
}

/* Matratzenreinigung Köln additions */
.mattress-hero .sofa-hero__media {
    background:
        radial-gradient(circle at 76% 31%, rgba(217,244,107,.8) 0 4rem, transparent 4.1rem),
        linear-gradient(145deg, transparent 0 53%, rgba(23,107,69,.08) 53.2% 54%, transparent 54.2%),
        linear-gradient(120deg, #eef2eb 0%, #fff 48%, #dfe9e1 100%);
}

.mattress-hero .sofa-hero__media::before,
.mattress-hero .sofa-hero__media::after {
    position: absolute;
    right: clamp(3rem, 9vw, 10rem);
    border: 1px solid rgba(23,107,69,.12);
    border-radius: 2.5rem;
    content: '';
    transform: rotate(-7deg);
}

.mattress-hero .sofa-hero__media::before {
    top: 22%;
    width: clamp(18rem, 37vw, 36rem);
    height: clamp(20rem, 35vw, 31rem);
    background:
        repeating-linear-gradient(90deg, transparent 0 3.5rem, rgba(23,107,69,.035) 3.55rem 3.65rem),
        #fafbf8;
    box-shadow: 0 2rem 5rem rgba(19,35,28,.14);
}

.mattress-hero .sofa-hero__media::after {
    top: 27%;
    right: clamp(5rem, 12vw, 13rem);
    width: clamp(14rem, 29vw, 28rem);
    height: clamp(4rem, 8vw, 7rem);
    border-radius: 2rem;
    background: #fff;
    box-shadow: 0 1rem 2rem rgba(19,35,28,.08);
}

.mattress-zones {
    background: var(--color-surface);
}

.mattress-zones__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr);
    gap: clamp(2rem, 6vw, 5.5rem);
    align-items: center;
}

.mattress-zones__visual {
    padding: clamp(1.2rem, 3vw, 2rem);
    border-radius: 1.3rem;
    background: var(--color-brand);
    box-shadow: 0 1.5rem 4rem rgba(19,35,28,.13);
}

.mattress-zones__bed {
    position: relative;
    min-height: clamp(25rem, 47vw, 40rem);
    overflow: hidden;
    border: .8rem solid rgba(255,255,255,.15);
    border-radius: 5rem 5rem 2rem 2rem;
    background:
        repeating-linear-gradient(90deg, rgba(255,255,255,.02) 0 4rem, rgba(255,255,255,.07) 4.05rem 4.15rem),
        rgba(255,255,255,.08);
}

.mattress-zones__pillow {
    position: absolute;
    top: 5%;
    left: 50%;
    width: 48%;
    height: 17%;
    border-radius: 2rem;
    background: rgba(255,255,255,.88);
    box-shadow: 0 1rem 2rem rgba(0,0,0,.08);
    transform: translateX(-50%);
}

.mattress-zones__area {
    position: absolute;
    left: 10%;
    width: 80%;
    border: 1px dashed rgba(217,244,107,.6);
    border-radius: 2rem;
    background: rgba(217,244,107,.08);
}

.mattress-zones__area--head {
    top: 25%;
    height: 19%;
}

.mattress-zones__area--center {
    top: 47%;
    height: 27%;
}

.mattress-zones__area--foot {
    top: 77%;
    height: 15%;
}

.mattress-zones__area i {
    position: absolute;
    top: .7rem;
    left: .7rem;
    display: grid;
    width: 2rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    background: var(--color-accent);
    color: var(--color-brand);
    font-size: .7rem;
    font-style: normal;
    font-weight: 900;
}

.mattress-zones__visual > p {
    margin: .8rem 0 0;
    color: rgba(255,255,255,.65);
    font-size: .76rem;
}

.mattress-method__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
}

.mattress-method__grid article {
    min-height: 21rem;
    padding: 1.4rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 1rem;
    background: rgba(255,255,255,.06);
}

.mattress-method__grid article:nth-child(2) {
    background: var(--color-accent);
    color: var(--color-ink);
}

.mattress-method__grid article > span {
    color: var(--color-accent);
    font-size: .72rem;
    font-weight: 900;
}

.mattress-method__grid article:nth-child(2) > span {
    color: var(--color-brand);
}

.mattress-method__grid h3 {
    margin: 6rem 0 .6rem;
    font-size: 1.35rem;
    line-height: 1.15;
}

.mattress-method__grid p {
    margin: 0;
    color: rgba(255,255,255,.68);
}

.mattress-method__grid article:nth-child(2) p {
    color: rgba(19,35,28,.7);
}

@media (max-width: 64rem) {
    .mattress-method__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 48rem) {
    .mattress-hero .sofa-hero__media::before {
        top: 10%;
        right: 16%;
        width: 68%;
        height: 62%;
    }

    .mattress-hero .sofa-hero__media::after {
        top: 15%;
        right: 25%;
        width: 50%;
        height: 16%;
    }

    .mattress-zones__layout,
    .mattress-method__grid {
        grid-template-columns: 1fr;
    }

    .mattress-zones__bed {
        min-height: 30rem;
    }

    .mattress-method__grid article {
        min-height: 17rem;
    }

    .mattress-method__grid h3 {
        margin-top: 4rem;
    }
}

/* Legal pages and consent management */
.legal-page {
    min-height: 70vh;
    padding: clamp(3rem, 7vw, 6.5rem) var(--space);
    background:
        radial-gradient(circle at 92% 3%, color-mix(in srgb, var(--color-accent) 26%, transparent), transparent 24rem),
        var(--color-surface);
}

.legal-document {
    width: min(100%, var(--content));
    margin-inline: auto;
    padding: clamp(1.4rem, 4vw, 3.75rem);
    border: 1px solid color-mix(in srgb, var(--color-ink) 11%, transparent);
    border-radius: clamp(1.25rem, 3vw, 2.5rem);
    background: #fff;
    box-shadow: 0 1.5rem 4rem rgba(19, 35, 28, .09);
}

.legal-document > * {
    width: min(100%, 58rem);
    margin-inline: auto;
}

.legal-document__header {
    padding-bottom: clamp(1.5rem, 4vw, 2.75rem);
    border-bottom: 1px solid color-mix(in srgb, var(--color-ink) 12%, transparent);
}

.legal-document h1 {
    max-width: 13ch;
    margin: .35rem 0 .75rem;
    font-size: clamp(2.5rem, 7vw, 5.25rem);
    line-height: .94;
    letter-spacing: -.065em;
}

.legal-document__intro {
    max-width: 42rem;
    margin: 0;
    color: color-mix(in srgb, var(--color-ink) 76%, transparent);
    font-size: clamp(1.05rem, 2vw, 1.3rem);
}

.legal-document__section {
    padding-top: clamp(1.65rem, 4vw, 2.65rem);
}

.legal-document__section h2 {
    margin: 0 0 .7rem;
    font-size: clamp(1.3rem, 2.5vw, 1.75rem);
    line-height: 1.2;
}

.legal-document__section h3 {
    margin: 0 0 .35rem;
    font-size: 1rem;
}

.legal-document p,
.legal-document address {
    margin: .65rem 0 0;
}

.legal-document address {
    font-style: normal;
}

.legal-document a {
    color: var(--color-brand);
    font-weight: 750;
    text-underline-offset: .16em;
}

.legal-document code {
    padding: .12rem .35rem;
    border-radius: .35rem;
    background: var(--color-surface);
    font-size: .9em;
}

.legal-review-note {
    margin-top: clamp(1.5rem, 4vw, 2.75rem);
    padding: 1rem 1.15rem;
    border: 1px solid #d89020;
    border-left-width: .35rem;
    border-radius: .85rem;
    background: #fff8e8;
    color: #5a3a08;
}

.legal-review-note strong,
.legal-inline-review {
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .06em;
}

.legal-review-note p {
    margin: .3rem 0 0;
}

.legal-inline-review {
    display: inline-block;
    margin-left: .2rem;
    color: #8a5607;
}

.legal-document__meta {
    margin-top: clamp(2rem, 5vw, 3.5rem) !important;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--color-ink) 12%, transparent);
    color: color-mix(in srgb, var(--color-ink) 62%, transparent);
    font-size: .9rem;
}

.cookie-status-card {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    margin-top: clamp(1.5rem, 4vw, 2.75rem);
    padding: 1.1rem;
    border-radius: 1rem;
    background: var(--color-ink);
    color: #fff;
}

.cookie-status-card__mark {
    display: grid;
    flex: 0 0 2.5rem;
    width: 2.5rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    background: var(--color-accent);
    color: var(--color-brand);
    font-weight: 900;
}

.cookie-status-card p {
    margin: .2rem 0 0;
    color: rgba(255, 255, 255, .76);
}

.legal-consent-open {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    min-height: 3rem;
    gap: .75rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
    padding: .45rem .5rem .45rem 1rem;
    border: 0;
    border-radius: .8rem;
    background: var(--color-brand);
    color: #fff;
    font: inherit;
    font-size: .9rem;
    font-weight: 850;
    cursor: pointer;
}

.legal-consent-open > span:last-child {
    display: grid;
    width: 2rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    background: var(--color-accent);
    color: var(--color-brand);
    transition: transform .2s ease;
}

.legal-consent-open:hover > span:last-child,
.legal-consent-open:focus-visible > span:last-child {
    transform: translate(.1rem, -.1rem);
}

.legal-storage-list {
    display: grid;
    gap: .75rem;
    margin-top: 1rem;
}

.legal-storage-list article {
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--color-ink) 12%, transparent);
    border-radius: .9rem;
    background: var(--color-surface);
}

.legal-table-scroll {
    margin-block: 1rem 1.25rem;
    overflow-x: auto;
    border: 1px solid color-mix(in srgb, var(--color-ink) 12%, transparent);
    border-radius: .9rem;
    background: var(--color-surface);
}

.legal-table-scroll:focus-visible {
    outline: .18rem solid color-mix(in srgb, var(--color-brand) 38%, transparent);
    outline-offset: .15rem;
}

.legal-cookie-table {
    width: 100%;
    min-width: 42rem;
    border-collapse: collapse;
    font-size: .92rem;
}

.legal-cookie-table th,
.legal-cookie-table td {
    padding: .85rem 1rem;
    border-bottom: 1px solid color-mix(in srgb, var(--color-ink) 10%, transparent);
    text-align: left;
    vertical-align: top;
}

.legal-cookie-table th {
    color: var(--color-brand);
    background: color-mix(in srgb, var(--color-brand) 7%, var(--color-surface));
    font-size: .76rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.legal-cookie-table tbody tr:last-child td {
    border-bottom: 0;
}

.consent-banner[hidden],
.consent-banner [hidden] {
    display: none !important;
}

.consent-banner {
    position: fixed;
    right: max(1rem, env(safe-area-inset-right));
    bottom: max(1rem, env(safe-area-inset-bottom));
    left: max(1rem, env(safe-area-inset-left));
    z-index: 120;
    width: min(calc(100% - 2rem), 32rem);
    max-height: calc(100dvh - 2rem);
    margin-inline: auto;
    padding: 1rem 1.1rem;
    overflow: auto;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 1.15rem;
    background: rgba(19, 35, 28, .98);
    color: #fff;
    box-shadow: 0 1.5rem 5rem rgba(0, 0, 0, .35);
}

.consent-banner__summary {
    display: block;
}

.consent-banner h2 {
    margin: 0;
    color: #fff;
    font-size: 1.15rem;
    line-height: 1.1;
}

.consent-banner__summary p:last-child {
    max-width: 54rem;
    margin: .35rem 0 0;
    color: rgba(255, 255, 255, .72);
    font-size: .9rem;
    line-height: 1.4;
}

.consent-banner__settings {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    margin-top: 1rem;
}

.consent-category {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    justify-content: space-between;
    padding: .85rem;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: .85rem;
    background: rgba(255, 255, 255, .06);
}

.consent-category span {
    display: grid;
    gap: .2rem;
}

.consent-category small {
    color: rgba(255, 255, 255, .65);
    line-height: 1.35;
}

.consent-category input {
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .15rem;
    accent-color: var(--color-accent);
}

.consent-banner__footer {
    display: grid;
    gap: .65rem;
    margin-top: .75rem;
}

.consent-banner__footer > p {
    display: none;
    max-width: 32rem;
    margin: 0;
    color: rgba(255, 255, 255, .68);
    font-size: .85rem;
}

.consent-banner[data-consent-view="details"] .consent-banner__footer > p {
    display: block;
}

.consent-banner a {
    color: var(--color-accent);
    font-weight: 750;
    text-underline-offset: .14em;
}

.consent-banner__actions {
    display: grid;
    gap: .45rem;
}

.consent-action {
    min-height: 2.85rem;
    padding: .55rem .85rem;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: .85rem;
    font: inherit;
    font-size: .9rem;
    font-weight: 850;
    cursor: pointer;
}

.consent-action--secondary,
.consent-action--settings {
    background: transparent;
    color: #fff;
}

.consent-banner__quick-links {
    display: flex;
    gap: .45rem;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, .5);
}

.consent-action--link {
    width: auto;
    min-height: auto;
    padding: .2rem;
    border: 0;
    border-radius: .2rem;
    background: transparent;
    color: rgba(255, 255, 255, .78);
    font-size: .78rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: .18em;
}

.consent-action--primary {
    border-color: var(--color-accent);
    background: var(--color-accent);
    color: var(--color-brand);
}

.consent-banner button::before {
    animation: none !important;
    content: none !important;
}

.consent-action:hover,
.consent-action:focus-visible,
.legal-consent-open:hover,
.legal-consent-open:focus-visible {
    outline: .18rem solid color-mix(in srgb, var(--color-accent) 65%, transparent);
    outline-offset: .15rem;
}

@media (max-width: 52rem) {
    .consent-banner__settings {
        grid-template-columns: 1fr;
    }

    .consent-action {
        width: 100%;
    }
}

@media (max-width: 47.99rem) {
    .consent-banner {
        right: max(.5rem, env(safe-area-inset-right));
        bottom: max(.5rem, env(safe-area-inset-bottom));
        left: max(.5rem, env(safe-area-inset-left));
        box-sizing: border-box;
        width: auto;
        max-height: min(260px, 34dvh);
        padding: 1rem;
        border-width: 1px;
        border-radius: 1.25rem;
        background: rgba(19, 35, 28, .96);
        box-shadow: 0 1rem 3rem rgba(0, 0, 0, .25);
        overscroll-behavior: contain;
    }

    .consent-banner[data-consent-view="details"] {
        max-height: min(46rem, 88dvh);
    }

    .consent-banner__summary {
        padding: 0;
    }

    .consent-banner h2 {
        padding-top: .1rem;
        font-size: 1.1rem;
        line-height: 1.15;
    }

    .consent-banner__summary p:last-child {
        display: -webkit-box;
        margin-top: .45rem;
        overflow: hidden;
        color: rgba(255, 255, 255, .74);
        font-size: .88rem;
        line-height: 1.4;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .consent-banner__footer {
        grid-template-columns: minmax(0, 1fr);
        gap: .7rem;
        align-items: stretch;
        justify-content: stretch;
        margin-top: .85rem;
    }

    .consent-banner__footer > p {
        display: none;
        font-size: .78rem;
        line-height: 1.4;
    }

    .consent-banner[data-consent-view="details"] .consent-banner__footer > p {
        display: block;
    }

    .consent-banner__actions {
        width: 100%;
        gap: .35rem;
    }

    .consent-action {
        min-height: 2.9rem;
        padding: .55rem .65rem;
        font-size: .86rem;
        line-height: 1.15;
    }

    .consent-action--primary[data-consent-accept] {
        grid-column: 1 / -1;
    }

    .consent-banner[data-consent-view="details"] .consent-banner__actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .consent-banner__settings {
        gap: .55rem;
        margin-top: .8rem;
    }

    .consent-category {
        padding: .75rem;
    }

    .consent-category small {
        font-size: .76rem;
    }
}

@media (max-width: 34rem) {
    .legal-page {
        padding-inline: var(--space);
    }

    .legal-document {
        padding-inline: 1rem;
    }

}

@media (prefers-reduced-motion: reduce) {
    .legal-consent-open > span:last-child {
        transition: none;
    }
}

@media print {
    .site-header,
    .site-footer,
    .scroll-home,
    .consent-banner {
        display: none !important;
    }

    .legal-page {
        min-height: 0;
        padding: 0;
        background: #fff;
    }

    .legal-document {
        width: 100%;
        padding: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .legal-document > * {
        width: 100%;
    }

    .legal-document h1 {
        font-size: 2.4rem;
    }

    .legal-document__section {
        break-inside: avoid-page;
    }

    .legal-document a {
        color: inherit;
    }
}

/* Sofareinigung Köln service page */
.sofa-hero {
    position: relative;
    isolation: isolate;
    min-height: clamp(43rem, 78vh, 56rem);
    display: grid;
    align-items: center;
    overflow: hidden;
    background: #f4f5f1;
}

.sofa-hero__media,
.sofa-hero__shade {
    position: absolute;
    inset: 0;
}

.sofa-hero__media {
    z-index: -2;
    background-color: #f4f5f1;
    background-image: url('../images/hero-99rng-real-v2.jpg');
    background-position: right center;
    background-repeat: no-repeat;
    background-size: auto 100%;
}

.sofa-hero__shade {
    z-index: -1;
    background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.97) 38%, rgba(255,255,255,.64) 56%, rgba(255,255,255,.04) 78%);
}

.sofa-hero__container,
.sofa-section__container,
.sofa-snapshot__container,
.sofa-final__container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.sofa-hero__container {
    padding-block: clamp(4rem, 8vw, 7rem);
}

.sofa-hero__content {
    width: min(100%, 43rem);
}

.sofa-kicker {
    display: flex;
    gap: .7rem;
    align-items: center;
    margin: 0 0 1rem;
    color: var(--color-brand);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.sofa-kicker > span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--color-brand) 30%, transparent);
    border-radius: 50%;
    font-size: .66rem;
    letter-spacing: 0;
}

.sofa-kicker > span:empty {
    width: .6rem;
    height: .6rem;
    border: 0;
    background: var(--color-accent);
    box-shadow: 0 0 0 .3rem color-mix(in srgb, var(--color-accent) 32%, transparent);
}

.sofa-hero h1 {
    max-width: 12ch;
    margin: 0;
    font-size: clamp(3rem, 6vw, 6.25rem);
    font-weight: 780;
    letter-spacing: -.06em;
    line-height: .94;
}

.sofa-hero h1 em,
.sofa-section__header h2 em,
.sofa-method__copy h2 em,
.sofa-final h2 em {
    color: var(--color-brand);
    font-style: normal;
}

.sofa-hero__lead {
    max-width: 40rem;
    margin: 1.5rem 0 0;
    color: #405049;
    font-size: clamp(1.05rem, 1.55vw, 1.3rem);
}

.sofa-hero__points {
    display: flex;
    gap: .75rem 1.5rem;
    flex-wrap: wrap;
    margin: 1.6rem 0 0;
    padding: 0;
    list-style: none;
}

.sofa-hero__points li {
    display: flex;
    gap: .55rem;
    align-items: center;
    font-size: .88rem;
    font-weight: 750;
}

.sofa-hero__points span {
    display: grid;
    width: 1.85rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: var(--color-brand);
    box-shadow: 0 .5rem 1.5rem rgba(19,35,28,.1);
}

.sofa-hero__actions {
    display: flex;
    gap: .8rem;
    flex-wrap: wrap;
    margin-top: 2rem;
}

.sofa-button {
    position: relative;
    isolation: isolate;
    min-height: 4rem;
    display: inline-flex;
    gap: 1.5rem;
    align-items: center;
    justify-content: space-between;
    padding: .8rem .85rem .8rem 1.3rem;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: .85rem;
    font-weight: 850;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.sofa-button > span:last-child {
    display: grid;
    width: 2.35rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    transition: transform .2s ease;
}

.sofa-button:hover,
.sofa-button:focus-visible {
    transform: translateY(-2px);
}

.sofa-button:hover > span:last-child,
.sofa-button:focus-visible > span:last-child {
    transform: translate(.1rem, -.1rem);
}

.sofa-button:focus-visible {
    outline: .2rem solid var(--color-accent);
    outline-offset: .18rem;
}

.sofa-button--primary {
    background: var(--color-brand);
    color: #fff;
    box-shadow: 0 1rem 2.5rem rgba(23,107,69,.2);
}

.sofa-button--primary > span:last-child,
.sofa-button--accent > span:last-child {
    background: var(--color-accent);
    color: var(--color-brand);
}

.sofa-button--text {
    border-color: rgba(19,35,28,.14);
    background: rgba(255,255,255,.78);
    color: var(--color-ink);
}

.sofa-button--text > span:last-child {
    background: var(--color-surface);
    color: var(--color-brand);
}

.sofa-hero__note {
    margin: .8rem 0 0;
    color: #65726c;
    font-size: .78rem;
}

.sofa-snapshot {
    position: relative;
    z-index: 2;
    margin-top: -2rem;
}

.sofa-snapshot__container {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: .5rem;
    border: 1px solid rgba(19,35,28,.08);
    border-radius: 1.2rem;
    background: #fff;
    box-shadow: 0 1.2rem 3.5rem rgba(19,35,28,.1);
}

.sofa-snapshot article {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .9rem;
    padding: 1.2rem;
}

.sofa-snapshot article + article {
    border-left: 1px solid rgba(19,35,28,.09);
}

.sofa-snapshot article > span {
    color: var(--color-brand);
    font-size: .7rem;
    font-weight: 900;
}

.sofa-snapshot strong {
    display: block;
    margin-bottom: .2rem;
}

.sofa-snapshot p {
    margin: 0;
    color: #637169;
    font-size: .85rem;
    line-height: 1.45;
}

.sofa-section {
    padding-block: clamp(5rem, 9vw, 8rem);
}

.sofa-section__header {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(16rem, .65fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.sofa-section__header h2,
.sofa-method__copy h2,
.sofa-final h2 {
    max-width: 15ch;
    margin: 0;
    font-size: clamp(2.55rem, 5.3vw, 5.2rem);
    font-weight: 760;
    letter-spacing: -.055em;
    line-height: .98;
}

.sofa-section__header > p {
    margin: 0;
    padding-left: 1.15rem;
    border-left: .18rem solid var(--color-accent);
    color: #59675f;
}

.sofa-needs {
    background: #fff;
}

.sofa-needs__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
}

.sofa-needs__grid article {
    min-height: 20rem;
    padding: 1.4rem;
    border: 1px solid rgba(19,35,28,.09);
    border-radius: 1rem;
    background: var(--color-surface);
}

.sofa-needs__grid article:nth-child(2) {
    background: var(--color-brand);
    color: #fff;
}

.sofa-needs__icon {
    display: grid;
    width: 2.7rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: .75rem;
    background: var(--color-accent);
    color: var(--color-brand);
    font-size: .72rem;
    font-weight: 900;
}

.sofa-needs__grid h3 {
    margin: 5rem 0 .6rem;
    font-size: clamp(1.25rem, 2vw, 1.6rem);
    line-height: 1.15;
}

.sofa-needs__grid p {
    margin: 0;
    color: #627068;
}

.sofa-needs__grid article:nth-child(2) p {
    color: rgba(255,255,255,.72);
}

.sofa-method {
    background: var(--color-surface);
}

.sofa-method__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr);
    gap: clamp(2rem, 6vw, 5.5rem);
    align-items: center;
}

.sofa-method__visual {
    margin: 0;
}

.sofa-method__visual img {
    width: 100%;
    aspect-ratio: 4 / 4.5;
    display: block;
    object-fit: cover;
    border-radius: 1.2rem;
    box-shadow: 0 1.5rem 4rem rgba(19,35,28,.12);
}

.sofa-method__visual figcaption {
    margin-top: .65rem;
    color: #69766f;
    font-size: .78rem;
}

.sofa-method__copy > p:not(.sofa-kicker) {
    margin: 1.35rem 0 0;
    color: #58675f;
    font-size: 1.05rem;
}

.sofa-method__steps {
    display: grid;
    gap: 0;
    margin: 2rem 0 0;
    padding: 0;
    list-style: none;
}

.sofa-method__steps li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    padding: 1rem 0;
    border-top: 1px solid rgba(19,35,28,.1);
}

.sofa-method__steps li > span {
    display: grid;
    width: 2.2rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    background: var(--color-accent);
    color: var(--color-brand);
    font-size: .75rem;
    font-weight: 900;
}

.sofa-method__steps p {
    margin: .2rem 0 0;
    color: #66746c;
    font-size: .9rem;
}

.sofa-result {
    background: var(--color-ink);
    color: #fff;
}

.sofa-result .sofa-kicker,
.sofa-result .sofa-section__header h2 em {
    color: var(--color-accent);
}

.sofa-result .sofa-section__header > p {
    color: rgba(255,255,255,.7);
}

.sofa-comparison {
    margin: 0;
}

.sofa-comparison .comparison-card__image {
    min-height: clamp(24rem, 57vw, 43rem);
    border-radius: 1.2rem;
}

.sofa-comparison figcaption {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding-top: .9rem;
    color: rgba(255,255,255,.68);
    font-size: .82rem;
}

.sofa-comparison figcaption strong {
    color: #fff;
}

.sofa-process {
    background: #fff;
}

.sofa-process__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: process;
}

.sofa-process__grid li {
    min-height: 19rem;
    padding: 1.25rem;
    border-top: 1px solid rgba(19,35,28,.14);
    border-bottom: 1px solid rgba(19,35,28,.14);
}

.sofa-process__grid li + li {
    border-left: 1px solid rgba(19,35,28,.14);
}

.sofa-process__grid li:nth-child(even) {
    background: var(--color-surface);
}

.sofa-process__grid span {
    color: var(--color-brand);
    font-size: .72rem;
    font-weight: 900;
}

.sofa-process__grid h3 {
    margin: 6rem 0 .55rem;
    font-size: 1.2rem;
    line-height: 1.18;
}

.sofa-process__grid p {
    margin: 0;
    color: #647169;
    font-size: .88rem;
}

.sofa-scope {
    background: var(--color-surface);
}

.sofa-scope__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.sofa-scope__card {
    padding: clamp(1.4rem, 3vw, 2.5rem);
    border: 1px solid rgba(19,35,28,.1);
    border-radius: 1.2rem;
    background: #fff;
}

.sofa-scope__card--positive {
    background: var(--color-brand);
    color: #fff;
}

.sofa-scope__label {
    margin: 0 0 1.5rem;
    color: var(--color-brand);
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.sofa-scope__card--positive .sofa-scope__label {
    color: var(--color-accent);
}

.sofa-scope__card ul {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sofa-scope__card li {
    display: grid;
    grid-template-columns: 2rem 1fr;
    gap: .7rem;
    align-items: center;
    padding: .85rem 0;
    border-top: 1px solid rgba(19,35,28,.1);
}

.sofa-scope__card--positive li {
    border-color: rgba(255,255,255,.14);
}

.sofa-scope__card li span {
    display: grid;
    width: 1.7rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    background: var(--color-surface);
    color: var(--color-brand);
    font-weight: 900;
}

.sofa-scope__card--positive li span {
    background: var(--color-accent);
}

.sofa-faq {
    background: #fff;
}

.sofa-faq__layout {
    display: grid;
    grid-template-columns: minmax(16rem, .65fr) minmax(0, 1.35fr);
    gap: clamp(1rem, 3vw, 2rem);
    align-items: start;
}

.sofa-faq__contact {
    position: sticky;
    top: 7rem;
    padding: 1.5rem;
    border-radius: 1.1rem;
    background: var(--color-brand);
    color: #fff;
}

.sofa-faq__contact > p {
    margin: 0;
    color: var(--color-accent);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.sofa-faq__contact h3 {
    margin: 1rem 0 2rem;
    font-size: clamp(1.6rem, 3vw, 2.5rem);
    line-height: 1.05;
}

.sofa-faq__contact a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .9rem 0;
    border-top: 1px solid rgba(255,255,255,.15);
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}

.sofa-faq__contact a span {
    color: var(--color-accent);
    transition: transform .2s ease;
}

.sofa-faq__contact a:hover span,
.sofa-faq__contact a:focus-visible span {
    transform: translate(.1rem, -.1rem);
}

.sofa-faq__list {
    border-top: 1px solid rgba(19,35,28,.14);
}

.sofa-faq__list details {
    border-bottom: 1px solid rgba(19,35,28,.14);
}

.sofa-faq__list summary {
    display: grid;
    grid-template-columns: 2rem 1fr auto;
    gap: .8rem;
    align-items: center;
    padding: 1.35rem .2rem;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.sofa-faq__list summary::-webkit-details-marker {
    display: none;
}

.sofa-faq__list summary > span {
    color: var(--color-brand);
    font-size: .7rem;
}

.sofa-faq__list summary i {
    position: relative;
    width: 1.1rem;
    height: 1.1rem;
}

.sofa-faq__list summary i::before,
.sofa-faq__list summary i::after {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--color-brand);
    content: '';
}

.sofa-faq__list summary i::after {
    transform: rotate(90deg);
    transition: transform .2s ease;
}

.sofa-faq__list details[open] summary i::after {
    transform: rotate(0);
}

.sofa-faq__list details > p {
    max-width: 48rem;
    margin: -.45rem 2rem 0;
    padding: 0 0 1.4rem;
    color: #5e6c64;
}

.sofa-final {
    padding-block: clamp(4rem, 8vw, 7rem);
    background: var(--color-ink);
    color: #fff;
}

.sofa-final__container {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .55fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
}

.sofa-final .sofa-kicker,
.sofa-final h2 em {
    color: var(--color-accent);
}

.sofa-final__action p {
    margin: 0 0 1.2rem;
    color: rgba(255,255,255,.7);
}

.sofa-button--accent {
    width: 100%;
    background: var(--color-accent);
    color: var(--color-brand);
}

.sofa-button--accent > span:last-child {
    background: var(--color-brand);
    color: #fff;
}

@media (max-width: 64rem) {
    .sofa-hero__shade {
        background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.96) 48%, rgba(255,255,255,.25) 86%);
    }

    .sofa-needs__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sofa-process__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sofa-process__grid li:nth-child(4) {
        border-left: 0;
    }
}

@media (max-width: 48rem) {
    .sofa-hero__content,
    .sofa-section__header > *,
    .sofa-method__layout > *,
    .sofa-final__container > * {
        min-width: 0;
    }

    .sofa-kicker,
    .sofa-hero h1,
    .sofa-section__header h2,
    .sofa-method__copy h2,
    .sofa-final h2 {
        overflow-wrap: anywhere;
    }

    .sofa-hero {
        min-height: auto;
        display: block;
        padding-top: min(67vw, 29rem);
        background: #fff;
    }

    .sofa-hero__media {
        bottom: auto;
        height: min(70vw, 30rem);
        background-position: 68% center;
    }

    .sofa-hero__shade {
        bottom: auto;
        height: min(72vw, 31rem);
        background: linear-gradient(0deg, #fff 0%, rgba(255,255,255,0) 48%);
    }

    .sofa-hero__container {
        padding-block: 1rem 4rem;
    }

    .sofa-hero h1 {
        font-size: clamp(2.8rem, 13vw, 4.5rem);
    }

    .sofa-hero__actions,
    .sofa-button {
        width: 100%;
    }

    .sofa-snapshot {
        margin-top: -1.5rem;
    }

    .sofa-snapshot__container,
    .sofa-section__header,
    .sofa-method__layout,
    .sofa-scope__grid,
    .sofa-faq__layout,
    .sofa-final__container {
        grid-template-columns: 1fr;
    }

    .sofa-snapshot article + article {
        border-top: 1px solid rgba(19,35,28,.09);
        border-left: 0;
    }

    .sofa-section__header {
        gap: 1.3rem;
    }

    .sofa-section__header h2,
    .sofa-method__copy h2,
    .sofa-final h2 {
        font-size: clamp(2.5rem, 12vw, 4rem);
    }

    .sofa-needs__grid,
    .sofa-process__grid {
        grid-template-columns: 1fr;
    }

    .sofa-needs__grid article {
        min-height: 16rem;
    }

    .sofa-needs__grid h3,
    .sofa-process__grid h3 {
        margin-top: 3.5rem;
    }

    .sofa-process__grid li,
    .sofa-process__grid li + li,
    .sofa-process__grid li:nth-child(4) {
        border-top: 1px solid rgba(19,35,28,.14);
        border-right: 1px solid rgba(19,35,28,.14);
        border-bottom: 0;
        border-left: 1px solid rgba(19,35,28,.14);
    }

    .sofa-process__grid li:last-child {
        border-bottom: 1px solid rgba(19,35,28,.14);
    }

    .sofa-comparison figcaption {
        display: grid;
    }

    .sofa-comparison .comparison-card__image {
        min-height: 0;
        aspect-ratio: 4 / 3;
    }

    .sofa-comparison--natural-mobile .comparison-card__image {
        aspect-ratio: 3 / 2;
    }

    .sofa-method__visual--full-mobile img {
        height: auto;
        aspect-ratio: auto;
        object-fit: contain;
        object-position: center;
    }

    .sofa-faq__contact {
        position: static;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sofa-button,
    .sofa-button > span:last-child,
    .sofa-faq__contact a span,
    .sofa-faq__list summary i::after {
        transition: none;
    }
}

/* Thank-you conversion page --------------------------------------------- */
.thank-you-page {
    overflow: hidden;
    color: var(--color-ink);
    background: #f7f8f4;
}

.thank-container {
    width: min(calc(100% - 2 * var(--space)), var(--content));
    margin-inline: auto;
}

.thank-hero {
    position: relative;
    isolation: isolate;
    padding-block: clamp(4.5rem, 9vw, 8rem);
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(217, 244, 107, .2), transparent 34%),
        #f7f8f4;
}

.thank-hero::before {
    position: absolute;
    inset: 0;
    z-index: -2;
    opacity: .38;
    background-image:
        linear-gradient(rgba(23, 107, 69, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(23, 107, 69, .05) 1px, transparent 1px);
    background-size: 4.5rem 4.5rem;
    content: '';
    mask-image: linear-gradient(to bottom, #000, transparent 85%);
}

.thank-hero__orb {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    filter: blur(.3rem);
    pointer-events: none;
}

.thank-hero__orb--one {
    top: -10rem;
    right: -7rem;
    width: 32rem;
    height: 32rem;
    border: 5rem solid rgba(217, 244, 107, .38);
}

.thank-hero__orb--two {
    bottom: -13rem;
    left: 36%;
    width: 23rem;
    height: 23rem;
    border: 1px solid rgba(23, 107, 69, .15);
}

.thank-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .72fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center;
}

.thank-eyebrow,
.thank-section-heading__eyebrow {
    display: flex;
    gap: .75rem;
    align-items: center;
    margin: 0 0 1.2rem;
    color: var(--color-brand);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.thank-eyebrow > span,
.thank-section-heading__eyebrow > span {
    display: grid;
    width: 2.15rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    font-size: .74rem;
    letter-spacing: 0;
    box-shadow: 0 0 0 .35rem rgba(217, 244, 107, .28);
}

.thank-hero h1 {
    max-width: 12ch;
    margin: 0;
    font-size: clamp(3.2rem, 7vw, 7rem);
    font-weight: 780;
    letter-spacing: -.065em;
    line-height: .92;
    text-wrap: balance;
}

.thank-hero h1 em,
.thank-section-heading h2 em,
.thank-expectations h2 em {
    color: var(--color-brand);
    font-style: normal;
}

.thank-hero__lead {
    max-width: 47rem;
    margin: 1.6rem 0 0;
    color: #4f5e56;
    font-size: clamp(1.03rem, 1.5vw, 1.24rem);
    line-height: 1.7;
}

.thank-reference {
    max-width: 43rem;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1rem;
    align-items: center;
    margin-top: 1.8rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(23, 107, 69, .16);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .78);
    box-shadow: 0 1rem 3rem rgba(19, 35, 28, .08);
    backdrop-filter: blur(.7rem);
}

.thank-reference__icon {
    display: grid;
    width: 2.8rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: .75rem;
    color: #fff;
    background: var(--color-brand);
    font-weight: 900;
}

.thank-reference small {
    display: block;
    color: #78837d;
    font-size: .64rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.thank-reference strong {
    display: block;
    margin-top: .1rem;
    font-size: .88rem;
}

.thank-reference__number {
    padding-left: 1rem;
    border-left: 1px solid rgba(19, 35, 28, .1);
    text-align: right;
}

.thank-reference__number strong {
    color: var(--color-brand);
    font-size: 1.15rem;
}

.thank-hero__actions {
    display: flex;
    gap: .8rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

.thank-button {
    position: relative;
    isolation: isolate;
    min-height: 4rem;
    display: inline-flex;
    gap: 1.2rem;
    align-items: center;
    justify-content: space-between;
    padding: .8rem .8rem .8rem 1.25rem;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: .85rem;
    font-weight: 850;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.thank-button::before,
.thank-contact-card > a::before {
    position: absolute;
    top: -50%;
    left: -75%;
    z-index: 3;
    width: 40%;
    height: 200%;
    background: linear-gradient(
        100deg,
        transparent 0%,
        rgba(255, 255, 255, 0) 30%,
        rgba(255, 255, 255, .55) 50%,
        rgba(255, 255, 255, 0) 70%,
        transparent 100%
    );
    content: '';
    pointer-events: none;
    transform: rotate(18deg);
    animation: rng99-button-shimmer 5.5s ease-in-out infinite;
}

.thank-button > span:last-child {
    display: grid;
    width: 2.35rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    transition: transform .2s ease;
}

.thank-button:hover,
.thank-button:focus-visible {
    transform: translateY(-2px);
}

.thank-button:hover > span:last-child,
.thank-button:focus-visible > span:last-child {
    transform: translate(.12rem, -.12rem);
}

.thank-button:focus-visible {
    outline: .2rem solid var(--color-accent);
    outline-offset: .2rem;
}

.thank-button--primary {
    color: #fff;
    background: var(--color-brand);
    box-shadow: 0 1rem 2.5rem rgba(23, 107, 69, .2);
}

.thank-button--primary > span:last-child {
    color: var(--color-brand);
    background: var(--color-accent);
}

.thank-button--secondary {
    border-color: rgba(19, 35, 28, .12);
    color: var(--color-ink);
    background: rgba(255, 255, 255, .78);
}

.thank-button--secondary > span:last-child {
    color: #fff;
    background: var(--color-brand);
}

.thank-hero__note {
    margin: .9rem 0 0;
    color: #748078;
    font-size: .75rem;
}

.thank-next {
    padding: clamp(1.4rem, 3vw, 2.2rem);
    border-radius: 1.4rem;
    color: #fff;
    background: #10251c;
    box-shadow: 0 2rem 5rem rgba(19, 35, 28, .2);
}

.thank-next__eyebrow {
    margin: 0 0 1.4rem;
    color: var(--color-accent);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.thank-next ol {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.thank-next li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    padding-block: 1.15rem;
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.thank-next li > span {
    display: grid;
    width: 2.35rem;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid rgba(217, 244, 107, .3);
    border-radius: 50%;
    color: var(--color-accent);
    font-size: .66rem;
    font-weight: 850;
}

.thank-next li strong {
    display: block;
    font-size: .9rem;
}

.thank-next li p {
    margin: .35rem 0 0;
    color: rgba(255, 255, 255, .58);
    font-size: .76rem;
    line-height: 1.55;
}

.thank-next__trust {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .8rem;
    align-items: center;
    margin-top: 1rem;
    padding: .85rem;
    border-radius: .9rem;
    background: rgba(217, 244, 107, .09);
}

.thank-next__trust > span {
    display: grid;
    width: 2.8rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: .7rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font-weight: 900;
}

.thank-next__trust p {
    margin: 0;
}

.thank-next__trust strong,
.thank-next__trust small {
    display: block;
}

.thank-next__trust strong {
    font-size: .78rem;
}

.thank-next__trust small {
    margin-top: .15rem;
    color: rgba(255, 255, 255, .5);
    font-size: .64rem;
    line-height: 1.4;
}

.thank-prep,
.thank-services {
    padding-block: clamp(5rem, 10vw, 8rem);
}

.thank-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(18rem, .6fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.thank-section-heading h2,
.thank-expectations h2 {
    max-width: 15ch;
    margin: 0;
    font-size: clamp(2.65rem, 5.5vw, 5.3rem);
    letter-spacing: -.055em;
    line-height: .98;
}

.thank-section-heading > p {
    margin: 0 0 .35rem;
    padding-left: 1.2rem;
    border-left: .18rem solid var(--color-accent);
    color: #5e6b64;
    line-height: 1.65;
}

.thank-prep__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.thank-prep__grid article {
    position: relative;
    min-height: 20rem;
    display: flex;
    flex-direction: column;
    padding: 1.4rem;
    overflow: hidden;
    border: 1px solid rgba(19, 35, 28, .09);
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 1.2rem 3.5rem rgba(19, 35, 28, .06);
}

.thank-prep__grid article:nth-child(2) {
    background: #eef3ed;
}

.thank-prep__grid article:nth-child(3) {
    color: #fff;
    background: var(--color-brand);
}

.thank-card-number {
    color: #87928b;
    font-size: .68rem;
    font-weight: 850;
}

.thank-prep__grid article:nth-child(3) .thank-card-number {
    color: rgba(255, 255, 255, .55);
}

.thank-card-icon {
    display: grid;
    width: 3.2rem;
    aspect-ratio: 1;
    margin-top: 1.2rem;
    place-items: center;
    border-radius: .85rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font-size: 1.2rem;
    font-weight: 900;
}

.thank-prep__grid h3 {
    margin: auto 0 .7rem;
    font-size: 1.45rem;
    letter-spacing: -.035em;
}

.thank-prep__grid p {
    margin: 0;
    color: #647168;
    font-size: .84rem;
    line-height: 1.6;
}

.thank-prep__grid article:nth-child(3) p {
    color: rgba(255, 255, 255, .66);
}

.thank-expectations {
    position: relative;
    isolation: isolate;
    padding-block: clamp(5rem, 10vw, 8rem);
    overflow: hidden;
    color: #fff;
    background: #10251c;
}

.thank-expectations::before {
    position: absolute;
    right: -10rem;
    bottom: -18rem;
    z-index: -1;
    width: 38rem;
    height: 38rem;
    border: 5rem solid rgba(217, 244, 107, .07);
    border-radius: 50%;
    content: '';
}

.thank-expectations__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(19rem, .55fr);
    gap: clamp(2.5rem, 8vw, 8rem);
    align-items: center;
}

.thank-section-heading__eyebrow--light {
    color: var(--color-accent);
}

.thank-expectations h2 em {
    color: var(--color-accent);
}

.thank-expectations__content > p:not(.thank-section-heading__eyebrow) {
    max-width: 43rem;
    margin: 1.5rem 0 0;
    color: rgba(255, 255, 255, .63);
    line-height: 1.7;
}

.thank-expectations__content ul {
    display: grid;
    gap: .75rem;
    margin: 1.6rem 0 0;
    padding: 0;
    list-style: none;
}

.thank-expectations__content li {
    display: flex;
    gap: .7rem;
    align-items: center;
    font-size: .86rem;
    font-weight: 750;
}

.thank-expectations__content li span {
    display: grid;
    width: 1.8rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    font-size: .7rem;
}

.thank-contact-card {
    padding: clamp(1.4rem, 3vw, 2rem);
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 1.3rem;
    background: rgba(255, 255, 255, .06);
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .18);
}

.thank-contact-card__badge {
    display: inline-flex;
    padding: .4rem .65rem;
    border-radius: 999px;
    color: var(--color-brand);
    background: var(--color-accent);
    font-size: .65rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.thank-contact-card h3 {
    margin: 1.2rem 0 0;
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    letter-spacing: -.045em;
    line-height: 1.05;
}

.thank-contact-card > p {
    margin: .9rem 0 0;
    color: rgba(255, 255, 255, .62);
    line-height: 1.6;
}

.thank-contact-card > a {
    position: relative;
    isolation: isolate;
    min-height: 4rem;
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1.3rem;
    padding: .75rem .8rem .75rem 1.1rem;
    overflow: hidden;
    border-radius: .8rem;
    color: var(--color-brand);
    background: var(--color-accent);
    font-weight: 850;
    text-decoration: none;
}

.thank-contact-card > a > span:last-child {
    display: grid;
    width: 2.35rem;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--color-brand);
    transition: transform .2s ease;
}

.thank-contact-card > a:hover > span:last-child,
.thank-contact-card > a:focus-visible > span:last-child {
    transform: translate(.12rem, -.12rem);
}

.thank-contact-card dl {
    display: grid;
    gap: .65rem;
    margin: 1.2rem 0 0;
}

.thank-contact-card dl div {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding-top: .65rem;
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.thank-contact-card dt {
    color: rgba(255, 255, 255, .45);
    font-size: .68rem;
}

.thank-contact-card dd {
    margin: 0;
    font-size: .72rem;
    font-weight: 750;
}

.thank-contact-card dd a {
    color: #fff;
    text-decoration: none;
}

.thank-services {
    background: #f7f8f4;
}

.thank-services__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border: 1px solid rgba(19, 35, 28, .1);
    border-radius: 1.2rem;
    overflow: hidden;
    background: #fff;
}

.thank-services__grid > a {
    min-height: 15rem;
    display: flex;
    flex-direction: column;
    padding: 1.3rem;
    color: var(--color-ink);
    text-decoration: none;
    transition: color .2s ease, background-color .2s ease;
}

.thank-services__grid > a + a {
    border-left: 1px solid rgba(19, 35, 28, .1);
}

.thank-services__grid > a:hover,
.thank-services__grid > a:focus-visible,
.thank-services__grid > a[aria-current="page"] {
    color: #fff;
    background: var(--color-brand);
}

.thank-services__grid > a:focus-visible {
    outline: .2rem solid var(--color-accent);
    outline-offset: -.3rem;
}

.thank-services__grid > a > span {
    color: #87928b;
    font-size: .68rem;
    font-weight: 850;
}

.thank-services__grid > a:hover > span,
.thank-services__grid > a:focus-visible > span,
.thank-services__grid > a[aria-current="page"] > span {
    color: rgba(255, 255, 255, .5);
}

.thank-services__grid strong {
    margin-top: auto;
    font-size: 1.4rem;
    letter-spacing: -.035em;
}

.thank-services__grid small {
    margin-top: .35rem;
    color: #758078;
}

.thank-services__grid > a:hover small,
.thank-services__grid > a:focus-visible small,
.thank-services__grid > a[aria-current="page"] small {
    color: rgba(255, 255, 255, .58);
}

.thank-services__grid i {
    display: grid;
    width: 2.35rem;
    aspect-ratio: 1;
    margin-top: 1rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    font-style: normal;
    transition: transform .2s ease;
}

.thank-services__grid > a:hover i,
.thank-services__grid > a:focus-visible i {
    transform: translate(.12rem, -.12rem);
}

.thank-home-link {
    display: flex;
    gap: 2rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(19, 35, 28, .1);
}

.thank-home-link p {
    margin: 0;
    color: #66736b;
}

.thank-home-link p strong {
    color: var(--color-ink);
}

@media (max-width: 64rem) {
    .thank-hero__layout,
    .thank-expectations__layout {
        grid-template-columns: 1fr;
    }

    .thank-next {
        max-width: 44rem;
    }

    .thank-prep__grid,
    .thank-services__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .thank-services__grid > a:nth-child(3) {
        border-top: 1px solid rgba(19, 35, 28, .1);
        border-left: 0;
    }

    .thank-services__grid > a:nth-child(4) {
        border-top: 1px solid rgba(19, 35, 28, .1);
    }
}

@media (max-width: 47.99rem) {
    .thank-hero {
        padding-block: 3.5rem 4.5rem;
    }

    .thank-hero h1 {
        font-size: clamp(3rem, 15vw, 4.7rem);
    }

    .thank-hero__lead {
        font-size: .98rem;
    }

    .thank-reference {
        grid-template-columns: auto 1fr;
    }

    .thank-reference__number {
        grid-column: 1 / -1;
        padding: .75rem 0 0;
        border-top: 1px solid rgba(19, 35, 28, .1);
        border-left: 0;
        text-align: left;
    }

    .thank-hero__actions,
    .thank-button {
        width: 100%;
    }

    .thank-section-heading {
        grid-template-columns: 1fr;
        gap: 1.3rem;
    }

    .thank-section-heading h2,
    .thank-expectations h2 {
        font-size: clamp(2.55rem, 12vw, 4rem);
    }

    .thank-prep__grid,
    .thank-services__grid {
        grid-template-columns: 1fr;
    }

    .thank-prep__grid article {
        min-height: 16rem;
    }

    .thank-services__grid > a {
        min-height: 12rem;
    }

    .thank-services__grid > a + a,
    .thank-services__grid > a:nth-child(3),
    .thank-services__grid > a:nth-child(4) {
        border-top: 1px solid rgba(19, 35, 28, .1);
        border-left: 0;
    }

    .thank-home-link {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .thank-button,
    .thank-button > span:last-child,
    .thank-contact-card > a > span:last-child,
    .thank-services__grid > a,
    .thank-services__grid i {
        transition: none;
    }

    .thank-button::before,
    .thank-contact-card > a::before {
        animation: none;
        content: none;
    }
}

/* Normalize compact CTA boundaries used by shimmer ----------------------- */
:is(
    .offer__link,
    .benefits__footer a,
    .before-after__footer a,
    .process__cta,
    .final-cta__secondary
) {
    min-height: 3.9rem;
    padding: .7rem .85rem .7rem 1.15rem;
    border: 1px solid transparent;
    border-radius: .75rem;
    justify-content: space-between;
}

:is(
    .offer__link,
    .benefits__footer a,
    .before-after__footer a
) {
    min-width: min(100%, 22rem);
    border-color: transparent;
    color: #fff;
    background: var(--color-brand);
    box-shadow: 0 .75rem 1.8rem rgba(23, 107, 69, .18);
    transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, color .2s ease, transform .2s ease;
}

:is(
    .offer__link,
    .benefits__footer a,
    .before-after__footer a
) span:last-child {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    transform: none;
    transition: transform .2s ease;
}

:is(
    .offer__link,
    .benefits__footer a,
    .before-after__footer a
):hover,
:is(
    .offer__link,
    .benefits__footer a,
    .before-after__footer a
):focus-visible {
    border-color: transparent;
    color: #fff;
    background: #10583a;
    box-shadow: 0 1rem 2.4rem rgba(23, 107, 69, .28);
    transform: translateY(-2px);
}

.final-cta__secondary {
    border-color: rgba(19, 35, 28, .14);
    background: rgba(255, 255, 255, .42);
}

:is(
    .offer__link,
    .benefits__footer a,
    .before-after__footer a,
    .process__cta
):hover span:last-child,
:is(
    .offer__link,
    .benefits__footer a,
    .before-after__footer a,
    .process__cta
):focus-visible span:last-child {
    transform: translate(.08rem, -.08rem);
}

body.header-style-5 :is(
    .offer__link,
    .benefits__footer a,
    .before-after__footer a
) {
    border-color: transparent;
    color: #fff;
    background: var(--rng-v5-primary);
}

body.header-style-5 :is(
    .offer__link,
    .benefits__footer a,
    .before-after__footer a
):hover,
body.header-style-5 :is(
    .offer__link,
    .benefits__footer a,
    .before-after__footer a
):focus-visible {
    background: var(--rng-v5-primary-alpha);
    box-shadow: 0 1rem 2.4rem rgba(6, 50, 162, .3);
}

html[data-color-theme="dark"] body.header-style-5 :is(
    .offer__link,
    .benefits__footer a,
    .before-after__footer a
) {
    border-color: transparent;
    color: #f9f9f9;
    background: var(--rng-v5-primary);
}

@media (max-width: 34rem) {
    :is(
        .offer__link,
        .benefits__footer a,
        .before-after__footer a,
        .process__cta,
        .final-cta__secondary
    ) {
        width: 100%;
    }
}

/* Match Process and Lead Form actions to the Service Areas button -------- */
:is(
    .process__cta,
    .lead-form__submit,
    .service-area-checker button
) {
    min-height: 4rem;
    padding: .8rem .8rem .8rem 1.1rem;
    border: 0;
    border-radius: .72rem;
    color: #fff;
    background: var(--color-brand);
    box-shadow: 0 .75rem 1.8rem rgba(23, 107, 69, .18);
    transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.process__cta {
    width: fit-content;
    border-color: transparent;
}

:is(
    .process__cta,
    .lead-form__submit,
    .service-area-checker button
) span:last-child {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    transform: none;
    transition: transform .2s ease;
}

:is(
    .process__cta,
    .lead-form__submit,
    .service-area-checker button
):hover {
    background: #10583a;
    box-shadow: 0 1rem 2.4rem rgba(23, 107, 69, .28);
    transform: translateY(-2px);
}

:is(
    .process__cta,
    .lead-form__submit,
    .service-area-checker button
):hover span:last-child,
:is(
    .process__cta,
    .lead-form__submit,
    .service-area-checker button
):focus-visible span:last-child {
    transform: translate(.08rem, -.08rem);
}

body.header-style-5 :is(
    .process__cta,
    .lead-form__submit,
    .service-area-checker button
):hover {
    background: var(--rng-v5-primary-alpha);
    box-shadow: 0 1rem 2.4rem rgba(6, 50, 162, .3);
}

@media (max-width: 34rem) {
    .process__cta {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    :is(
        .offer__link,
        .benefits__footer a,
        .before-after__footer a
    ) {
        transition: none;
    }

    :is(
        .process__cta,
        .lead-form__submit,
        .service-area-checker button
    ),
    :is(
        .process__cta,
        .lead-form__submit,
        .service-area-checker button
    ) span:last-child {
        transition: none;
    }
}

/* Match Calculator 06 and Reviews 08 actions to Service Areas 10 -------- */
:is(
    .calculator-result__cta,
    .reviews-source__link
) {
    min-height: 4rem;
    padding: .8rem .8rem .8rem 1.1rem;
    border: 0;
    border-radius: .72rem;
    color: #fff;
    background: var(--color-brand);
    box-shadow: 0 .75rem 1.8rem rgba(23, 107, 69, .18);
    transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

:is(
    .calculator-result__cta,
    .reviews-source__link
) span:last-child {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand);
    background: var(--color-accent);
    transform: none;
    transition: transform .2s ease;
}

:is(
    .calculator-result__cta,
    .reviews-source__link
):hover {
    background: #10583a;
    box-shadow: 0 1rem 2.4rem rgba(23, 107, 69, .28);
    transform: translateY(-2px);
}

:is(
    .calculator-result__cta,
    .reviews-source__link
):hover span:last-child,
.calculator-result__cta:focus-visible span:last-child {
    transform: translate(.08rem, -.08rem);
}

.reviews-source__link[aria-disabled="true"] {
    cursor: default;
}

body.header-style-5 :is(
    .calculator-result__cta,
    .reviews-source__link
):hover {
    background: var(--rng-v5-primary-alpha);
    box-shadow: 0 1rem 2.4rem rgba(6, 50, 162, .3);
}

@media (prefers-reduced-motion: reduce) {
    :is(
        .calculator-result__cta,
        .reviews-source__link
    ),
    :is(
        .calculator-result__cta,
        .reviews-source__link
    ) span:last-child {
        transition: none;
    }
}

/* Shared arrow movement for every actionable control --------------------- */
:is(
    .header-cta,
    .header-mobile__cta,
    .hero__cta,
    .offer__link,
    .benefits__footer a,
    .before-after__footer a,
    .process__cta,
    .calculator-result__cta,
    .lead-form__submit,
    .reviews-source__link,
    .service-area-checker button,
    .service-area-checker__continue,
    .faq-card__cta,
    .final-cta__primary,
    .final-cta__secondary,
    .contact-panel__cta,
    .contact-panel__instagram
) > span:last-child,
.reviews-nav button > span {
    display: inline-grid;
}

:is(
    .header-cta,
    .header-mobile__cta,
    .hero__cta,
    .offer__link,
    .benefits__footer a,
    .before-after__footer a,
    .process__cta,
    .calculator-result__cta,
    .lead-form__submit,
    .reviews-source__link,
    .service-area-checker button,
    .service-area-checker__continue,
    .faq-card__cta,
    .final-cta__primary,
    .final-cta__secondary,
    .contact-panel__cta,
    .contact-panel__instagram
) > span:last-child,
.service-card__arrow,
.contact-channel__arrow,
.reviews-nav button > span,
.scroll-home__icon {
    transition: transform .2s ease;
}

:is(
    .header-cta,
    .header-mobile__cta,
    .hero__cta,
    .offer__link,
    .benefits__footer a,
    .before-after__footer a,
    .process__cta,
    .calculator-result__cta,
    .lead-form__submit,
    .reviews-source__link,
    .faq-card__cta,
    .final-cta__primary,
    .contact-panel__cta,
    .contact-panel__instagram
):hover > span:last-child,
:is(
    .header-cta,
    .header-mobile__cta,
    .hero__cta,
    .offer__link,
    .benefits__footer a,
    .before-after__footer a,
    .process__cta,
    .calculator-result__cta,
    .lead-form__submit,
    .reviews-source__link,
    .faq-card__cta,
    .final-cta__primary,
    .contact-panel__cta,
    .contact-panel__instagram
):focus-visible > span:last-child,
.service-card:hover .service-card__arrow,
.service-card:focus-visible .service-card__arrow,
.contact-channel:not(.is-disabled):hover .contact-channel__arrow,
.contact-channel:not(.is-disabled):focus-visible .contact-channel__arrow {
    transform: translate(.1rem, -.1rem);
}

:is(
    .service-area-checker button,
    .service-area-checker__continue,
    .final-cta__secondary
):hover > span:last-child,
:is(
    .service-area-checker button,
    .service-area-checker__continue,
    .final-cta__secondary
):focus-visible > span:last-child,
.reviews-nav button[data-reviews-next]:hover > span,
.reviews-nav button[data-reviews-next]:focus-visible > span {
    transform: translateX(.12rem);
}

.reviews-nav button[data-reviews-prev]:hover > span,
.reviews-nav button[data-reviews-prev]:focus-visible > span {
    transform: translateX(-.12rem);
}

.scroll-home:hover .scroll-home__icon,
.scroll-home:focus-visible .scroll-home__icon {
    transform: translateY(-.1rem);
}

@media (prefers-reduced-motion: reduce) {
    :is(
        .header-cta,
        .header-mobile__cta,
        .hero__cta,
        .offer__link,
        .benefits__footer a,
        .before-after__footer a,
        .process__cta,
        .calculator-result__cta,
        .lead-form__submit,
        .reviews-source__link,
        .service-area-checker button,
        .service-area-checker__continue,
        .faq-card__cta,
        .final-cta__primary,
        .final-cta__secondary,
        .contact-panel__cta,
        .contact-panel__instagram
    ) > span:last-child,
    .service-card__arrow,
    .contact-channel__arrow,
    .reviews-nav button > span,
    .scroll-home__icon {
        transition: none;
    }
}

/* Contact reference final cascade --------------------------------------- */
.contact-panel {
    position: relative;
    min-height: 35.5rem;
    overflow: hidden;
    padding: 2.25rem;
    border-radius: 1.8rem;
    background:
        linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px),
        radial-gradient(circle at 100% 0%, rgba(217, 244, 107, .22), transparent 18rem),
        #062116;
    background-size: 2.4rem 2.4rem, 2.4rem 2.4rem, auto, auto;
}

.contact-panel > * {
    position: relative;
    z-index: 1;
}

.contact-panel__brand > span {
    width: 3.8rem;
    height: 3.8rem;
    border-radius: 1.05rem;
    font-size: 1.35rem;
    letter-spacing: -.06em;
}

.contact-panel__brand strong {
    font-size: 1.05rem;
}

.contact-panel__brand small {
    margin-top: .2rem;
    font-size: .68rem;
}

.contact-panel__eyebrow {
    margin: 2.8rem 0 .8rem;
    font-size: .72rem;
    letter-spacing: .17em;
}

.contact-panel h3 {
    max-width: 10ch;
    font-size: clamp(2.6rem, 4.1vw, 4rem);
    line-height: .95;
}

.contact-panel h3 em {
    color: var(--color-accent);
    font-style: normal;
}

.contact-panel dl {
    margin-top: 2.6rem;
}

.contact-panel dl div {
    min-height: 3.4rem;
    padding-block: .9rem;
}

.contact-panel dt {
    font-size: .78rem;
}

.contact-panel dd {
    font-size: .82rem;
}

.contact-panel__cta {
    min-height: 5.35rem;
    margin-top: 2.4rem;
    padding: .8rem .9rem .8rem 1.55rem;
    border-radius: 1.25rem;
    font-size: clamp(1.05rem, 1.6vw, 1.35rem);
    letter-spacing: -.025em;
}

.contact-panel__cta > span:first-child {
    position: relative;
    z-index: 2;
}

.contact-panel__cta span.contact-panel__cta-icon {
    width: 4rem;
    height: 4rem;
    flex: 0 0 4rem;
    background:
        radial-gradient(circle at 35% 20%, rgba(255, 255, 255, .28), transparent 42%),
        var(--color-brand);
}

.contact-panel__cta-icon i {
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    border-radius: .25rem;
    color: #fff;
    background: #4893d6;
    box-shadow: 0 .3rem .8rem rgba(5, 58, 38, .2);
}

.contact-panel__cta-icon i svg {
    width: 1.15rem;
    height: 1.15rem;
}

.contact-panel__instagram {
    grid-template-columns: 1.2rem auto 1fr auto;
    min-height: 3.5rem;
    padding-inline: 1rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, .035);
}

.contact-panel__instagram svg {
    width: 1.15rem;
    height: 1.15rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

body.header-style-5 .contact-panel h3 em {
    color: var(--rng-v5-cyan);
}

@media (max-width: 72rem) {
    .contact__layout {
        grid-template-columns: 1fr;
    }

    .contact-panel {
        min-height: 34rem;
    }
}

@media (max-width: 52rem) {
    .contact-channels {
        grid-template-columns: 1fr;
    }

    .contact-channel {
        min-height: 12rem;
    }

    .contact-trust {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 34rem) {
    .contact-channel {
        grid-template-columns: 3.8rem minmax(0, 1fr) 2.7rem;
        min-height: 10.5rem;
        padding: 1.25rem;
        border-radius: 1.25rem;
    }

    .contact-channel__icon {
        width: 3.8rem;
        height: 3.8rem;
        border-radius: 1rem;
    }

    .contact-channel__copy {
        display: none;
    }

    .contact-channel__arrow {
        grid-column: 3;
        width: 2.7rem;
        height: 2.7rem;
    }

    .contact-channel__content strong {
        font-size: 1.05rem;
    }

    .contact-panel {
        min-height: auto;
        padding: 1.5rem;
        border-radius: 1.35rem;
    }

    .contact-panel h3 {
        font-size: clamp(2.45rem, 12vw, 3.25rem);
    }

    .contact-panel__brand > span {
        width: 3.45rem;
        height: 3.45rem;
        border-radius: .95rem;
        font-size: 1.22rem;
    }

    .contact-panel__cta {
        min-height: 4.8rem;
        padding-left: 1.2rem;
        border-radius: 1.05rem;
        font-size: 1rem;
    }

    .contact-panel__cta span.contact-panel__cta-icon {
        width: 3.45rem;
        height: 3.45rem;
        flex-basis: 3.45rem;
    }

    .contact-panel dl div {
        align-items: flex-start;
        flex-direction: column;
    }

    .contact-panel dd {
        max-width: 100%;
        text-align: left;
    }

    .contact-trust {
        grid-template-columns: 1fr;
        padding-inline: .25rem;
    }
}

/* Contact/map action parity — final cascade guard. */
.contact .contact-channel {
    grid-template-columns: 4rem minmax(0, 1fr) 1.8rem 2.45rem;
}

.contact .contact-channel__arrow {
    width: 2.45rem;
    min-width: 2.45rem;
    height: 2.45rem;
    min-height: 2.45rem;
    flex: 0 0 2.45rem;
    color: #fff;
    background: var(--color-brand);
}

@media (max-width: 34rem) {
    .contact .contact-channel {
        grid-template-columns: 3.8rem minmax(0, 1fr) 2.45rem;
    }
}
