/* =================================================================
   Salle Au Carrefour — système de design (thème enfant Astra)
   Habillage « moderne épuré ». Portée : Astra + blocs Spectra/Gutenberg.
   ================================================================= */

:root {
  /* Palette v0.5.3 : fonds neutres, encre charbon et terracotta affirmée. */
  --paper:#f7f7f5;
  --card:#ffffff;
  --raised:#eceeed;
  --ink:#202625;
  --ink-2:#414b47;
  --muted:#626b67;
  --line:#dce1dd;
  --line-2:#bdc7c0;

  --accent:#ad432a;
  --accent-ink:#88321f;
  --accent-hover:#88321f;
  --accent-wash:#f4e8e3;
  --leaf:#336653;
  --leaf-ink:#28513f;
  --leaf-wash:#e5eee8;

  --gold:#52625a;
  --clay:var(--accent);
  --band:#192723;
  --band-soft:#263c33;
  --band-line:rgba(255,255,255,.16);

  --r:18px;             /* coins généreux */
  --r-sm:12px;
  --r-lg:24px;
  --shadow-sm:0 1px 3px rgba(25,39,35,.08);
  --shadow:0 6px 20px -8px rgba(25,39,35,.18), 0 2px 6px rgba(25,39,35,.07);
  --shadow-lg:0 30px 70px -28px rgba(25,39,35,.28);

  --font-head:"Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --font-body:"Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --step--1:.80rem;
  --step-0:1.06rem;
  --step-1:1.2rem;
  --step-2:1.45rem;
  --step-3:clamp(1.65rem, 1.15rem + 1.9vw, 2.3rem);
  --step-4:clamp(2rem, 1.3rem + 3vw, 3.4rem);

  --shc-textw:660px;

  /* Palette globale d'Astra remappée sur le système de design.
     Astra pose #0eb2e7 (cyan) / #000c30 (marine) / #f2f2f2 par défaut et
     s'en sert ~220 fois dans son CSS dynamique + les classes
     .has-ast-global-color-*. On force tout sur nos jetons. */
  --ast-global-color-0:var(--accent) !important;
  --ast-global-color-1:var(--accent-ink) !important;
  --ast-global-color-2:var(--ink) !important;
  --ast-global-color-3:var(--ink-2) !important;
  --ast-global-color-4:var(--paper) !important;
  --ast-global-color-5:var(--card) !important;
  --ast-global-color-6:var(--accent-wash) !important;
  --ast-global-color-7:var(--raised) !important;
  --ast-global-color-8:var(--line) !important;

  /* mêmes valeurs pour les classes de blocs .has-ast-global-color-*-color */
  --wp--preset--color--ast-global-color-0:var(--accent) !important;
  --wp--preset--color--ast-global-color-1:var(--accent-ink) !important;
  --wp--preset--color--ast-global-color-2:var(--ink) !important;
  --wp--preset--color--ast-global-color-3:var(--ink-2) !important;
  --wp--preset--color--ast-global-color-4:var(--paper) !important;
  --wp--preset--color--ast-global-color-5:var(--card) !important;
  --wp--preset--color--ast-global-color-6:var(--accent-wash) !important;
  --wp--preset--color--ast-global-color-7:var(--raised) !important;
  --wp--preset--color--ast-global-color-8:var(--line) !important;
}

@media (prefers-color-scheme: dark) {
  :root {
    --paper:#151b19;
    --card:#1e2723;
    --raised:#29352e;
    --ink:#f3f5f3;
    --ink-2:#d0d9d3;
    --muted:#acbbb0;
    --line:#39483e;
    --line-2:#5d7063;
    --accent:#b7482b;
    --accent-ink:#efaa94;
    --accent-hover:#9c3c25;
    --accent-wash:#392720;
    --leaf:#75b99a;
    --leaf-ink:#abd9be;
    --leaf-wash:#263d31;
    --gold:#b4c9bb;
    --band:#101713;
    --band-soft:#22392d;
    --band-line:rgba(255,255,255,.14);
    --shadow-sm:0 1px 2px rgba(0,0,0,.35);
    --shadow:0 6px 20px -8px rgba(0,0,0,.5), 0 2px 6px rgba(0,0,0,.35);
    --shadow-lg:0 30px 70px -28px rgba(0,0,0,.65);
  }
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* ---------- base ---------- */
/* !important : Astra + les starter templates poussent leur propre typo avec
   une forte spécificité. Le réglage « propre » se fait aussi dans
   Personnaliser → Typographie ; ceci sert de filet. */
body,
.ast-container,
.entry-content,
.entry-content p,
.entry-content li,
a,
button,
input,
select,
textarea,
.ast-button,
.ast-custom-button,
.menu-link,
.wp-block-button__link,
.wpforms-container, .wpforms-container *,
.srfm-form, .srfm-form *,
.amelia-app-booking, .amelia-app-booking *,
.amelia-v2-booking, .amelia-v2-booking * {
  font-family:var(--font-body) !important;
}
/* Titres en Fraunces (serif douce) partout, y compris hors .entry-content */
h1, h2, h3, h4, h5, h6,
.entry-title, .wp-block-heading, .site-title, .site-title a,
.amelia-v2-booking [class*="__title"],
.amelia-v2-booking [class*="-heading"],
.amelia-v2-booking h1, .amelia-v2-booking h2, .amelia-v2-booking h3 {
  font-family:var(--font-head) !important;
  font-weight:500 !important;
  letter-spacing:-.005em;
}
/* seules exceptions : les libellés en petites capitales monospace */
.shc-eyebrow,
.shc-mono,
.shc-fact .l,
.shc-steps > li::before,
.shc-plan-head .pp, .shc-plan-lines li span:last-child, .shc-plan-total span:last-child,
.shc-price-row .v,
.shc-wknd .tag, .shc-legend,
.shc-contact-info .k,
.shc-faq .wp-block-details summary::after,
.site-footer .widget-title, .site-footer h2,
.shc-download .tx small {
  font-family:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace !important;
}
body {
  background:var(--paper);
  color:var(--ink);
  font-size:var(--step-0);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6,
.entry-title,
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.wp-block-heading,
.ast-container h1,
.ast-container h2,
.ast-container h3,
.site-title,
.site-title a {
  font-family:var(--font-head) !important;
  font-weight:500 !important;
  line-height:1.16;
  letter-spacing:-.005em;
  color:var(--ink);
  text-wrap:balance;
}
.entry-content h1.wp-block-heading,
.entry-content h2.wp-block-heading { margin-bottom:.5em; }
.entry-content h2.wp-block-heading { max-width:30ch; }
.entry-content > .shc-eyebrow + h1,
.entry-content > .shc-eyebrow + h2 { margin-top:.1em; }
h1,.entry-title { font-size:var(--step-3); }
.entry-content h1.wp-block-heading { font-size:var(--step-3); }
.wp-block-cover h1, .shc-hero h1 { font-size:var(--step-4) !important; }
h2, .entry-content h2.wp-block-heading { font-size:var(--step-3); }
h3, .entry-content h3.wp-block-heading { font-size:var(--step-1); }
a { color:var(--accent-ink); text-underline-offset:2px; }
a:hover { color:var(--accent); }
::selection { background:var(--accent); color:#fff; }
hr,.wp-block-separator { border-color:var(--line); }

.shc-eyebrow {
  font-family:"IBM Plex Mono",monospace;
  font-size:var(--step--1);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent-ink);
  display:block;
  margin-bottom:14px;
}
.shc-lead { font-size:var(--step-1); color:var(--ink-2); }
.shc-muted { color:var(--muted); }
.shc-mono  { font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; }

/* ---------- largeur de contenu (Astra est en pleine largeur) ---------- */
/* Chaque bloc de premier niveau est ramené à une largeur de lecture,
   sauf .alignfull (pleine largeur) et .alignwide (large). */
/* spécificité alignée sur la règle d'Astra « page builder » qui met max-width:none */
.ast-page-builder-template .entry-content[data-ast-blocks-layout] > *:not(.alignfull):not(.alignwide),
.entry-content[data-ast-blocks-layout] > *:not(.alignfull):not(.alignwide),
.entry-content > *:not(.alignfull):not(.alignwide) {
  max-width:1160px;
  margin-left:auto;
  margin-right:auto;
  padding-inline:24px;
}
.ast-page-builder-template .entry-content[data-ast-blocks-layout] > .alignwide,
.entry-content > .alignwide { max-width:1360px; margin-inline:auto; padding-inline:24px; }
.entry-content > .alignfull { max-width:none; }
@media (max-width:600px){
  .entry-content > *:not(.alignfull) { padding-inline:18px; }
}

/* ---------- rythme des sections (blocs) ---------- */
.entry-content > .wp-block-group,
.entry-content > .wp-block-columns,
.entry-content > .wp-block-cover,
.entry-content > .wp-block-gallery {
  margin-block:clamp(44px, 6vw, 88px);
}
.entry-content > .alignfull { margin-block:0; }
.entry-content > h2 { margin-top:clamp(40px,5vw,64px); }
.entry-content > .wp-block-separator { margin-block:clamp(40px,5vw,64px); }
.entry-content > .wp-block-buttons { justify-content:center; margin-block:clamp(28px,4.5vw,48px); }
.wp-block-group.has-background { border-radius:var(--r); }

/* Titre de page d'Astra masqué : chaque page a déjà son propre H1 dans le contenu */
.page .entry-header,
.page .ast-single-post-title,
.page header.entry-header .entry-title,
.page h1.entry-title,
.ast-page-builder-template .entry-header { display:none !important; }
.page .ast-container > .site-main { padding-top:clamp(28px,4vw,52px); }
.shc-hero-page .ast-container > .site-main { padding-top:0; }
.shc-hero-page .site-main > *:first-child { margin-top:0 !important; }

/* ================================================================
   Hero / bloc « Bannière » (core/cover)  — texte toujours blanc
   ================================================================ */
.wp-block-cover,
.wp-block-cover :is(h1,h2,h3,h4,h5,h6,p,li,span,a,.shc-eyebrow,.shc-lead) {
  color:#fff !important;
}
.wp-block-cover .shc-eyebrow { color:rgba(255,255,255,.85) !important; }
.wp-block-cover .shc-lead { color:rgba(255,255,255,.92) !important; }

/* Photo naturelle ; dégradé neutre pour la lisibilité du texte. */
.shc-hero .wp-block-cover__image-background {
  filter:saturate(1.03) contrast(1.04);
}
/* Voile de lisibilité léger, teinté brun expresso de la marque */
.shc-hero .wp-block-cover__background {
  opacity:1 !important;
  background:linear-gradient(180deg,
    rgba(16,25,21,.08) 0%,
    rgba(16,25,21,.22) 45%,
    rgba(16,25,21,.56) 82%,
    rgba(16,25,21,.72) 100%) !important;
}
.shc-hero { min-height:78vh; }
.shc-hero .wp-block-cover__inner-container { max-width:1180px; width:100%; margin-inline:auto; }
.wp-block-cover__image-background { object-fit:cover; width:100%; height:100%; }
.shc-hero h1 { font-size:var(--step-4); max-width:18ch; }
.shc-hero .wp-block-buttons { margin-top:30px; }

/* Bouton fantôme sur le hero : contour blanc (spécificité renforcée pour
   passer devant la règle .entry-content .is-style-outline plus bas) */
.entry-content .shc-hero .wp-block-button.is-style-outline > .wp-block-button__link,
.shc-hero .wp-block-button.is-style-outline > .wp-block-button__link {
  background:rgba(255,255,255,.14) !important;
  border:1.5px solid rgba(255,255,255,.8) !important;
  color:#fff !important;
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
}
.entry-content .shc-hero .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.shc-hero .wp-block-button.is-style-outline > .wp-block-button__link:hover {
  border-color:#fff !important;
  background:rgba(255,255,255,.24) !important;
}

/* ---------- boutons ---------- */
/* NB : un bouton dont la couleur est fixée DANS le bloc (starter template)
   garde sa couleur — il faudra la retirer dans l'éditeur, ou reconstruire
   la page. Ces règles couvrent les boutons « neutres ». */
.wp-block-button__link,
.wp-block-uagb-buttons-child .uagb-button__link,
.uagb-buttons-repeater,
.ast-custom-button,
input[type="submit"],
button[type="submit"],
.wpforms-submit,
.srfm-submit-btn,
.menu-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 20px;
  border-radius:11px;
  border:1px solid transparent;
  background:var(--accent);
  color:#fff;
  font-weight:600;
  font-size:.97rem;
  letter-spacing:-.01em;
  line-height:1.2;
  box-shadow:var(--shadow-sm);
  transition:transform .12s ease, box-shadow .18s, background .18s, border-color .18s;
}
.wp-block-button__link:hover,
.ast-custom-button:hover,
input[type="submit"]:hover,
button[type="submit"]:hover,
.wpforms-submit:hover {
  color:#fff;
  box-shadow:0 8px 20px -8px var(--accent);
  transform:translateY(-1px);
}
.wp-block-button.is-style-outline .wp-block-button__link {
  background:var(--card);
  color:var(--ink);
  border-color:var(--line-2);
  box-shadow:none;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  border-color:var(--ink-2);
  color:var(--ink);
}

/* Priorité sur le bleu d'Astra (thème.json + feuille Astra) */
.entry-content .wp-block-button:not(.is-style-outline) > .wp-block-button__link,
.wp-block-button:not(.is-style-outline) > .wp-block-button__link.wp-element-button,
.entry-content .wpforms-submit,
.entry-content input[type="submit"],
.entry-content button[type="submit"] {
  background-color:var(--accent) !important;
  border-color:var(--accent) !important;
  color:#fff !important;
}
.entry-content .wp-block-button.is-style-outline > .wp-block-button__link {
  background-color:transparent !important;
  border:1px solid var(--line-2) !important;
  color:var(--ink) !important;
}

/* ---------- champs de formulaire ---------- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="date"],
input[type="search"],
input[type="password"],
select,
textarea,
.wpforms-field input,
.srfm-input-common {
  font:inherit;
  color:var(--ink);
  background:var(--card);
  border:1px solid var(--line-2);
  border-radius:10px;
  padding:11px 14px;
  transition:border-color .16s, box-shadow .16s;
}
input:focus,
select:focus,
textarea:focus {
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-wash);
}
label { font-weight:500; color:var(--ink-2); }

/* ---------- en-tête Astra ---------- */
.site-header,
.ast-primary-header-bar {
  background:color-mix(in srgb, var(--paper) 90%, transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(10px);
  backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid transparent;
  transition:background .25s, border-color .25s;
}
.ast-header-break-point.shc-scrolled .site-header,
.shc-scrolled .ast-primary-header-bar {
  background:color-mix(in srgb, var(--paper) 97%, transparent);
  border-bottom-color:var(--line);
}
.main-header-menu .menu-link,
.ast-header-navigation-wrap .menu-link {
  font-weight:500;
  font-size:1rem;
  color:var(--ink);
  border-radius:9px;
  letter-spacing:.005em;
  position:relative;
  transition:background .18s, color .18s;
}
/* soulignement animé chaleureux (laiton) au survol / actif */
.main-header-menu .menu-link::after,
.ast-header-navigation-wrap .menu-link::after {
  content:""; position:absolute; left:13px; right:13px; bottom:5px; height:2px;
  background:var(--accent); border-radius:2px;
  transform:scaleX(0); transform-origin:left; transition:transform .22s ease;
}
.main-header-menu .menu-link:hover,
.ast-header-navigation-wrap .menu-link:hover {
  color:var(--ink);
  background:color-mix(in srgb, var(--accent) 10%, transparent);
}
.main-header-menu .menu-link:hover::after,
.main-header-menu .current-menu-item > .menu-link::after,
.ast-header-navigation-wrap .current-menu-item > .menu-link::after {
  transform:scaleX(1);
}
.main-header-menu .current-menu-item > .menu-link,
.ast-header-navigation-wrap .current-menu-item > .menu-link {
  color:var(--ink); font-weight:600; background:transparent;
}
/* bouton d'action dans l'en-tête (élément de menu avec la classe "cta") */
.site-header .main-header-menu .menu-item.cta { display:flex !important; align-items:center; }
.site-header .main-header-menu .menu-item.cta > .menu-link {
  background:var(--accent); color:#fff !important; font-weight:600;
  padding:9px 20px !important; border-radius:9px !important;
  line-height:1.25 !important; height:auto !important; margin:0 0 0 12px !important;
}
.site-header .main-header-menu .menu-item.cta > .menu-link::after { display:none !important; }
.site-header .main-header-menu .menu-item.cta > .menu-link:hover { background:var(--accent-hover); color:#fff !important; }

/* rien ne doit rogner le bouton */
.site-header, .ast-main-header-wrap, .main-header-bar-wrap,
.ast-primary-header-bar, .main-header-bar, .ast-builder-menu-1 { overflow:visible !important; }

/* Bouton d'en-tête Astra vide (oval blanc) : masqué */
.ast-header-button-1,
.site-header .ast-builder-button-wrap { display:none !important; }

.site-title a { font-family:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,sans-serif; font-weight:700; letter-spacing:-.02em; }

/* Logo : le PNG a un fond blanc → on le remplace par un texte, dans le lien (cliquable) */
.site-header .site-logo-img .custom-logo,
.site-header .custom-logo-link img { display:none !important; }
.site-header .custom-logo-link {
  display:inline-flex; align-items:baseline; gap:.34em;
  background:transparent !important; box-shadow:none !important; padding:0 !important;
  text-decoration:none; line-height:1;
  font-size:clamp(1.35rem, 1.05rem + .9vw, 1.72rem);
}
.site-header .custom-logo-link::before {
  content:"Salle";
  font-family:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,sans-serif;
  font-weight:700; letter-spacing:-.02em; color:var(--ink); white-space:nowrap;
}
.site-header .custom-logo-link::after {
  content:"Au Carrefour";
  font-family:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,sans-serif;
  font-weight:500; letter-spacing:.005em; font-style:italic;
  color:var(--gold); white-space:nowrap; font-size:.86em;
}
.site-header .site-branding, .site-header .ast-site-identity { background:transparent !important; }
@media (max-width:768px){
  .site-header .custom-logo-link { font-size:1.28rem; }
}

/* En-tête : barre pleine largeur même si le conteneur du site est « boxed » */
.site-header,
.ast-primary-header-bar { width:100%; }
.ast-primary-header-bar .ast-container,
.site-header .ast-container { max-width:1240px; }

/* Page d'accueil : on masque le titre de page d'Astra (le hero a son propre H1)
   et on colle le hero sous l'en-tête. En-tête = barre pleine largeur, opaque. */
.shc-hero-page .entry-header,
.shc-hero-page .ast-single-post-title,
.shc-hero-page .page-title,
.shc-hero-page h1.entry-title,
.shc-hero-page .ast-container > .site-main > article > .entry-header {
  display:none !important;
}
.shc-hero-page .site-content .ast-container { padding-top:0 !important; }
.shc-hero-page .site-main > *:first-child,
.shc-hero-page .entry-content > *:first-child { margin-top:0 !important; }
.shc-hero-page .entry-content > .wp-block-cover:first-child { margin-top:0 !important; }

/* ---------- pied Astra ---------- */
.site-footer,
.ast-small-footer,
footer.site-footer {
  background:var(--band);
  color:rgba(255,255,255,.72);
}
.site-footer a { color:rgba(255,255,255,.72); }
.site-footer a:hover { color:#fff; }
.site-footer .widget-title,
.site-footer h2 {
  color:#fff;
  font-family:"IBM Plex Mono",monospace;
  font-size:.8rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}

/* ================================================================
   Bandeau de faits  —  <div class="shc-facts"> … 4 x .shc-fact
   ================================================================ */
.shc-facts {
  background:var(--band-soft); color:#fff;
  border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--shadow-lg);
}
/* Le bandeau chevauche légèrement le bas du héro (effet « carte qui flotte »).
   Le héro est un bloc alignfull à margin:0 ; on remonte le bandeau par-dessus. */
.entry-content > .shc-facts {
  position:relative; z-index:2;
  margin-top:clamp(-4.5rem, -6vw, -2.5rem);
  margin-bottom:clamp(44px, 6vw, 88px);
}
@media (max-width:760px) {
  .entry-content > .shc-facts { margin-top:20px; }
}
.shc-facts-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--band-line); }
.shc-fact {
  background:var(--band-soft); padding:24px 20px;
  display:flex; flex-direction:column; align-items:flex-start; gap:9px;
}
.shc-fact .ic {
  width:38px; height:38px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:color-mix(in srgb, var(--accent) 32%, transparent);
  color:#dff4fb;
  margin-bottom:2px;
}
.shc-fact .ic svg { width:19px; height:19px; display:block; }
.shc-fact .n { font-family:var(--font-body); font-size:1.7rem; font-weight:600; letter-spacing:-.02em; }
.shc-fact .l { font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.62); }
@media (max-width:760px) { .shc-facts-grid { grid-template-columns:repeat(2,1fr); } }

/* ================================================================
   Étapes  —  <ol class="shc-steps"> … <li>
   ================================================================ */
.shc-steps { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; counter-reset:shc; }
.shc-steps > li { background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:26px 24px; }
.shc-steps > li::before {
  counter-increment:shc; content:counter(shc,decimal-leading-zero);
  font-family:"IBM Plex Mono",monospace; font-size:.82rem; color:var(--accent-ink); letter-spacing:.08em;
  display:block; margin-bottom:14px;
}
.shc-steps h3 { font-size:1.2rem; margin:0 0 8px; }
.shc-steps p { color:var(--ink-2); font-size:.97rem; margin:0; }
@media (max-width:800px) { .shc-steps { grid-template-columns:1fr; } }

/* ================================================================
   Grille tarifaire  —  <div class="shc-price"> … .shc-price-row
   ================================================================ */
.shc-price { background:var(--card); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); }
.shc-price-row { display:flex; justify-content:space-between; gap:20px; padding:18px 24px; border-bottom:1px solid var(--line); }
.shc-price-row:last-child { border-bottom:0; }
.shc-price-row .t { font-weight:500; }
.shc-price-row .t small { display:block; color:var(--muted); font-weight:400; font-size:.85rem; margin-top:3px; }
.shc-price-row .v { font-family:"IBM Plex Mono",monospace; font-weight:500; white-space:nowrap; }
.shc-price-row.is-hi { background:var(--accent-wash); }
.shc-price-row.is-hi .v { color:var(--accent-ink); }

/* ---- deux formules côte à côte : .shc-plans > .shc-plan ---- */
.entry-content .shc-plans {
  display:flex !important; flex-wrap:wrap; justify-content:center; align-items:stretch;
  gap:18px; max-width:900px !important; margin:12px auto 24px !important; padding-inline:0 !important;
}
.entry-content .shc-plan {
  flex:1 1 360px; max-width:430px !important;
  border:1px solid var(--line); border-radius:var(--r); background:var(--card);
  padding:24px; box-shadow:var(--shadow-sm);
  display:flex; flex-direction:column;
}
.shc-plan .shc-plan-total { margin-top:auto; }
@media (max-width:640px) { .shc-plan { flex-basis:100%; max-width:none; } }
.shc-plan-head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding-bottom:16px; border-bottom:1px solid var(--line); }
.shc-plan-head .pn { font-family:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,sans-serif; font-weight:600; font-size:1.12rem; }
.shc-plan-head .pp { font-family:"IBM Plex Mono",monospace; font-weight:500; white-space:nowrap; }
.shc-plan-head .pp small { color:var(--muted); font-weight:400; }
.shc-plan-lines { list-style:none; margin:14px 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.shc-plan-lines li { display:flex; justify-content:space-between; gap:12px; font-size:.95rem; color:var(--ink-2); }
.shc-plan-lines li span:last-child { font-family:"IBM Plex Mono",monospace; color:var(--ink); }
.shc-plan-lines em { color:var(--clay); font-style:normal; font-size:.82em; text-transform:uppercase; letter-spacing:.04em; }
.shc-plan-total { display:flex; justify-content:space-between; gap:12px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); font-weight:600; }
.shc-plan-total span:last-child { font-family:"IBM Plex Mono",monospace; color:var(--accent-ink); }
.entry-content .shc-note { background:var(--accent-wash); border:1px solid color-mix(in srgb, var(--accent) 22%, transparent); border-radius:12px; padding:16px 20px; font-size:.92rem; color:var(--ink); max-width:900px !important; margin-inline:auto !important; }
.shc-note p { margin:0; }
.shc-note p + p { margin-top:8px; }

/* ================================================================
   Calendrier des week-ends  —  rendu par [salle_dispos] + salle.js
   ================================================================ */
.shc-dispos { margin:40px 0; }
.shc-cal-head { display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.shc-cal-head h3 { flex:1; min-width:220px; text-align:center; font-size:1.5rem; margin:0; }
.shc-cal-nav {
  width:44px !important; height:44px !important; flex:0 0 44px; min-width:44px;
  padding:0 !important; border-radius:50% !important; border:1px solid var(--line-2);
  background:var(--card) !important; color:var(--ink) !important;
  display:inline-flex !important; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:none !important;
  transition:background .18s, border-color .18s;
}
.shc-cal-nav:hover { background:var(--raised) !important; border-color:var(--ink-2); }
.shc-cal-nav svg { width:16px !important; height:16px !important; display:block; fill:none !important; stroke:currentColor !important; }
.shc-cal-nav:disabled, .shc-cal-nav[disabled] {
  opacity:.28; cursor:not-allowed; pointer-events:none;
  background:var(--card) !important; border-color:var(--line-2) !important;
}
.shc-weekends { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:900px) { .shc-weekends { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px) { .shc-weekends { grid-template-columns:1fr; } }
.shc-wknd {
  text-align:left; border:1px solid var(--line-2); background:var(--card); border-radius:12px;
  padding:20px 18px; min-height:150px; display:flex; flex-direction:column; gap:8px;
  font:inherit; color:var(--ink);
  transition:transform .14s ease, box-shadow .2s, border-color .2s;
}
.shc-wknd .rail { width:34px; height:3px; border-radius:2px; background:var(--accent); }
.shc-wknd .d { font-family:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,sans-serif; font-weight:600; font-size:1.05rem; }
.shc-wknd .sub { font-size:.82rem; color:var(--muted); }
.shc-wknd .tag {
  margin-top:auto; align-self:flex-start;
  font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.09em; text-transform:uppercase;
  padding:5px 9px; border-radius:6px; background:var(--accent-wash); color:var(--accent-ink);
}
.shc-wknd.is-free { cursor:pointer; }
.shc-wknd.is-free:hover { transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--accent); }
.shc-wknd.is-busy { background:var(--raised); border-style:dashed; }
.shc-wknd.is-busy .rail { background:var(--muted); }
.shc-wknd.is-busy .tag { background:transparent; color:var(--muted); border:1px solid color-mix(in srgb,var(--muted) 40%,transparent); }
.shc-wknd.is-past { opacity:.5; }
.shc-wknd.is-past .rail { background:var(--muted); }
.shc-wknd.is-past .tag { background:transparent; color:var(--muted); border:1px solid var(--line-2); }
.shc-legend { display:flex; gap:20px; flex-wrap:wrap; margin-top:18px; font-family:"IBM Plex Mono",monospace; font-size:.74rem; color:var(--muted); }
.shc-legend i { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:7px; vertical-align:middle; }

/* ---------- galerie + visionneuse ---------- */
.entry-content .wp-block-gallery.shc-round figure.wp-block-image img { border-radius:12px; }
.entry-content .wp-block-gallery figure.wp-block-image img { cursor:zoom-in; transition:transform .4s ease; }
.entry-content .wp-block-gallery figure.wp-block-image:hover img { transform:scale(1.03); }

.shc-lb { position:fixed; inset:0; z-index:99999; display:none; align-items:center; justify-content:center;
  background:rgba(14,17,22,.94); padding:4vw; }
.shc-lb.is-open { display:flex; }
.shc-lb img { max-width:100%; max-height:88vh; border-radius:6px; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.shc-lb button { position:absolute; width:48px; height:48px; border-radius:50%;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.3); color:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:24px; line-height:1; }
.shc-lb button:hover { background:rgba(255,255,255,.24); }
.shc-lb .lb-x { top:20px; right:20px; }
.shc-lb .lb-p { left:20px; top:50%; transform:translateY(-50%); }
.shc-lb .lb-n { right:20px; top:50%; transform:translateY(-50%); }
.shc-lb .lb-c { position:absolute; bottom:20px; left:50%; transform:translateX(-50%);
  color:rgba(255,255,255,.7); font-family:"IBM Plex Mono",monospace; font-size:.8rem; }

/* ---------- page Réserver ---------- */
.shc-reassure { display:flex; flex-wrap:wrap; gap:14px 28px; margin:22px 0; font-size:.92rem; color:var(--muted); }
.shc-reassure span { display:flex; gap:9px; align-items:center; }
.shc-reassure svg { width:17px; height:17px; color:var(--accent); flex:0 0 auto; }
.shc-reassure a { color:var(--accent-ink); text-decoration:underline; text-underline-offset:2px; }
.shc-reassure a:hover { color:var(--accent); }
#reservation { scroll-margin-top:90px; }

/* Module Amelia : un peu d'air autour */
.entry-content .wp-block-group #reservation,
.wp-block-amelia-catalog-booking-gutenberg-block,
.amelia-app-booking { margin-top:14px; }

/* ---------- lien de téléchargement (contrat PDF) ---------- */
.shc-download {
  display:inline-flex; align-items:center; gap:14px;
  padding:14px 18px; border:1px solid var(--line-2); border-radius:12px;
  background:var(--card); color:var(--ink) !important; text-decoration:none;
  box-shadow:var(--shadow-sm); transition:border-color .18s, transform .12s, box-shadow .18s;
}
.shc-download:hover { border-color:var(--accent); transform:translateY(-1px); box-shadow:var(--shadow); color:var(--ink) !important; }
.shc-download .ic {
  flex:0 0 auto; width:38px; height:38px; border-radius:9px;
  background:var(--accent-wash); color:var(--accent-ink);
  display:flex; align-items:center; justify-content:center;
}
.shc-download .ic svg { width:20px; height:20px; }
.shc-download .tx { display:flex; flex-direction:column; line-height:1.3; }
.shc-download .tx b { font-family:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,sans-serif; font-weight:600; font-size:.98rem; }
.shc-download .tx small { color:var(--muted); font-size:.8rem; font-family:"IBM Plex Mono",monospace; }

/* ---------- page Contact ---------- */
.shc-contact { display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); align-items:start; }
@media (max-width:820px) { .shc-contact { grid-template-columns:1fr; } }
.shc-contact-info { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:18px; }
.shc-contact-info li { display:flex; flex-direction:column; gap:3px; }
.shc-contact-info .k { font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.shc-contact-info .v { font-size:1.05rem; }
.shc-contact-info .v a { color:var(--accent-ink); }
.map-card, .shc-map { border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); line-height:0; }
/* la Google Map est bleu-gris : on la réchauffe légèrement pour l'accorder au crème */
.map-card iframe, .shc-map iframe {
  display:block; width:100%; border:0;
  filter:saturate(.95) brightness(1.02) contrast(1.02);
}

.shc-faq { max-width:var(--shc-textw); }
.shc-faq .wp-block-details {
  border-bottom:1px solid var(--line); padding:16px 0;
}
.shc-faq .wp-block-details summary {
  cursor:pointer; font-family:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,sans-serif; font-weight:600; font-size:1.05rem;
  list-style:none; display:flex; justify-content:space-between; gap:16px;
}
.shc-faq .wp-block-details summary::-webkit-details-marker { display:none; }
.shc-faq .wp-block-details summary::after { content:"+"; font-family:"IBM Plex Mono",monospace; color:var(--accent-ink); }
.shc-faq .wp-block-details[open] summary::after { content:"–"; }
.shc-faq .wp-block-details p { margin-top:10px; color:var(--ink-2); font-size:.97rem; }

/* ---------- utilitaires ---------- */
.shc-prose { max-width:var(--shc-textw); }
.shc-center { text-align:center; }
.shc-round img,
.wp-block-image.shc-round img,
.wp-block-gallery.shc-round figure.wp-block-image img { border-radius:var(--r); }
.shc-shadow img { box-shadow:var(--shadow); }
.shc-band-soft {
  background:var(--raised);
  padding:clamp(44px, 6vw, 80px) clamp(20px, 4vw, 48px);
  border-radius:var(--r);
}
.shc-band-soft > * { max-width:1100px; margin-inline:auto; }

/* =================================================================
   COUCHE « CHALEUREUSE »  (v0.4.0)
   Base crème + accent terracotta unique + matière : texture papier
   discrète, coins généreux, ombres douces plutôt que bordures nettes,
   champs et cartes en crème teintée plutôt qu'en blanc pur.
   ================================================================= */

/* Fond uni : laisse les photos et les contrastes porter la présentation. */
body {
  background-color:var(--paper);
  background-image:none;
}

/* --- titres Fraunces : dimensionnement optique automatique --- */
h1, h2, h3, h4, h5, h6,
.entry-title, .wp-block-heading, .site-title {
  font-optical-sizing:auto;
}

/* --- logo : « Salle » romain, « Au Carrefour » italique, en Fraunces --- */
.site-header .custom-logo-link::before {
  font-family:var(--font-head) !important; font-weight:600 !important; letter-spacing:-.01em;
}
.site-header .custom-logo-link::after {
  font-family:var(--font-head) !important; font-style:italic !important; font-weight:400 !important;
  color:var(--accent-ink);
}

/* --- boutons : pilule accueillante, ombre chaude, pas de contour dur --- */
.wp-block-button__link,
.wp-block-uagb-buttons-child .uagb-button__link,
.ast-custom-button,
input[type="submit"], button[type="submit"],
.wpforms-submit, .srfm-submit-btn,
.entry-content .wp-block-button:not(.is-style-outline) > .wp-block-button__link,
.entry-content .wpforms-submit, .entry-content input[type="submit"], .entry-content button[type="submit"] {
  border-radius:999px !important;
  padding:14px 28px !important;
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  color:#ffffff !important;
  letter-spacing:.005em !important;
  box-shadow:0 12px 26px -12px color-mix(in srgb, var(--accent) 58%, transparent),
             0 2px 5px rgba(0,12,48,.09) !important;
  transition:transform .12s ease, box-shadow .2s, background-color .2s !important;
}
.wp-block-button__link:hover,
.ast-custom-button:hover,
input[type="submit"]:hover, button[type="submit"]:hover,
.wpforms-submit:hover,
.entry-content .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover {
  background:var(--accent-hover) !important;
  transform:translateY(-1px);
  box-shadow:0 16px 32px -12px color-mix(in srgb, var(--accent) 62%, transparent),
             0 3px 7px rgba(0,12,48,.1) !important;
}
/* bouton secondaire / outline : crème douce, pas de blanc dur */
.wp-block-button.is-style-outline .wp-block-button__link,
.entry-content .wp-block-button.is-style-outline > .wp-block-button__link {
  border-radius:999px !important;
  background:var(--card) !important;
  border:1px solid var(--line-2) !important;
  color:var(--ink) !important;
  box-shadow:var(--shadow-sm) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background:var(--accent-wash) !important;
  border-color:var(--accent) !important;
  color:var(--accent-ink) !important;
}

/* --- champs : fond crème teinté, ombre interne douce, halo terracotta au focus --- */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="number"], input[type="date"], input[type="search"], input[type="password"],
select, textarea,
.wpforms-field input, .wpforms-field textarea, .wpforms-field select,
.srfm-input-common {
  background:var(--raised) !important;
  border:1px solid transparent !important;
  border-radius:var(--r-sm) !important;
  box-shadow:inset 0 1px 2px rgba(0,12,48,.06) !important;
  transition:background .16s, border-color .16s, box-shadow .16s !important;
}
input:focus, select:focus, textarea:focus,
.wpforms-field input:focus, .wpforms-field textarea:focus, .srfm-input-common:focus {
  background:var(--card) !important;
  border-color:var(--accent) !important;
  box-shadow:0 0 0 4px var(--accent-wash), inset 0 1px 2px rgba(0,12,48,.05) !important;
}

/* --- cartes : crème, coins généreux, ombre douce au lieu de bordure --- */
.shc-price, .shc-plan,
.entry-content .shc-plan,
.shc-steps > li,
.shc-download {
  border-color:transparent !important;
  border-radius:var(--r) !important;
  background:var(--card);
  box-shadow:var(--shadow) !important;
}
/* les groupes de blocs avec fond gardent LEUR couleur, on n'arrondit que les angles */
.wp-block-group.has-background { border-radius:var(--r-lg) !important; }
.shc-note, .entry-content .shc-note,
.shc-terms,
.shc-band-soft { border-radius:var(--r-lg) !important; }

/* --- icônes : pastilles rondes terracotta plutôt que traits froids --- */
.shc-download .ic { border-radius:50% !important; background:var(--accent-wash) !important; color:var(--accent-ink) !important; }
.shc-reassure svg {
  width:28px; height:28px; padding:5px; box-sizing:border-box;
  border-radius:50%; background:var(--accent-wash); color:var(--accent-ink);
}
.shc-cal-nav { background:var(--card) !important; }
.shc-cal-nav:hover { background:var(--accent-wash) !important; border-color:var(--accent) !important; }
.shc-faq .wp-block-details summary::after {
  background:var(--accent-wash); color:var(--accent-ink);
  width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%; font-size:.9rem; flex:0 0 auto;
}

/* --- pied de page : brun chaud, texte crème --- */
.site-footer, .ast-small-footer, footer.site-footer { color:rgba(255,247,238,.74); }
.site-footer a { color:rgba(255,247,238,.74); }
.site-footer a:hover { color:#ffffff; }

/* --- séparateurs plus doux --- */
hr, .wp-block-separator { border-color:var(--line) !important; opacity:1; }
