/*
 * Socle commun à la vitrine et au backoffice : jetons de design, reset et utilitaires d'accessibilité.
 */
:root {
    --cream: #fbf3ea;
    --ivory: #fffaf4;
    --ink: #241813;
    --muted: #66544c;
    --rose: #c41649;
    --pink: #e97896;
    --blush: #f5ded6;
    --gold: #d4a13f;
    --leaf: #2f594e;

    --font-sans: "DM Sans", ui-sans-serif, system-ui, sans-serif;
    --font-display: "Fraunces", Georgia, serif;

    --focus-ring: 0 0 0 2px color-mix(in srgb, var(--rose) 60%, transparent);
}

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

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

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

body {
    margin: 0;
    background: var(--cream);
    color: var(--ink);
    font-family: var(--font-sans);
    -webkit-font-smoothing: antialiased;
}

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

h1,
h2,
h3,
p,
ul,
figure {
    margin: 0;
}

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

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

button,
input,
select,
textarea {
    font: inherit;
    color: inherit;
}

button {
    cursor: pointer;
}

button:disabled {
    cursor: not-allowed;
}

:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

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

.hidden {
    display: none !important;
}
