.product-price {
    color: var(--color-primary, #c49a4a);
    font-size: 1.35rem;
    font-weight: 800;
}

.shop-panel {
    padding: clamp(1.25rem, 3vw, 2.5rem);
    border: 1px solid rgba(18, 42, 52, .12);
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 1rem 3rem rgba(18, 42, 52, .07);
}

.cart-line {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) auto auto auto;
    gap: 1rem;
    align-items: center;
    padding: 1.25rem 0;
    border-bottom: 1px solid rgba(18, 42, 52, .12);
}

.cart-line h2 { margin: 0; font-size: 1.15rem; }
.cart-line input { width: 5rem; }
.cart-total { display: flex; justify-content: space-between; gap: 2rem; margin: 1.5rem 0; font-size: 1.3rem; }
.checkout-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(18rem, .8fr); gap: 2rem; align-items: start; }
.cms-form { display: grid; gap: 1rem; }
.cms-form label { display: grid; gap: .4rem; }
.cms-form input:not([type="checkbox"]), .cms-form textarea { width: 100%; padding: .85rem 1rem; border: 1px solid rgba(18, 42, 52, .2); border-radius: .6rem; }

@media (max-width: 760px) {
    .cart-line, .checkout-grid { grid-template-columns: 1fr; }
}
/* Zener theme — layout, header, footer (Blade, no build step) */

:root {
    --font-heading: "Outfit", sans-serif;
    --font-body: "DM Sans", sans-serif;

    --color-sage: #e7f0e9;
    --color-cream: #f5f3ed;
    --color-white: #fafcfa;
    --color-text: #6b6e71;
    --color-text-dark: #10271d;
    --color-text-light: #708079;
    --color-muted: #c7ccca;
    --color-link: #80aa45;
    --color-link-hover: #689030;
    --color-link-landing: #61b15a;
    --color-accent: #e65e36;
    --color-gold: #e0a300;
    --color-footer: #13190a;
    --color-footer-landing: #1c1c1c;
    --color-footer-text: #c7ccca;
    --color-dropdown: #090601;
    --color-border: rgba(250, 252, 250, 0.12);

    --header-h: 66px;
    --header-h-overlay: 75px;
    --container: 1290px;
    --radius-pill: 30px;
    --shadow-dropdown: 1px 1px 2px rgba(0, 0, 0, 0.2);
}

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

html {
    scroll-behavior: smooth;
}

html,
body {
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.58;
    color: var(--color-text);
    background: var(--color-cream);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

img,
svg {
    display: block;
    max-width: 100%;
}

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

ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

p {
    margin: 0;
}

button {
    font: inherit;
    color: inherit;
    background: none;
    border: 0;
    cursor: pointer;
}

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

.skip-link {
    position: absolute;
    left: 12px;
    top: -48px;
    z-index: 100;
    background: var(--color-text-dark);
    color: var(--color-white);
    padding: 8px 14px;
    border-radius: 4px;
}

.skip-link:focus {
    top: 12px;
}

.container {
    width: min(100% - 40px, var(--container));
    margin-inline: auto;
}

.site-main {
    min-height: 40vh;
}

.site-body--solid {
    background: var(--color-sage);
}

.site-body--overlay {
    background: var(--color-background, var(--color-cream));
}

/* Header */

.site-header {
    z-index: 50;
    width: 100%;
}

.site-header--solid {
    position: sticky;
    top: 0;
    background: var(--color-sage);
}

.site-header--overlay {
    position: absolute;
    top: 0;
    left: 0;
    background: transparent;
}

.site-header--overlay.is-scrolled {
    position: fixed;
    background: rgba(16, 20, 12, 0.92);
    backdrop-filter: blur(10px);
}

.site-header__inner {
    width: min(100% - 48px, var(--container));
    margin-inline: auto;
    min-height: var(--header-h);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.site-header--overlay .site-header__inner {
    min-height: var(--header-h-overlay);
}

.site-header__actions {
    display: flex;
    align-items: center;
    gap: 28px;
    flex-shrink: 0;
}

.site-header__phone {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 400;
    color: var(--color-white);
    white-space: nowrap;
}

.site-header__toggle {
    display: none;
    width: 42px;
    height: 42px;
    position: relative;
}

.site-header__toggle-bars,
.site-header__toggle-bars::before,
.site-header__toggle-bars::after {
    display: block;
    width: 20px;
    height: 1.5px;
    background: currentColor;
    border-radius: 2px;
    position: absolute;
    left: 11px;
    transition: transform 0.2s ease, top 0.2s ease, opacity 0.2s ease;
}

.site-header__toggle-bars {
    top: 20px;
}

.site-header__toggle-bars::before,
.site-header__toggle-bars::after {
    content: "";
    left: 0;
}

.site-header__toggle-bars::before {
    top: -6px;
}

.site-header__toggle-bars::after {
    top: 6px;
}

.site-header--solid .site-header__toggle {
    color: var(--color-text-dark);
}

.site-header--overlay .site-header__toggle {
    color: var(--color-white);
}

body.menu-open .site-header__toggle-bars {
    background: transparent;
}

body.menu-open .site-header__toggle-bars::before {
    top: 0;
    transform: rotate(45deg);
}

body.menu-open .site-header__toggle-bars::after {
    top: 0;
    transform: rotate(-45deg);
}

/* Logo */

.site-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.site-logo__mark {
    width: 36px;
    height: 36px;
    object-fit: contain;
}

.site-logo--mark-only .site-logo__mark {
    width: auto;
    height: auto;
    max-width: min(220px, 48vw);
    max-height: 44px;
}

.site-logo__word {
    font-family: var(--font-heading);
    font-size: 26px;
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1;
}

.site-header--solid .site-logo__word {
    color: var(--color-text-dark);
}

.site-header--overlay .site-logo__word,
.site-footer .site-logo__word {
    color: var(--color-white);
}

/* Nav */

.site-nav {
    flex: 1;
    display: flex;
    justify-content: center;
}

.site-nav__list {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-wrap: nowrap;
}

.site-nav__item {
    position: relative;
}

.site-nav__link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 12px;
    font-family: var(--font-heading);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    white-space: nowrap;
}

.site-header--solid .site-nav__link {
    color: var(--color-text-dark);
}

.site-header--overlay .site-nav__link {
    color: var(--color-white);
}

.site-nav__link::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 7px;
    width: 0;
    height: 1px;
    background: currentColor;
    transform: translateX(-50%);
    transition: width 0.25s ease;
}

.site-nav__item:hover > .site-nav__link::after,
.site-nav__item.is-active > .site-nav__link::after {
    width: 18px;
}

.site-nav__caret {
    display: none;
}

.site-nav__toggle {
    display: none;
    border: 0;
    background: transparent;
    color: inherit;
    padding: 0;
    cursor: pointer;
}

.site-nav__hit {
    display: contents;
}

.site-nav__sub {
    position: absolute;
    top: calc(100% - 4px);
    left: 0;
    min-width: 240px;
    padding: 15px 0;
    background: var(--color-dropdown);
    border-radius: 10px;
    box-shadow: var(--shadow-dropdown);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
    z-index: 20;
}

.site-nav__item:hover > .site-nav__sub,
.site-nav__item:focus-within > .site-nav__sub {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.site-nav__sub .site-nav__link {
    display: flex;
    width: 100%;
    padding: 7.5px 24px;
    font-family: var(--font-body);
    font-size: 15px;
    color: #939393;
}

.site-nav__sub .site-nav__link::after {
    display: none;
}

.site-nav__sub .site-nav__link:hover,
.site-nav__sub .is-active > .site-nav__link {
    color: var(--color-white);
}

.site-nav__sub .has-children > .site-nav__sub {
    top: 8px;
    left: calc(100% - 8px);
}

.site-nav__sub .site-nav__caret {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-left: auto;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(-45deg);
}

.site-nav__item.is-mega > .site-nav__mega {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 8px 24px;
    min-width: min(720px, 80vw);
    padding: 20px 24px;
    left: 50%;
    transform: translate(-50%, 8px);
}

.site-nav__item.is-mega:hover > .site-nav__mega,
.site-nav__item.is-mega:focus-within > .site-nav__mega {
    transform: translate(-50%, 0);
}

.site-nav__mega-col {
    min-width: 0;
}

.site-nav__mega-col > .site-nav__item {
    position: static;
}

.site-nav__mega-col .site-nav__sub {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    background: transparent;
    padding: 0;
    min-width: 0;
}

/* Buttons */

.site-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 26px;
    border-radius: var(--radius-pill);
    font-family: var(--font-heading);
    font-size: 13px;
    font-weight: 400;
    line-height: 21px;
    color: var(--color-white);
    white-space: nowrap;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.site-btn--solid {
    background: var(--color-link);
}

.site-btn--landing {
    background: var(--color-link-landing);
}

.site-btn--ghost {
    background: transparent;
    border: 1px solid currentColor;
}

.site-btn:hover {
    background: var(--color-link-hover);
}

.site-btn--gold {
    background: var(--color-gold);
    color: #10271d;
}

.site-btn--gold:hover {
    background: #c48d00;
    color: #10271d;
}

/* Hero placeholder — full landing content arrives in the next step */

.hero-shell {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
}

.hero-shell__media,
.hero-shell__overlay {
    position: absolute;
    inset: 0;
}

.hero-shell__media {
    background:
        radial-gradient(ellipse at 20% 80%, rgba(20, 40, 18, 0.35), transparent 50%),
        linear-gradient(180deg, rgba(18, 22, 16, 0.25) 0%, rgba(10, 12, 8, 0.55) 100%),
        repeating-linear-gradient(
            118deg,
            #2a3328 0 18px,
            #1c241b 18px 22px,
            #323b30 22px 40px,
            #171d15 40px 44px
        );
    background-size: auto, auto, 220px 180px;
    filter: contrast(1.05) saturate(0.85);
}

.hero-shell__overlay {
    background: linear-gradient(180deg, rgba(12, 16, 10, 0.28) 0%, rgba(12, 16, 10, 0.12) 40%, rgba(12, 16, 10, 0.45) 100%);
}

.hero-shell__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-shell--page {
    min-height: 52vh;
}

.hero-shell__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: inherit;
    padding: 140px 0 72px;
    color: var(--color-white);
}

.hero-shell__content.is-center {
    align-items: center;
    text-align: center;
}

.hero-shell__title {
    margin: 0 0 12px;
    font-family: var(--font-heading);
    font-size: clamp(2.4rem, 5vw, 4rem);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.05;
}

.hero-shell__subtitle,
.hero-shell__lead {
    margin: 0 0 12px;
    max-width: 36rem;
    font-size: 1.05rem;
    line-height: 1.5;
}

.hero-shell__content.is-center .hero-shell__lead {
    margin-inline: auto;
}

/* Inner page band */

.page-band {
    background: var(--color-sage);
    padding: 72px 0 96px;
}

.page-band__title {
    margin: 0;
    font-family: var(--font-heading);
    font-size: clamp(2.2rem, 4vw, 3.35rem);
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.05;
    color: var(--color-text-dark);
}

/* Footer */

.site-footer {
    color: var(--color-footer-text);
    position: relative;
}

.site-footer--pages {
    background: var(--color-footer);
}

.site-footer--landing {
    background: var(--color-footer-landing);
}

.site-footer__inner {
    width: min(100% - 48px, var(--container));
    margin-inline: auto;
    padding: 84px 0 36px;
}

.site-footer--landing .site-footer__inner {
    padding-top: 92px;
}

.footer-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.footer-nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 4px;
}

.footer-nav a {
    display: inline-block;
    padding: 6.4px;
    font-family: var(--font-heading);
    font-size: 16px;
    color: var(--color-white);
}

.footer-nav .is-active a,
.footer-nav a:hover {
    box-shadow: inset 0 -1px 0 currentColor;
}

.footer-divider {
    height: 1px;
    background: var(--color-border);
    margin: 36px 0 48px;
}

.footer-grid {
    display: grid;
    gap: 40px 32px;
}

.footer-grid--pages {
    grid-template-columns: 1.2fr 1fr 0.9fr;
    padding-bottom: 56px;
}

.footer-grid--landing {
    grid-template-columns: 1.1fr 1.3fr 0.9fr 0.9fr;
    padding-bottom: 72px;
}

.footer-col__title {
    margin: 0 0 22px;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 500;
    letter-spacing: -0.03em;
    color: var(--color-white);
}

.footer-hours {
    display: grid;
    gap: 12px;
    color: #9aa09c;
}

.footer-address {
    color: #9aa09c;
    line-height: 1.7;
}

.footer-contact-stack {
    display: grid;
    gap: 10px;
}

.footer-contact-stack a {
    color: var(--color-white);
    width: fit-content;
}

.footer-contact-stack a:hover,
.footer-links a:hover {
    color: var(--color-link);
}

.footer-phone {
    font-family: var(--font-heading);
    font-size: 18px;
    letter-spacing: -0.02em;
}

.site-footer--pages .footer-contact-stack a[href^="mailto"] {
    box-shadow: inset 0 -1px 0 rgba(250, 252, 250, 0.7);
}

.site-footer--landing .footer-contact-stack a[href^="mailto"] {
    box-shadow: inset 0 -1px 0 rgba(250, 252, 250, 0.7);
}

.footer-links {
    display: grid;
    gap: 10px;
}

.footer-links a {
    color: #9aa09c;
}

.footer-col--subscribe {
    text-align: right;
}

.footer-subscribe-text,
.footer-subscribe-link {
    font-family: var(--font-heading);
    font-size: 18px;
    letter-spacing: -0.03em;
    color: var(--color-white);
    line-height: 1.45;
}

.footer-subscribe-link {
    display: inline-block;
    margin-top: 4px;
    box-shadow: inset 0 -1px 0 currentColor;
}

.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding-top: 28px;
    border-top: 1px solid var(--color-border);
}

.site-footer--pages .site-footer__bottom {
    border-top: 0;
    padding-top: 8px;
}

.site-footer__copy {
    font-size: 14px;
    color: #6a6f67;
}

.site-socials {
    display: flex;
    gap: 10px;
}

.site-socials a {
    width: 42px;
    height: 42px;
    border: 1px solid rgba(250, 252, 250, 0.18);
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--color-white);
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.site-socials a:hover {
    background: var(--color-link);
    border-color: var(--color-link);
}

.site-socials svg {
    width: 14px;
    height: 14px;
}

/* Side tools */

.side-tools {
    position: fixed;
    right: 0;
    top: 42%;
    z-index: 40;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.side-tools__btn {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    color: var(--color-white);
    border-radius: 8px 0 0 8px;
    transition: background-color 0.2s ease;
}

.side-tools--solid .side-tools__btn {
    background: var(--color-link);
}

.side-tools--overlay .side-tools__btn {
    background: var(--color-link-landing);
}

.side-tools__btn:hover {
    background: var(--color-link-hover);
}

.side-tools svg {
    width: 20px;
    height: 20px;
}

/* Scroll top */

.scroll-top {
    position: fixed;
    right: 28px;
    bottom: 28px;
    z-index: 45;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--color-white);
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.scroll-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.scroll-top--pages {
    background: var(--color-link);
}

.scroll-top--landing {
    background: var(--color-gold);
}

.scroll-top svg {
    width: 18px;
    height: 18px;
}

/* Mobile */

@media (max-width: 1100px) {
    .site-header__phone {
        display: none;
    }

    .site-nav {
        justify-content: flex-end;
    }
}

@media (max-width: 980px) {
    .site-header__toggle {
        display: block;
        order: 2;
        margin-left: auto;
    }

    .site-header__actions {
        display: none;
    }

    .site-nav {
        position: fixed;
        inset: var(--header-h) 0 0 auto;
        width: min(100%, 360px);
        background: #10140c;
        padding: 18px 0 40px;
        overflow: auto;
        transform: translateX(100%);
        transition: transform 0.28s ease;
        justify-content: flex-start;
        z-index: 60;
    }

    .site-header--overlay + .site-main .hero-shell {
        min-height: 100vh;
    }

    body.menu-open .site-nav {
        transform: translateX(0);
    }

    .site-nav__list,
    .site-nav__sub,
    .site-nav__sub .has-children > .site-nav__sub {
        position: static;
        display: block;
        width: 100%;
        min-width: 0;
        background: transparent;
        box-shadow: none;
        border-radius: 0;
        opacity: 1;
        visibility: visible;
        transform: none;
        padding: 0;
    }

    .site-nav__sub {
        display: none;
        padding: 0 0 8px 16px;
    }

    .site-nav__item.is-open > .site-nav__sub {
        display: block;
    }

    .site-nav__item.is-mega > .site-nav__mega {
        display: none;
        grid-template-columns: 1fr;
        min-width: 0;
        padding: 0 0 8px 16px;
        left: auto;
        transform: none;
    }

    .site-nav__item.is-mega.is-open > .site-nav__mega {
        display: grid;
        transform: none;
    }

    .site-nav__hit {
        display: flex;
        align-items: center;
        width: 100%;
    }

    .site-nav__link {
        width: 100%;
        color: var(--color-white);
        padding: 14px 24px;
        flex: 1;
    }

    .site-nav__link::after {
        display: none;
    }

    .site-nav__toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        color: var(--color-white);
        flex-shrink: 0;
    }

    .site-nav__caret {
        display: inline-block;
        width: 8px;
        height: 8px;
        margin-left: auto;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        transform: rotate(45deg);
    }

    .footer-top,
    .site-footer__bottom,
    .footer-grid--pages,
    .footer-grid--landing {
        grid-template-columns: 1fr;
        display: grid;
        text-align: left;
    }

    .footer-col--subscribe,
    .footer-top,
    .site-footer__bottom {
        text-align: left;
        justify-content: flex-start;
    }

    .side-tools {
        display: none;
    }
}

@media (max-width: 640px) {
    .site-header__inner,
    .site-footer__inner,
    .container {
        width: min(100% - 28px, var(--container));
    }

    .page-band {
        padding: 48px 0 72px;
    }
}

/* CMS sections — tokens from branding, layout only */

.cms-preview-banner {
    margin: 0;
    padding: 10px 16px;
    background: var(--color-accent, #e65e36);
    color: #fff;
    text-align: center;
    font-size: 0.9rem;
}

.cms-section {
    padding: 72px 0;
}

.cms-section--muted {
    background: var(--color-sage);
}

.cms-section__title {
    margin: 0 0 16px;
    font-family: var(--font-heading);
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 500;
    letter-spacing: -0.03em;
    color: var(--color-text-dark);
}

.cms-kicker {
    margin: 0 0 12px;
    font-size: 0.72rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--color-text-dark);
}

.cms-kicker--on-dark {
    color: var(--color-white);
}

.cms-lead {
    margin: 0 0 32px;
    max-width: 40rem;
    color: var(--color-text);
}

.cms-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

.cms-prose {
    max-width: 44rem;
    color: var(--color-text);
    line-height: 1.65;
}

.cms-prose h2,
.cms-prose h3 {
    font-family: var(--font-heading);
    color: var(--color-text-dark);
}

.cms-prose a {
    color: var(--color-link);
}

.cms-prose img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    margin: 2rem auto;
    border-radius: 14px;
}

.cms-prose figure {
    margin: 2rem 0;
}

.cms-prose figcaption {
    margin-top: 0.65rem;
    color: var(--color-muted);
    font-size: 0.85rem;
    text-align: center;
}

.cms-prose blockquote {
    margin: 2rem 0;
    padding: 1.25rem 1.5rem;
    border-left: 4px solid var(--color-primary, #6aaa45);
    background: var(--color-sage, #eef3ed);
    color: var(--color-text-dark);
    font-size: 1.08rem;
}

.cms-prose pre {
    max-width: 100%;
    padding: 1.25rem;
    overflow-x: auto;
    border-radius: 10px;
    background: #10251e;
    color: #f3f6f2;
}

.cms-prose table {
    width: 100%;
    margin: 2rem 0;
    border-collapse: collapse;
}

.cms-prose th,
.cms-prose td {
    padding: 0.8rem 1rem;
    border: 1px solid var(--color-border-solid, #c7ccca);
    text-align: left;
}

.cms-prose th {
    background: var(--color-sage, #eef3ed);
    color: var(--color-text-dark);
}

.cms-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
}

.cms-split.is-image-left {
    direction: rtl;
}

.cms-split.is-image-left > * {
    direction: ltr;
}

.cms-split__media img {
    width: 100%;
    height: auto;
    border-radius: 10px;
}

.cms-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 32px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.cms-stats__value {
    margin: 0;
    font-family: var(--font-heading);
    font-size: 2.6rem;
    font-weight: 500;
    color: var(--color-text-dark);
}

.cms-stats__label {
    margin: 4px 0 0;
    color: var(--color-text);
}

.cms-stats__hint {
    margin: 4px 0 0;
    color: var(--color-muted);
    font-size: 0.9rem;
}

.cms-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 24px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.cms-card {
    display: block;
    color: inherit;
    background: var(--color-white, #fff);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: var(--shadow-dropdown);
}

.cms-card img,
.cms-card__media {
    width: 100%;
    height: 180px;
    object-fit: cover;
}

.cms-card h3 {
    margin: 16px 20px 8px;
    font-family: var(--font-heading);
    font-size: 1.2rem;
}

.cms-card p {
    margin: 0 20px 20px;
    color: var(--color-text);
}

.cms-card__link {
    display: block;
    color: inherit;
}

.cms-card__title {
    margin: 16px 20px 8px;
    font-family: var(--font-heading);
    font-size: 1.2rem;
}

.cms-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin: 0 20px 8px;
    color: var(--color-muted);
    font-size: 0.9rem;
}

.cms-card--featured {
    margin-bottom: 32px;
}

.cms-card--featured .cms-card__media,
.cms-article__media {
    height: auto;
    max-height: 420px;
    width: 100%;
    object-fit: cover;
}

.cms-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 32px;
}

.cms-filters__item {
    display: inline-flex;
    padding: 6px 12px;
    border-radius: 999px;
    color: inherit;
    text-decoration: none;
}

.cms-filters__item.is-active,
.cms-filters__item:focus-visible {
    outline: 2px solid var(--color-accent, #c9a227);
    outline-offset: 2px;
}

.cms-filters__item.is-active {
    background: var(--color-footer, #111);
    color: var(--color-white, #fff);
}

.cms-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
    margin-top: 32px;
}

.cms-pagination__disabled {
    color: var(--color-muted-text, #708079);
}

.cms-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 24px 0 0;
    padding: 0;
}

.cms-tags li {
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--color-muted-bg, #f4f4f4);
}

.cms-article-nav__inner {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.cms-article__cats {
    margin: 0 0 8px;
    color: var(--color-muted);
}

.cms-actions {
    margin-top: 24px;
}

@media (max-width: 800px) {
    .cms-card--featured .cms-card__media,
    .cms-article__media {
        max-height: 240px;
    }
}

.cms-brands {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: center;
}

.cms-brands__item {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 140px;
    min-height: 72px;
    color: var(--color-text-dark);
}

.cms-brands__item img {
    max-height: 56px;
    width: auto;
}

.cms-cta {
    position: relative;
    padding: 80px 0;
    background: var(--color-footer);
    color: var(--color-white);
    text-align: center;
}

.cms-cta__inner {
    position: relative;
    z-index: 1;
}

.cms-cta h2 {
    margin: 0 0 12px;
    font-family: var(--font-heading);
    font-size: clamp(1.8rem, 3vw, 2.6rem);
}

.cms-cta p {
    margin: 0 auto 24px;
    max-width: 36rem;
}

.cms-cta__media {
    position: absolute;
    inset: 0;
}

.cms-cta__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.35;
}

.cms-faq__list details {
    border-bottom: 1px solid var(--color-border, #c7ccca);
    padding: 16px 0;
}

.cms-faq__list summary {
    cursor: pointer;
    font-family: var(--font-heading);
    font-size: 1.1rem;
    color: var(--color-text-dark);
}

.cms-faq__list p {
    margin: 12px 0 0;
    color: var(--color-text);
}

.cms-contact__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 32px;
}

.cms-contact h3 {
    font-family: var(--font-heading);
    margin: 0 0 12px;
}

@media (max-width: 800px) {
    .cms-split {
        grid-template-columns: 1fr;
    }

    .cms-split.is-image-left {
        direction: ltr;
    }
}

.cms-filters--form {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    align-items: end;
    margin-bottom: 32px;
}

.cms-filters--form input,
.cms-filters--form select {
    width: 100%;
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid var(--color-border-solid, #c7ccca);
    border-radius: 6px;
    background: var(--color-white, #fff);
    color: inherit;
    font: inherit;
}

.cms-card__cta {
    margin: 0 20px 20px;
}

.cms-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    list-style: none;
    margin: 24px 0 0;
    padding: 0;
}

.cms-gallery img {
    width: 100%;
    height: 120px;
    object-fit: cover;
    border-radius: 8px;
}

.cms-specs {
    display: grid;
    gap: 12px;
    margin: 0;
}

.cms-specs div {
    display: grid;
    grid-template-columns: minmax(8rem, 12rem) 1fr;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--color-border-solid, #c7ccca);
}

.cms-specs dt {
    font-weight: 600;
    color: var(--color-text-dark, #111);
}

.cms-specs dd {
    margin: 0;
}

.cms-tags a {
    color: inherit;
}

.site-form {
    max-width: 720px;
}

.site-form__narrow {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

.site-form__grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 18px 20px;
}

.site-form__field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    grid-column: span 6;
}

.site-form__field--half {
    grid-column: span 3;
}

.site-form__field--third {
    grid-column: span 2;
}

.site-form__field > label {
    color: #435a51;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.site-form input[type="text"],
.site-form input[type="email"],
.site-form input[type="tel"],
.site-form input[type="number"],
.site-form input[type="date"],
.site-form input[type="url"],
.site-form input[type="file"],
.site-form select,
.site-form textarea {
    width: 100%;
    min-height: 52px;
    padding: 12px 14px;
    border: 1px solid #d6ded9;
    border-radius: 10px;
    outline: none;
    background: #fafbf9;
    color: #10392b;
    font: inherit;
    transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.site-form textarea {
    min-height: 140px;
}

.site-form input:focus,
.site-form select:focus,
.site-form textarea:focus {
    border-color: #6aaa45;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(106, 170, 69, 0.12);
}

.site-form input:focus-visible,
.site-form select:focus-visible,
.site-form textarea:focus-visible,
.site-form button:focus-visible {
    outline: 2px solid var(--color-primary, #80AA45);
    outline-offset: 2px;
}

.site-form__check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #4f6259;
    font-weight: 400;
}

.site-form__check a {
    color: #10392b;
    font-weight: 700;
}

.site-form__help,
.site-form__error {
    margin: 0;
    font-size: 0.86rem;
}

.site-form__error {
    color: #b42318;
}

.site-form__errors {
    margin-bottom: 16px;
    padding: 14px 16px;
    border: 1px solid #b42318;
    border-radius: 12px;
    background: #fff8f7;
}

.site-form__success {
    padding: 18px 20px;
    border-radius: 14px;
    background: #e5f0dd;
    color: #10392b;
}

.site-form__hp {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.site-form__actions {
    margin: 8px 0 0;
}

.site-form__actions .site-btn {
    min-height: 50px;
    padding-inline: 22px;
}

@media (max-width: 700px) {
    .site-form__field--half,
    .site-form__field--third {
        grid-column: span 6;
    }

    .site-form__actions .site-btn {
        width: 100%;
        justify-content: center;
    }
}

.inquiry {
    padding: clamp(64px, 8vw, 112px) 0;
    background: #10392b;
    color: #fff;
}

.inquiry__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(36px, 6vw, 80px);
    align-items: start;
}

.inquiry__copy .cms-kicker {
    color: #a9d18e;
}

.inquiry__copy .cms-section__title {
    color: #fff;
}

.inquiry__lead {
    max-width: 34rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 1.05rem;
    line-height: 1.7;
}

.inquiry__context {
    margin: 22px 0 0;
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.08);
    color: #d7e8cc;
}

.inquiry__panel {
    padding: clamp(22px, 3vw, 36px);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(8, 42, 31, 0.22);
}

.inquiry .site-form {
    max-width: none;
}

.inquiry__summary {
    margin-top: 28px;
}

.inquiry__summary-title {
    margin: 0 0 12px;
    color: #a9d18e;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.inquiry__summary p {
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin: 0 0 8px;
    color: rgba(255, 255, 255, 0.82);
}

.inquiry__summary .cart-total {
    margin: 16px 0 0;
    color: #fff;
}

@media (max-width: 900px) {
    .inquiry__grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

/* Landing — layouts aligned to Soleil Solar Solutions */

.cms-section__title--display {
    font-size: clamp(2.4rem, 4.6vw, 3.55rem);
    line-height: 1.08;
    margin-bottom: 20px;
}

.cms-section--center {
    text-align: center;
}

.cms-section--center .cms-kicker,
.cms-section--center .cms-lead {
    margin-inline: auto;
}

.cms-about__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: 64px;
    align-items: start;
}

.cms-about__lead {
    max-width: 28rem;
}

.cms-about__quote {
    position: relative;
    padding-top: 8px;
}

.cms-about__mark {
    position: absolute;
    left: 0;
    top: 0;
    font-family: var(--font-heading);
    font-size: 5.4rem;
    line-height: 0.8;
    font-weight: 500;
    color: var(--color-text-dark);
}

.cms-about__columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    padding-left: 72px;
}

.cms-about__columns p {
    margin: 0;
    color: var(--color-text);
    line-height: 1.7;
    font-size: 0.98rem;
}

.cms-profile__grid {
    display: grid;
    grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(56px, 7vw, 104px);
    align-items: center;
}

.cms-profile__media {
    position: relative;
    min-height: 580px;
    overflow: hidden;
    border-radius: 18px;
    background: var(--color-text-dark);
    box-shadow: 0 28px 60px rgba(16, 39, 29, 0.16);
    transform: rotate(-0.8deg);
    transition: box-shadow 0.45s ease, transform 0.45s ease;
}

.cms-profile__media::after {
    content: "";
    position: absolute;
    right: 22px;
    bottom: 22px;
    width: 72px;
    height: 8px;
    border-radius: 999px;
    background: var(--color-link);
}

.cms-profile__media:hover {
    box-shadow: 0 34px 68px rgba(16, 39, 29, 0.22);
    transform: rotate(0deg) translateY(-4px);
}

.cms-profile__media img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
}

.cms-profile__media.is-empty {
    display: grid;
    place-items: center;
}

.cms-profile__media.is-empty span {
    color: rgba(250, 252, 250, 0.16);
    font-family: var(--font-heading);
    font-size: clamp(3.5rem, 9vw, 7rem);
    font-weight: 700;
    letter-spacing: -0.06em;
    transform: rotate(-90deg);
}

.cms-profile__content {
    max-width: 660px;
}

.cms-profile__prose {
    max-width: 620px;
    line-height: 1.72;
}

.cms-profile__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 44px;
    margin: 42px 0 0;
}

.cms-profile__stats > div {
    display: flex;
    flex-direction: column;
    padding-top: 16px;
    border-top: 1px solid rgba(16, 39, 29, 0.2);
    transition: border-color 0.3s ease, transform 0.3s ease;
}

.cms-profile__stats dt {
    order: 2;
    color: var(--color-text);
    font-size: 0.92rem;
}

.cms-profile__stats dd {
    order: 1;
    margin: 0 0 4px;
    font-family: var(--font-heading);
    font-size: clamp(2.7rem, 5vw, 4.5rem);
    font-weight: 600;
    letter-spacing: -0.05em;
    line-height: 0.95;
    color: var(--color-text-dark);
    transition: color 0.3s ease, transform 0.3s ease;
}

.cms-profile__stats > div:hover {
    border-color: var(--color-link);
    transform: translateY(-4px);
}

.cms-profile__stats > div:hover dd {
    color: var(--color-link-hover);
    transform: translateX(4px);
}

.cms-profile.is-revealed .cms-profile__media {
    animation: profile-media-in 0.8s ease both;
}

.cms-profile.is-revealed .cms-profile__stats > div {
    animation: profile-stat-in 0.55s ease both;
}

.cms-profile.is-revealed .cms-profile__stats > div:nth-child(2) {
    animation-delay: 80ms;
}

.cms-profile.is-revealed .cms-profile__stats > div:nth-child(3) {
    animation-delay: 160ms;
}

.cms-profile.is-revealed .cms-profile__stats > div:nth-child(4) {
    animation-delay: 240ms;
}

.cms-profile.is-revealed .cms-profile__stats > div:nth-child(n + 5) {
    animation-delay: 320ms;
}

@keyframes profile-media-in {
    from {
        opacity: 0;
        transform: translateX(-28px) rotate(-2deg);
    }
    to {
        opacity: 1;
        transform: rotate(-0.8deg);
    }
}

@keyframes profile-stat-in {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.cms-overlay-cards {
    display: flex;
    gap: 22px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.cms-overlay-cards > li {
    flex: 0 0 calc((100% - 44px) / 3);
    min-width: 0;
    scroll-snap-align: start;
}

.cms-services-carousel {
    position: relative;
}

.cms-services-carousel__viewport {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.cms-services-carousel__viewport::-webkit-scrollbar {
    display: none;
}

.cms-services-carousel__viewport:focus-visible {
    outline: 3px solid var(--color-link);
    outline-offset: 6px;
    border-radius: 18px;
}

.cms-services-carousel__controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 24px;
}

.cms-services-carousel__button {
    display: inline-grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border: 1px solid rgba(16, 39, 29, 0.24);
    border-radius: 50%;
    background: transparent;
    color: var(--color-text-dark);
    cursor: pointer;
    font: inherit;
    font-size: 1.2rem;
    transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.cms-services-carousel__button:hover,
.cms-services-carousel__button:focus-visible {
    background: var(--color-text-dark);
    color: var(--color-white);
    transform: translateY(-2px);
}

.cms-services-carousel__button:focus-visible {
    outline: 3px solid var(--color-link);
    outline-offset: 3px;
}

.cms-services-carousel__status {
    min-width: 3.5rem;
    margin: 0;
    color: var(--color-text);
    font-size: 0.82rem;
    text-align: center;
}

.cms-overlay-card {
    position: relative;
    display: flex;
    min-height: 340px;
    overflow: hidden;
    border-radius: 18px;
    color: var(--color-white);
    isolation: isolate;
}

.cms-overlay-card__media {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cms-overlay-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(10, 16, 12, 0.08) 20%, rgba(10, 16, 12, 0.72) 100%);
}

.cms-overlay-card--1 {
    background:
        linear-gradient(160deg, #1d3a28, #0f1c14),
        repeating-linear-gradient(118deg, #2a4a34 0 16px, #163024 16px 22px);
}

.cms-overlay-card--2 {
    background:
        linear-gradient(160deg, #35502c, #1a2818),
        repeating-linear-gradient(100deg, #4a6a3c 0 18px, #24351e 18px 26px);
}

.cms-overlay-card--3 {
    background:
        linear-gradient(160deg, #2c4638, #142018),
        repeating-linear-gradient(90deg, #3a5848 0 20px, #1c2c22 20px 28px);
}

.cms-overlay-card__index {
    position: absolute;
    z-index: 2;
    top: 22px;
    left: 24px;
    font-family: var(--font-heading);
    font-size: 1.55rem;
    font-weight: 500;
}

.cms-overlay-card__copy {
    position: relative;
    z-index: 2;
    margin-top: auto;
    padding: 24px 26px 28px;
}

.cms-overlay-card__excerpt {
    display: block;
    margin-bottom: 6px;
    font-size: 0.95rem;
    opacity: 0.88;
}

.cms-overlay-card__title {
    display: block;
    font-family: var(--font-heading);
    font-size: 1.7rem;
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1.15;
}

.cms-section:has(.cms-overlay-cards) {
    padding-bottom: 12px;
}

.cms-section:has(.cms-services-carousel) {
    padding-bottom: 96px;
}

.cms-section:has(.cms-services-carousel) .cms-section__title {
    margin-bottom: 34px;
    font-size: clamp(2.4rem, 4.6vw, 3.55rem);
    line-height: 1.08;
}

.cms-section.cms-brands-band {
    position: relative;
    overflow: hidden;
    padding: 96px 0 104px;
    background: var(--color-text-dark);
    color: var(--color-white);
}

.cms-brands-band__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 48px;
}

.cms-brands-band__heading .cms-section__title {
    max-width: 780px;
    margin: 0;
    color: var(--color-white);
    text-align: left;
}

.cms-brands-band__heading .cms-lead {
    max-width: 380px;
    margin: 0;
    color: rgba(250, 252, 250, 0.72);
}

.cms-brands-band .cms-brands {
    gap: 32px;
}

.cms-brands-band .cms-brands--names {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 56px;
    align-items: start;
}

.cms-brand-feature {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 20px;
    color: var(--color-white);
    text-decoration: none;
}

.cms-brands__item--name {
    --brand-angle: -1deg;
    min-width: 0;
    min-height: 0;
    padding: 11px 19px 10px;
    border: 0;
    border-radius: 3px;
    background: var(--color-link-hover);
    color: var(--color-white);
    font-family: var(--font-heading);
    font-size: clamp(1.05rem, 1.8vw, 1.45rem);
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transform: rotate(var(--brand-angle));
    transform-origin: center;
    transition: background-color 0.25s ease, transform 0.25s ease;
}

.cms-brand-feature__description {
    max-width: 17rem;
    color: rgba(250, 252, 250, 0.72);
    font-size: 0.95rem;
    line-height: 1.65;
    transition: color 0.25s ease, transform 0.25s ease;
}

.cms-brands--names li:nth-child(even) .cms-brands__item--name {
    --brand-angle: 0.8deg;
    background: #4f8d22;
}

.cms-brands--names li:nth-child(3n) .cms-brands__item--name {
    --brand-angle: -0.4deg;
    background: #3f7d20;
}

.cms-brand-feature:hover .cms-brands__item--name,
.cms-brand-feature:focus-visible .cms-brands__item--name {
    background: var(--color-link);
    transform: translateY(-5px) rotate(0deg) scale(1.04);
}

.cms-brand-feature:hover .cms-brand-feature__description,
.cms-brand-feature:focus-visible .cms-brand-feature__description {
    color: var(--color-white);
    transform: translateY(-2px);
}

.cms-brand-feature:focus-visible {
    outline: 3px solid var(--color-gold);
    outline-offset: 4px;
    border-radius: 4px;
}

.cms-brands-band.is-revealed .cms-brands--names li {
    animation: brand-chip-in 0.5s ease both;
}

.cms-brands-band.is-revealed .cms-brands--names li:nth-child(2) {
    animation-delay: 70ms;
}

.cms-brands-band.is-revealed .cms-brands--names li:nth-child(3) {
    animation-delay: 140ms;
}

.cms-brands-band.is-revealed .cms-brands--names li:nth-child(4) {
    animation-delay: 210ms;
}

.cms-brands-band.is-revealed .cms-brands--names li:nth-child(n + 5) {
    animation-delay: 280ms;
}

@keyframes brand-chip-in {
    from {
        opacity: 0;
        transform: translateX(-18px) scale(0.9);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.cms-cards--shop {
    gap: clamp(20px, 2.5vw, 32px);
    margin-top: clamp(28px, 4vw, 48px);
}

.cms-card--shop {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    padding: 12px;
    border: 1px solid rgba(16, 57, 43, 0.1);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 16px 44px rgba(16, 57, 43, 0.08);
    text-align: left;
    transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.cms-card--shop:hover {
    transform: translateY(-7px);
    border-color: rgba(104, 170, 69, 0.4);
    box-shadow: 0 24px 56px rgba(16, 57, 43, 0.15);
}

.cms-card--shop .cms-card__visual {
    display: block;
    overflow: hidden;
    border-radius: 14px;
    background:
        radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.95), rgba(244, 246, 241, 0.92));
}

.cms-card--shop .cms-card__media,
.cms-card--shop .cms-card__media--empty {
    height: clamp(210px, 20vw, 270px);
    margin: 0;
    background: transparent;
    border-radius: 14px;
    object-fit: contain;
    transition: transform 320ms ease;
}

.cms-card--shop:hover .cms-card__media {
    transform: scale(1.045);
}

.cms-card--shop .cms-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 22px 10px 10px;
}

.cms-card--shop .cms-card__brand {
    margin: 0 0 8px;
    color: var(--color-green, #5f9f3e);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.cms-card--shop .cms-card__title {
    margin: 0 0 16px;
    color: var(--color-navy, #10392b);
    font-size: clamp(1.05rem, 1.4vw, 1.25rem);
    line-height: 1.3;
}

.cms-card--shop .cms-card__title a {
    color: inherit;
}

.cms-card--shop .cms-card__price {
    margin: auto 0 18px;
    color: var(--color-navy, #10392b);
    font-family: var(--font-heading);
    font-size: 1.2rem;
    font-weight: 800;
}

.cms-card--shop .cms-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    padding-top: 16px;
    border-top: 1px solid rgba(16, 57, 43, 0.1);
}

.cms-card--shop .cms-card__details {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    color: var(--color-navy, #10392b);
    font-size: 0.9rem;
    font-weight: 750;
}

.cms-card--shop .cms-card__details span {
    color: var(--color-green, #5f9f3e);
    transition: transform 180ms ease;
}

.cms-card--shop .cms-card__details:hover span {
    transform: translateX(4px);
}

.cms-card--shop .cms-card__cart {
    min-height: 40px;
    padding: 9px 14px;
    font-size: 0.8rem;
}

.cms-products__all {
    display: flex;
    justify-content: center;
    margin-top: clamp(32px, 5vw, 56px);
}

.cms-products__all .site-btn {
    gap: 12px;
    padding-inline: 24px;
}

@media (max-width: 640px) {
    .cms-card--shop {
        border-radius: 16px;
    }

    .cms-card--shop .cms-card__media,
    .cms-card--shop .cms-card__media--empty {
        height: 230px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cms-card--shop,
    .cms-card--shop .cms-card__media,
    .cms-card--shop .cms-card__details span {
        transition: none;
    }
}

.catalog-hero {
    position: relative;
    padding: clamp(56px, 7vw, 96px) 0 clamp(104px, 11vw, 144px);
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 18%, rgba(116, 174, 77, 0.22), transparent 30%),
        linear-gradient(135deg, #0e3127 0%, #123f30 58%, #174c37 100%);
    color: #fff;
}

.catalog-hero::after {
    position: absolute;
    right: -7rem;
    bottom: -11rem;
    width: 28rem;
    height: 28rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    content: "";
}

.catalog-hero__inner {
    position: relative;
    z-index: 1;
}

.catalog-breadcrumb {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: clamp(36px, 5vw, 64px);
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.82rem;
}

.catalog-breadcrumb a {
    color: #fff;
}

.catalog-hero .cms-kicker {
    color: #a9d18e;
}

.catalog-hero .page-band__title {
    max-width: 800px;
    color: #fff;
    font-size: clamp(2.6rem, 6vw, 5rem);
    font-weight: 600;
}

.catalog-hero__intro {
    max-width: 660px;
    margin: 24px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(1rem, 1.7vw, 1.2rem);
    line-height: 1.7;
}

.catalog-page {
    padding: 0 0 clamp(72px, 9vw, 120px);
    background: #f5f7f3;
}

.catalog-filters {
    position: relative;
    z-index: 2;
    transform: translateY(-56px);
    padding: clamp(24px, 4vw, 40px);
    border: 1px solid rgba(16, 57, 43, 0.08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(8, 42, 31, 0.13);
}

.catalog-filters__heading,
.catalog-filters__actions,
.catalog-results {
    display: flex;
    gap: 24px;
    align-items: center;
    justify-content: space-between;
}

.catalog-filters__heading {
    margin-bottom: 28px;
}

.catalog-filters__heading h2,
.catalog-results h2 {
    margin: 4px 0 0;
    color: #10392b;
    font-family: var(--font-heading);
    font-size: clamp(1.45rem, 2.4vw, 2rem);
}

.catalog-cart-link,
.catalog-reset {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    color: #10392b;
    font-size: 0.88rem;
    font-weight: 750;
}

.catalog-filters__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.catalog-field {
    display: grid;
    gap: 8px;
}

.catalog-field > span {
    color: #435a51;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.catalog-field input,
.catalog-field select {
    width: 100%;
    min-height: 52px;
    padding: 10px 14px;
    border: 1px solid #d6ded9;
    border-radius: 10px;
    outline: none;
    background: #fafbf9;
    color: #10392b;
    font: inherit;
    transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.catalog-field input:focus,
.catalog-field select:focus {
    border-color: #6aaa45;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(106, 170, 69, 0.12);
}

.catalog-filters__actions {
    justify-content: flex-start;
    margin-top: 24px;
}

.catalog-results {
    margin: 8px 0 30px;
}

.catalog-results p {
    margin: 0;
    color: #64756e;
}

.catalog-page .cms-cards--shop {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 0;
}

.catalog-page .cms-pagination {
    justify-content: center;
    margin-top: clamp(40px, 6vw, 64px);
}

.cms-pagination__pages {
    display: flex;
    gap: 8px;
}

.cms-pagination__page,
.cms-pagination__control {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 8px 14px;
    border: 1px solid rgba(16, 57, 43, 0.14);
    border-radius: 10px;
    background: #fff;
    color: #10392b;
    font-size: 0.88rem;
    font-weight: 750;
}

.cms-pagination__page.is-active {
    border-color: #10392b;
    background: #10392b;
    color: #fff;
}

.cms-pagination__control.cms-pagination__disabled {
    opacity: 0.42;
}

@media (max-width: 900px) {
    .catalog-filters__grid,
    .catalog-page .cms-cards--shop {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .catalog-hero {
        padding: 42px 0 96px;
    }

    .catalog-breadcrumb {
        margin-bottom: 34px;
    }

    .catalog-filters {
        transform: translateY(-36px);
        padding: 22px 18px;
        border-radius: 16px;
    }

    .catalog-filters__heading,
    .catalog-results {
        align-items: flex-start;
        flex-direction: column;
    }

    .catalog-filters__grid,
    .catalog-page .cms-cards--shop {
        grid-template-columns: 1fr;
    }

    .catalog-filters__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .catalog-filters__actions .site-btn {
        justify-content: center;
        width: 100%;
    }

    .catalog-page .cms-pagination {
        gap: 10px;
        justify-content: space-between;
    }

    .cms-pagination__control {
        padding-inline: 11px;
        font-size: 0.78rem;
    }
}

.product-detail {
    padding: 32px 0 clamp(72px, 9vw, 120px);
    background:
        linear-gradient(180deg, #edf2ec 0, #f7f8f5 32rem, #fff 32rem);
}

.product-detail__breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    align-items: center;
    margin-bottom: 32px;
    color: #64756e;
    font-size: 0.82rem;
}

.product-detail__breadcrumb a {
    color: #10392b;
}

.product-detail__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
    gap: clamp(36px, 6vw, 80px);
    align-items: start;
    padding: clamp(18px, 3vw, 34px);
    border: 1px solid rgba(16, 57, 43, 0.08);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 26px 80px rgba(8, 42, 31, 0.11);
}

.product-detail__main-image {
    display: grid;
    min-height: clamp(360px, 48vw, 600px);
    place-items: center;
    overflow: hidden;
    border-radius: 19px;
    background:
        radial-gradient(circle at 50% 42%, #fff 0, #f6f8f4 58%, #eef2ec 100%);
}

.product-detail__main-image img {
    width: 100%;
    height: clamp(360px, 48vw, 600px);
    padding: clamp(24px, 4vw, 52px);
    object-fit: contain;
}

.product-detail__image-empty {
    color: #75847e;
}

.product-detail__gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

.product-detail__gallery img {
    width: 100%;
    height: 96px;
    padding: 8px;
    border: 1px solid rgba(16, 57, 43, 0.1);
    border-radius: 11px;
    background: #f7f9f6;
    object-fit: contain;
}

.product-detail__summary {
    position: sticky;
    top: 112px;
    padding: clamp(8px, 2vw, 20px) 0;
}

.product-detail__labels {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 18px;
}

.product-detail__labels span {
    padding: 7px 11px;
    border-radius: 999px;
    background: #f0f3ef;
    color: #53675e;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.product-detail__labels .product-detail__brand {
    background: #e5f0dd;
    color: #41752c;
}

.product-detail__summary h1 {
    margin: 0;
    color: #10392b;
    font-family: var(--font-heading);
    font-size: clamp(2rem, 4vw, 3.6rem);
    letter-spacing: -0.04em;
    line-height: 1.05;
}

.product-detail__lead {
    margin: 24px 0 0;
    color: #566a61;
    font-size: clamp(1rem, 1.4vw, 1.12rem);
    line-height: 1.7;
}

.product-detail__reference {
    margin: 16px 0 0;
    color: #7c8b85;
    font-size: 0.8rem;
}

.product-detail__price {
    margin: 28px 0;
    color: #10392b;
    font-family: var(--font-heading);
    font-size: clamp(1.8rem, 3vw, 2.45rem);
    font-weight: 800;
}

.product-detail__order {
    display: grid;
    gap: 8px;
}

.product-detail__order > label {
    color: #53675e;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.product-detail__order > div {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 10px;
}

.product-detail__order input {
    width: 100%;
    min-height: 50px;
    padding: 8px 12px;
    border: 1px solid #d6ded9;
    border-radius: 10px;
    color: #10392b;
    font: inherit;
    text-align: center;
}

.product-detail__order .site-btn {
    justify-content: center;
}

.product-detail__reassurance {
    margin: 12px 0 0;
    color: #71817a;
    font-size: 0.78rem;
    line-height: 1.55;
}

.product-detail__quick-links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 22px;
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid rgba(16, 57, 43, 0.1);
}

.product-detail__quick-links a {
    color: #10392b;
    font-size: 0.85rem;
    font-weight: 750;
}

.product-detail__quick-links span {
    color: #6aaa45;
}

.product-detail__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 22px;
}

.product-detail__tags a,
.product-detail__tags span {
    padding: 6px 10px;
    border: 1px solid rgba(16, 57, 43, 0.12);
    border-radius: 999px;
    color: #5b6e65;
    font-size: 0.74rem;
}

.product-detail__information {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
    gap: clamp(32px, 6vw, 80px);
    margin-top: clamp(72px, 9vw, 120px);
    align-items: start;
}

.product-detail__information h2,
.product-detail__documents h2,
.product-detail__services h2 {
    margin: 6px 0 24px;
    color: #10392b;
    font-family: var(--font-heading);
    font-size: clamp(1.7rem, 3vw, 2.5rem);
}

.product-detail__description .cms-prose {
    max-width: 100%;
    color: #4f6259;
    font-size: 1.02rem;
    line-height: 1.85;
}

.product-detail__specifications {
    padding: clamp(24px, 4vw, 38px);
    border-radius: 20px;
    background: #10392b;
    color: #fff;
}

.product-detail__specifications .cms-kicker {
    color: #a9d18e;
}

.product-detail__specifications h2 {
    color: #fff;
}

.product-detail__specifications .cms-specs div {
    grid-template-columns: minmax(7rem, 1fr) 1fr;
    padding: 14px 0;
    border-color: rgba(255, 255, 255, 0.14);
}

.product-detail__specifications .cms-specs dt {
    color: rgba(255, 255, 255, 0.65);
}

.product-detail__specifications .cms-specs dd {
    color: #fff;
    text-align: right;
}

.product-detail__documents,
.product-detail__services {
    margin-top: clamp(64px, 8vw, 104px);
}

.product-detail__documents {
    display: grid;
    grid-template-columns: minmax(220px, 0.6fr) minmax(0, 1.4fr);
    gap: 40px;
    padding: clamp(26px, 4vw, 44px);
    border-radius: 22px;
    background: #edf2ec;
}

.product-detail__documents ul {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.product-detail__documents a {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: space-between;
    padding: 16px 18px;
    border-radius: 10px;
    background: #fff;
    color: #10392b;
    font-weight: 700;
}

.product-related {
    background: #edf2ec;
}

.product-related .cms-cards--shop {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 900px) {
    .product-detail__hero {
        grid-template-columns: 1fr;
    }

    .product-detail__summary {
        position: static;
    }

    .product-related .cms-cards--shop {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .product-detail {
        padding-top: 22px;
    }

    .product-detail__hero {
        gap: 26px;
        padding: 12px;
        border-radius: 18px;
    }

    .product-detail__main-image,
    .product-detail__main-image img {
        min-height: 310px;
        height: 310px;
    }

    .product-detail__summary {
        padding: 8px 8px 16px;
    }

    .product-detail__order > div,
    .product-detail__documents {
        grid-template-columns: 1fr;
    }

    .product-detail__order input {
        text-align: left;
    }

    .product-detail__specifications .cms-specs div {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .product-detail__specifications .cms-specs dd {
        text-align: left;
    }

    .product-related .cms-cards--shop {
        grid-template-columns: 1fr;
    }
}

.cms-cta-quote__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 48px;
    align-items: center;
}

.cms-cta-quote__text {
    max-width: 32rem;
    color: var(--color-text);
    line-height: 1.7;
}

.cms-cta-quote__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 22px;
    margin-top: 28px;
}

.cms-cta-quote__phone {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--color-text-dark);
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 500;
}

.cms-cta-quote__phone-icon {
    display: inline-flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border-solid, #c7ccca);
    border-radius: 999px;
}

.cms-cta-quote__phone-icon svg {
    width: 18px;
    height: 18px;
}

.cms-cta-quote__media {
    position: relative;
    min-height: 430px;
}

.cms-cta-quote__frame {
    position: absolute;
    overflow: hidden;
    border-radius: 18px;
    background:
        linear-gradient(160deg, #4d6a3a, #1c2a18),
        repeating-linear-gradient(118deg, #2a4a34 0 16px, #163024 16px 22px);
}

.cms-cta-quote__frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cms-cta-quote__frame--back {
    top: 0;
    right: 0;
    width: 74%;
    height: 78%;
}

.cms-cta-quote__frame--front {
    left: 0;
    bottom: 0;
    width: 58%;
    height: 70%;
    z-index: 1;
    background:
        linear-gradient(160deg, #2c6a8a, #123040),
        repeating-linear-gradient(100deg, #3a7a4c 0 18px, #1a3824 18px 26px);
}

.cms-faq-split__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 56px;
    align-items: center;
}

.cms-faq-split__media {
    position: relative;
}

.cms-faq-split__media img,
.cms-faq-split__placeholder {
    display: block;
    width: 100%;
    min-height: 420px;
    object-fit: cover;
    border-radius: 18px;
}

.cms-faq-split__placeholder {
    background:
        linear-gradient(160deg, #1a4a2c, #0d2418),
        repeating-linear-gradient(118deg, #2a6a3c 0 14px, #163824 14px 22px);
}

.cms-faq-split__badge {
    position: absolute;
    left: 8%;
    bottom: -28px;
    width: min(78%, 340px);
    margin: 0;
    padding: 28px 26px;
    border-radius: 16px;
    background: var(--color-gold);
    color: #10271d;
    font-family: var(--font-heading);
    font-size: clamp(1.4rem, 2.4vw, 1.85rem);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.03em;
}

.cms-faq-split .cms-faq__list details {
    border-bottom: 1px solid rgba(16, 39, 29, 0.12);
}

.cms-faq-split .cms-faq__list summary {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    list-style: none;
    font-size: 1.12rem;
    font-weight: 500;
}

.cms-faq-split .cms-faq__list summary::-webkit-details-marker {
    display: none;
}

.cms-faq-split .cms-faq__list summary::before {
    content: "+";
    flex: 0 0 1.2rem;
    font-size: 1.35rem;
    line-height: 1.1;
    color: var(--color-text-dark);
}

.cms-faq-split .cms-faq__list details[open] summary::before {
    content: "–";
}

.cms-faq-split .cms-faq__list p {
    padding-left: 2.2rem;
}

@media (max-width: 980px) {
    .cms-about__grid,
    .cms-cta-quote__grid,
    .cms-faq-split__grid {
        grid-template-columns: 1fr;
    }

    .cms-overlay-cards > li {
        flex-basis: min(72vw, 430px);
    }

    .cms-section.cms-brands-band {
        padding: 76px 0 84px;
    }

    .cms-brands-band__heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
    }

    .cms-brands-band .cms-brands--names {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 36px 28px;
        margin-top: 44px;
    }

    .cms-profile__grid {
        grid-template-columns: 1fr;
    }

    .cms-profile__media {
        min-height: min(70vw, 560px);
        transform: none;
    }

    .cms-cta-quote__media {
        min-height: 360px;
    }

    .cms-faq-split__badge {
        left: 16px;
        bottom: 16px;
        width: min(86%, 280px);
    }
}

@media (max-width: 700px) {
    .cms-about__columns {
        grid-template-columns: 1fr;
        padding-left: 56px;
    }

    .cms-overlay-card {
        min-height: 280px;
    }

    .cms-overlay-cards > li {
        flex-basis: 88%;
    }

    .cms-services-carousel__controls {
        justify-content: space-between;
    }

    .cms-brands-band .cms-brands--names {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .cms-brand-feature__description {
        max-width: 26rem;
    }

    .cms-profile__media {
        min-height: 390px;
        border-radius: 14px;
    }

    .cms-profile__stats {
        gap: 24px 20px;
        margin-top: 32px;
    }

    .cms-profile__stats dd {
        font-size: clamp(2.5rem, 15vw, 3.8rem);
    }
}

.cms-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.7s ease var(--reveal-delay, 0ms), transform 0.7s ease var(--reveal-delay, 0ms);
}

.cms-reveal.is-revealed {
    opacity: 1;
    transform: none;
}

.cms-overlay-card {
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.cms-overlay-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 18px 40px rgba(16, 20, 12, 0.18);
}

.cms-overlay-card__media {
    transition: transform 0.7s ease;
}

.cms-overlay-card:hover .cms-overlay-card__media {
    transform: scale(1.06);
}

.cms-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cms-card:hover {
    transform: translateY(-4px);
}

.site-btn {
    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.site-btn:hover {
    transform: translateY(-1px);
}

.cms-cta-quote__frame {
    transition: transform 0.6s ease;
}

.cms-cta-quote:hover .cms-cta-quote__frame--back {
    transform: translate(4px, -4px);
}

.cms-cta-quote:hover .cms-cta-quote__frame--front {
    transform: translate(-4px, 4px);
}

.hero-shell__content {
    animation: hero-copy-in 0.9s ease both;
}

@keyframes hero-copy-in {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cms-reveal,
    .hero-shell__content,
    .cms-overlay-card,
    .cms-card,
    .site-btn,
    .cms-cta-quote__frame,
    .cms-brands-band .cms-brands--names li,
    .cms-brands__item--name,
    .cms-brand-feature__description,
    .cms-profile__media,
    .cms-profile__stats > div,
    .cms-profile__stats dd,
    .media-depth img {
        animation: none;
        transition: none;
        opacity: 1;
        transform: none;
    }
}

/* Interior pages — premium composition on the Soleil theme */

.interior-page {
    background: var(--color-cream);
}

.interior-page .cms-section {
    padding: 88px 0;
}

.interior-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 20px;
    font-size: 0.82rem;
    letter-spacing: 0.04em;
}

.interior-breadcrumb a {
    color: inherit;
    text-decoration: none;
    opacity: 0.82;
}

.interior-breadcrumb a:hover,
.interior-breadcrumb a:focus-visible {
    opacity: 1;
    text-decoration: underline;
}

.hero-shell--page {
    min-height: 58vh;
}

.hero-shell--image.hero-shell--page,
.hero-shell--institutional.hero-shell--page {
    min-height: 66vh;
}

.hero-shell--split {
    background: var(--color-sage);
    min-height: 0;
    overflow: visible;
}

.hero-shell--split .hero-shell__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: 56px;
    align-items: center;
    color: var(--color-text-dark);
    padding: 120px 0 80px;
    animation: none;
}

.hero-shell--split .hero-shell__title,
.hero-shell--split .hero-shell__subtitle,
.hero-shell--split .hero-shell__lead {
    color: var(--color-text-dark);
}

.hero-shell--split .hero-shell__lead,
.hero-shell--split .hero-shell__subtitle {
    max-width: 34rem;
}

.hero-shell__figure {
    position: relative;
}

.media-depth {
    position: relative;
}

.media-depth::before {
    content: "";
    position: absolute;
    inset: 22px -18px -18px 22px;
    border: 1px solid rgba(16, 39, 29, 0.14);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.28);
}

.media-depth img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 28px 50px rgba(16, 24, 16, 0.16);
    transition: transform 0.45s ease, box-shadow 0.45s ease;
}

.media-depth:hover img {
    transform: translateY(-4px);
    box-shadow: 0 32px 56px rgba(16, 24, 16, 0.2);
}

.cms-split--large {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.2fr);
}

.cms-split--framed .cms-split__media,
.cms-split--overlap .cms-split__media {
    margin-block: 8px;
}

.cms-split--overlap .cms-split__media {
    transform: translateY(12px);
}

.cms-story__grid {
    display: grid;
    gap: 56px;
    align-items: center;
}

.cms-story__grid.is-image-left,
.cms-story__grid.is-image-right {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
}

.cms-story__grid.is-image-left {
    direction: rtl;
}

.cms-story__grid.is-image-left > * {
    direction: ltr;
}

.cms-story__prose {
    max-width: 38rem;
    font-size: 1.05rem;
    line-height: 1.75;
}

.cms-features__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 40px 48px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.cms-features__list h3 {
    margin: 8px 0 8px;
    font-family: var(--font-heading);
    font-size: 1.35rem;
    font-weight: 500;
    color: var(--color-text-dark);
}

.cms-features__list p {
    margin: 0;
    color: var(--color-text);
    line-height: 1.6;
}

.cms-features__number,
.cms-features__icon {
    margin: 0;
    font-family: var(--font-heading);
    font-size: clamp(2.4rem, 4vw, 3.4rem);
    font-weight: 500;
    line-height: 1;
    color: var(--color-text-dark);
}

.cms-immersive {
    padding-top: 24px;
}

.cms-immersive__full img,
.cms-immersive__frame img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.cms-immersive__full img {
    height: min(72vh, 760px);
    border-radius: 0;
}

.cms-immersive__frame {
    position: relative;
}

.cms-immersive__badge {
    position: absolute;
    left: 20px;
    bottom: 20px;
    z-index: 2;
    margin: 0;
    padding: 10px 16px;
    border-radius: 999px;
    background: var(--color-white);
    color: var(--color-text-dark);
    font-size: 0.82rem;
    letter-spacing: 0.04em;
}

.cms-immersive__caption {
    position: absolute;
    inset: auto 24px 24px 24px;
    z-index: 2;
    max-width: 34rem;
    color: var(--color-white);
}

.cms-immersive__caption h2 {
    margin: 0 0 10px;
    font-family: var(--font-heading);
    font-size: clamp(1.8rem, 3vw, 2.6rem);
}

.cms-immersive__copy {
    max-width: 40rem;
    margin-top: 28px;
}

.cms-cta--light {
    background: var(--color-sage);
    color: var(--color-text-dark);
}

.cms-cta--brand {
    background: var(--color-text-dark);
    color: var(--color-white);
}

.cms-cta__actions {
    justify-content: center;
}

.cms-cta--light .cms-cta__actions {
    justify-content: center;
}

@media (max-width: 980px) {
    .site-header--overlay + .site-main .hero-shell--page {
        min-height: 52vh;
    }

    .hero-shell--split .hero-shell__content,
    .cms-story__grid.is-image-left,
    .cms-story__grid.is-image-right,
    .cms-split--large {
        grid-template-columns: 1fr;
    }

    .cms-story__grid.is-image-left {
        direction: ltr;
    }

    .cms-split--overlap .cms-split__media {
        transform: none;
    }

    .media-depth::before {
        display: none;
    }

    .interior-page .cms-section {
        padding: 64px 0;
    }
}

.news-page {
    padding: 0 0 clamp(72px, 9vw, 120px);
    background: #fff;
}

.news-page__filters {
    position: relative;
    z-index: 2;
    margin: -40px 0 48px;
    padding: 18px 20px;
    border: 1px solid rgba(16, 57, 43, 0.08);
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(8, 42, 31, 0.08);
}

.news-page__heading {
    margin: 0 0 clamp(28px, 4vw, 40px);
}

.news-page__heading .cms-section__title,
.news-section .cms-section__title {
    margin-bottom: clamp(28px, 4vw, 40px);
}

.news-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(24px, 3vw, 36px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.news-card {
    height: 100%;
    background: transparent;
    box-shadow: none;
}

.news-card__link {
    display: flex;
    height: 100%;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
}

.news-card__media {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-radius: 12px;
    background: #edf2ec;
}

.news-card__media img,
.news-card__placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 320ms ease;
}

.news-card__placeholder {
    display: block;
    background:
        linear-gradient(135deg, #d7e4d0 0%, #edf2ec 55%, #cfe0c4 100%);
}

.news-card__link:hover .news-card__media img,
.news-card__link:focus-visible .news-card__media img {
    transform: scale(1.04);
}

.news-card__date {
    position: absolute;
    top: 14px;
    left: 14px;
    display: grid;
    min-width: 4.4rem;
    padding: 8px 10px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 8px 20px rgba(16, 57, 43, 0.12);
    color: #10392b;
    font-family: var(--font-heading);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
}

.news-card__date span {
    display: block;
}

.news-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 18px 4px 0;
}

.news-card__category {
    margin-bottom: 8px;
    color: #5f9f3e;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.news-card__title {
    margin: 0;
    color: #10392b;
    font-family: var(--font-heading);
    font-size: clamp(1.02rem, 1.3vw, 1.18rem);
    font-weight: 600;
    line-height: 1.35;
}

.news-card__excerpt {
    display: block;
    margin-top: 10px;
    color: #64756e;
    font-size: 0.92rem;
    line-height: 1.55;
}

.news-card__cta {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    align-self: flex-end;
    margin-top: auto;
    padding-top: 18px;
    color: #5f9f3e;
    font-size: 0.88rem;
    font-weight: 750;
}

.news-card__cta::before {
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 7px solid currentColor;
    content: "";
}

.news-section__all {
    display: flex;
    justify-content: center;
}

.news-related {
    background: #edf2ec;
}

@media (max-width: 900px) {
    .news-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .news-page__filters {
        border-radius: 18px;
    }
}

@media (max-width: 640px) {
    .news-cards {
        grid-template-columns: 1fr;
        max-width: 26rem;
        margin-inline: auto;
    }

    .news-page__filters {
        margin-top: -28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .news-card__media img,
    .activity-card__media img {
        transition: none;
    }
}

.activity-page {
    padding: 0 0 clamp(72px, 9vw, 120px);
    background: #fff;
}

.activity-page .activity-cards {
    margin-top: clamp(8px, 2vw, 24px);
}

.activity-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(16px, 2.2vw, 22px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.activity-card {
    height: 100%;
}

.activity-card__link {
    display: flex;
    height: 100%;
    flex-direction: column;
    padding: 10px;
    border: 1px solid rgba(16, 57, 43, 0.08);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(8, 42, 31, 0.05);
    color: inherit;
    text-decoration: none;
    transition: transform 220ms ease, box-shadow 220ms ease;
}

a.activity-card__link:hover,
a.activity-card__link:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 16px 36px rgba(8, 42, 31, 0.1);
}

.activity-card__media {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 7.2;
    border-radius: 10px;
    background: #edf2ec;
}

.activity-card__media img,
.activity-card__placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 320ms ease;
}

.activity-card__placeholder {
    display: block;
    background:
        linear-gradient(135deg, #d7e4d0 0%, #edf2ec 55%, #cfe0c4 100%);
}

a.activity-card__link:hover .activity-card__media img,
a.activity-card__link:focus-visible .activity-card__media img {
    transform: scale(1.04);
}

.activity-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 12px 6px 4px;
}

.activity-card__title {
    margin: 0;
    color: #10392b;
    font-family: var(--font-heading);
    font-size: clamp(1.02rem, 1.3vw, 1.18rem);
    font-weight: 700;
    line-height: 1.3;
}

.activity-card__excerpt {
    display: block;
    margin-top: 8px;
    color: #64756e;
    font-size: 0.88rem;
    line-height: 1.5;
}

.activity-card__cta {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    align-self: flex-end;
    margin-top: auto;
    padding-top: 12px;
    color: #5f9f3e;
    font-size: 0.8rem;
    font-weight: 750;
}

.activity-card__cta::before {
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 7px solid currentColor;
    content: "";
}

@media (max-width: 760px) {
    .activity-cards {
        grid-template-columns: 1fr;
    }
}

.conversion-hero {
    position: relative;
    min-height: min(78vh, 46rem);
    overflow: hidden;
    color: #fff;
}

.conversion-hero__media,
.conversion-hero__overlay {
    position: absolute;
    inset: 0;
}

.conversion-hero__media {
    background:
        radial-gradient(ellipse at 18% 80%, rgba(16, 57, 43, 0.55), transparent 52%),
        linear-gradient(180deg, #1a3a2c 0%, #10392b 100%);
}

.conversion-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.conversion-hero__overlay {
    background:
        linear-gradient(180deg, rgba(8, 28, 22, 0.28) 0%, rgba(8, 28, 22, 0.18) 38%, rgba(8, 28, 22, 0.72) 100%);
}

.conversion-hero--has-image .conversion-hero__overlay {
    background:
        linear-gradient(180deg, rgba(8, 28, 22, 0.42) 0%, rgba(8, 28, 22, 0.28) 36%, rgba(8, 28, 22, 0.82) 100%);
}

.conversion-hero .site-btn--ghost {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.55);
}

.conversion-hero .site-btn--ghost:hover {
    background: rgba(255, 255, 255, 0.14);
}

.conversion-hero__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: inherit;
    padding: 132px 0 88px;
}

.conversion-hero__breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    align-items: center;
    margin-bottom: 22px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.82rem;
}

.conversion-hero__breadcrumb a {
    color: #fff;
}

.conversion-hero h1 {
    margin: 8px 0 0;
    max-width: 16ch;
    color: #fff;
    font-family: var(--font-heading);
    font-size: clamp(2.4rem, 5vw, 4.2rem);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.05;
}

.conversion-hero__lead {
    max-width: 38rem;
    margin: 16px 0 0;
    color: rgba(255, 255, 255, 0.84);
    font-size: 1.08rem;
    line-height: 1.65;
}

.conversion-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 22px;
    align-items: center;
    margin: 28px 0 0;
}

.conversion-steps--dock {
    position: relative;
    z-index: 2;
    margin-top: -36px;
    margin-bottom: 8px;
}

.conversion-steps--dock ol {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    max-width: var(--container, 72rem);
    margin: 0 auto;
    padding: 0 20px;
    list-style: none;
}

.conversion-steps--dock a {
    display: flex;
    gap: 8px;
    align-items: baseline;
    padding: 14px 16px;
    border: 1px solid rgba(16, 57, 43, 0.1);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 16px 36px rgba(8, 42, 31, 0.1);
    color: #10392b;
    font-size: 0.88rem;
    font-weight: 650;
}

.conversion-steps--dock span {
    color: #5f9f3e;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.conversion-block {
    padding: clamp(48px, 6vw, 80px) 0;
}

.conversion-block--offer {
    background: #edf2ec;
}

.conversion-block__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: center;
}

.conversion-block__grid--reverse > .conversion-block__media {
    order: -1;
}

.conversion-block__narrow {
    max-width: 44rem;
}

.conversion-block__media {
    overflow: hidden;
    margin: 0;
    border-radius: 18px;
    background: #edf2ec;
    box-shadow: 0 18px 48px rgba(8, 42, 31, 0.1);
}

.conversion-block__media--portrait {
    align-self: stretch;
    min-height: 28rem;
}

.conversion-block__media img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

.conversion-block__media--portrait img {
    height: 100%;
    min-height: 28rem;
}

.conversion-block__grid .conversion-included {
    grid-template-columns: 1fr;
}

.conversion-included {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
}

.conversion-included li {
    padding: 18px 18px 16px;
    border: 1px solid rgba(16, 57, 43, 0.08);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(8, 42, 31, 0.04);
}

.conversion-included__index {
    display: block;
    margin-bottom: 8px;
    color: #5f9f3e;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.conversion-included h3 {
    margin: 0;
    color: #10392b;
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 700;
}

.conversion-included p {
    margin: 8px 0 0;
    color: #64756e;
    font-size: 0.9rem;
    line-height: 1.5;
}

.conversion-range {
    margin-top: clamp(28px, 4vw, 48px);
}

.conversion-range .cms-cards--shop {
    margin-top: 0;
}

.conversion-cta {
    padding: clamp(56px, 8vw, 96px) 0;
    background: #10392b;
    color: #fff;
}

.conversion-cta h2 {
    margin: 8px 0 0;
    color: #fff;
}

.conversion-cta p {
    max-width: 38rem;
    margin: 16px 0 0;
    color: rgba(255, 255, 255, 0.84);
}

@media (max-width: 900px) {
    .conversion-steps--dock ol,
    .conversion-block__grid,
    .conversion-included {
        grid-template-columns: 1fr;
    }

    .conversion-hero__inner {
        padding-top: 108px;
        padding-bottom: 72px;
    }

    .conversion-block__grid--reverse > .conversion-block__media {
        order: 0;
    }
}

.article-detail {
    padding: 32px 0 clamp(72px, 9vw, 120px);
    background:
        linear-gradient(180deg, #edf2ec 0, #f7f8f5 22rem, #fff 22rem);
}

.article-detail__breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    align-items: center;
    margin-bottom: 32px;
    color: #64756e;
    font-size: 0.82rem;
}

.article-detail__breadcrumb a {
    color: #10392b;
}

.article-detail__header {
    max-width: 46rem;
    margin-bottom: clamp(28px, 4vw, 40px);
}

.article-detail__labels {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 16px;
}

.article-detail__labels a,
.article-detail__labels span {
    padding: 7px 11px;
    border-radius: 999px;
    background: #e5f0dd;
    color: #41752c;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.article-detail__header h1 {
    margin: 0;
    color: #10392b;
    font-family: var(--font-heading);
    font-size: clamp(2.1rem, 5vw, 4rem);
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1.08;
}

.article-detail__lead {
    margin: 22px 0 0;
    color: #566a61;
    font-size: clamp(1.05rem, 1.6vw, 1.22rem);
    line-height: 1.7;
}

.article-detail__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin: 22px 0 0;
    color: #71817a;
    font-size: 0.9rem;
}

.article-detail__figure {
    position: relative;
    margin: 0 0 clamp(36px, 5vw, 56px);
    overflow: hidden;
    border-radius: 22px;
    background: #edf2ec;
    box-shadow: 0 24px 70px rgba(8, 42, 31, 0.12);
}

.article-detail__media {
    display: block;
    width: 100%;
    max-height: 520px;
    height: auto;
    object-fit: cover;
}

.article-detail__figure .news-card__date {
    top: 18px;
    left: 18px;
}

.article-detail__body {
    max-width: 46rem;
    margin: 0 auto;
    color: #4f6259;
    font-size: 1.05rem;
    line-height: 1.85;
}

.article-detail__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 46rem;
    margin: 36px auto 0;
    padding: 0;
    list-style: none;
}

.article-detail__tags li {
    padding: 7px 12px;
    border: 1px solid rgba(16, 57, 43, 0.12);
    border-radius: 999px;
    color: #5b6e65;
    font-size: 0.78rem;
}

.article-detail__actions,
.article-detail__facts {
    max-width: 46rem;
    margin: 28px auto 0;
}

.article-detail__facts .cms-contact__grid {
    margin-top: 0;
}

.article-detail__nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: clamp(48px, 6vw, 72px);
    padding-top: 28px;
    border-top: 1px solid rgba(16, 57, 43, 0.1);
}

.article-detail__nav a {
    display: grid;
    gap: 6px;
    padding: 18px 20px;
    border: 1px solid rgba(16, 57, 43, 0.08);
    border-radius: 16px;
    background: #fff;
    color: #10392b;
    box-shadow: 0 12px 32px rgba(8, 42, 31, 0.06);
}

.article-detail__nav a:last-child {
    text-align: right;
}

.article-detail__nav span {
    color: #5f9f3e;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.article-detail__nav strong {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 600;
}

@media (max-width: 640px) {
    .article-detail {
        padding-top: 22px;
    }

    .article-detail__figure,
    .article-detail__media {
        border-radius: 16px;
        max-height: 280px;
    }

    .article-detail__nav {
        grid-template-columns: 1fr;
    }

    .article-detail__nav a:last-child {
        text-align: left;
    }
}

/* Chatbot */

.chatbot {
    position: fixed;
    right: 28px;
    bottom: 28px;
    z-index: 50;
}

.site-body:has(.chatbot) .scroll-top {
    bottom: 5.75rem;
}

.chatbot__toggle {
    position: relative;
    z-index: 2;
    width: 56px;
    height: 56px;
    border: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--color-white);
    background: var(--color-link);
    box-shadow: 0 1rem 2.5rem rgba(16, 39, 29, 0.18);
    cursor: pointer;
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.chatbot__toggle:hover,
.chatbot__toggle:focus-visible {
    background: var(--color-link-hover);
    transform: translateY(-2px);
}

.chatbot__toggle:focus-visible {
    outline: 2px solid var(--color-text-dark);
    outline-offset: 3px;
}

.chatbot__toggle-icon {
    width: 24px;
    height: 24px;
}

.chatbot__toggle-icon--close {
    display: none;
}

.chatbot.is-open .chatbot__toggle-icon--open {
    display: none;
}

.chatbot.is-open .chatbot__toggle-icon--close {
    display: block;
}

.chatbot__panel[hidden] {
    display: none !important;
}

.chatbot__panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 0.85rem);
    z-index: 1;
    width: min(22rem, calc(100vw - 2rem));
    max-height: min(32rem, calc(100vh - 8rem));
    display: none;
    grid-template-rows: auto minmax(0, 1fr) auto auto;
    border-radius: 1.25rem;
    overflow: hidden;
    background: var(--color-white);
    box-shadow: 0 1.5rem 3rem rgba(16, 39, 29, 0.16);
    border: 1px solid rgba(16, 39, 29, 0.08);
}

.chatbot.is-open .chatbot__panel {
    display: grid;
}

.chatbot__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1rem 0.85rem;
    background: var(--color-sage);
}

.chatbot__eyebrow {
    margin: 0;
    color: var(--color-text-light);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.chatbot__title {
    margin: 0.2rem 0 0;
    color: var(--color-text-dark);
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 700;
}

.chatbot__close {
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--color-text-dark);
    background: rgba(255, 255, 255, 0.7);
    cursor: pointer;
}

.chatbot__close svg {
    width: 1rem;
    height: 1rem;
}

.chatbot__messages {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
    overflow-y: auto;
}

.chatbot__message {
    max-width: 92%;
    padding: 0.75rem 0.9rem;
    border-radius: 1rem;
    font-size: 0.95rem;
    line-height: 1.5;
}

.chatbot__message--bot {
    align-self: flex-start;
    background: var(--color-cream);
    color: var(--color-text-dark);
    border-bottom-left-radius: 0.35rem;
}

.chatbot__message--user {
    align-self: flex-end;
    background: var(--color-link);
    color: var(--color-white);
    border-bottom-right-radius: 0.35rem;
}

.chatbot__message--pending {
    opacity: 0.7;
}

.chatbot__suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0 1rem 0.75rem;
}

.chatbot__suggestion {
    border: 1px solid rgba(16, 39, 29, 0.12);
    border-radius: 999px;
    padding: 0.45rem 0.8rem;
    background: #fff;
    color: var(--color-text-dark);
    font-size: 0.82rem;
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.chatbot__suggestion:hover,
.chatbot__suggestion:focus-visible {
    border-color: var(--color-link);
    background: var(--color-sage);
}

.chatbot__form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem;
    padding: 0.85rem 1rem 1rem;
    border-top: 1px solid rgba(16, 39, 29, 0.08);
    background: #fff;
}

.chatbot__field {
    display: block;
}

.chatbot__input {
    width: 100%;
    padding: 0.8rem 0.95rem;
    border: 1px solid rgba(16, 39, 29, 0.14);
    border-radius: 999px;
    font: inherit;
    color: var(--color-text-dark);
    background: var(--color-cream);
}

.chatbot__input:focus {
    outline: 2px solid rgba(128, 170, 69, 0.35);
    border-color: var(--color-link);
}

.chatbot__send {
    width: 2.75rem;
    height: 2.75rem;
    border: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--color-white);
    background: var(--color-link);
    cursor: pointer;
}

.chatbot__send:disabled {
    opacity: 0.6;
    cursor: wait;
}

.chatbot__send svg {
    width: 1rem;
    height: 1rem;
}

@media (max-width: 640px) {
    .chatbot {
        right: 1rem;
        bottom: 1rem;
    }

    .site-body:has(.chatbot) .scroll-top {
        bottom: 5.25rem;
        right: 1rem;
    }

    .chatbot__panel {
        width: min(22rem, calc(100vw - 2rem));
        max-height: min(28rem, calc(100vh - 6rem));
    }
}

/* Site popup */

.site-popup[hidden] {
    display: none !important;
}

.site-popup {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
}

.site-popup.is-visible {
    display: flex;
}

.site-popup__overlay {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(16, 39, 29, 0.62);
    cursor: pointer;
}

.site-popup__dialog {
    position: relative;
    z-index: 1;
    width: min(36rem, 100%);
    max-height: min(90vh, 42rem);
    overflow: hidden;
    border-radius: 1.25rem;
    background: transparent;
    box-shadow: 0 1.5rem 3rem rgba(16, 39, 29, 0.2);
}

.site-popup__close {
    position: absolute;
    top: 0.85rem;
    right: 0.85rem;
    z-index: 2;
    width: 2.25rem;
    height: 2.25rem;
    border: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--color-text-dark);
    background: rgba(255, 255, 255, 0.92);
    cursor: pointer;
}

.site-popup__close svg {
    width: 1rem;
    height: 1rem;
}

.site-popup__link {
    display: block;
    line-height: 0;
}

.site-popup__image {
    display: block;
    width: 100%;
    max-height: min(90vh, 42rem);
    object-fit: contain;
    background: var(--color-white);
}

