:root {
    --khla-signature: var(--brand-gold);
    --khla-signature-ink: #6b5124;

    --brand-green: #1d3b29;
    --brand-green-deep: #12281b;
    --brand-ink: #241f1a;
    --brand-paper: #faf7f0;
    --brand-surface: #fdfbf5;
    --brand-gold: #b28a3e;
    --brand-gold-ink: #836327;
    --khla-ikat: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 64 64%22%3E%3Cg fill=%22%23000%22%3E%3Cpath d=%22M16 8 L24 16 L16 24 L8 16 Z%22/%3E%3Ccircle cx=%2216%22 cy=%2216%22 r=%221.7%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.2%22/%3E%3Cpath d=%22M48 8 L56 16 L48 24 L40 16 Z%22/%3E%3Ccircle cx=%2248%22 cy=%2216%22 r=%221.7%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.2%22/%3E%3Cpath d=%22M32 40 L40 48 L32 56 L24 48 Z%22/%3E%3Ccircle cx=%2232%22 cy=%2248%22 r=%221.7%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.2%22/%3E%3Cpath d=%22M0 40 L8 48 L0 56 L-8 48 Z%22/%3E%3Cpath d=%22M64 40 L72 48 L64 56 L56 48 Z%22/%3E%3Ccircle cx=%220%22 cy=%2248%22 r=%221.7%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.2%22/%3E%3Ccircle cx=%2264%22 cy=%2248%22 r=%221.7%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.2%22/%3E%3Crect x=%2230.9%22 y=%220%22 width=%222.2%22 height=%222.2%22 transform=%22rotate%2845 32 1.1%29%22/%3E%3Crect x=%2230.9%22 y=%2261.8%22 width=%222.2%22 height=%222.2%22 transform=%22rotate%2845 32 62.9%29%22/%3E%3Crect x=%22-1.1%22 y=%2230.9%22 width=%222.2%22 height=%222.2%22 transform=%22rotate%2845 0 32%29%22/%3E%3Crect x=%2262.9%22 y=%2230.9%22 width=%222.2%22 height=%222.2%22 transform=%22rotate%2845 64 32%29%22/%3E%3C/g%3E%3C/svg%3E");
    --khla-weft: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 48 14%22%3E%3Cg fill=%22%23000%22%3E%3Cpath d=%22M0 11 L6 3 L12 11 Z%22/%3E%3Cpath d=%22M12 11 L18 6 L24 11 Z%22/%3E%3Cpath d=%22M24 11 L30 3 L36 11 Z%22/%3E%3Cpath d=%22M36 11 L42 6 L48 11 Z%22/%3E%3Crect x=%220%22 y=%2212.4%22 width=%2248%22 height=%221.2%22/%3E%3Ccircle cx=%226%22 cy=%221.2%22 r=%221%22/%3E%3Ccircle cx=%2230%22 cy=%221.2%22 r=%221%22/%3E%3C/g%3E%3C/svg%3E");
    --khla-krama: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 48 48%22%3E%3Cg fill=%22%23000%22%3E%3Crect x=%2218%22 y=%220%22 width=%2212%22 height=%2248%22 fill-opacity=%220.45%22/%3E%3Crect x=%220%22 y=%2218%22 width=%2248%22 height=%2212%22 fill-opacity=%220.45%22/%3E%3Crect x=%2218%22 y=%2218%22 width=%2212%22 height=%2212%22/%3E%3Crect x=%224%22 y=%220%22 width=%221.4%22 height=%2248%22 fill-opacity=%220.35%22/%3E%3Crect x=%2242.6%22 y=%220%22 width=%221.4%22 height=%2248%22 fill-opacity=%220.35%22/%3E%3Crect x=%220%22 y=%224%22 width=%2248%22 height=%221.4%22 fill-opacity=%220.35%22/%3E%3Crect x=%220%22 y=%2242.6%22 width=%2248%22 height=%221.4%22 fill-opacity=%220.35%22/%3E%3C/g%3E%3C/svg%3E");
    --brand-lantern: #983127;
    --brand-line: #e9e2d3;

    --color-bg: var(--brand-paper);
    --color-surface: var(--brand-surface);
    --color-text: var(--brand-ink);
    --color-text-soft: #5e5648;
    --color-heading: var(--brand-green-deep);
    --color-primary: var(--brand-green);
    --color-on-primary: var(--brand-paper);
    --color-accent: var(--brand-gold);
    --color-accent-ink: var(--brand-gold-ink);
    --color-danger: var(--brand-lantern);
    --color-line: var(--brand-line);

    --font-display: "EB Garamond", "Noto Serif Khmer", Georgia, serif;
    --font-body: "Kantumruy Pro", system-ui, -apple-system, "Segoe UI", sans-serif;

    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: clamp(1.3rem, 1.15rem + 0.7vw, 1.7rem);
    --text-2xl: clamp(1.7rem, 1.4rem + 1.5vw, 2.5rem);
    --text-3xl: clamp(2.1rem, 1.6rem + 2.6vw, 3.5rem);

    --content-width: 72rem;
    --radius: 4px;
    --shadow-soft: 0 10px 30px rgba(18, 40, 27, 0.1);
    --header-height: 4.75rem;
}

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

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--header-height) + 1rem);
}

body {
    margin: 0;
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: 1.65;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-display);
    font-weight: 600;
    line-height: 1.15;
    color: var(--color-heading);
    margin: 0 0 0.75em;
}

h1 {
    font-size: var(--text-3xl);
}

h2 {
    font-size: var(--text-2xl);
}

h3 {
    font-size: var(--text-xl);
}

p {
    margin: 0 0 1.25em;
}

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

a {
    color: var(--color-primary);
    text-underline-offset: 2px;
}

a:hover {
    color: var(--brand-green-deep);
}

hr {
    border: 0;
    border-top: 1px solid var(--color-line);
    margin: 2.5rem 0;
}

::selection {
    background: var(--brand-green);
    color: var(--brand-paper);
}

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

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    border: 0;
    white-space: nowrap;
}

.skip-link:focus {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 200;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0.75rem 1.25rem;
    overflow: visible;
    clip-path: none;
    white-space: normal;
    background: var(--color-primary);
    color: var(--color-on-primary);
    text-decoration: none;
    border-radius: var(--radius);
}

.site-header__inner,
.site-footer__inner,
.site-main {
    width: min(var(--content-width), 100% - 2.5rem);
    margin-inline: auto;
}

body.admin-bar {
    --barre-admin: 32px;
}

@media (max-width: 782px) {
    body.admin-bar {
        --barre-admin: 0px;
    }
}

.site-header {
    --header-height: 7rem;
    --logo-height: 5.75rem;
    position: sticky;
    top: var(--barre-admin, 0px);
    z-index: 50;
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-line);
    transition: box-shadow 0.25s ease;
}

.site-header.is-scrolled {
    --header-height: 4.75rem;
    --logo-height: 3.4rem;
    box-shadow: var(--shadow-soft);
}

.site-header__inner {
    display: flex;
    align-items: center;
    gap: 2rem;
    min-height: var(--header-height);
}

.site-branding {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.custom-logo {
    display: block;
    max-height: var(--logo-height, 3.25rem);
    width: auto;
}

.site-title {
    font-family: var(--font-display);
    font-size: 1.6rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-heading);
}

.site-nav {
    margin-left: 0.5rem;
}

.site-nav__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-nav__list a {
    display: inline-block;
    padding: 0.35rem 0;
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-text);
    border-bottom: 2px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.site-nav__list a:hover,
.site-nav__list .current-menu-item > a,
.site-nav__list .current-menu-ancestor > a {
    color: var(--color-heading);
    border-color: var(--color-accent);
}

.site-header__actions {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-shrink: 0;
    margin-left: auto;
}

.lang-switch__list {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lang-switch__list li:not(:first-child) {
    margin-left: 0.6rem;
    padding-left: 0.6rem;
    border-left: 1px solid var(--color-line);
}

.lang-switch__list a {
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-text-soft);
}

.lang-switch__list a:hover,
.lang-switch__list .current-lang a {
    color: var(--color-heading);
}

.lang-switch__list .current-lang a {
    font-weight: 700;
    border-bottom: 2px solid var(--color-accent);
}

.header-cart {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 0.4rem;
    color: var(--color-heading);
}

.header-cart__count {
    position: absolute;
    top: -0.15rem;
    right: -0.35rem;
    min-width: 1.125rem;
    padding: 0 0.25rem;
    background: var(--color-danger);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1.125rem;
    text-align: center;
    border-radius: 999px;
}

.nav-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0.6rem;
    background: none;
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
    cursor: pointer;
}

.nav-toggle__bar {
    display: block;
    flex: none;
    width: 100%;
    height: 2px;
    background: var(--color-heading);
    transition: transform 0.25s ease, opacity 0.2s ease;
}

@media (forced-colors: active) {
    .nav-toggle__bar {
        background: CanvasText;
        forced-color-adjust: none;
    }

    .marque-puce--point::before {
        background: CanvasText;
        forced-color-adjust: none;
    }

    .header-cart__count {
        border: 1px solid CanvasText;
    }
}

body.nav-open .nav-toggle__bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

body.nav-open .nav-toggle__bar:nth-child(2) {
    opacity: 0;
}

body.nav-open .nav-toggle__bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.site-main {
    padding-block: 2.5rem 4.5rem;
}

.entry-title {
    margin-bottom: 1.25rem;
}

.entry-content {
    max-width: 70ch;
}

.btn,
.button,
button:not(.nav-toggle):not(.nav-sub-toggle),
input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.8rem 1.6rem;
    background: var(--color-primary);
    color: var(--color-on-primary);
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    border: 1px solid var(--color-primary);
    border-radius: var(--radius);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.btn:hover,
.button:hover,
button:not(.nav-toggle):not(.nav-sub-toggle):hover,
input[type="submit"]:hover {
    background: var(--brand-green-deep);
    color: var(--color-on-primary);
}

.btn--ghost {
    background: transparent;
    color: var(--color-primary);
}

.btn--ghost:hover {
    background: var(--color-primary);
    color: var(--color-on-primary);
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="url"],
select,
textarea {
    width: 100%;
    max-width: 28rem;
    padding: 0.7rem 0.9rem;
    background: var(--color-surface);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: var(--text-base);
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 0;
    border-color: var(--color-accent);
}

.site-footer {
    background: var(--brand-green-deep);
    color: rgba(246, 241, 230, 0.82);
    border-top: 2px solid var(--brand-gold);
}

.site-footer a {
    color: rgba(246, 241, 230, 0.82);
    text-decoration: none;
}

.site-footer a:hover {
    color: var(--brand-gold);
}

.site-footer__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
    gap: 2.25rem;
    padding-block: 3.5rem 2.5rem;
}

.site-footer__title {
    margin: 0 0 0.5rem;
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--brand-paper);
}

.site-footer__tagline {
    margin: 0 0 1.25rem;
    font-size: var(--text-sm);
}

.site-footer__heading {
    margin: 0 0 1rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--brand-gold);
}

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

.site-footer__list li {
    margin-bottom: 0.6rem;
    font-size: var(--text-sm);
}

.social-nav__list {
    display: flex;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--text-sm);
}

.site-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-block: 1.25rem;
    border-top: 1px solid rgba(246, 241, 230, 0.15);
}

.site-footer__copyright {
    margin: 0;
    font-size: 0.8125rem;
}

.site-footer__legal {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 0.8125rem;
}

@media (max-width: 60em) {
    .nav-toggle {
        display: inline-flex;
    }

    .site-nav {
        position: fixed;
        top: calc(var(--header-height) + var(--barre-admin, 0px));
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 40;
        margin: 0;
        padding: 1.5rem;
        background: var(--color-surface);
        overflow-y: auto;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-0.5rem);
        transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
    }

    body.nav-open .site-nav {
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear;
    }

    body.nav-open {
        overflow: hidden;
    }

    html:not(.js) .nav-toggle {
        display: none;
    }

    html:not(.js) .site-header__inner {
        flex-wrap: wrap;
        padding-bottom: 0.75rem;
    }

    html:not(.js) .site-nav {
        position: static;
        order: 1;
        width: 100%;
        padding: 0;
        opacity: 1;
        visibility: visible;
        transform: none;
        background: none;
        overflow: visible;
    }

    html:not(.js) .site-nav__list .sub-menu {
        display: block;
    }

    .site-nav__list {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .site-nav__list a {
        display: block;
        padding: 1rem 0.25rem;
        font-size: 0.9375rem;
        border-bottom: 1px solid var(--color-line);
    }

    .site-header__actions {
        margin-left: auto;
        gap: 0.5rem;
        min-width: 0;
    }

    .lang-switch__list li:not(:first-child) {
        margin-left: 0.35rem;
        padding-left: 0.35rem;
    }

    .header-account {
        width: 2rem;
        height: 2rem;
    }

    .header-account__icon {
        width: 19px;
        height: 19px;
    }

    .header-cart__icon {
        width: 20px;
        height: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    html {
        scroll-behavior: auto;
    }
}

.js .reveal {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.55s ease, transform 0.55s ease;
}

.js .reveal.is-visible {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .js .reveal {
        opacity: 1;
        transform: none;
    }
}

html {
    overflow-x: clip;
}

.full-bleed {
    width: 100vw;
    margin-inline: calc(50% - 50vw);
}

.khla-section {
    padding-block: clamp(3rem, 7vw, 5.5rem);
}

.khla-section--tinted {
    background: var(--color-surface);
    border-block: 1px solid var(--color-line);
}

.khla-section__inner {
    width: min(var(--content-width), 100% - 2.5rem);
    margin-inline: auto;
}

.section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 2.5rem;
}

.section-head__kicker {
    margin: 0 0 0.4rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-accent-ink);
}

.section-head__title {
    margin: 0;
    font-size: var(--text-2xl);
}

.section-head__link,
.text-link {
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-primary);
    border-bottom: 2px solid var(--color-accent);
    padding-bottom: 0.2rem;
}

.section-head__link:hover,
.text-link:hover {
    color: var(--brand-green-deep);
}

.hero {
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-line);
    margin-bottom: 0;
    margin-top: calc(-1 * 2.5rem);
}

.hero__inner {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    align-items: stretch;
    width: min(100rem, 100%);
    margin-inline: auto;
}

.hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(3rem, 7vw, 6.5rem) clamp(1.25rem, 4vw, 4.5rem);
}

.hero__kicker {
    margin: 0 0 1rem;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--color-accent-ink);
}

.hero__title {
    margin: 0 0 1.25rem;
    font-size: clamp(2.4rem, 1.6rem + 3.4vw, 4.2rem);
    line-height: 1.08;
    letter-spacing: -0.01em;
}

.hero__text {
    max-width: 46ch;
    margin: 0 0 1.75rem;
    font-size: var(--text-lg);
    color: var(--color-text-soft);
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1.1rem;
}

.hero__livraison {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin: 0 0 2rem;
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--color-text-soft);
}

.hero__livraison-icone {
    flex: none;
    display: inline-flex;
    margin-top: 0.05rem;
    color: var(--color-accent);
}

.hero__livraison-icone svg {
    width: 1.2rem;
    height: 1.2rem;
}

.hero__certifications {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hero__certifications li {
    display: flex;
}

.hero__certifications img {
    display: block;
    width: auto;
    height: 3.25rem;
}

.hero__media {
    position: relative;
    min-height: 24rem;
}

.hero__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: center;
}

.split__media {
    border-radius: var(--radius);
    overflow: hidden;
}

.split__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 6;
    object-fit: cover;
}

.split__title {
    margin: 0 0 1rem;
    font-size: var(--text-2xl);
}

.split__text {
    margin: 0 0 1.5rem;
    color: var(--color-text-soft);
}

.values {
    background: var(--brand-green-deep);
    color: rgba(246, 241, 230, 0.85);
    padding-block: clamp(3rem, 6vw, 5rem);
}

.values__inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
    width: min(var(--content-width), 100% - 2.5rem);
    margin-inline: auto;
}

.values__icon {
    display: inline-flex;
    color: var(--brand-gold);
    margin-bottom: 1rem;
}

.values__title {
    margin: 0 0 0.5rem;
    font-size: 1.35rem;
    color: var(--brand-paper);
}

.values__text {
    margin: 0;
    font-size: var(--text-sm);
}

.shop-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.shop-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 2rem 1.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-top: 3px solid var(--brand-gold);
    border-radius: var(--radius);
    text-decoration: none;
    color: var(--color-text);
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.shop-card__link:hover {
    box-shadow: var(--shadow-soft);
    transform: translateY(-3px);
    color: var(--color-text);
}

.shop-card__city {
    margin: 0 0 0.75rem;
    font-size: 1.5rem;
}

.shop-card__address {
    margin: 0 0 0.75rem;
    font-size: var(--text-sm);
    color: var(--color-text-soft);
}

.shop-card__hours {
    margin: 0 0 1.25rem;
    font-size: 0.8125rem;
    color: var(--color-text-soft);
}

.shop-card__more {
    margin-top: auto;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary);
}

.post-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.post-card__link {
    display: block;
    text-decoration: none;
    color: var(--color-text);
}

.post-card__media {
    display: block;
    margin-bottom: 1rem;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--color-line);
}

.post-card__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.post-card__link:hover .post-card__image {
    transform: scale(1.04);
}

.post-card__date {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-text-soft);
}

.post-card__title {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.3;
}

.band {
    background: var(--brand-green);
    color: var(--brand-paper);
    padding-block: clamp(3rem, 6vw, 5rem);
    text-align: center;
}

.band__inner {
    width: min(46rem, 100% - 2.5rem);
    margin-inline: auto;
}

.band__title {
    margin: 0 0 0.75rem;
    color: var(--brand-paper);
    font-size: var(--text-2xl);
}

.band__text {
    margin: 0 0 1.75rem;
    color: rgba(246, 241, 230, 0.8);
}

.band__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

.btn--gold {
    background: var(--brand-gold);
    border-color: var(--brand-gold);
    color: var(--brand-green-deep);
}

.btn--gold:hover {
    background: #c79e4f;
    border-color: #c79e4f;
    color: var(--brand-green-deep);
}

.btn--paper {
    background: transparent;
    border-color: rgba(246, 241, 230, 0.5);
    color: var(--brand-paper);
}

.btn--paper:hover {
    background: var(--brand-paper);
    border-color: var(--brand-paper);
    color: var(--brand-green-deep);
}

.page-hero {
    padding-block: clamp(2rem, 5vw, 3.5rem) 0;
    margin-bottom: 2.5rem;
}

.page-hero__title {
    margin: 0;
    font-size: var(--text-3xl);
}

.page-hero__title::after {
    content: "";
    display: block;
    width: 4.5rem;
    height: 2px;
    margin-top: 1rem;
    background: var(--color-accent);
}

.page-hero__meta {
    margin: 0 0 0.75rem;
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-soft);
}

.page-hero__meta a {
    color: var(--color-accent);
    text-decoration: none;
}

.page-hero__sep {
    margin: 0 0.35rem;
}

.prose {
    max-width: 70ch;
}

.prose h2 {
    margin-top: 2.5rem;
    font-size: var(--text-xl);
}

.prose h3 {
    margin-top: 2rem;
    font-size: 1.25rem;
}

.prose ul,
.prose ol {
    padding-left: 1.25rem;
    margin: 0 0 1.25em;
}

.prose li {
    margin-bottom: 0.4em;
}

.prose li::marker {
    color: var(--color-accent);
}

.prose blockquote {
    margin: 2rem 0;
    padding: 0.25rem 0 0.25rem 1.5rem;
    border-left: 3px solid var(--brand-gold);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    color: var(--color-heading);
}

.prose blockquote p {
    margin: 0;
}

.prose figure {
    margin: 2rem 0;
}

.prose img {
    border-radius: var(--radius);
}

.prose figcaption {
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    color: var(--color-text-soft);
}

.alignwide {
    width: min(var(--content-width), 100%);
    max-width: none;
}

.post-single__cover {
    margin: 0 0 2.5rem;
    border-radius: var(--radius);
    overflow: hidden;
}

.post-single__image {
    display: block;
    width: 100%;
    height: auto;
}

.post-nav {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    max-width: 70ch;
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-line);
    font-size: var(--text-sm);
}

.post-nav a {
    text-decoration: none;
    color: var(--color-primary);
}

.post-nav__next {
    text-align: right;
}

.shop-page__layout,
.contact-page__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.shop-page__cover {
    margin: 0 0 2rem;
    border-radius: var(--radius);
    overflow: hidden;
}

.shop-page__image {
    display: block;
    width: 100%;
    height: auto;
}

.shop-info {
    padding: 1.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-top: 3px solid var(--brand-gold);
    border-radius: var(--radius);
}

.shop-info--compact {
    margin-bottom: 1.25rem;
    border-top-width: 2px;
    padding: 1.25rem 1.5rem;
}

.shop-info__heading {
    margin: 1.25rem 0 0.4rem;
    font-size: 0.75rem;
    font-weight: 700;
    font-family: var(--font-body);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-accent-ink);
}

.shop-info__heading:first-child {
    margin-top: 0;
}

.shop-info__text {
    margin: 0;
    font-size: var(--text-sm);
}

.shop-info__cta {
    margin-top: 1.5rem;
    width: 100%;
}

.shop-page__map {
    margin-top: 3rem;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--color-line);
}

.shop-page__map iframe {
    display: block;
    border: 0;
}

.download-card {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    max-width: 46rem;
    margin: 2.5rem 0;
    padding: 2rem;
    background: var(--brand-green-deep);
    border-radius: var(--radius);
    color: rgba(246, 241, 230, 0.85);
}

.download-card__kicker {
    margin: 0 0 0.3rem;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--brand-gold);
}

.download-card__title {
    margin: 0;
    font-size: 1.35rem;
    color: var(--brand-paper);
}

.download-card__meta {
    margin: 0.4rem 0 0;
    font-size: 0.8125rem;
}

.pro-page__contact {
    max-width: 46rem;
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid var(--color-line);
}

@media (max-width: 60em) {
    .hero__inner,
    .split,
    .shop-page__layout,
    .contact-page__layout {
        grid-template-columns: 1fr;
    }

    .hero__media {
        order: -1;
        min-height: 16rem;
    }

    .values__inner,
    .shop-cards,
    .post-cards {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .split__media {
        max-width: 30rem;
    }
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 999;
    pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    opacity: 0.03;
}

.ornament {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: var(--brand-gold);
}

.ornament__line {
    width: 2.75rem;
    height: 1px;
    background: currentColor;
    opacity: 0.7;
}

.ornament__dot {
    width: 0.3rem;
    height: 0.3rem;
    border-radius: 50%;
    background: currentColor;
}

.ornament__dot--big {
    width: 0.45rem;
    height: 0.45rem;
}

.hero__content {
    position: relative;
    z-index: 2;
}

.hero__watermark {
    position: absolute;
    bottom: -0.14em;
    left: 44%;
    z-index: 1;
    font-family: "Noto Serif Khmer", serif;
    font-size: clamp(9rem, 22vw, 19rem);
    font-weight: 700;
    line-height: 0.9;
    color: var(--brand-gold);
    opacity: 0.16;
    pointer-events: none;
    user-select: none;
}

.hero__media {
    overflow: hidden;
}

.hero__frame {
    position: absolute;
    inset: 1.25rem;
    z-index: 2;
    border: 1px solid rgba(246, 241, 230, 0.45);
    pointer-events: none;
}

.hero__frame::before,
.hero__frame::after {
    content: "";
    position: absolute;
    width: 1.1rem;
    height: 1.1rem;
    border-color: var(--brand-gold);
    border-style: solid;
}

.hero__frame::before {
    top: -1px;
    left: -1px;
    border-width: 2px 0 0 2px;
}

.hero__frame::after {
    bottom: -1px;
    right: -1px;
    border-width: 0 2px 2px 0;
}

.stamp {
    position: absolute;
    bottom: 2.25rem;
    left: 2.25rem;
    z-index: 3;
    width: clamp(5.5rem, 8vw, 7.5rem);
    height: auto;
    color: var(--brand-green-deep);
    filter: drop-shadow(0 6px 16px rgba(13, 31, 20, 0.25));
}

.stamp__paper {
    fill: var(--brand-paper);
    opacity: 0.94;
}

.stamp__text {
    fill: currentColor;
    font-family: var(--font-body);
    font-weight: 600;
    text-transform: uppercase;
}

.stamp__mono {
    fill: currentColor;
    font-family: "Noto Serif Khmer", serif;
    font-weight: 700;
}

.stamp__ring {
    transform-box: fill-box;
    transform-origin: center;
    animation: khla-rotate 26s linear infinite;
}

@keyframes khla-rotate {
    to {
        transform: rotate(360deg);
    }
}

.ticker {
    overflow: hidden;
    padding-block: 0.85rem;
    background: var(--color-surface);
    border-block: 1px solid var(--color-line);
}

.ticker__track {
    display: flex;
    width: max-content;
    animation: khla-ticker 32s linear infinite;
}

.ticker:hover .ticker__track {
    animation-play-state: paused;
}

.ticker__group {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.ticker__item {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--color-heading);
    white-space: nowrap;
    padding-inline: 1.75rem;
}

.ticker__sep {
    color: var(--brand-gold);
    font-size: 0.8rem;
}

@keyframes khla-ticker {
    to {
        transform: translateX(-50%);
    }
}

.section-head__kicker::before {
    content: "";
    display: inline-block;
    width: 1.75rem;
    height: 1px;
    margin-right: 0.6rem;
    vertical-align: middle;
    background: var(--brand-gold);
}

.brand-grid__media {
    width: 100%;
    aspect-ratio: 4 / 5;
    height: auto;
    border-radius: var(--radius);
    background: #fff;
}

.split__media {
    position: relative;
    border-radius: var(--radius);
}

.split__media::after {
    content: "";
    position: absolute;
    inset: 0.85rem;
    border: 1px solid rgba(246, 241, 230, 0.35);
    border-radius: 2px;
    pointer-events: none;
}

.values__inner {
    position: relative;
}

.values__item {
    position: relative;
}

.values__icon {
    align-items: center;
    justify-content: center;
    width: 3.75rem;
    height: 3.75rem;
    border: 1px solid rgba(178, 138, 62, 0.5);
    border-radius: 50%;
}

.band .ornament {
    margin-bottom: 1.5rem;
}

.site-footer__ornament {
    padding-top: 2.5rem;
}

.site-footer__ornament .ornament {
    opacity: 0.9;
}

.site-footer__grid {
    padding-top: 2.25rem;
}

.btn {
    transition: background-color 0.2s ease, color 0.2s ease, letter-spacing 0.25s ease, border-color 0.2s ease;
}

.btn:hover {
    letter-spacing: 0.13em;
}

.text-link span,
.section-head__link span,
.shop-card__more span {
    display: inline-block;
    transition: transform 0.25s ease;
}

.text-link:hover span,
.section-head__link:hover span,
.shop-card__link:hover .shop-card__more span {
    transform: translateX(4px);
}

.header-cart:hover {
    color: var(--brand-gold);
}

.page-hero__title::after {
    background: linear-gradient(90deg, var(--brand-gold), rgba(178, 138, 62, 0.15));
    width: 5.5rem;
}

@media (max-width: 60em) {
    .values__item + .values__item {
        border-left: 0;
        padding-left: 0;
        border-top: 1px solid rgba(178, 138, 62, 0.25);
        padding-top: 2rem;
    }

    .hero__watermark {
        top: -0.08em;
        right: -0.04em;
        bottom: auto;
        left: auto;
        font-size: clamp(7rem, 30vw, 11rem);
    }

    .stamp {
        bottom: 1.25rem;
        left: 1.25rem;
    }
}

@media (min-width: 60em) {
    .values__item + .values__item {
        border-left: 1px solid rgba(178, 138, 62, 0.25);
        padding-left: 2.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .stamp__ring,
    .ticker__track {
        animation: none;
    }
}

.post-cards--archive {
    margin-top: 3rem;
}

.post-card__excerpt {
    display: block;
    margin-top: 0.5rem;
    font-size: 0.92rem;
    line-height: 1.55;
    color: var(--color-muted);
}

.page-hero__text {
    max-width: 42rem;
    margin-top: 1rem;
    color: var(--color-muted);
}

.pagination {
    margin-top: 3.5rem;
}

.pagination .nav-links {
    display: flex;
    justify-content: center;
    gap: 0.4rem;
}

.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0 0.75rem;
    color: var(--color-heading);
    text-decoration: none;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    transition: border-color 0.2s ease, color 0.2s ease;
}

.pagination .page-numbers.current {
    background: var(--brand-green);
    border-color: var(--brand-green);
    color: var(--brand-paper);
}

.pagination .page-numbers:hover:not(.current) {
    border-color: var(--brand-gold);
    color: var(--brand-gold);
}

.error404 .page-hero {
    padding-bottom: 1rem;
}

.error-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 2rem;
    padding-bottom: 4rem;
}

.section-head__kicker,
.hero__kicker,
.page-hero__kicker,
.shop-info__heading {
    color: var(--color-accent-ink);
}

.band {
    position: relative;
}

.band::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--brand-gold);
    -webkit-mask: var(--khla-krama) repeat left top / 56px 56px;
    mask: var(--khla-krama) repeat left top / 56px 56px;
    opacity: 0.08;
    pointer-events: none;
}

.khla-section--tinted {
    position: relative;
}

.khla-section--tinted::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--brand-green);
    -webkit-mask: var(--khla-krama) repeat left top / 56px 56px;
    mask: var(--khla-krama) repeat left top / 56px 56px;
    opacity: 0.045;
    pointer-events: none;
}

.site-footer__weft {
    height: 13px;
    margin-bottom: 2.25rem;
    background: var(--brand-gold);
    -webkit-mask: var(--khla-weft) repeat-x left bottom / auto 100%;
    mask: var(--khla-weft) repeat-x left bottom / auto 100%;
    opacity: 0.85;
}

.brand-grid__media {
    position: relative;
    overflow: hidden;
}

.section-head__block {
    position: relative;
}

.section-head__num {
    position: absolute;
    top: -2.6rem;
    left: -0.5rem;
    font-family: "Noto Serif Khmer", serif;
    font-size: 4.75rem;
    font-weight: 700;
    line-height: 1;
    color: var(--brand-gold);
    opacity: 0.13;
    pointer-events: none;
    user-select: none;
}

.hero__title {
    font-size: clamp(2.75rem, 5.2vw, 4.5rem);
    line-height: 1.04;
    letter-spacing: -0.01em;
}

.hero__image,
.split__media img,
.post-card__image {
    filter: sepia(0.07) saturate(1) contrast(1.03);
}

@view-transition {
    navigation: auto;
}

@keyframes khla-vt-out {
    to {
        opacity: 0;
        transform: translateY(-8px);
    }
}

@keyframes khla-vt-in {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
}

@keyframes khla-rise {
    from {
        opacity: 0;
        transform: translateY(18px);
        filter: blur(5px);
    }

    to {
        opacity: 1;
        transform: none;
        filter: none;
    }
}

@keyframes khla-media-in {
    from {
        opacity: 0;
        transform: scale(1.045);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes khla-drift {
    from {
        transform: translateY(2.5rem);
    }

    to {
        transform: translateY(-2rem);
    }
}

@keyframes khla-pan {
    from {
        transform: scale(1.12) translateY(3.5%);
    }

    to {
        transform: scale(1.12) translateY(-3.5%);
    }
}

@media (prefers-reduced-motion: no-preference) {
    ::view-transition-old(root) {
        animation: khla-vt-out 0.24s ease both;
    }

    ::view-transition-new(root) {
        animation: khla-vt-in 0.34s ease both;
    }

    .hero .reveal,
    .hero.reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .hero__kicker,
    .hero__title,
    .hero__text,
    .hero__actions,
    .hero__livraison,
    .hero__certifications {
        animation: khla-rise 0.7s cubic-bezier(0.22, 0.8, 0.3, 1) both;
    }

    .hero__kicker { animation-delay: 0.1s; }
    .hero__title { animation-delay: 0.2s; }
    .hero__text { animation-delay: 0.32s; }
    .hero__actions { animation-delay: 0.44s; }
    .hero__livraison { animation-delay: 0.52s; }
    .hero__certifications { animation-delay: 0.62s; }

    .hero__media {
        animation: khla-media-in 0.9s ease both 0.18s;
    }
}

@supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
        .hero__watermark {
            animation: khla-drift linear both;
            animation-timeline: view();
            animation-range: entry 0% cover 70%;
        }

        .split__media {
            overflow: hidden;
        }

        .split__media img {
            animation: khla-pan linear both;
            animation-timeline: view();
            animation-range: cover 0% cover 100%;
        }
    }
}

@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root),
    ::view-transition-new(root) {
        animation: none;
    }
}

.site-nav__list > li {
    position: relative;
}

.site-nav__list .menu-item-has-children > a::after {
    content: "";
    display: inline-block;
    margin-left: 0.45rem;
    width: 0.4em;
    height: 0.4em;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-25%);
}

.nav-sub-toggle {
    display: none;
}

@media (min-width: 60.0625em) {
    .site-nav__list .sub-menu {
        position: absolute;
        top: calc(100% + 0.7rem);
        left: 50%;
        min-width: 13.5rem;
        margin: 0;
        padding: 0.4rem 0;
        list-style: none;
        background: var(--color-surface);
        border: 1px solid var(--color-line);
        border-top: 2px solid var(--brand-gold);
        box-shadow: 0 16px 34px rgba(26, 34, 26, 0.14);
        opacity: 0;
        visibility: hidden;
        transform: translateX(-50%) translateY(0.35rem);
        transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
        z-index: 60;
    }

    .site-nav__list .sub-menu::before {
        content: "";
        position: absolute;
        top: -0.8rem;
        right: 0;
        left: 0;
        height: 0.8rem;
    }

    .site-nav__list .menu-item-has-children:hover > .sub-menu,
    .site-nav__list .menu-item-has-children:focus-within > .sub-menu,
    .site-nav__list .menu-item-has-children.is-open > .sub-menu {
        opacity: 1;
        visibility: visible;
        transform: translateX(-50%) translateY(0);
    }

    .site-nav__list .sub-menu li {
        position: static;
    }

    .site-nav__list .sub-menu a {
        display: block;
        padding: 0.6rem 1.15rem;
        font-size: 0.78rem;
        letter-spacing: 0.08em;
        border-bottom: none;
        white-space: nowrap;
    }

    .site-nav__list .sub-menu a:hover {
        background: rgba(178, 138, 62, 0.08);
        border-bottom: none;
    }
}

@media (max-width: 60em) {
    .site-nav__list .menu-item-has-children > a::after {
        display: none;
    }

    .nav-sub-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 0;
        right: 0;
        width: 3.2rem;
        height: 3.4rem;
        padding: 0;
        background: none;
        border: none;
        cursor: pointer;
        color: var(--color-text);
    }

    .nav-sub-toggle::before {
        content: "";
        width: 0.5em;
        height: 0.5em;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        transform: rotate(45deg);
        transition: transform 0.2s ease;
    }

    .menu-item-has-children.is-open > .nav-sub-toggle::before {
        transform: rotate(-135deg);
    }

    .site-nav__list .sub-menu {
        display: none;
        margin: 0;
        padding: 0 0 0.5rem 1.1rem;
        list-style: none;
    }

    .site-nav__list .menu-item-has-children.is-open > .sub-menu {
        display: block;
    }

    .site-nav__list .sub-menu a {
        padding: 0.7rem 0.25rem;
        font-size: 0.875rem;
        border-bottom: 1px solid var(--color-line);
    }

    .site-nav__list .sub-menu li:last-child a {
        border-bottom: none;
    }
}

.brand-grid__media .brand-grid__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.brand-grid__link:hover .brand-grid__image {
    transform: scale(1.04);
}

.brand-grid__image {
    transition: transform 0.45s ease;
}

.page-hero--media {
    display: grid;
    gap: 1.5rem;
}

.page-hero__media {
    position: relative;
    max-height: 24rem;
    overflow: hidden;
    border: 1px solid var(--brand-gold);
}

.page-hero__media::after {
    content: "";
    position: absolute;
    inset: 0.55rem;
    border: 1px solid rgba(178, 138, 62, 0.35);
    pointer-events: none;
}

.page-hero__image {
    width: 100%;
    height: 100%;
    max-height: 24rem;
    object-fit: cover;
    display: block;
}

@media (max-width: 60em) {
    .page-hero__media,
    .page-hero__image {
        max-height: 14rem;
    }
}

.cert-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem 2rem;
    margin: 1.75rem 0;
    padding: 1.25rem 1.5rem;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
}

.cert-strip--page {
    gap: 2rem 3rem;
    padding: 2rem 2.25rem;
    background: transparent;
    border-color: var(--color-line);
}

.cert {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.cert__mark {
    flex: none;
    height: auto;
    max-width: 100%;
}

.cert__body {
    min-width: 0;
}

.cert__label {
    margin: 0 0 0.15em;
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    line-height: 1.2;
    color: var(--color-heading);
}

.cert__note {
    margin: 0;
    font-size: var(--text-sm);
    line-height: 1.5;
    color: var(--color-text-soft);
    text-wrap: pretty;
}

.cert-strip--detailed .cert {
    flex: 1 1 20rem;
}

@media (max-width: 40rem) {
    .cert-strip {
        gap: 1rem 1.5rem;
        padding: 1rem 1.15rem;
    }

    .cert {
        flex: 1 1 100%;
    }
}

.khla-cert-options .form-field {
    margin-bottom: 0;
}

.site-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    text-decoration: none;
    color: var(--color-heading);
}

.site-logo__mark {
    display: block;
    flex: none;
    width: auto;
    height: var(--logo-height, 5.5rem);
    transition: height 0.3s cubic-bezier(0.2, 0.7, 0.3, 1), transform 0.35s cubic-bezier(0.2, 0.7, 0.3, 1);
}

.site-logo:hover .site-logo__mark {
    transform: translateY(-2px);
}

.site-logo__name {
    font-family: var(--font-display);
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

@media (max-width: 60em) {
    .site-header,
    .site-header.is-scrolled {
        --header-height: 4.75rem;
        --logo-height: 3.75rem;
    }
}

@media (max-width: 48rem) {
    .site-logo {
        gap: 0.55rem;
    }

    .site-logo__name {
        font-size: 1.25rem;
        letter-spacing: 0.1em;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-logo__mark {
        transition: none;
    }

    .site-logo:hover .site-logo__mark {
        transform: none;
    }
}

.shop-card {
    margin: 2rem 0;
    padding: 1.5rem 1.75rem;
    background: var(--color-surface);
    border-left: 3px solid var(--color-accent);
    border-radius: var(--radius);
}

.shop-card__name {
    margin: 0 0 0.6rem;
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--color-heading);
}

.shop-card__line {
    margin: 0 0 0.45rem;
    font-size: var(--text-sm);
    line-height: 1.55;
    color: var(--color-text-soft);
}

.shop-card__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    margin: 0.9rem 0 0;
    font-size: var(--text-sm);
    font-weight: 500;
}

.inline-products {
    margin: 2rem 0;
    padding: 1.35rem 1.6rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
}

.inline-products__title {
    margin: 0 0 0.75rem;
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--color-accent-ink);
}

.inline-products__list {
    display: grid;
    gap: 0.15rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.inline-products__item a {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--color-line);
    text-decoration: none;
    color: inherit;
}

.inline-products__item:last-child a {
    border-bottom: 0;
}

.inline-products__name {
    font-weight: 500;
}

.inline-products__price {
    flex: none;
    font-variant-numeric: tabular-nums;
    color: var(--color-accent-ink);
}

.inline-products__item a:hover .inline-products__name {
    text-decoration: underline;
    text-underline-offset: 0.25em;
}

.shop-list {
    display: grid;
    gap: 1.25rem;
    margin: 2rem 0;
}

.shop-list .shop-card {
    margin: 0;
}

@media (min-width: 52rem) {
    .shop-list {
        grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
    }
}

.review-cta {
    margin: 1.5rem 0;
}

.entry-content.prose p.review-cta a.review-cta__link,
.entry-content.prose a.review-cta__link,
a.review-cta__link {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.75em 1.5em;
    background: var(--color-heading);
    border: 1px solid var(--color-heading);
    border-radius: var(--radius);
    color: #fdfbf5 !important;
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease;
}

.entry-content.prose a.review-cta__link:hover,
a.review-cta__link:hover,
.entry-content.prose a.review-cta__link:focus-visible,
a.review-cta__link:focus-visible {
    background: transparent;
    color: var(--color-heading) !important;
    text-decoration: none;
}

a.review-cta__link svg {
    width: 16px;
    height: 16px;
    flex: none;
}

.entry-meta a,
.post-categories a,
.entry-meta__link {
    color: var(--color-accent-ink);
    text-decoration: underline;
    text-underline-offset: 0.18em;
    text-decoration-thickness: 1px;
}

.entry-meta a:hover,
.post-categories a:hover {
    color: var(--color-heading);
}

a[rel~="category"],
a[rel~="tag"] {
    color: var(--color-heading);
    text-decoration: underline;
    text-underline-offset: 0.18em;
    text-decoration-thickness: 1px;
}

a[rel~="category"]:hover,
a[rel~="tag"]:hover {
    color: var(--color-accent-ink);
}

.photo-band {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin: 2.5rem 0;
    max-width: none;
}

.photo-band figure {
    margin: 0;
}

.photo-band img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius);
}

.photo-band figcaption {
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    color: var(--color-text-soft);
}

@media (min-width: 48.0625em) {
    .photo-band:has(> figure:nth-child(2):last-child) {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 48em) {
    .photo-band {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
}

.search-empty {
    max-width: 44rem;
    margin: 2rem 0 4rem;
}

.search-empty p {
    margin: 0 0 1.25rem;
}

.search-empty form {
    display: flex;
    gap: 0.6rem;
    margin: 0 0 1.5rem;
}

.search-empty input[type="search"] {
    flex: 1;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
    background: var(--color-surface);
    font: inherit;
}

.search-empty__links {
    margin: 0;
}

.header-account {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    color: var(--color-heading);
    border-radius: 50%;
}

.header-account:hover,
.header-account:focus-visible {
    background: var(--color-surface);
    color: var(--color-accent-ink);
}

.header-account.is-connected {
    color: var(--color-accent-ink);
}

.header-account__icon {
    display: block;
}

.khla-form {
    margin: 2.5rem 0 0;
    max-width: 44rem;
}

.khla-form__form {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem 1.25rem;
}

.khla-form__row {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.khla-form__row--large,
.khla-form__consent,
.khla-form__actions {
    grid-column: 1 / -1;
}

.khla-form__label {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-soft);
}

.khla-form__input {
    width: 100%;
    padding: 0.7rem 0.85rem;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
    font: inherit;
    color: var(--color-text);
}

.khla-form__input:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 1px;
    border-color: var(--color-accent);
}

.khla-form__consent label {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: var(--text-sm);
    color: var(--color-text-soft);
    line-height: 1.5;
}

.khla-form__consent input {
    margin-top: 0.2rem;
}

.khla-form__pot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.khla-form__ok,
.khla-form__erreur {
    margin: 0 0 1.5rem;
    padding: 0.9rem 1.15rem;
    border-radius: var(--radius);
    border-left: 3px solid var(--brand-green);
    background: var(--color-surface);
    font-size: var(--text-sm);
}

.khla-form__erreur {
    border-left-color: var(--color-danger);
}

.khla-form__actions {
    margin-top: 0.5rem;
}

@media (max-width: 40em) {
    .khla-form__form {
        grid-template-columns: 1fr;
    }
}

.article-figure {
    margin: 2.5rem 0;
}

.article-figure img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 78vh;
    object-fit: contain;
    object-position: center;
    border-radius: var(--radius);
}

.article-figure figcaption {
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    color: var(--color-text-soft);
}

@media (max-width: 27em) {
    .site-header__inner {
        gap: 0.75rem;
    }

    .site-header,
    .site-header.is-scrolled {
        --logo-height: 3.25rem;
    }

    .site-header__actions {
        gap: 0.35rem;
    }

    .lang-switch__list a {
        padding-inline: 0.2rem;
        font-size: 0.75rem;
    }

    .header-account,
    .header-cart {
        width: 1.85rem;
        height: 1.85rem;
    }

    .header-account__icon,
    .header-cart__icon {
        width: 18px;
        height: 18px;
    }
}

@media (max-width: 23.5em) {
    .site-header__inner,
    .site-footer__inner,
    .site-main {
        width: min(var(--content-width), 100% - 1.5rem);
    }

    .site-header,
    .site-header.is-scrolled {
        --header-height: 4.35rem;
        --logo-height: 3rem;
    }

    .nav-toggle {
        width: 2.15rem;
        height: 2.15rem;
        padding: 0.45rem;
        gap: 4px;
    }
}

@media (max-width: 21em) {
    .site-header__inner {
        gap: 0.4rem;
    }

    .site-header,
    .site-header.is-scrolled {
        --logo-height: 2.6rem;
    }

    .site-header__actions {
        gap: 0.2rem;
    }

    .lang-switch__list li:not(:first-child) {
        margin-left: 0.2rem;
        padding-left: 0.2rem;
    }

    .header-account,
    .header-cart {
        width: 1.7rem;
        height: 1.7rem;
    }

    .nav-toggle {
        width: 1.95rem;
        height: 1.95rem;
        padding: 0.38rem;
        gap: 3px;
    }
}

.guide-lien {
    margin: 2rem 0 0;
    padding: 0.9rem 1.15rem;
    background: var(--color-surface);
    border-left: 3px solid var(--color-accent);
    border-radius: var(--radius);
    font-size: var(--text-sm);
    color: var(--color-text-soft);
}

.guide-lien a {
    color: var(--color-accent-ink);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.error-search {
    max-width: 30rem;
    margin: 0 0 1.75rem;
}

.error-search__label {
    margin: 0 0 0.5rem;
    font-size: var(--text-sm);
    color: var(--color-text-soft);
}

.error-search form {
    display: flex;
    gap: 0.6rem;
}

.error-search input[type="search"] {
    flex: 1;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
    background: var(--color-surface);
    font: inherit;
}

.error-liens {
    margin: 2rem 0 0;
}

.error-liens__title {
    margin: 0 0 0.6rem;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-text-soft);
}

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

.partenaire__role {
    margin: -0.9rem 0 1rem;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-accent-ink);
}

.entry-content.prose a[target="_blank"] {
    color: var(--color-accent-ink);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.avis-bloc {
    margin: 4rem 0 0;
    padding: 3rem 2rem 3.25rem;
    background: var(--color-heading);
    border-radius: var(--radius);
    color: #fdfbf5;
}

.avis-bloc__inner {
    max-width: 68rem;
    margin: 0 auto;
}

@media (max-width: 40em) {
    .avis-bloc {
        padding: 2.25rem 1.25rem 2.5rem;
    }
}

.avis-bloc__title {
    margin: 0 0 2.5rem;
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 600;
    color: #fdfbf5;
    text-align: center;
}

.avis-bloc__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
    gap: 1.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.avis__figure {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    height: 100%;
    margin: 0;
    padding: 1.75rem;
    background: rgba(253, 251, 245, 0.06);
    border: 1px solid rgba(253, 251, 245, 0.14);
    border-radius: var(--radius);
}

.avis__note {
    display: inline-flex;
    gap: 0.15rem;
    font-size: 0.95rem;
    line-height: 1;
    color: rgba(253, 251, 245, 0.3);
}

.avis__etoile.is-pleine {
    color: var(--brand-gold, #c9a227);
}

.avis__texte {
    flex: 1;
    margin: 0;
    quotes: none;
}

.avis__texte p {
    margin: 0;
    font-size: var(--text-sm);
    line-height: 1.65;
    color: rgba(253, 251, 245, 0.92);
}

.avis__auteur {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #fdfbf5;
}

.avis__lieu {
    font-weight: 400;
    letter-spacing: 0.04em;
    text-transform: none;
    color: rgba(253, 251, 245, 0.62);
}

.avis__source {
    font-weight: 400;
    letter-spacing: 0.03em;
    text-transform: none;
    font-size: 0.78rem;
    color: rgba(253, 251, 245, 0.55);
}

.avis__source a {
    color: rgba(253, 251, 245, 0.72);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.avis__source a:hover {
    color: #fdfbf5;
}
.khla-certifs-home {
    text-align: center;
}
.khla-certifs-home__title {
    margin: 0 0 1.4rem;
    font-family: var(--font-sans);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--khla-signature-ink);
}
.khla-certifs-home .cert-strip {
    justify-content: center;
    align-items: center;
}

.khla-certifs-home .cert {
    display: flex;
    justify-content: center;
}

@media (max-width: 47.9375em) {
    .site-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2rem 1.4rem;
        padding-block: 2.6rem 1.8rem;
    }

    .site-footer__brand {
        grid-column: 1 / -1;
    }

    .site-footer__col:nth-of-type(2) {
        grid-column: 1;
        grid-row: 2;
    }

    .site-footer__col:nth-of-type(3) {
        grid-column: 2;
        grid-row: 2 / span 2;
    }

    .site-footer__col:nth-of-type(4) {
        grid-column: 1;
        grid-row: 3;
    }

    .site-footer__tagline {
        margin-bottom: 1rem;
    }

    .site-footer__heading {
        margin-bottom: 0.7rem;
    }

    .site-footer__list li {
        margin-bottom: 0.45rem;
    }
}

.khla-certifs-home__title--interne {
    margin-top: 2.4rem;
}

.khla-certifs-home__note {
    max-width: 46rem;
    margin: 1.1rem auto 0;
    font-size: var(--text-sm);
    color: var(--color-muted, #5d5a52);
}

.frise {
    position: relative;
    margin-top: 2.6rem;
}

.frise__liste {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.frise__item {
    position: relative;
    padding: 0 0.7rem 0;
    text-align: center;
}

.frise__annee {
    display: block;
    font-family: var(--font-display);
    font-size: 1.45rem;
    font-weight: 600;
    color: var(--brand-gold-ink, #836327);
    line-height: 1;
}

.frise__point {
    position: relative;
    display: block;
    height: 1.5rem;
    margin: 0.7rem 0 0.9rem;
}

.frise__point::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 1px;
    background: var(--color-line, #e0d9c9);
}

.frise__item:first-child .frise__point::before {
    left: 50%;
}

.frise__item:last-child .frise__point::before {
    right: 50%;
}

.frise__point::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0.62rem;
    height: 0.62rem;
    transform: translate(-50%, -50%) rotate(45deg);
    background: var(--brand-gold);
}

.frise__titre {
    margin: 0 0 0.35rem;
    font-family: var(--font-display);
    font-size: 1.02rem;
    line-height: 1.28;
    color: var(--brand-ink, #12281b);
}

.frise__texte {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.5;
    color: var(--color-muted, #5d5a52);
}

@media (max-width: 63.9375em) {
    .frise__liste {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2.2rem 1.6rem;
    }

    .frise__item {
        padding: 0;
        text-align: left;
    }

    .frise__point {
        height: 1px;
        margin: 0.55rem 0 0.8rem;
    }

    .frise__point::before {
        left: 0;
        right: 0;
    }

    .frise__item:first-child .frise__point::before,
    .frise__item:last-child .frise__point::before {
        left: 0;
        right: 0;
    }

    .frise__point::after {
        left: 0.31rem;
    }
}

@media (max-width: 37.4375em) {
    .frise__liste {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.8rem;
    }
}

.cert--interne {
    position: relative;
    padding-left: 1.1rem;
}

.cert--interne::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12%;
    bottom: 12%;
    width: 1px;
    background: var(--color-line, #e0d9c9);
}

.cert--interne + .cert--interne {
    padding-left: 0;
}

.cert--interne + .cert--interne::before {
    display: none;
}

.social-nav__list {
    gap: 0.6rem;
}

.social-nav__lien {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid rgba(201, 178, 122, 0.35);
    border-radius: 50%;
    color: var(--brand-gold2, #c9b27a);
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.social-nav__lien:hover,
.social-nav__lien:focus-visible {
    background: var(--brand-gold, #b28a3e);
    border-color: var(--brand-gold, #b28a3e);
    color: var(--brand-ink, #12281b);
}

.social-nav__icone {
    fill: currentColor;
    display: block;
}

.site-footer {
    position: relative;
    overflow: hidden;
}

.site-footer__tigre {
    position: absolute;
    right: -2.5rem;
    bottom: 1rem;
    width: 15rem;
    opacity: 0.055;
    pointer-events: none;
    user-select: none;
}

@media (max-width: 47.9375em) {
    .site-footer__tigre {
        width: 10rem;
        right: -2rem;
        bottom: 3.5rem;
    }
}

@media print {
    .site-footer__tigre {
        display: none;
    }
}

.js .frise__item.reveal {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.6s cubic-bezier(0.22, 0.7, 0.3, 1),
                transform 0.6s cubic-bezier(0.22, 0.7, 0.3, 1);
    transition-delay: calc(var(--frise-rang, 0) * 90ms);
}

.js .frise__item.reveal.is-visible {
    opacity: 1;
    transform: none;
}

.js .frise__point::before {
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.7s cubic-bezier(0.22, 0.7, 0.3, 1);
    transition-delay: calc(var(--frise-rang, 0) * 90ms + 120ms);
}

.js .frise__item.is-visible .frise__point::before {
    transform: scaleX(1);
}

.js .frise__point::after {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(45deg) scale(0.3);
    transition: opacity 0.45s ease, transform 0.45s cubic-bezier(0.34, 1.6, 0.5, 1);
    transition-delay: calc(var(--frise-rang, 0) * 90ms + 260ms);
}

.js .frise__item.is-visible .frise__point::after {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(45deg) scale(1);
}

.frise__item {
    transition: transform 0.3s ease;
}

.frise__annee,
.frise__titre {
    transition: color 0.3s ease;
}

.frise__point::after {
    transition: transform 0.3s ease, background-color 0.3s ease;
}

@media (hover: hover) {
    .js .frise__item.reveal.is-visible:hover,
    .frise__item:hover {
        transform: translateY(-4px);
    }

    .frise__item:hover .frise__annee {
        color: var(--brand-ink, #12281b);
    }

    .js .frise__item.is-visible:hover .frise__point::after,
    .frise__item:hover .frise__point::after {
        transform: translate(-50%, -50%) rotate(45deg) scale(1.45);
        background: var(--brand-ink, #12281b);
    }
}

.js .values__item.reveal {
    transition-delay: calc(var(--valeur-rang, 0) * 120ms);
}

.values__item {
    transition: transform 0.35s cubic-bezier(0.22, 0.7, 0.3, 1);
}

.values__icon {
    transition: background-color 0.35s ease, border-color 0.35s ease,
                color 0.35s ease, transform 0.35s cubic-bezier(0.34, 1.5, 0.5, 1);
}

.values__title {
    transition: color 0.3s ease;
}

@media (hover: hover) {
    .js .values__item.reveal.is-visible:hover,
    .values__item:hover {
        transform: translateY(-6px);
    }

    .values__item:hover .values__icon {
        background: var(--brand-gold, #b28a3e);
        border-color: var(--brand-gold, #b28a3e);
        color: var(--brand-ink, #12281b);
        transform: scale(1.06);
    }
}

@media (max-width: 63.9375em) {
    .js .frise__item.reveal,
    .js .frise__point::before,
    .js .frise__point::after,
    .js .values__item.reveal {
        transition-delay: 0s;
    }
}

@media (prefers-reduced-motion: reduce) {
    .js .frise__item.reveal,
    .js .frise__point::before,
    .js .frise__point::after {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .js .frise__item.is-visible .frise__point::before {
        transform: scaleX(1);
    }

    .js .frise__item.is-visible .frise__point::after {
        transform: translate(-50%, -50%) rotate(45deg);
    }

    .frise__item:hover,
    .values__item:hover {
        transform: none;
    }
}

.js .hero__content.reveal > .hero__kicker,
.js .hero__content.reveal > .hero__title,
.js .hero__content.reveal > .hero__text,
.js .hero__content.reveal > .hero__actions,
.js .hero__content.reveal > .hero__livraison,
.js .hero__content.reveal > .hero__certifications {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.75s cubic-bezier(0.22, 0.7, 0.3, 1),
                transform 0.75s cubic-bezier(0.22, 0.7, 0.3, 1);
    transition-delay: calc(var(--hero-rang, 0) * 130ms);
}

.js .hero__content.reveal.is-visible > .hero__kicker,
.js .hero__content.reveal.is-visible > .hero__title,
.js .hero__content.reveal.is-visible > .hero__text,
.js .hero__content.reveal.is-visible > .hero__actions,
.js .hero__content.reveal.is-visible > .hero__livraison,
.js .hero__content.reveal.is-visible > .hero__certifications {
    opacity: 1;
    transform: none;
}

.hero__trait {
    display: block;
    width: 6.5rem;
    height: 2px;
    margin: 1.1rem 0 0;
    background: linear-gradient(90deg, var(--brand-gold), rgba(178, 138, 62, 0.12));
}

.js .hero__content.reveal .hero__trait {
    width: 0;
    transition: width 1.1s cubic-bezier(0.22, 0.7, 0.3, 1) 0.36s;
}

.js .hero__content.reveal.is-visible .hero__trait {
    width: 6.5rem;
}

.hero__media--vivante {
    position: relative;
    overflow: hidden;
}

.hero__voile {
    position: absolute;
    inset: 0;
    background: var(--color-surface, #fdfbf5);
    opacity: 0;
    pointer-events: none;
}

.js .hero__media--vivante.reveal .hero__voile {
    opacity: 1;
    transition: opacity 1.25s cubic-bezier(0.22, 0.7, 0.3, 1);
}

.js .hero__media--vivante.reveal.is-visible .hero__voile {
    opacity: 0;
}

.js .hero__media--vivante.reveal.is-visible .hero__image {
    animation: khla-respire 14s ease-out forwards;
}

@keyframes khla-respire {
    from { transform: scale(1); }
    to { transform: scale(1.075); }
}

@media (prefers-reduced-motion: reduce) {
    .js .hero__content.reveal > .hero__kicker,
    .js .hero__content.reveal > .hero__title,
    .js .hero__content.reveal > .hero__text,
    .js .hero__content.reveal > .hero__actions,
    .js .hero__content.reveal > .hero__livraison,
    .js .hero__content.reveal > .hero__certifications {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .js .hero__content.reveal .hero__trait,
    .js .hero__content.reveal.is-visible .hero__trait {
        width: 6.5rem;
        transition: none;
    }

    .js .hero__media--vivante.reveal .hero__voile,
    .js .hero__media--vivante.reveal.is-visible .hero__voile {
        opacity: 0;
        transition: none;
    }

    .js .hero__media--vivante.reveal.is-visible .hero__image {
        animation: none;
    }
}

.site-nav__list .menu-item--marque > a {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.marque-puce {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 4rem;
    height: 1.75rem;
}

.marque-puce img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
}

.marque-puce--point::before {
    content: "";
    width: 0.62rem;
    height: 0.62rem;
    border-radius: 50%;
    background: var(--marque, var(--color-accent));
}

.site-nav__list .menu-item--marque > a:hover,
.site-nav__list .menu-item--marque.current-menu-item > a {
    color: var(--marque-ink, var(--color-heading));
    border-color: var(--marque, var(--color-accent));
}

@media (min-width: 60.0625em) {
    .site-nav__list .sub-menu .menu-item--marque > a {
        position: relative;
        padding-left: 1.15rem;
        border-left: 2px solid transparent;
    }

    .site-nav__list .sub-menu .menu-item--marque > a:hover,
    .site-nav__list .sub-menu .menu-item--marque.current-menu-item > a {
        background: rgba(178, 138, 62, 0.08);
        background: color-mix(in srgb, var(--marque, var(--color-accent)) 10%, transparent);
        border-left-color: var(--marque, var(--color-accent));
    }
}

@media (max-width: 60em) {
    .site-nav__list .sub-menu .menu-item--marque > a {
        padding-left: 0.25rem;
    }
}

.site-footer__paiement {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    margin: 2rem 0 0;
    padding: 0;
    width: fit-content;
}

.site-footer__paiement-label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-muted);
}

.site-footer__paiement img {
    display: block;
    height: 1.55rem;
    width: auto;
}

@media (max-width: 30em) {
    .site-footer__paiement img {
        height: 1.3rem;
    }
}

.article-cta {
    margin: 3rem 0 0;
    padding: 1.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius);
    text-align: center;
}

.article-cta__titre {
    margin: 0 0 0.45rem;
    font-family: var(--font-display);
    font-size: 1.35rem;
    color: var(--color-heading);
}

.article-cta__texte {
    margin: 0 0 1.25rem;
    color: var(--color-text-soft);
}

.shop-info__sejour {
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-line);
}

.shop-info__sejour .shop-info__cta {
    margin-top: 0.5rem;
}

.download-card .download-card__title {
    margin: 0;
    font-size: 1.35rem;
    color: var(--brand-paper);
}

.download-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.5rem;
}

.download-card .text-link {
    color: var(--brand-paper);
}

.download-card .text-link:hover {
    color: var(--brand-gold);
}
