@font-face {
    font-family: "Roboto";
    src: url("/lettering/roboto-latin-700-normal.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Roboto";
    src: url("/lettering/roboto-latin-900-normal.woff2") format("woff2");
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Outfit";
    src: url("/lettering/outfit-latin-400-normal.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Outfit";
    src: url("/lettering/outfit-latin-500-normal.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Outfit";
    src: url("/lettering/outfit-latin-700-normal.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    --color-core: #0f1121;
    --color-accent: #e7b54a;
    --color-key-active: #e4a127;
    --color-sheet: #080812;
    --color-card: #12131f;
    --color-fg: #FFFFFF;
    --color-dim: #bfbfbf;
    --color-border: #2a2b3c;
    --color-stroke-heavy: #43445a;
    --color-fade-top: #f5bd47;
    --color-blend-b: #FFFFFF;
    --color-rg-banner: #c81e1e;

    --face-head: "Roboto", "Trebuchet MS", sans-serif;
    --face-copy: "Outfit", "Segoe UI", sans-serif;

    --size-display-1: 80px;
    --size-h2: 48px;
    --size-h3: 30px;
    --size-h4: 22px;
    --size-h5: 16px;
    --size-h6: 13px;
    --size-body: 15px;
    --size-fine: 13px;
    --size-mini: 11px;

    --rhythm-tight: 0.95;
    --rhythm-default: 1.45;
    --rhythm-airy: 1.65;

    --font-weight-regular: 400;
    --font-weight-semi: 700;
    --font-weight-heavy: 900;

    --spacing-snug: -0.04em;
    --spacing-default: 0;
    --spacing-wide: 0.08em;

    --gap-1: 3px;
    --gap-2: 10px;
    --gap-3: 18px;
    --gap-4: 28px;
    --gap-5: 44px;
    --gap-6: 60px;
    --gap-7: 88px;
    --gap-8: 128px;

    --round-capsule: 9999px;
    --round-dot: 50%;
    --round-1: 2px;
    --round-2: 4px;
    --round-3: 8px;
    --round-4: 12px;
    --round-5: 20px;
    --round-6: 28px;
    --round-7: 36px;
    --round-8: 44px;

    --lift-1: 0 1px 1px rgba(0, 0, 0, 0.05);
    --lift-2: 0 1px 2px rgba(0, 0, 0, 0.06);
    --lift-3: 0 2px 6px rgba(0, 0, 0, 0.08);
    --lift-4: 0 6px 18px rgba(0, 0, 0, 0.12);
    --lift-5: 0 12px 32px rgba(0, 0, 0, 0.16);
    --lift-6: 0 18px 44px rgba(0, 0, 0, 0.2);
    --lift-7: 0 24px 56px rgba(0, 0, 0, 0.24);
    --lift-8: 0 32px 72px rgba(0, 0, 0, 0.28);

    --pace-fast: 178ms;
    --pace-base: 350ms;
    --pace-easy: 697ms;
    --curve-land: cubic-bezier(0.24, 0.62, 0.27, 0.97);
    --curve-in-out: cubic-bezier(0.42, 0.04, 0.58, 0.93);
    --curve-elastic: cubic-bezier(0.44, 1.65, 0.75, 1.25);

    --wrap-site: 1080px;
    --wrap-narrow: 680px;
    --wrap-edge-wide: 56px;
    --wrap-padding-tablet: 32px;
    --wrap-padding-mobile: 16px;

    --border-light: 1px;
    --border-base: 2px;
    --border-heavy: 3px;

    --bar-h-lg: 78px;
    --bar-size-mobile: 64px;

    --sec-y: 44px;
    --edge: var(--wrap-edge-wide);
    --rg-h: 30px;
    --h-pad: 160px;
}

@media (max-width: 1180px) {
    :root {
        --size-display-1: 60px;
        --size-h2: 40px;
        --size-h3: 27px;
        --edge: var(--wrap-padding-tablet);
    }
}

@media (max-width: 820px) {
    :root {
        --size-display-1: 40px;
        --size-h2: 32px;
        --size-h3: 24px;
        --size-h4: 18px;
        --size-h5: 14px;
        --size-h6: 12px;
        --size-body: 14px;
        --size-fine: 12px;
        --size-mini: 10px;
        --edge: var(--wrap-padding-mobile);
        --sec-y: 36px;
    }
}

@media (max-width: 520px) {
    :root {
        --size-display-1: 32px;
    }
}

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

html {
    scroll-behavior: smooth;
    scroll-padding-top: 170px;
}

html,
body {
    overflow-x: clip;
}

body {
    margin: 0;
    background: var(--color-sheet);
    color: var(--color-fg);
    font-family: var(--face-copy);
    font-size: var(--size-body);
    font-weight: var(--font-weight-regular);
    line-height: var(--rhythm-default);
    padding-top: var(--h-pad);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    opacity: 0;
    animation: sheetIntro var(--pace-easy) var(--curve-land) forwards;
}

@keyframes sheetIntro {
    from { opacity: 0; }
    to { opacity: 1; }
}

.mainStack {
    flex: 1 0 auto;
    background: var(--color-sheet);
    color: var(--color-fg);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: anywhere;
    margin: 0;
}

h1 {
    font-family: var(--face-head);
    font-size: var(--size-display-1);
    font-weight: var(--font-weight-heavy);
    letter-spacing: var(--spacing-snug);
    line-height: var(--rhythm-tight);
    text-transform: uppercase;
}

h2 {
    font-family: var(--face-head);
    font-size: var(--size-h2);
    font-weight: var(--font-weight-semi);
    letter-spacing: var(--spacing-snug);
    line-height: var(--rhythm-tight);
    text-transform: uppercase;
}

h3 {
    font-family: var(--face-head);
    font-size: var(--size-h3);
    font-weight: var(--font-weight-semi);
    letter-spacing: var(--spacing-default);
    line-height: var(--rhythm-tight);
}

h4 {
    font-family: var(--face-head);
    font-size: var(--size-h4);
    font-weight: var(--font-weight-semi);
    line-height: var(--rhythm-tight);
}

h5,
h6 {
    font-family: var(--face-copy);
    font-weight: var(--font-weight-semi);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
}

h5 { font-size: var(--size-h5); }
h6 { font-size: var(--size-h6); }

p {
    margin: 0 0 var(--gap-3) 0;
}

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

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

table {
    border-collapse: collapse;
}

button {
    font-family: inherit;
}

.skipJump {
    position: absolute;
    left: var(--gap-3);
    top: -200px;
    z-index: 300;
    padding: var(--gap-2) var(--gap-3);
    background: var(--color-accent);
    color: var(--color-core);
    font-weight: var(--font-weight-semi);
    border-radius: var(--round-2);
}

.skipJump:focus {
    top: 130px;
}

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

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

/* rg banner */
.rgStrip {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 120;
    margin: 0;
    padding: var(--gap-1) var(--gap-3);
    background: var(--color-rg-banner);
    color: var(--color-fg);
    font-size: var(--size-mini);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
    text-align: center;
    display: block;
}

.rgStrip a {
    color: var(--color-fg);
    background: var(--color-rg-banner);
    text-decoration: underline;
}

.rgStrip a:hover {
    color: var(--color-core);
    background: var(--color-fade-top);
}

/* header — HEAD-SUBNAV */
.mosaique {
    position: fixed;
    top: var(--rg-h);
    left: 0;
    right: 0;
    z-index: 100;
    background: var(--color-core);
    color: var(--color-fg);
    border-bottom: var(--border-light) solid var(--color-border);
    transition: backdrop-filter var(--pace-base) var(--curve-land);
}

.mosaique.is-stuck {
    background: var(--color-core);
    backdrop-filter: blur(8px);
}

.mosaique-crown {
    height: 78px;
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding-inline: var(--edge);
    display: flex;
    align-items: center;
    gap: var(--gap-4);
    background: var(--color-core);
    color: var(--color-fg);
}

.mosaique-mark {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    padding: var(--gap-1) var(--gap-3);
    border: var(--border-light) solid var(--color-border);
    border-radius: var(--round-capsule);
    background: var(--color-sheet);
}

.mosaique-mark img {
    flex-shrink: 0;
    display: block;
    height: 50px;
    width: auto;
}

.mosaique-menu-handle {
    display: none;
    order: 3;
    margin-left: var(--gap-3);
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: var(--color-core);
    color: var(--color-accent);
    cursor: pointer;
    align-items: center;
    justify-content: center;
}

.mosaique-lines {
    display: grid;
    grid-template-columns: repeat(3, 4px);
    grid-template-rows: repeat(3, 4px);
    gap: 3px;
}

.mosaique-lines span {
    display: block;
    width: 4px;
    height: 4px;
    background: var(--color-accent);
    border-radius: var(--round-dot);
}

.mosaique-deck {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: var(--gap-3);
}

.mosaique-tap {
    white-space: nowrap;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-inline: var(--gap-5);
}

.mosaique-strip {
    border-top: var(--border-light) solid var(--color-border);
    background: var(--color-sheet);
    color: var(--color-dim);
}

.mosaique-strip-core {
    height: 52px;
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding-inline: var(--edge);
    display: flex;
    align-items: center;
    background: var(--color-sheet);
    color: var(--color-dim);
}

.mosaique-bar {
    flex: 0 0 auto;
    max-width: 100%;
}

.mosaique-roll {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: var(--gap-3);
    flex-wrap: nowrap;
}

.mosaique-node {
    display: flex;
    align-items: center;
    position: relative;
}

.mosaique-node[hidden] {
    display: none;
}

.mosaique-node + .mosaique-node::before {
    content: "\00b7";
    margin-right: var(--gap-3);
    color: var(--color-stroke-heavy);
    background: var(--color-sheet);
}

.mosaique-jump {
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 14px;
    font-weight: 400;
    color: var(--color-dim);
    background: var(--color-sheet);
    transition: transform var(--pace-fast) var(--curve-land), color var(--pace-fast) var(--curve-land);
}

.mosaique-jump:hover {
    transform: translateY(-2px);
    color: var(--color-accent);
    background: var(--color-sheet);
}

.mosaique-jump[aria-current="page"] {
    color: var(--color-accent);
    background: var(--color-sheet);
    font-weight: var(--font-weight-semi);
}

.mosaique-nodeMore {
    display: flex;
    align-items: center;
    position: relative;
}

.mosaique-nodeMore[hidden] {
    display: none;
}

.mosaique-more-handle {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 44px;
    padding-inline: var(--gap-2);
    border: 0;
    background: var(--color-sheet);
    color: var(--color-dim);
    cursor: pointer;
}

.mosaique-more-handle:hover {
    color: var(--color-accent);
    background: var(--color-sheet);
}

.mosaique-dots {
    display: grid;
    grid-template-columns: repeat(3, 4px);
    gap: 3px;
}

.mosaique-dots span {
    display: block;
    width: 4px;
    height: 4px;
    background: currentColor;
    border-radius: var(--round-dot);
}

.mosaique-more-menu {
    display: none;
    position: absolute;
    top: calc(100% - 4px);
    right: 0;
    min-width: 190px;
    max-height: 60vh;
    overflow-y: auto;
    list-style: none;
    margin: 0;
    padding: var(--gap-2);
    background: var(--color-card);
    color: var(--color-dim);
    border: var(--border-light) solid var(--color-border);
    border-radius: var(--round-3);
    box-shadow: var(--lift-5);
    z-index: 30;
}

.mosaique-more-menu.is-open {
    display: block;
}

.mosaique-more-menu .mosaique-node {
    display: block;
}

.mosaique-more-menu .mosaique-node::before {
    content: none;
}

.mosaique-more-menu .mosaique-jump {
    display: block;
    width: 100%;
    padding: var(--gap-2);
    background: var(--color-card);
    color: var(--color-dim);
}

.mosaique-more-menu .mosaique-jump:hover {
    transform: none;
    background: var(--color-card);
    color: var(--color-accent);
}

.mosaique-shelf {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    max-height: 70vh;
    overflow-y: auto;
    padding: var(--gap-3) var(--edge) var(--gap-4);
    background: var(--color-core);
    color: var(--color-fg);
    border-top: var(--border-light) solid var(--color-border);
    box-shadow: var(--lift-5);
}

.mosaique-shelf.is-open {
    display: block;
}

.mosaique-shelf-roll {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.mosaique-shelf-slot {
    display: block;
}

.mosaique-shelf-jump {
    display: block;
    padding: var(--gap-3) 0;
    border-bottom: var(--border-light) solid var(--color-border);
    color: var(--color-fg);
    background: var(--color-core);
    font-family: var(--face-head);
    font-size: var(--size-h4);
    font-weight: var(--font-weight-semi);
}

.mosaique-shelf-jump[aria-current="page"] {
    color: var(--color-accent);
    background: var(--color-core);
}

@media (max-width: 820px) {
    .mosaique-crown {
        height: 64px;
        gap: var(--gap-3);
    }

    .mosaique-mark img {
        height: 38px;
    }

    .mosaique-menu-handle {
        display: inline-flex;
    }

    .mosaique-strip {
        display: none;
    }

    .mosaique-deck .mosaique-tap {
        padding-inline: var(--gap-3);
        font-size: var(--size-fine);
    }
}

@media (max-width: 520px) {
    .mosaique-crown {
        height: auto;
        min-height: 64px;
        flex-wrap: wrap;
        padding-block: var(--gap-2);
    }

    .mosaique-deck {
        order: 4;
        flex-basis: 100%;
        margin-left: 0;
    }

    .mosaique-menu-handle {
        margin-left: auto;
    }

    .mosaique-deck .mosaique-tap {
        width: 100%;
        justify-content: center;
    }

    .mosaique-mark img {
        height: 32px;
    }
}

/* breadcrumbs — BREAD-05 */
.cloche {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--gap-4) var(--edge) 0;
    background: var(--color-sheet);
    color: var(--color-dim);
}

.cloche-roll {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--gap-2);
    font-family: var(--face-head);
    font-size: var(--size-h5);
    font-weight: var(--font-weight-semi);
    letter-spacing: var(--spacing-snug);
    text-transform: uppercase;
}

.cloche-jump {
    color: var(--color-dim);
    background: var(--color-sheet);
}

.cloche-jump:hover {
    color: var(--color-accent);
    background: var(--color-sheet);
}

.cloche-sep {
    color: var(--color-accent);
    background: var(--color-sheet);
    font-weight: var(--font-weight-heavy);
}

.cloche-here {
    color: var(--color-fg);
    background: var(--color-sheet);
}

/* hero — HERO-12 */
.paroi {
    background: var(--color-sheet);
    color: var(--color-fg);
}

.paroi-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.paroi-guts {
    text-align: center;
}

.paroi-kick {
    display: block;
    margin-bottom: var(--gap-3);
    font-family: var(--face-copy);
    font-size: var(--size-fine);
    font-style: italic;
    letter-spacing: var(--spacing-wide);
    color: var(--color-accent);
    background: var(--color-sheet);
}

.paroi-lede {
    margin-bottom: var(--gap-4);
}

.paroi-lead {
    max-width: var(--wrap-narrow);
    margin-inline: auto;
    font-size: var(--size-h5);
    font-style: italic;
    line-height: var(--rhythm-default);
    color: var(--color-dim);
    background: var(--color-sheet);
}

.paroi-stamp {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gap-2);
    font-size: var(--size-mini);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
    color: var(--color-dim);
    background: var(--color-sheet);
}

.paroi-stamp span {
    background: var(--color-sheet);
    color: var(--color-dim);
}

.paroi-figure {
    margin: var(--gap-5) 0 0;
    overflow: hidden;
    border-radius: var(--round-5);
}

.paroi-art {
    display: block;
    width: 100%;
    aspect-ratio: 21 / 9;
    object-fit: cover;
    border-radius: var(--round-5);
}

.paroi-note {
    padding-top: var(--gap-2);
    font-size: var(--size-mini);
    font-style: italic;
    text-align: center;
    color: var(--color-dim);
    background: var(--color-sheet);
}

/* page-header — PHEAD-05 */
.pupitre {
    background: var(--color-sheet);
    color: var(--color-fg);
}

.pupitre-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.pupitre-crumbs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-2);
    margin-bottom: var(--gap-3);
    font-size: var(--size-mini);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
    color: var(--color-dim);
    background: var(--color-sheet);
}

.pupitre-crumbs a {
    color: var(--color-dim);
    background: var(--color-sheet);
}

.pupitre-crumbs a:hover {
    color: var(--color-accent);
    background: var(--color-sheet);
}

.pupitre-lede {
    margin-bottom: var(--gap-3);
}

.pupitre-copy {
    color: var(--color-dim);
    background: var(--color-sheet);
}

.pupitre-stamp {
    font-size: var(--size-mini);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
    color: var(--color-dim);
    background: var(--color-sheet);
}

.pupitre-push {
    margin-top: var(--gap-4);
}

/* prose — PROSE-08 */
.etabli {
    background: var(--color-sheet);
    color: var(--color-fg);
}

.etabli-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.etabli-hdr {
    margin-block: 0 var(--gap-3);
    margin-inline: 0;
    padding-left: 0;
    border-left: 4px solid var(--color-accent);
    padding-inline-start: var(--gap-3);
}

.etabli-hdr:not(:first-child) {
    margin-block-start: var(--gap-5);
}

.etabli-copy {
    margin-inline-start: var(--gap-4);
    margin-block-end: var(--gap-3);
    color: var(--color-dim);
    background: var(--color-sheet);
}

.etabli-copy strong {
    color: var(--color-fg);
    background: var(--color-sheet);
}

.etabli-copy a {
    color: var(--color-accent);
    background: var(--color-sheet);
    text-decoration: underline;
}

.etabli-roll {
    margin-inline-start: var(--gap-4);
    margin-block: 0 var(--gap-3);
    padding-inline-start: var(--gap-4);
    color: var(--color-dim);
    background: var(--color-sheet);
}

.etabli-slot {
    margin-block-end: var(--gap-2);
    color: var(--color-dim);
    background: var(--color-sheet);
}

.etabli-slot strong {
    color: var(--color-fg);
    background: var(--color-sheet);
}

.etabli-push {
    margin-inline-start: var(--gap-4);
    margin-block-start: var(--gap-4);
}

@media (max-width: 820px) {
    .etabli-copy,
    .etabli-roll,
    .etabli-push {
        margin-inline-start: var(--gap-2);
    }
}

@media (max-width: 520px) {
    .etabli-copy,
    .etabli-roll,
    .etabli-push {
        margin-inline-start: 0;
    }
}

/* items-grid — GRID-01 */
.vitrine {
    background: var(--color-sheet);
    color: var(--color-fg);
}

.vitrine-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.vitrine-hdr {
    margin-bottom: var(--gap-4);
}

.vitrine-stack {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--gap-5);
}

.vitrine-piece {
    padding: var(--gap-5);
    background: var(--color-card);
    color: var(--color-dim);
    border: var(--border-light) solid var(--color-border);
    border-radius: var(--round-4);
    transition: transform var(--pace-base) var(--curve-land), border-color var(--pace-base) var(--curve-land);
}

.vitrine-piece:hover {
    transform: translateY(-4px);
    border-color: var(--color-accent);
}

.vitrine-glyph {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-bottom: var(--gap-3);
    background: #2b1610;
    color: var(--color-accent);
    border: var(--border-light) solid var(--color-stroke-heavy);
    border-radius: var(--round-dot);
}

.vitrine-glyph svg {
    width: 21px;
    height: 21px;
    fill: currentColor;
}

.vitrine-lede {
    margin-bottom: var(--gap-3);
    color: var(--color-fg);
    background: var(--color-card);
}

.vitrine-copy {
    color: var(--color-dim);
    background: var(--color-card);
    font-size: var(--size-body);
    line-height: var(--rhythm-default);
}

@media (max-width: 1180px) {
    .vitrine-stack {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--gap-4);
    }
}

@media (max-width: 820px) {
    .vitrine-stack {
        grid-template-columns: minmax(0, 1fr);
    }

    .vitrine-piece {
        padding: var(--gap-4);
    }
}

/* data-table — TABLE-01 */
.chambre {
    background: var(--color-sheet);
    color: var(--color-fg);
}

.chambre-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.chambre-hdr {
    margin-bottom: var(--gap-4);
}

.chambre-frame {
    overflow-x: auto;
    border-radius: var(--round-4);
    border: var(--border-light) solid var(--color-border);
}

.chambre-grid {
    width: 100%;
    min-width: 520px;
    background: var(--color-card);
    color: var(--color-dim);
}

.chambre-grid th {
    padding: var(--gap-4);
    background: var(--color-core);
    color: var(--color-accent);
    font-family: var(--face-copy);
    font-weight: var(--font-weight-semi);
    font-size: var(--size-h6);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
    text-align: left;
}

.chambre-grid td {
    padding: var(--gap-4);
    background: var(--color-card);
    color: var(--color-dim);
    font-size: var(--size-body);
    text-align: left;
    border-top: var(--border-light) solid var(--color-border);
}

.chambre-grid td:first-child {
    color: var(--color-fg);
    background: var(--color-card);
    font-weight: var(--font-weight-semi);
}

.chambre-grid tr:nth-child(even) td {
    background: #171826;
}

.chambre-grid tbody tr:hover td {
    background: #1d1e2e;
    transition: background var(--pace-fast) var(--curve-land);
}

.chambre-push {
    margin-top: var(--gap-4);
}

/* reviews — REV-05 */
.borne {
    background: var(--color-sheet);
    color: var(--color-fg);
}

.borne-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.borne-hdr {
    margin-bottom: var(--gap-4);
}

.borne-roll {
    list-style: none;
    margin: 0;
    padding: 0 0 0 var(--gap-2);
    border-left: var(--border-light) solid var(--color-accent);
}

.borne-slot {
    position: relative;
    padding-left: var(--gap-7);
    margin-bottom: var(--gap-6);
}

.borne-slot:last-child {
    margin-bottom: 0;
}

.borne-slot::before {
    content: "";
    position: absolute;
    left: -18px;
    top: 8px;
    width: 16px;
    height: 16px;
    background: var(--color-accent);
    border-radius: var(--round-dot);
}

.borne-rank {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--gap-2);
    margin-bottom: var(--gap-2);
    font-size: var(--size-fine);
    color: var(--color-dim);
    background: var(--color-sheet);
}

.borne-time {
    color: var(--color-dim);
    background: var(--color-sheet);
}

.borne-author {
    color: var(--color-fg);
    background: var(--color-sheet);
    font-weight: var(--font-weight-semi);
}

.borne-score {
    display: block;
    margin-bottom: var(--gap-2);
    color: var(--color-accent);
    background: var(--color-sheet);
    font-size: var(--size-h5);
    letter-spacing: var(--spacing-wide);
}

.borne-words {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--color-dim);
    background: var(--color-sheet);
    font-size: var(--size-body);
    line-height: var(--rhythm-default);
}

.borne-words p {
    margin: 0;
    color: var(--color-dim);
    background: var(--color-sheet);
}

@media (max-width: 820px) {
    .borne-slot {
        padding-left: var(--gap-4);
    }
}

/* faq — FAQ-04 */
.volume {
    background: var(--color-sheet);
    color: var(--color-fg);
}

.volume-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.volume-hdr {
    margin-bottom: var(--gap-4);
}

.volume-unit {
    border-bottom: var(--border-light) solid var(--color-border);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.volume-ask {
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr) 24px;
    align-items: start;
    gap: var(--gap-3);
    padding-block: var(--gap-4);
    cursor: pointer;
    list-style: none;
    background: var(--color-sheet);
    color: var(--color-fg);
}

.volume-ask::-webkit-details-marker {
    display: none;
}

.volume-num {
    font-family: var(--face-head);
    font-size: var(--size-h3);
    font-weight: var(--font-weight-heavy);
    line-height: var(--rhythm-tight);
    color: var(--color-accent);
    background: var(--color-sheet);
}

.volume-lede {
    font-family: var(--face-head);
    font-size: var(--size-h4);
    font-weight: var(--font-weight-semi);
    line-height: var(--rhythm-tight);
    color: var(--color-fg);
    background: var(--color-sheet);
    margin: 0;
}

.volume-chevron {
    justify-self: end;
    width: 12px;
    height: 12px;
    margin-top: 6px;
    border-right: var(--border-base) solid var(--color-accent);
    border-bottom: var(--border-base) solid var(--color-accent);
    transform: rotate(45deg);
    transition: transform var(--pace-base) var(--curve-in-out);
}

.volume-unit[open] .volume-chevron {
    transform: rotate(-135deg);
}

.volume-matter {
    padding-left: calc(60px + var(--gap-3));
    padding-bottom: var(--gap-4);
    color: var(--color-dim);
    background: var(--color-sheet);
}

.volume-matter p {
    margin: 0;
    color: var(--color-dim);
    background: var(--color-sheet);
}

@media (max-width: 820px) {
    .volume-ask {
        grid-template-columns: 36px minmax(0, 1fr) 20px;
        gap: var(--gap-2);
    }

    .volume-matter {
        padding-left: calc(36px + var(--gap-2));
    }
}

/* cta-block — CTA-09 */
.blason {
    background: var(--color-core);
    color: var(--color-fg);
}

.blason-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    text-align: left;
    background: var(--color-core);
    color: var(--color-fg);
}

.blason-kick {
    display: block;
    margin-bottom: var(--gap-2);
    font-size: var(--size-mini);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
    color: var(--color-accent);
    background: var(--color-core);
}

.blason-lede {
    margin-bottom: var(--gap-3);
}

.blason-copy {
    max-width: var(--wrap-narrow);
    line-height: var(--rhythm-airy);
    color: var(--color-dim);
    background: var(--color-core);
}

.blason-push {
    margin-top: var(--gap-4);
}

.blason-fine {
    display: block;
    margin-top: var(--gap-3);
    font-size: var(--size-mini);
    color: var(--color-dim);
    background: var(--color-core);
}

/* legal-section — LEGAL-03 */
.tympan {
    background: var(--color-sheet);
    color: var(--color-fg);
}

.tympan-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: var(--gap-7);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.tympan-index {
    position: sticky;
    top: 190px;
    align-self: start;
    padding: var(--gap-4);
    background: var(--color-card);
    color: var(--color-dim);
    border: var(--border-light) solid var(--color-border);
    border-radius: var(--round-4);
    font-size: var(--size-fine);
}

.tympan-index-hdr {
    margin-bottom: var(--gap-3);
    font-family: var(--face-copy);
    font-size: var(--size-h6);
    font-weight: var(--font-weight-semi);
    letter-spacing: var(--spacing-wide);
    line-height: var(--rhythm-default);
    color: var(--color-fg);
    background: var(--color-card);
}

.tympan-index ol {
    margin: 0;
    padding-left: var(--gap-3);
    color: var(--color-dim);
    background: var(--color-card);
}

.tympan-index li {
    margin-bottom: var(--gap-2);
    color: var(--color-dim);
    background: var(--color-card);
}

.tympan-index a {
    color: var(--color-dim);
    background: var(--color-card);
}

.tympan-index a:hover {
    color: var(--color-accent);
    background: var(--color-card);
}

.tympan-guts {
    background: var(--color-sheet);
    color: var(--color-fg);
}

.tympan-block {
    margin-bottom: var(--gap-5);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.tympan-hdr {
    margin-bottom: var(--gap-3);
}

.tympan-copy {
    color: var(--color-dim);
    background: var(--color-sheet);
}

.tympan-fine {
    margin-top: var(--gap-5);
    padding: var(--gap-4);
    background: var(--color-card);
    color: var(--color-dim);
    border: var(--border-light) solid var(--color-border);
    border-radius: var(--round-4);
    font-size: var(--size-fine);
}

.tympan-fine a {
    color: var(--color-accent);
    background: var(--color-card);
}

@media (max-width: 1180px) {
    .tympan-core {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--gap-4);
    }

    .tympan-index {
        position: static;
    }
}

/* contact-form — FORM-01 */
.plaque {
    background: var(--color-sheet);
    color: var(--color-fg);
}

.plaque-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.plaque-hdr {
    margin-bottom: var(--gap-4);
}

.plaque-intro {
    line-height: var(--rhythm-airy);
    margin-bottom: var(--gap-5);
    color: var(--color-dim);
    background: var(--color-sheet);
}

.plaque-done {
    display: none;
    padding: var(--gap-4);
    margin-bottom: var(--gap-4);
    background: #10281a;
    color: var(--color-fg);
    border: var(--border-light) solid #2f7a4d;
    border-radius: var(--round-4);
}

.plaque-done.is-visible {
    display: block;
}

.plaque-form {
    display: flex;
    flex-direction: column;
    gap: var(--gap-4);
    padding: var(--gap-5);
    background: var(--color-card);
    color: var(--color-fg);
    border: var(--border-light) solid var(--color-border);
    border-radius: var(--round-4);
    box-shadow: var(--lift-3);
}

.plaque-entry {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    gap: var(--gap-2);
}

.plaque-cap {
    font-weight: var(--font-weight-semi);
    font-size: var(--size-fine);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
    color: var(--color-fg);
    background: var(--color-card);
}

.plaque-input,
.plaque-area {
    font-family: var(--face-copy);
    font-size: var(--size-body);
    color: var(--color-fg);
    background: var(--color-sheet);
    border: var(--border-light) solid var(--color-stroke-heavy);
    border-radius: var(--round-3);
    padding: var(--gap-3) var(--gap-4);
}

.plaque-input {
    height: 48px;
}

.plaque-area {
    min-height: 120px;
    resize: vertical;
}

.plaque-input:focus,
.plaque-area:focus {
    border-color: var(--color-accent);
}

.plaque-send {
    align-self: flex-start;
    min-height: 48px;
    padding-inline: var(--gap-6);
    background: var(--color-accent);
    color: var(--color-core);
    border: 0;
    border-radius: var(--round-4);
    font-family: var(--face-head);
    font-weight: var(--font-weight-heavy);
    font-size: var(--size-h6);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
    cursor: pointer;
    transition: transform var(--pace-fast) var(--curve-land), background var(--pace-fast) var(--curve-land);
}

.plaque-send:hover {
    background: var(--color-key-active);
    color: var(--color-core);
    transform: scale(1.015);
}

/* author-card — AUTH-06 */
.placard {
    background: var(--color-core);
    color: var(--color-fg);
}

.placard-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: var(--gap-7);
    align-items: start;
    background: var(--color-core);
    color: var(--color-fg);
}

.placard-face {
    width: 240px;
    max-width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: var(--round-5);
    box-shadow: var(--lift-5);
}

.placard-guts {
    background: var(--color-core);
    color: var(--color-fg);
}

.placard-job {
    display: block;
    margin-bottom: var(--gap-2);
    font-size: var(--size-fine);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
    color: var(--color-accent);
    background: var(--color-core);
}

.placard-lede {
    margin-bottom: var(--gap-3);
}

.placard-bio {
    font-size: var(--size-h5);
    line-height: var(--rhythm-default);
    color: var(--color-dim);
    background: var(--color-core);
}

.placard-skills {
    list-style: none;
    margin: var(--gap-4) 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-2);
}

.placard-skill {
    padding: var(--gap-2) var(--gap-3);
    background: var(--color-sheet);
    color: var(--color-dim);
    border: var(--border-light) solid var(--color-border);
    border-radius: var(--round-capsule);
    font-size: var(--size-fine);
}

.placard-articles {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: 0 var(--edge) var(--sec-y);
    background: var(--color-core);
    color: var(--color-fg);
}

.placard-articles-hdr {
    margin-bottom: var(--gap-3);
    font-family: var(--face-copy);
    font-size: var(--size-h5);
    font-weight: var(--font-weight-semi);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
    color: var(--color-fg);
    background: var(--color-core);
}

.placard-articles-roll {
    list-style: none;
    margin: 0;
    padding: 0;
}

.placard-articles-slot {
    padding: var(--gap-2) 0;
    border-top: var(--border-light) solid var(--color-border);
    color: var(--color-dim);
    background: var(--color-core);
}

@media (max-width: 820px) {
    .placard-core {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--gap-4);
    }

    .placard-face {
        width: 180px;
    }
}

/* author-byline — BYLINE-04 */
.medaillon {
    background: var(--color-sheet);
    color: var(--color-fg);
}

.medaillon-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--sec-y) var(--edge);
    background: var(--color-sheet);
    color: var(--color-fg);
}

.medaillon-quote {
    max-width: var(--wrap-narrow);
    margin: 0 auto;
    padding: 0;
    text-align: center;
    position: relative;
    background: var(--color-sheet);
    color: var(--color-fg);
}

.medaillon-quote::before {
    content: "\201C";
    display: block;
    font-family: var(--face-head);
    font-size: var(--size-display-1);
    line-height: 0.6;
    color: var(--color-accent);
    background: var(--color-sheet);
}

.medaillon-words {
    font-family: var(--face-head);
    font-size: var(--size-h4);
    font-style: italic;
    font-weight: var(--font-weight-semi);
    color: var(--color-fg);
    background: var(--color-sheet);
}

.medaillon-sig {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--gap-2);
    background: var(--color-sheet);
    color: var(--color-dim);
}

.medaillon-face {
    width: 32px;
    height: 32px;
    border-radius: var(--round-dot);
    object-fit: cover;
}

.medaillon-author {
    font-style: normal;
    font-weight: var(--font-weight-semi);
    color: var(--color-accent);
    background: var(--color-sheet);
}

.medaillon-author a {
    color: var(--color-accent);
    background: var(--color-sheet);
}

.medaillon-job {
    font-size: var(--size-fine);
    font-style: italic;
    color: var(--color-dim);
    background: var(--color-sheet);
}

.medaillon-time {
    font-size: var(--size-fine);
    color: var(--color-dim);
    background: var(--color-sheet);
}

/* error-block — ERR-07 */
.socle {
    flex: 1 0 auto;
    background-color: var(--color-sheet);
    background-image:
        linear-gradient(rgba(231, 181, 74, 0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(231, 181, 74, 0.08) 1px, transparent 1px);
    background-size: 40px 40px;
    color: var(--color-fg);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.socle-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding: var(--gap-6) var(--edge);
    text-align: center;
    color: var(--color-fg);
}

.socle-lede {
    max-width: var(--wrap-narrow);
    margin-inline: auto;
    margin-bottom: var(--gap-4);
}

.socle-copy {
    max-width: var(--wrap-narrow);
    margin-inline: auto;
    margin-bottom: var(--gap-4);
    color: var(--color-dim);
}

.socle-push {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding-inline: var(--gap-5);
    background: var(--color-accent);
    color: var(--color-core);
    border-radius: var(--round-4);
    font-family: var(--face-head);
    font-weight: var(--font-weight-heavy);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
}

.socle-push:hover {
    background: var(--color-key-active);
    color: var(--color-core);
}

/* cookie-banner — COOK-15 */
.voute {
    position: fixed;
    inset-inline-end: 0;
    inset-block-end: 0;
    z-index: 200;
    width: min(360px, 100vw);
    max-height: 62vh;
    overflow-y: auto;
    padding: var(--gap-6) var(--gap-5) var(--gap-5);
    background: var(--color-card);
    color: var(--color-fg);
    border-inline-start: var(--border-light) solid var(--color-border);
    border-top: var(--border-light) solid var(--color-border);
    box-shadow: var(--lift-6);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    transform: translateX(105%);
    visibility: hidden;
}

.voute.is-open {
    transform: translateX(0);
    visibility: visible;
    animation: cookieWipe var(--pace-easy) var(--curve-land) both;
}

@keyframes cookieWipe {
    from { clip-path: inset(0 0 0 100%); opacity: 0; }
    to { clip-path: inset(0 0 0 0); opacity: 1; }
}

.voute-words {
    font-size: var(--size-fine);
    line-height: var(--rhythm-default);
    margin-bottom: var(--gap-4);
    color: var(--color-dim);
    background: var(--color-card);
}

.voute-deck {
    display: flex;
    flex-direction: column;
    gap: var(--gap-3);
}

.voute-confirm,
.voute-later {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    padding: var(--gap-2) var(--gap-3);
    border-radius: var(--round-3);
    font-family: var(--face-copy);
    font-size: var(--size-fine);
    font-weight: var(--font-weight-semi);
    cursor: pointer;
    white-space: nowrap;
}

.voute-confirm {
    background: var(--color-accent);
    color: var(--color-core);
    border: 0;
}

.voute-confirm:hover {
    background: var(--color-key-active);
    color: var(--color-core);
}

.voute-later {
    background: var(--color-sheet);
    color: var(--color-fg);
    border: var(--border-light) solid var(--color-stroke-heavy);
}

.voute-later:hover {
    background: var(--color-core);
    color: var(--color-fg);
}

@media (max-width: 700px) {
    .voute {
        width: 100vw;
        max-height: 52vh;
        padding: 12px 14px !important;
        gap: 8px !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
        transform: translateY(105%);
    }

    .voute.is-open {
        transform: translateY(0);
    }

    .voute-words {
        margin-bottom: var(--gap-3);
    }

    .voute-confirm,
    .voute-later {
        padding: 8px 14px !important;
        font-size: 12px !important;
        min-height: 36px !important;
    }
}

@media (max-width: 430px) {
    .voute-confirm,
    .voute-later {
        white-space: normal;
    }
}

/* footer — FOOT-10 */
.planche {
    background: var(--color-sheet);
    color: var(--color-dim);
    border-top: var(--border-light) solid var(--color-border);
}

.planche-core {
    max-width: calc(var(--wrap-site) + 2 * var(--wrap-edge-wide));
    margin-inline: auto;
    padding-inline: var(--edge);
    background: var(--color-sheet);
    color: var(--color-dim);
}

.planche-crest {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-4);
    padding-block: var(--gap-5);
    border-bottom: var(--border-light) solid rgba(255, 255, 255, 0.08);
}

.planche-mark img {
    display: block;
    height: 44px;
    width: auto;
}

.planche-creed {
    max-width: var(--wrap-narrow);
    margin: 0;
    font-family: var(--face-head);
    font-size: var(--size-h4);
    font-weight: var(--font-weight-semi);
    color: var(--color-fg);
    background: var(--color-sheet);
}

.planche-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--gap-5);
    padding-block: var(--gap-6);
    border-bottom: var(--border-light) solid rgba(255, 255, 255, 0.08);
}

.planche-band {
    background: var(--color-sheet);
    color: var(--color-dim);
}

.planche-hdr {
    margin-bottom: var(--gap-3);
    font-family: var(--face-copy);
    font-size: var(--size-h6);
    font-weight: var(--font-weight-semi);
    letter-spacing: var(--spacing-wide);
    text-transform: uppercase;
    color: var(--color-fg);
    background: var(--color-sheet);
}

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

.planche-slot {
    margin-bottom: var(--gap-2);
}

.planche-jump {
    position: relative;
    color: var(--color-dim);
    background: var(--color-sheet);
    font-size: var(--size-body);
}

.planche-jump::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -2px;
    height: 1px;
    background: var(--color-accent);
    transform: scaleX(0);
    transition: transform var(--pace-fast) var(--curve-land);
}

.planche-jump:hover {
    color: var(--color-accent);
    background: var(--color-sheet);
}

.planche-jump:hover::after {
    transform: scaleX(1);
}

.planche-note {
    color: var(--color-dim);
    background: var(--color-sheet);
    font-size: var(--size-fine);
    line-height: var(--rhythm-default);
}

.planche-fineprint {
    padding-block: var(--gap-4);
    border-bottom: var(--border-light) solid rgba(255, 255, 255, 0.08);
    font-size: var(--size-fine);
    color: var(--color-dim);
    background: var(--color-sheet);
}

.planche-fineprint a {
    color: var(--color-accent);
    background: var(--color-sheet);
}

.planche-rank {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-3);
    padding-block: var(--gap-4);
    font-size: var(--size-fine);
    color: var(--color-dim);
    background: var(--color-sheet);
}

.planche-stamp {
    color: var(--color-dim);
    background: var(--color-sheet);
}

.planche-legal {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-3);
    list-style: none;
    margin: 0;
    padding: 0;
}

@media (max-width: 820px) {
    .planche-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--gap-4);
        padding-block: var(--gap-5);
    }
}

/* offer button anchor block */
.gateBox {
    scroll-margin-top: 190px;
}

.gateRow {
    margin-top: var(--gap-4);
}

.gateFine {
    display: block;
    margin-top: var(--gap-2);
    font-size: var(--size-mini);
    color: var(--color-dim);
}

.vitrine-push {
    margin-top: var(--gap-5);
}

.placard-push {
    margin-top: var(--gap-4);
}

.mainStack:has(> .socle) {
    display: flex;
    flex-direction: column;
}

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

    body {
        opacity: 1;
        animation: none;
    }
}
/* Offer CTA */
.gsly-act{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;
  min-height:46px;padding:0 28px;border:1px solid #080812;border-radius:999px;
  background:#DB2777;color:#FFFFFF;text-decoration:none;
  font-size:13px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase;
  transition:background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}
.gsly-act:hover{background:#BE185D;color:#FFFFFF;animation:none}
.gsly-act:hover::after{animation:none}
.gsly-act:active{background:#9D174D;color:#FFFFFF}
.gsly-act:focus-visible{outline:3px solid #080812;outline-offset:3px}
.gsly-act{animation:breathe_gsly 3.65s linear infinite}
@keyframes breathe_gsly{0%{transform:scale(1);animation-timing-function:cubic-bezier(.25,.8,.35,1)}15.068%{transform:scale(1.075);animation-timing-function:cubic-bezier(.45,.05,.55,.95)}36.986%,100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.gsly-act,.gsly-act::after{animation:none!important;transition:none!important}}

/* btnShape: square — header button keeps the offer colour, drops the pill */
.mosaique-deck .mosaique-tap {
    border-radius: var(--round-1);
    letter-spacing: var(--spacing-wide);
}

@media (max-width: 820px) {
    .mosaique-deck .mosaique-tap {
        padding: 0 var(--gap-3);
        font-size: 12px;
        letter-spacing: 1px;
    }
}

.mosaique-art {
    display: block;
    height: 50px;
    width: auto;
}

.planche-art {
    display: block;
    height: 44px;
    width: auto;
}

@media (max-width: 493px) {
  .mosaique-strip,
  .mosaique-strip-core,
  .mosaique-bar,
  .mosaique-roll,
  .mosaique-jump { display: none !important; }
  .mosaique-more-handle { display: flex !important; }
}

.borne-page-figure {
	margin-block: var(--gap-3);
}

.borne-page-figure img {
	display: block;
	max-width: 100%;
	max-height: 56vh;
	width: auto;
	height: auto;
	margin-inline: auto;
}
