/*
 * Thème sur mesure « Blush Me Tender » : charte d'Aurélie du 31/10/2026 (docs/blush-me-tender-v1-design.md, qui fait
 * foi). Réservé à cet institut (CustomThemeGrant) ; chargé seulement quand il est choisi. Remplace le thème « Rose
 * Agency » de septembre 2026 sous la même clé.
 *
 * Tout ce qui suit vit sous [data-site-theme="blush-me-tender"] : aucune règle ne sort du thème (test
 * CustomThemeFilesTest). Aucune ressource externe : polices et décors sont dans ce dossier.
 *
 * Trois couleurs : crème (fond), terracotta (tout le texte, les titres, les boutons, les filets forts), blush (décor
 * seulement : courbe, sticker, aquarelle, cœur, filets de 1 px). Le blush ne porte jamais de texte (crème/blush 2,83:1,
 * terracotta/blush 2,12:1) ; pas d'opacité ni de gris pour la hiérarchie : la taille, la police, les capitales et
 * l'interlettrage la font. Le terracotta foncé ne sert qu'au survol des boutons pleins.
 *
 * Polices : BDO Grotesk (texte, menus, boutons), la police de la charte, libre (SIL OFL, dépôt officiel
 * LCTipografi/BDO-Grotesk, 400 et 500 réduites au latin et latin étendu), comme sur blushmetender.com. Panama (titres) et
 * Devina Garden (annotations) ne sont pas fournies : leurs substituts libres, Instrument Serif et Caveat, sont ceux du
 * site Astro. Licences dans docs/licences/. Pour passer aux polices d'Aurélie : copier leurs WOFF2 dans fonts/, ajouter
 * leurs @font-face et mettre leur nom en tête des jetons --bmt-font-* ; le reste de la feuille ne change pas. Pas avant
 * d'avoir les fichiers : un nom sans @font-face prendrait la police du même nom installée sur l'ordinateur de la
 * visiteuse (celui d'Aurélie, par exemple), et chacune verrait un site différent.
 *
 * Réservation, soin, cure, carte cadeau, espace cliente, confirmation : ces pages s'affichent aussi dans l'iframe du
 * site Astro de l'institut (rdv.blushmetender.com dans blushmetender.com). Elles en reprennent les règles (base.css du
 * site, 07/11/2026) : texte BDO 17-18 px / 1,65, titres Panama en capitales, encadrés crème à filet fin (terracotta
 * 30 %) et angles 16 px, liseré terracotta à gauche pour les conditions, champs 52 px à angles 12 px, boutons pastille
 * 52 px (survol : crème, texte terracotta), sur-titres BDO 500 en capitales espacées. Fond transparent dans l'iframe :
 * celui de la page Astro (crème) se voit. Points d'accroche : jetons --site-*, [data-part] (docs/site-vitrine.md).
 */
@font-face { font-family: "Instrument Serif"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/instrument-serif-400-normal-S0aleDJ.woff2") format("woff2"); }
@font-face { font-family: "Instrument Serif"; font-style: italic; font-weight: 400; font-display: swap;
  src: url("fonts/instrument-serif-400-italic-oF-W7iB.woff2") format("woff2"); }
@font-face { font-family: "BDO Grotesk"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/bdo-grotesk-latin-400-normal-CkS6wuX.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "BDO Grotesk"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/bdo-grotesk-latin-ext-400-normal-lw5QZep.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "BDO Grotesk"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/bdo-grotesk-latin-500-normal-i5RM2ya.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "BDO Grotesk"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/bdo-grotesk-latin-ext-500-normal-fRfUI4w.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Caveat"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("fonts/caveat-latin-600-normal-_Bhh0sj.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

@layer components {
  [data-site-theme="blush-me-tender"] {
    /* Palette de la charte. Les tests de contraste lisent ces jetons (paires déclarées dans CustomThemes). */
    --bmt-cream: #fdf9f1; --bmt-terracotta: #a43f33; --bmt-blush: #dd7975;
    --bmt-terracotta-hover: #8a3228; /* --salon-hover, pour les pages hors de ces règles : crème dessus 7,79:1 */
    --bmt-hair: #a43f334d; /* filet fin du site Astro : terracotta à 30 %, décor (jamais la bordure d'un champ) */
    --bmt-radius-box: 16px; --bmt-radius-field: 12px; /* encadrés et champs du site Astro */
    /* Panama et Devina Garden : substituts (voir l'en-tête de la feuille) ; BDO Grotesk : la police de la charte. */
    --bmt-font-title: "Instrument Serif", "Times New Roman", serif;
    --bmt-font-text: "BDO Grotesk", "Helvetica Neue", Arial, sans-serif;
    --bmt-font-note: "Caveat", cursive;
    --bmt-gutter: 20px; --bmt-max: 1240px; --bmt-header-y: 0px;
    --bmt-curve: url("decor/signature-curve-OElTCGN.svg");
    --bmt-heart: url("decor/gua-sha-heart-VOXBob5.svg");
    /* Logos en couleur ramenés au terracotta (filtre calculé pour #a43f33 à partir du noir). */
    --bmt-logo-filter: brightness(0) saturate(100%) invert(29%) sepia(41%) saturate(1592%) hue-rotate(328deg) brightness(93%) contrast(89%);
    @media (min-width: 56rem) { --bmt-gutter: 56px; --bmt-header-y: 10px; }

    /* Couleur de l'institut : la charte. Le terracotta porte les boutons pleins (crème dessus, 5,99:1). */
    --salon: var(--bmt-terracotta); --on-salon: var(--bmt-cream); --salon-hover: var(--bmt-terracotta-hover);
    --accent: var(--bmt-terracotta); --glow: var(--bmt-blush);
    --color-action: var(--salon); --color-action-hover: var(--salon-hover); --color-on-action: var(--on-salon); --color-accent: var(--accent);
    --color-ink: var(--bmt-terracotta); --color-ink-soft: var(--bmt-terracotta); --color-error: var(--bmt-terracotta); --color-blush-ink: var(--bmt-terracotta);
    --color-surface: var(--bmt-cream); --color-canvas: var(--bmt-cream); --color-quartz: var(--bmt-cream);
    --color-line: var(--bmt-hair); --color-field-line: var(--bmt-terracotta);

    /* Jetons du contrat des thèmes (docs/site-vitrine-themes.md, § 3.5). */
    --site-font-display: var(--bmt-font-title); --site-font-text: var(--bmt-font-text);
    --site-display-weight: 400; --site-display-tracking: .005em; --site-display-lh: .96;
    --site-h1: clamp(2.5rem, 1.3rem + 6.4vw, 5.6rem); --site-h2: clamp(2.05rem, 1.2rem + 3.6vw, 3.9rem);
    --bmt-h3: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem);
    --site-radius-card: 4px; --site-radius-media: 4px; --site-radius-btn: 99px; --site-radius-field: var(--bmt-radius-field);
    --site-section-y: 72px;
    @media (min-width: 56rem) { --site-section-y: 120px; }
    --site-page-bg: var(--bmt-cream); --site-alt-bg: var(--bmt-cream);
    --site-card-bg: transparent; --site-card-border: 0 solid transparent; --site-card-shadow: none; --site-card-pad: 0px;
    --site-shadow: none; --site-form-border: 1px solid var(--bmt-blush);
    --site-tint: var(--bmt-cream); --site-tint-strong: var(--bmt-cream);
    --site-hairline: var(--bmt-blush);
    /* Points d'accroche des pages de réservation, cure, carte cadeau, espace cliente (pleine page et iframe) : ceux du
       site Astro. Fond transparent dans l'iframe : la page Astro est crème. */
    --site-surface: var(--bmt-cream); --site-border: 1px solid var(--bmt-hair); --site-heading-case: uppercase;
    --site-btn-font: var(--bmt-font-text); --site-btn-weight: 500; --site-btn-case: none; --site-btn-tracking: .02em; --site-btn-height: 52px;
    --site-embed-bg: transparent;

    background: var(--bmt-cream); color: var(--bmt-terracotta);
    font-family: var(--bmt-font-text); font-size: clamp(1.0625rem, 1rem + .2vw, 1.125rem); line-height: 1.65;
    font-synthesis: style; /* jamais de gras synthétique : BDO en 400 et 500, le serif des titres en une graisse */
    -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;

    a { color: var(--bmt-terracotta); text-underline-offset: .2em; }
    /* Anneau de focus : 3 px terracotta, décalé de 3 px ; crème sur les aplats terracotta (plus bas). */
    :focus-visible { outline: 3px solid var(--bmt-terracotta); outline-offset: 3px; box-shadow: none; }
    .muted, .text-ink-soft { color: var(--bmt-terracotta); }

    /* Largeur : 1 240 px de contenu, gouttière 20 px puis 56 px. */
    .site-container { max-width: calc(var(--bmt-max) + 2 * var(--bmt-gutter)); padding-inline: var(--bmt-gutter); }
    .site-page & .salon-container { max-width: calc(var(--bmt-max) + 2 * var(--bmt-gutter)); padding-inline: var(--bmt-gutter); }

    /* ---------- En-tête : logo terracotta, menu en petites capitales, filet blush au défilement ---------- */
    .salon-header { background: var(--bmt-cream); border-bottom: 1px solid transparent; padding-block: var(--bmt-header-y); }
    .salon-header.is-sticky { transition: border-color .2s; }
    .salon-header.is-sticky.is-scrolled { border-bottom-color: var(--bmt-blush); }
    .salon-header__logo { height: 38px; max-width: 46vw; }
    @media (min-width: 56rem) { .salon-header__logo { height: 50px; } }
    .salon-header .monogram { background: var(--bmt-terracotta); color: var(--bmt-cream); border: 0; font-family: var(--bmt-font-title); font-weight: 400; }
    .salon-header .heading-3 { font-family: var(--bmt-font-title); font-weight: 400; text-transform: uppercase; letter-spacing: .005em; }
    .site-nav__link, .site-nav__summary { font-family: var(--bmt-font-text); font-size: .78rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--bmt-terracotta); }
    .site-nav__link { border-radius: 0; padding-inline: 2px; margin-inline: clamp(4px, .9vw, 16px); border-bottom: 1.5px solid transparent; }
    .site-nav .site-nav__list { flex-wrap: nowrap; }
    .site-nav__link:hover { background: none; border-bottom-color: var(--bmt-terracotta); }
    .site-nav__link[aria-current="page"], .site-nav__link.is-ancestor { background: none; border-bottom-color: var(--bmt-terracotta); text-decoration: none; }
    .site-nav__summary .icon, .site-nav__summary svg { width: 22px; height: 22px; }
    .site-nav__panel { background: var(--bmt-cream); border-bottom: 1px solid var(--bmt-blush); box-shadow: none; padding: 8px var(--bmt-gutter) 24px; }
    .site-nav__panel .site-nav__link { margin-inline: 0; min-height: 48px; font-size: .875rem; }
    .site-nav__expand:hover { background: none; }
    .site-nav .site-nav__submenu { background: var(--bmt-cream); border: 1px solid var(--bmt-terracotta); border-radius: 4px; box-shadow: none; padding: 8px 16px; }
    .site-nav .site-nav__submenu .site-nav__link { margin-inline: 0; border-radius: 0; }
    .site-nav__sublink { font-weight: 500; }
    .site-languages a { font-weight: 500; font-size: .78rem; letter-spacing: .1em; color: var(--bmt-terracotta); }
    .site-languages a[aria-current="true"] { background: none; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: .35em; }
    /* Compte et carte cadeau : l'icône seule, comme dans la maquette (le libellé reste lu par les lecteurs d'écran). */
    .salon-header .site-header__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .salon-header .site-nav__link:has(> svg) { margin-inline: 4px; padding-inline: 10px; min-width: 44px; justify-content: center; border-bottom: 0; }
    .salon-header .site-nav__link > svg { width: 22px; height: 22px; }
    .salon-header .site-header__call { width: 44px; padding-inline: 0; justify-content: center; } /* réservation : « Appeler » en icône, comme le compte */
    @media (max-width: 24rem) { .salon-header .site-nav__link:has(> svg) { margin-inline: 0; } }
    /* 320 px (zoom 400 %) : « Menu » en icône seule, le mot reste lu par les lecteurs d'écran. */
    @media (max-width: 22rem) { .site-nav__summary > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } }

    /* ---------- Boutons : pastilles de 52 px, BDO 500 en casse normale, comme le site Astro ; jamais de blush ---------- */
    .btn { font-family: var(--bmt-font-text); font-size: 1rem; font-weight: 500; letter-spacing: .02em; text-transform: none; min-height: 52px; padding: 0 32px; border-radius: 99px; border-width: 1.5px; line-height: 1.1; }
    .salon-header .btn, .site-sticky-cta .btn { min-height: 44px; padding-inline: 20px; font-size: .95rem; }
    .btn-primary { background: var(--bmt-terracotta); border-color: var(--bmt-terracotta); color: var(--bmt-cream); }
    /* Survol : la pastille s'inverse (crème, texte et bord terracotta), comme sur blushmetender.com. */
    .btn-primary:hover { background: var(--bmt-cream); border-color: var(--bmt-terracotta); color: var(--bmt-terracotta); }
    .btn-secondary { background: transparent; border-color: var(--bmt-terracotta); color: var(--bmt-terracotta); }
    .btn-secondary:hover { background: var(--bmt-terracotta); border-color: var(--bmt-terracotta); color: var(--bmt-cream); }
    .btn-ghost { color: var(--bmt-terracotta); }
    .btn-ghost:hover { background: none; text-decoration: underline; }

    /* ---------- Titres : Panama en capitales, graisse normale ; sur-titres en petites capitales BDO ---------- */
    :is(.site-title, .site-subtitle, .site-card__title) { text-transform: uppercase; }
    .site-title { font-size: var(--site-h1); line-height: .96; }
    .site-subtitle { font-size: var(--site-h2); line-height: .96; }
    .site-eyebrow { font-family: var(--bmt-font-text); font-style: normal; font-size: .8125rem; line-height: 1.3; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--bmt-terracotta); }
    .site-lead { font-size: clamp(1.1rem, 1rem + .5vw, 1.3rem); line-height: 1.5; max-width: 42ch; color: var(--bmt-terracotta); }
    .site-label { font-size: .78rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
    .site-section__heading { gap: 12px; margin-bottom: clamp(16px, 3vw, 40px); }
    .site-page-title { padding-block: clamp(32px, 6vw, 88px) 0; }
    .site-page-title + .site-section { padding-top: clamp(32px, 4vw, 64px); }

    /* Texte courant : BDO 17 px, aligné à gauche, jamais justifié. */
    .site-rich-text { font-size: inherit; line-height: 1.65; }
    .site-rich-text :is(h2, h3) { font-family: var(--bmt-font-title); font-weight: 400; font-size: var(--bmt-h3); line-height: 1; text-transform: uppercase; margin-top: .9em; }
    .site-rich-text h4 { font-size: .78rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
    .site-rich-text strong { font-weight: 500; }
    .site-rich-text ul { list-style: none; padding-left: 0; }
    .site-rich-text ul li { position: relative; padding-left: 1.4em; }
    .site-rich-text ul li::before { content: ""; position: absolute; left: .15em; top: .62em; width: .45em; height: .45em; border-radius: 99px; background: var(--bmt-blush); }
    .site-rich-text ol li::marker { font-family: var(--bmt-font-title); }
    .site-rich-text blockquote { border-left: 0; padding-left: 0; font-family: var(--bmt-font-title); font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem); line-height: 1.08; }

    /* ---------- En-tête de page ---------- */
    .site-hero__text { row-gap: 16px; }
    .site-hero__link { font-weight: 500; }
    .site-hero__points { display: flex; flex-wrap: wrap; gap: 4px 20px; font-size: .78rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
    /* Annotation (Devina Garden) : la légende de la photo en arche, celle d'une image. */
    .site-hero__caption, .site-image figcaption { font-family: var(--bmt-font-note); font-weight: 600; font-size: 1.6rem; line-height: 1; letter-spacing: 0; text-transform: none; color: var(--bmt-terracotta); }
    .site-hero__caption { background: var(--bmt-cream); border-radius: 4px; padding: 6px 12px; transform: rotate(-4deg); }

    /* Courbe signature : la morsure du bord supérieur de la photo du hero (une par page). Masque à deux couches : la
       forme pleine moins la morsure, qui laisse voir le fond. Photos à angles francs (4 px). */
    .site-hero__media { overflow: visible; border-radius: 0; }
    .site-hero__media img { border-radius: 4px;
      -webkit-mask: var(--bmt-curve) no-repeat right 7% top / min(46%, 600px) auto, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
      mask: var(--bmt-curve) no-repeat right 7% top / min(46%, 600px) auto, linear-gradient(#000 0 0); mask-composite: exclude; }

    /* Accueil (photo pleine largeur) : photo basse mordue, mot-symbole, ligne de soins, signature ; ordinateur : photo
       à gauche (1,25), texte à droite (1). Le sticker « Today I rise & glow » chevauche le coin de la photo. */
    .site-hero--full { display: grid; grid-template-columns: minmax(0, 1fr); }
    .site-hero--full .site-hero__media { grid-area: auto; position: relative; width: 100%; height: clamp(150px, 42vw, 300px); max-height: none; aspect-ratio: auto; }
    .site-hero--full .site-hero__media img { border-radius: 0; object-position: 50% 62%; }
    .site-hero--full .site-hero__media::after { content: ""; position: absolute; right: var(--bmt-gutter); bottom: -38px; width: clamp(84px, 22vw, 124px); aspect-ratio: 1; background: url("decor/sticker-today-i-rise-and-glow-9ylrY4e.webp") center / contain no-repeat; transform: rotate(-9deg); pointer-events: none; z-index: 2; }
    .site-hero--full .site-hero__body { grid-area: auto; align-self: auto; max-width: none; padding: 20px var(--bmt-gutter) 4px; }
    .site-hero--full .site-hero__text { max-width: none; padding: 0; background: none; border-radius: 0; row-gap: 12px; }
    .site-hero--full .site-title { font-size: clamp(2.8rem, 1rem + 10.5vw, 8rem); line-height: .86; letter-spacing: 0; padding-right: clamp(0px, 20vw, 96px); }
    .site-hero--full .site-eyebrow { order: 1; font-size: .72rem; letter-spacing: .13em; }
    .site-hero--full .site-lead { order: 2; font-family: var(--bmt-font-title); font-style: italic; font-size: clamp(1.3rem, 1.1rem + 1vw, 2rem); line-height: 1.1; max-width: 30ch; }
    .site-hero--full :is(.site-hero__cta, .site-hero__points) { order: 3; }
    /* Téléphone, accueil suivi des tuiles : le bouton de rendez-vous est dans la barre collée en bas ; le retirer ici
       garde la marque, la signature et les quatre tuiles dans le premier écran. */
    @media (max-width: 47.99rem) {
      .site-hero--full:has(+ .site-section--tiles) .site-hero__cta .btn { display: none; }
      .site-hero--full:has(+ .site-section--tiles) .site-hero__cta:not(:has(.site-hero__link)) { display: none; }
    }
    @media (min-width: 56rem) {
      .site-hero--full { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); column-gap: 64px; align-items: end; max-width: calc(var(--bmt-max) + 2 * var(--bmt-gutter)); margin-inline: auto; padding: 16px var(--bmt-gutter) 0; }
      .site-hero--full .site-hero__media { height: auto; min-height: min(46vh, 420px); align-self: stretch; }
      .site-hero--full .site-hero__media img { border-radius: 4px; }
      .site-hero--full .site-hero__media::after { right: auto; left: 32px; bottom: -36px; }
      .site-hero--full .site-hero__body { padding: 0; }
      .site-hero--full .site-hero__text { row-gap: 16px; }
      .site-hero--full .site-title { font-size: clamp(5rem, 3rem + 4.4vw, 7.6rem); padding-right: 0; }
    }

    /* Photo à côté du texte (pages d'atterrissage) : texte d'abord sur téléphone (le bouton reste dans le premier
       écran), photo 4:5 mordue ensuite ; ordinateur : texte à gauche, photo à droite. Même mise en page pour l'arche. */
    .site-hero:is(.site-hero--split, .site-hero--arch) { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; max-width: calc(var(--bmt-max) + 2 * var(--bmt-gutter)); margin-inline: auto; padding: clamp(24px, 4vw, 48px) var(--bmt-gutter) 0; }
    .site-hero:is(.site-hero--split, .site-hero--arch) .site-hero__media { order: 2; position: relative; aspect-ratio: 4 / 5; max-height: 80vh; width: 100%; border-radius: 0; }
    .site-hero:is(.site-hero--split, .site-hero--arch) .site-hero__body { order: 1; padding: 0; max-width: none; margin: 0; }
    .site-hero:is(.site-hero--split, .site-hero--arch) .site-hero__text { max-width: 36rem; padding: 0; background: none; }
    .site-hero:is(.site-hero--split, .site-hero--arch) .site-title { font-size: clamp(2.5rem, 1.2rem + 5vw, 4.6rem); }
    .site-hero--arch .site-hero__caption { position: absolute; left: 16px; bottom: 16px; }
    @media (min-width: 56rem) {
      .site-hero:is(.site-hero--split, .site-hero--arch) { grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); column-gap: clamp(48px, 7vw, 104px); align-items: center; }
      .site-hero:is(.site-hero--split, .site-hero--arch) .site-hero__media { grid-column: 2; grid-row: 1; height: min(640px, calc(100vh - 160px)); min-height: 420px; aspect-ratio: auto; max-height: none; }
      .site-hero:is(.site-hero--split, .site-hero--arch) .site-hero__body { grid-column: 1; grid-row: 1; }
    }

    /* Sans photo : crème, grand titre ; ordinateur : la phrase dans la colonne de droite et le sticker « Take a me time ». */
    .site-hero--plain { position: relative; background: var(--bmt-cream); color: var(--bmt-terracotta); }
    .site-hero--plain .site-hero__body { max-width: calc(var(--bmt-max) + 2 * var(--bmt-gutter)); padding: clamp(32px, 6vw, 88px) var(--bmt-gutter) clamp(8px, 2vw, 24px); }
    .site-hero--plain .site-lead { color: var(--bmt-terracotta); }
    .site-hero--plain .site-hero__cta .btn-primary { background: var(--bmt-terracotta); color: var(--bmt-cream); }
    .site-hero--plain .site-hero__cta .btn-primary:hover { background: var(--bmt-cream); color: var(--bmt-terracotta); }
    @media (min-width: 56rem) {
      /* Sur-titre et titre à gauche ; la phrase, le bouton et les points forts à droite. */
      .site-hero--plain .site-hero__text { max-width: none; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 64px; align-items: start; }
      .site-hero--plain .site-hero__text > .site-eyebrow { grid-column: 1; grid-row: 1; }
      .site-hero--plain .site-hero__text > .site-title { grid-column: 1; grid-row: 2 / span 3; }
      .site-hero--plain .site-hero__text > .site-lead { grid-column: 2; grid-row: 1 / span 2; padding-top: .3em; }
      .site-hero--plain .site-hero__text > .site-hero__cta { grid-column: 2; grid-row: 3; }
      .site-hero--plain .site-hero__text > .site-hero__points { grid-column: 2; grid-row: 4; }
      .site-hero--plain:not(.site-theme-thumb__hero) .site-hero__body { position: relative; }
      .site-hero--plain:not(.site-theme-thumb__hero) .site-hero__body::after { content: ""; position: absolute; right: var(--bmt-gutter); bottom: -24px; width: 140px; aspect-ratio: 261 / 320; background: url("decor/sticker-take-a-me-time-nJ2prHl.webp") center / contain no-repeat; transform: rotate(-9deg); pointer-events: none; }
    }

    /* Fil d'Ariane : petit, souligné, séparé par une barre. */
    .site-breadcrumb { font-size: .82rem; letter-spacing: .04em; color: var(--bmt-terracotta); padding-top: 16px; }
    .site-breadcrumb__item a { color: var(--bmt-terracotta); text-underline-offset: .2em; }
    .site-breadcrumb__item [aria-current="page"] { color: var(--bmt-terracotta); }

    /* ---------- Tuiles : photo 3:2 (16:9 sur ordinateur), nom en Panama, flèche ; léger zoom au survol ---------- */
    .site-tiles { gap: 16px 12px; }
    @media (min-width: 48rem) { .site-tiles { gap: 24px; } }
    .site-tile__link { gap: 8px; border-radius: 4px; overflow: hidden; overflow: clip; overflow-clip-margin: 0; }
    .site-tile__image { border-radius: 4px; transition: transform .6s ease; }
    a.site-tile__link:hover .site-tile__image { transform: scale(1.04); }
    .site-tile__title { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-family: var(--bmt-font-title); font-weight: 400; font-size: 1.3rem; line-height: 1; text-transform: uppercase; }
    .site-tile__title::after { content: "→"; content: "→" / ""; flex: none; font-family: var(--bmt-font-text); font-size: 1rem; }
    a.site-tile__link:hover .site-tile__title { text-decoration: none; }
    @media (min-width: 56rem) { .site-tile__title { font-size: 1.7rem; } }
    .site-tiles--overlay .site-tile__link { overflow: hidden; }
    .site-tiles--overlay .site-tile__title { padding: 10px 12px; background: var(--bmt-terracotta); color: var(--bmt-cream); border-radius: 0 0 4px 4px; }
    .site-tile__image--empty { background: var(--bmt-blush); }
    /* Accueil : tuiles collées au hero, pour tenir dans le premier écran. */
    .site-hero + .site-section--tiles { padding-top: clamp(32px, 4vw, 48px); }

    /* ---------- Soins, cures, produits : grande photo, nom en Panama, méta en capitales ---------- */
    .site-cards { gap: clamp(32px, 4vw, 64px) clamp(16px, 2.4vw, 32px); }
    .site-card { gap: 16px; }
    .site-card__image { border-radius: 4px; aspect-ratio: 4 / 5; }
    .site-card__body { gap: 8px; padding: 0; }
    .site-card__title { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.2rem); line-height: .95; }
    .site-card__title a { text-decoration: none; }
    .site-card__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; }
    .site-card__meta { font-size: .8rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--bmt-terracotta); padding-bottom: 12px; border-bottom: 1px solid var(--bmt-terracotta); }
    .site-card .text-small { font-size: .95rem; line-height: 1.5; }
    .site-card:focus-within { box-shadow: none; outline: 3px solid var(--bmt-terracotta); outline-offset: 4px; border-radius: 4px; }
    @media (max-width: 47.99rem) {
      .site-card__image { aspect-ratio: 1; }
      .site-card__title { font-size: 1.45rem; }
    }
    .site-menu { border-top: 1px solid var(--bmt-terracotta); }
    .site-menu__item { padding-block: 20px; border-bottom: 1px solid var(--bmt-blush); }
    .site-menu__item .site-card__meta { padding-bottom: 0; border-bottom: 0; }
    .site-container > .grid > .site-label { padding-bottom: 12px; border-bottom: 1px solid var(--bmt-terracotta); }

    /* Vue d'ensemble des soins : colonnes séparées par un filet terracotta, numéro en Panama. */
    .site-overview { border-top: 0; gap: clamp(24px, 3vw, 48px); }
    .site-overview__item { border: 0 !important; border-top: 1px solid var(--bmt-terracotta) !important; padding: 20px 0 0 !important; gap: 10px; } /* !important : la règle de base des colonnes (bordures latérales) */
    .site-overview__number { font-family: var(--bmt-font-title); font-style: normal; font-weight: 400; font-size: 2.6rem; line-height: 1; color: var(--bmt-terracotta); }
    .site-overview__title { font-family: var(--bmt-font-title); font-weight: 400; font-size: var(--bmt-h3); line-height: 1; text-transform: uppercase; }
    .site-overview__meta { font-size: .78rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--bmt-terracotta); }

    /* Image et texte : photo 4:5 à angles francs ; cœur gua sha en séparateur avant la première de la page. */
    .site-split__media img { aspect-ratio: 4 / 5; border-radius: 4px; max-height: 80vh; }
    @media (min-width: 48rem) { .site-split { gap: clamp(32px, 6vw, 64px); } .site-split__media { position: static; } }
    .site-split__body .site-section__heading { margin-bottom: 0; }
    .site-section:has(> .site-container > .site-split):not(.site-section:has(> .site-container > .site-split) ~ .site-section)::before {
      content: ""; display: block; width: 44px; aspect-ratio: 195 / 241; margin: 0 auto clamp(48px, 6vw, 72px);
      background: var(--bmt-heart) center / contain no-repeat;
    }

    /* Texte : colonne de lecture ; l'aquarelle (pétale) accompagne le premier texte étroit de la page, jamais sous un
       texte : au-dessus du titre sur téléphone, dans la marge gauche sur grand écran. */
    .site-text--narrow { max-width: 44rem; }
    .site-section:has(> .site-container > .site-text--narrow):not(.site-section:has(> .site-container > .site-text--narrow) ~ .site-section) {
      .site-container { position: relative; }
      .site-text--narrow::before { content: ""; display: block; width: 120px; aspect-ratio: 397 / 434; background: url("decor/watercolor-petal-pjeG6_1.webp") center / contain no-repeat; mix-blend-mode: multiply; pointer-events: none; }
      @media (min-width: 72rem) {
        .site-text--narrow::before { position: absolute; left: var(--bmt-gutter); top: 50%; width: clamp(160px, 16vw, 240px); transform: translateY(-50%); }
      }
    }

    /* ---------- Questions fréquentes : filets terracotta, question en Panama, + à droite ---------- */
    .site-faq { border-top: 1px solid var(--bmt-terracotta); max-width: 52rem; }
    .site-faq__item { border-bottom: 1px solid var(--bmt-terracotta); padding-block: 4px; gap: 4px; }
    .site-faq__question, .site-faq__question h3 { font-family: var(--bmt-font-title); font-weight: 400; font-size: clamp(1.3rem, 1.1rem + .8vw, 1.7rem); line-height: 1.1; text-transform: none; letter-spacing: .005em; }
    details.site-faq__item > summary { min-height: 48px; padding-block: 16px; }
    details.site-faq__item > summary::after { color: var(--bmt-terracotta); font-family: var(--bmt-font-text); font-size: 1.6rem; flex: none; }
    .site-faq__item > .site-rich-text { padding-bottom: 20px; max-width: 60ch; }
    div.site-faq__item { padding-block: 20px; gap: 12px; }

    /* ---------- Aplats terracotta : pour finir, appel à l'action, cartes cadeaux (crème dessus) ---------- */
    .site-closing, .site-cta--banner, .site-gift { background: var(--bmt-terracotta); color: var(--bmt-cream);
      :is(.site-subtitle, .site-lead, .site-eyebrow, p, li, a:not(.btn), .field-label, .field-help, .site-closing__name) { color: var(--bmt-cream); }
      .btn-primary, .btn-secondary { background: var(--bmt-cream); border-color: var(--bmt-cream); color: var(--bmt-terracotta); }
      .btn-primary:hover, .btn-secondary:hover { background: transparent; border-color: var(--bmt-cream); color: var(--bmt-cream); }
      :focus-visible { outline-color: var(--bmt-cream); }
      .field-input { border-color: var(--bmt-cream); }
      .field-input:focus-visible { outline-color: var(--bmt-cream); }
    }
    .site-closing { position: relative; text-align: center; }
    .site-closing .site-closing__grid { justify-items: center; text-align: center; gap: 32px; }
    .site-closing .site-closing__call { justify-items: center; text-align: center; gap: 20px; }
    .site-closing .site-subtitle { font-size: clamp(2.4rem, 1.2rem + 4.4vw, 4.6rem); }
    .site-closing .site-lead { margin-inline: auto; }
    .site-closing__card { background: none; border: 0; border-top: 1px solid var(--bmt-cream); border-radius: 0; padding: 20px 0 0; justify-items: center; text-align: center; box-shadow: none; }
    .site-closing__name { font-family: var(--bmt-font-title); font-weight: 400; font-size: 1.6rem; text-transform: uppercase; }
    .site-closing__photo { border-radius: 4px; }
    @media (min-width: 64rem) {
      .site-closing--split .site-closing__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); column-gap: clamp(40px, 8vw, 144px); align-items: center; justify-items: stretch; text-align: left; }
      .site-closing--split .site-closing__call { justify-items: start; text-align: left; }
      .site-closing--split .site-closing__card { justify-items: start; text-align: left; border-top: 0; border-left: 1px solid var(--bmt-cream); padding: 0 0 0 32px; }
    }
    /* Page sans photo en tête : la courbe signature mord le haut du dernier aplat « Pour finir ». */
    main:not(:has(.site-hero__media)) .site-closing:not(:has(~ .site-closing)) {
      padding-top: calc(var(--site-section-y) + 32px);
      -webkit-mask: var(--bmt-curve) no-repeat right 7% top / min(46%, 600px) auto, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
      mask: var(--bmt-curve) no-repeat right 7% top / min(46%, 600px) auto, linear-gradient(#000 0 0); mask-composite: exclude;
    }
    .site-cta, .site-gift { border-radius: 4px; padding: clamp(28px, 5vw, 64px); }
    .site-cta--boxed { background: var(--bmt-cream); border: 1.5px solid var(--bmt-terracotta); max-width: none; }
    .site-gift--card { border: 0; max-width: none; }
    .site-gift .icon-badge { display: none; } /* le bloc terracotta suffit à le signaler ; le titre ouvre la grille */
    @media (min-width: 64rem) {
      .site-cta, .site-gift { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; column-gap: clamp(32px, 6vw, 96px); }
      /* Titre à gauche, bouton (ou formulaire « Être prévenue ») à droite, centrés sur la même ligne. */
      .site-cta > :not(.site-section__heading), .site-gift > :not(.site-section__heading) { grid-column: 2; grid-row: 1; justify-self: start; width: 100%; }
      .site-cta > .site-section__heading, .site-gift > .site-section__heading { grid-column: 1; grid-row: 1; margin-bottom: 0; }
      .site-cta p:has(> .btn), .site-gift p:has(> .btn) { width: auto; }
    }
    .site-notify__row .btn { min-height: 48px; }
    .site-newsletter form, .site-newsletter .card { max-width: 34rem; }
    .site-newsletter .card { background: transparent; padding: 0; border: 0; }

    /* ---------- Bande de logos : logos ramenés au terracotta, sur crème ---------- */
    .site-logos { gap: 24px 40px; }
    .site-logo__image { max-height: 40px; max-width: 140px; filter: var(--bmt-logo-filter); }
    .site-logos--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    @media (min-width: 48rem) { .site-logos--grid { grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); } }
    .site-logos--grid .site-logo { background: var(--bmt-cream); border: 1px solid var(--bmt-blush); border-radius: 4px; }

    /* ---------- Liste illustrée, contre-indications ---------- */
    .site-illustrated__group-title { font-family: var(--bmt-font-title); font-weight: 400; font-size: var(--bmt-h3); line-height: 1; text-transform: uppercase; }
    .site-illustrated--grid .site-illustrated__item { background: var(--bmt-cream); border: 1px solid var(--bmt-blush); border-radius: 4px; padding: 20px; }
    .site-illustrated--grid .site-illustrated__item:has(a:hover) { border-color: var(--bmt-terracotta); }
    .site-illustrated--list .site-illustrated__item { border-bottom: 1px solid var(--bmt-blush); padding-block: 16px; }
    .site-illustrated__title { font-weight: 500; }
    .site-illustrated__title a { text-decoration: none; }
    .site-illustrated__title a:hover { text-decoration: underline; }
    .site-illustrated__text { font-size: .95rem; line-height: 1.5; color: var(--bmt-terracotta); }
    .site-contraindications__icon { color: var(--bmt-terracotta); }
    .site-contraindications--boxed { background: var(--bmt-cream); border: 1.5px solid var(--bmt-terracotta); border-radius: 4px; padding: 24px; }
    .site-contraindications--boxed .site-contraindications__title { font-family: var(--bmt-font-title); font-weight: 400; font-size: 1.9rem; line-height: 1; text-transform: uppercase; }
    .site-contraindications--note { border-left: 0; border-top: 1px solid var(--bmt-blush); padding: 12px 0 0; font-size: .9rem; }
    .site-contraindications--note .site-contraindications__title { font-size: .75rem; line-height: 1.4; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }

    /* ---------- Formulaires (site, « Être prévenue », réservation, espace cliente) ---------- */
    .field-label { font-size: .9375rem; font-weight: 500; }
    .field-help { color: var(--bmt-terracotta); }
    .field-input { background: var(--bmt-cream); color: var(--bmt-terracotta); border: 1px solid var(--bmt-terracotta); border-radius: var(--bmt-radius-field); font-size: 1rem; }
    .field-input:is(input, select) { min-height: 52px; }
    .field-input:focus-visible { border-color: var(--bmt-terracotta); outline: 3px solid var(--bmt-terracotta); outline-offset: 2px; }
    .field-input[aria-invalid="true"] { border-width: 2px; }
    .field-input::placeholder { color: var(--bmt-terracotta); font-style: italic; }
    input[type="checkbox"], input[type="radio"] { accent-color: var(--bmt-terracotta); }
    .site-form__fields { background: var(--bmt-cream); border: 1px solid var(--bmt-blush); border-radius: 4px; padding: clamp(20px, 3vw, 32px); }
    .site-form__sent .icon, .site-form__sent svg { color: var(--bmt-terracotta); }

    /* ---------- Infos pratiques, carte, horaires, avis Google ---------- */
    .site-section--soft { background: var(--bmt-cream); border-block: 1px solid var(--bmt-blush); }
    .site-section--soft + .site-section { border-top: 0; }
    .site-info > div:first-child p { font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); }
    .site-hours div { border-bottom-color: var(--bmt-blush); padding-block: 8px; }
    .site-hours dt { font-weight: 500; }
    .site-map img { border: 1.5px solid var(--bmt-blush); border-radius: 4px; }
    .site-map__credit { color: var(--bmt-terracotta); }
    /* L'encart Google garde ses couleurs (règles d'affichage de Google Places) : seuls ses angles suivent la charte. */
    .site-google { border-radius: 4px; }

    /* ---------- Galerie, carrousel, équipe, image ---------- */
    .site-gallery img, .site-carousel__slide img, .site-image--framed img { border-radius: 4px; }
    .site-team__photo { border-radius: 4px; }
    .site-team__initial, .site-author__initial { background: var(--bmt-cream); color: var(--bmt-terracotta); border: 1.5px solid var(--bmt-terracotta); font-family: var(--bmt-font-title); font-weight: 400; }
    .site-image figcaption { padding-top: 4px; }
    .site-image--framed figure.site-container { margin-inline: auto; } /* la base remet la marge du figure à 0 : la colonne se décalait à gauche au-delà de 1352 px */

    /* ---------- Journal : liste, filtres, article, sommaire, auteure, à lire aussi ---------- */
    .site-posts:not(.site-posts--list) .site-card__image { aspect-ratio: 3 / 2; }
    .site-post-card .site-card__title { text-transform: none; font-size: clamp(1.5rem, 1.2rem + .8vw, 1.8rem); line-height: 1; }
    .site-post-card .site-card__meta, .site-post-card__category { font-size: .75rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--bmt-terracotta); border-bottom: 0; padding-bottom: 0; }
    .site-post-card__excerpt { font-size: .95rem; line-height: 1.5; color: var(--bmt-terracotta); }
    .site-chip { min-height: 44px; border: 1.5px solid var(--bmt-terracotta); color: var(--bmt-terracotta); font-weight: 500; }
    .site-chip:hover { background: none; text-decoration: underline; }
    .site-chip[aria-current="page"] { background: var(--bmt-terracotta); border-color: var(--bmt-terracotta); color: var(--bmt-cream); }
    .site-pagination__status { color: var(--bmt-terracotta); }

    .site-article__intro .site-title { font-size: clamp(2.3rem, 1.2rem + 4.4vw, 4.6rem); }
    .site-article__intro .site-eyebrow a { text-decoration: none; }
    .site-article__intro .site-eyebrow a:hover { text-decoration: underline; }
    .site-article__back a { color: var(--bmt-terracotta); font-size: .82rem; letter-spacing: .04em; }
    .site-article__meta { font-size: .8rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--bmt-terracotta); }
    .site-article__cover { max-width: calc(var(--bmt-max) + 2 * var(--bmt-gutter)); padding-inline: var(--bmt-gutter); }
    .site-article__cover img { border-radius: 4px; }
    .site-article__body :is(h2, h3) { font-family: var(--bmt-font-title); font-weight: 400; line-height: 1; text-transform: uppercase; }
    .site-article__body h2 { font-size: clamp(1.9rem, 1.3rem + 1.8vw, 2.8rem); }
    .site-article__body h3 { font-size: var(--bmt-h3); }
    .site-toc { background: var(--bmt-cream); border: 0; border-left: 1.5px solid var(--bmt-terracotta); border-radius: 0; padding: 4px 0 4px 20px; }
    .site-toc__title { font-size: .78rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
    .site-toc__list a { text-underline-offset: .2em; }
    .site-author { border-top: 1px solid var(--bmt-blush); }
    .site-author__photo { border-radius: 4px; }
    .site-author__label { font-size: .75rem; font-weight: 500; letter-spacing: .14em; color: var(--bmt-terracotta); }
    .site-author__name { font-family: var(--bmt-font-title); font-weight: 400; font-size: 1.8rem; line-height: 1; text-transform: uppercase; }
    .site-author__role { color: var(--bmt-terracotta); }
    .site-further__item { background: var(--bmt-cream); border: 1px solid var(--bmt-terracotta); border-radius: 4px; padding: 20px; }
    .site-further__link { font-family: var(--bmt-font-title); font-weight: 400; font-size: 1.5rem; line-height: 1.05; text-decoration: none; }
    .site-further__link:hover { text-decoration: underline; text-decoration-thickness: 1px; }
    .site-further__text { color: var(--bmt-terracotta); }
    .site-article__highlights { background: var(--bmt-cream); border-top: 1px solid var(--bmt-blush); }
    .site-highlight .site-card__image { aspect-ratio: 3 / 2; }

    /* Textes juridiques et questions : la colonne de lecture, filets blush entre les parties. */
    .site-prose > section { border-top: 1px solid var(--bmt-blush); padding-top: 24px; margin-top: 8px; }
    .site-prose .site-subtitle { font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.6rem); }
    .site-prose p { font-size: inherit; line-height: 1.65; }

    /* ---------- Bandeau des cookies, bouton collé, pied de page ---------- */
    .site-consent__box { background: var(--bmt-cream); color: var(--bmt-terracotta); border: 1.5px solid var(--bmt-terracotta); border-radius: 4px; }
    .site-consent__title { font-family: var(--bmt-font-title); font-weight: 400; font-size: clamp(1.25rem, 1rem + 1vw, 1.6rem); line-height: 1; text-transform: uppercase; }
    .site-consent__title:focus-visible { outline-color: var(--bmt-terracotta); }
    .site-sticky-cta { background: var(--bmt-cream); border-top: 1px solid var(--bmt-blush); }
    .salon-footer { background: var(--bmt-cream); border-top: 1px solid var(--bmt-blush); }
    .salon-footer, .salon-footer .muted, .salon-footer a { color: var(--bmt-terracotta); }
    .salon-footer > div { padding-block: clamp(40px, 6vw, 64px) clamp(28px, 4vw, 40px); font-size: .875rem; row-gap: 10px; }
    .salon-footer a { text-underline-offset: .2em; }
    .salon-footer__logo { flex: 1 0 100%; display: block; width: fit-content; margin-bottom: 16px; }
    .salon-footer__logo img { display: block; width: min(220px, 60vw); height: auto; }
    .salon-footer ul { row-gap: 6px; }

    /* ---------- Réservation, soin, cure, carte cadeau, espace cliente, confirmation : les règles du site Astro ----------
       Pleine page et iframe (rdv.blushmetender.com dans blushmetender.com). Sélecteurs : classes sémantiques et
       [data-part] (steps, treatment, slots, summary, form, primary-action), jamais d'utilitaire Tailwind. */
    .site-page & :is(.heading-1, .heading-2) { font-family: var(--bmt-font-title); font-weight: 400; text-transform: uppercase; letter-spacing: .01em; line-height: 1.02; }
    .site-page & .heading-3 { font-family: var(--bmt-font-title); font-weight: 400; font-size: clamp(1.375rem, 1.2rem + .9vw, 1.75rem); line-height: 1.08; letter-spacing: .01em; text-transform: uppercase; }
    /* Encadrés : crème, filet fin, angles 16 px (les encadrés et l'iframe du site Astro). */
    .site-page & :is(.card, .booking-summary, .treatment-card, .booking-plan, .booking-practitioner, .booking-next-slot, [data-part="summary"], [data-part="treatment"]) { background: var(--bmt-cream); border: 1px solid var(--bmt-hair); border-radius: var(--bmt-radius-box); box-shadow: none; }
    .site-page & :is(.treatment-card, .booking-next-slot, .booking-plan, .booking-practitioner):hover { border-color: var(--bmt-terracotta); background: var(--bmt-cream); }
    .site-page & .treatment-card > .grid > :first-child { font-family: var(--bmt-font-title); font-weight: 400 !important; font-size: 1.35rem; line-height: 1.05; text-transform: uppercase; } /* !important : l'utilitaire font-medium (couche suivante) gagnerait */
    /* Conditions d'annulation : l'encadré « contre-indications » du site Astro, liseré terracotta à gauche. */
    .site-page & .card[data-required-notice~="policy"] { border-left: 3px solid var(--bmt-terracotta); }
    /* 320 px : photo plus petite et marges serrées, pour que le nom en capitales et le prix tiennent sans déborder. */
    @media (max-width: 22rem) {
      .site-page & .treatment-card { padding-inline: 12px; gap: 12px; }
      .site-page & .treatment-card__image { width: 56px; height: 56px; }
      .site-page & .treatment-card > .grid > :first-child { font-size: 1.2rem; }
    }
    /* Étapes : les sur-titres du site (BDO 500, capitales espacées), numéro cerclé de terracotta. */
    .site-page & [data-part="steps"] { font-size: .8125rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--bmt-terracotta); }
    .site-page & [data-part="steps"] .booking-steps__number { border-color: var(--bmt-terracotta); letter-spacing: 0; }
    .site-page & [data-part="steps"] .booking-steps__back { text-transform: inherit; letter-spacing: inherit; }
    .site-page & [data-part="steps"] li[aria-current="step"] .booking-steps__number { background: var(--bmt-terracotta); color: var(--bmt-cream); }
    /* Jours et créneaux : pastilles crème à bord terracotta ; choisi ou survolé : terracotta, texte crème. */
    .site-page & :is(.slot-button, .day-strip__day, .choice-pill) { border-color: var(--bmt-terracotta); color: var(--bmt-terracotta); background: var(--bmt-cream); }
    .site-page & .day-strip__day { border-radius: var(--bmt-radius-field); }
    .site-page & :is(.slot-button, .day-strip__day, .choice-pill):is(:hover, [aria-pressed="true"], [aria-current], :has(input:checked)) { background: var(--bmt-terracotta); color: var(--bmt-cream); }
    .site-page & :is(.choice-pill, .choice-row):has(input:checked) { border-color: var(--bmt-terracotta); border-width: 1.5px; }
    .site-page & .choice-row { border-color: var(--bmt-hair); background: var(--bmt-cream); border-radius: var(--bmt-radius-field); }
    .site-page & :is(.alert, .callout, .checkout-status, .panel) { background: var(--bmt-cream); border: 1px solid var(--bmt-hair); border-left: 3px solid var(--bmt-terracotta); border-radius: var(--bmt-radius-box); color: var(--bmt-terracotta); }
    .site-page & .photo-strip img { border-radius: var(--bmt-radius-field); }
    .site-page & .site-page-title + .salon-container { padding-top: clamp(24px, 3vw, 48px); }
    /* Prix d'une cure : le prix en Panama, comme les prix du site Astro. */
    .site-page & [data-part="summary"] .heading-3[data-required-notice~="price"] { font-size: clamp(1.75rem, 1.5rem + 1vw, 2.25rem); line-height: 1; }
    /* Bouton principal : pleine largeur sur téléphone, comme les boutons des formulaires du site. */
    @media (max-width: 39.99rem) { .site-page & [data-part="primary-action"] { width: 100%; } }
    /* Dans l'iframe : pas de marge du thème, le site hôte donne les siennes (règle commune .is-embedded d'app.css, 4 px). */

    /* Menu de l'espace cliente : petites capitales, filet terracotta sous la page courante (téléphone : barre du bas). */
    .client-nav { background: var(--bmt-cream); border-bottom-color: var(--bmt-blush); }
    .client-nav__link { font-size: .78rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--bmt-terracotta); }
    .client-nav__link[aria-current="page"] { border-bottom-color: var(--bmt-terracotta); }
    @media (max-width: 47.99rem) {
      .client-nav { border-top-color: var(--bmt-blush); box-shadow: none; }
      .client-nav__link { text-transform: none; letter-spacing: 0; font-size: .75rem; }
    }
    /* Espace cliente sur grand écran : le menu en colonne latérale (fixe au défilement), la page à droite. */
    @media (min-width: 64rem) {
      .client-nav { display: none; }
      .client-area { display: grid; grid-template-columns: 14rem minmax(0, 1fr); column-gap: clamp(40px, 6vw, 96px); max-width: calc(var(--bmt-max) + 2 * var(--bmt-gutter)); margin-inline: auto; padding-inline: var(--bmt-gutter); }
      .client-sidenav { display: grid; align-content: start; gap: 16px; position: sticky; top: 104px; align-self: start; padding-block: 40px; }
      .client-sidenav__list { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--bmt-blush); }
      .client-sidenav__link { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; padding: 0; border: 0; border-bottom: 1px solid var(--bmt-blush); border-radius: 0; background: none; font-family: var(--bmt-font-text); font-size: .78rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; text-align: start; color: var(--bmt-terracotta); text-decoration: none; cursor: pointer; }
      .client-sidenav__link svg { width: 18px; height: 18px; flex: none; }
      .client-sidenav__link:hover { text-decoration: underline; text-underline-offset: .3em; }
      .client-sidenav__link[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--bmt-terracotta); }
      .client-sidenav form .client-sidenav__link { border-bottom: 0; }
      .site-page & .client-area__main > .salon-container { max-width: none !important; margin-inline: 0; padding-inline: 0; }
    }

    /* Cartes cadeaux, connexion, questionnaire : sur grand écran, le titre et l'introduction à gauche, le formulaire à
       droite. Une page de message court (icône en tête) et l'espace cliente gardent une colonne. */
    @media (min-width: 64rem) {
      .site-page & .salon-container:is(.max-w-2xl, .max-w-3xl):not(:has(> .icon-badge:first-child), .client-area__main > *) { max-width: calc(var(--bmt-max) + 2 * var(--bmt-gutter)) !important; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(40px, 7vw, 112px); align-items: start; row-gap: 0 !important; padding-block: clamp(48px, 6vw, 96px); } /* !important : les utilitaires Tailwind (couche suivante) gagneraient */
      .site-page & .salon-container:is(.max-w-2xl, .max-w-3xl):not(:has(> .icon-badge:first-child), .client-area__main > *) > :first-child { grid-column: 1; grid-row: 1 / span 12; position: sticky; top: 112px; gap: 20px; container-type: inline-size; }
      .site-page & .salon-container:is(.max-w-2xl, .max-w-3xl):not(:has(> .icon-badge:first-child), .client-area__main > *) > :first-child :is(.heading-1, .heading-2) { font-size: min(var(--site-h2), 11cqi); }
      .site-page & .salon-container:is(.max-w-2xl, .max-w-3xl):not(:has(> .icon-badge:first-child), .client-area__main > *) > :not(:first-child) { grid-column: 2; margin-bottom: 24px; }
    }

    /* ---------- Vignette du thème dans « Apparence » ---------- */
    .site-theme-thumb__hero { background: var(--bmt-cream); color: var(--bmt-terracotta); }
    .site-theme-thumb__footer { background: var(--bmt-cream); border-top: 1px solid var(--bmt-blush); }
    .site-theme-thumb__photo { background: var(--bmt-blush); }

    /* ---------- Mouvement : fondus courts, rien si la personne le demande ---------- */
    @media (prefers-reduced-motion: reduce) {
      .salon-header.is-sticky, .site-tile__image, .btn { transition: none; }
      a.site-tile__link:hover .site-tile__image { transform: none; }
    }
  }
}
