/* ==========================================================================
   SB ACADEMY — Feuille de style du tunnel de vente Formations
   Marque : noir profond (#120f0c), bronze (#a07d57), or (#c59d5f / #D2AD3A)
   Typographies : VOGUE (display, locale) + Work Sans (texte, déjà chargée)
   ========================================================================== */

@font-face {
	font-family: 'VOGUE';
	font-weight: 400;
	font-display: swap;
	src: url('/wp-content/uploads/2023/01/Vogue-1.woff2') format('woff2');
}
@font-face {
	font-family: 'Amellia';
	font-weight: 400;
	font-display: swap;
	src: url('/wp-content/uploads/2023/01/Amellia.woff2') format('woff2');
}

:root {
	--sb-black: #120f0c;
	--sb-black-soft: #1c1815;
	--sb-bronze: #a07d57;
	--sb-gold: #c59d5f;
	--sb-gold-bright: #d2ad3a;
	--sb-cream: #f7f3ee;
	--sb-white: #ffffff;
	--sb-text: #272626;
	--sb-muted: #6f6a64;
	--sb-line: rgba(160, 125, 87, 0.28);
	--sb-radius: 4px;
	--sb-maxw: 1170px;
	/* Abril Fatface plutôt que VOGUE : la police VOGUE ne possède pas les
	   glyphes accentués (é, è, à), qui retombaient sur une police système
	   au milieu des titres français. Abril Fatface est déjà la police de
	   titre du thème du site. */
	--sb-display: 'Abril Fatface', Georgia, serif;
	--sb-body: 'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

/* --- Réinitialisation ciblée (le thème Neve reste en place autour) -------- */
.sb-academy * { box-sizing: border-box; }
.sb-academy {
	font-family: var(--sb-body);
	color: var(--sb-text);
	font-size: 17px;
	line-height: 1.7;
	background: var(--sb-white);
	overflow-x: hidden;
}
.sb-academy img { max-width: 100%; height: auto; display: block; }
.sb-academy p { margin: 0 0 1.1em; }
.sb-academy ul { margin: 0 0 1.1em; padding-left: 1.15em; }
.sb-academy li { margin-bottom: .5em; }
/* `:not(.sb-btn)` est indispensable : sans lui, `.sb-academy a` (0,1,1)
   l'emporte sur `.sb-btn--primary` (0,1,0) et le texte des boutons devient
   bronze sur bronze, donc invisible. */
.sb-academy a:not(.sb-btn) { color: var(--sb-bronze); }

.sb-wrap { max-width: var(--sb-maxw); margin: 0 auto; padding: 0 24px; }
.sb-wrap--narrow { max-width: 860px; }

.sb-section { padding: 84px 0; }
.sb-section--tight { padding: 56px 0; }
.sb-section--dark { background: var(--sb-black); color: rgba(255,255,255,.86); }
.sb-section--cream { background: var(--sb-cream); }

/* --- Titres --------------------------------------------------------------- */
.sb-academy h1, .sb-academy h2, .sb-academy h3, .sb-academy h4 {
	font-family: var(--sb-display);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: .02em;
	color: var(--sb-black);
	margin: 0 0 .5em;
}
.sb-academy h1 { font-size: clamp(2.1rem, 4.6vw, 3.4rem); }
.sb-academy h2 { font-size: clamp(1.7rem, 3.2vw, 2.4rem); }
.sb-academy h3 { font-size: clamp(1.3rem, 2.4vw, 1.7rem); }
.sb-academy h4 { font-size: 1.15rem; font-family: var(--sb-body); font-weight: 600; letter-spacing: 0; }

/* Titres sur fond sombre. Déclarés APRÈS le bloc ci-dessus et avec une
   spécificité supérieure (0,2,1 contre 0,1,1) : sinon `.sb-academy h2`
   repassait les titres en noir sur fond noir. */
.sb-academy .sb-section--dark h1, .sb-academy .sb-section--dark h2,
.sb-academy .sb-section--dark h3, .sb-academy .sb-section--dark h4,
.sb-academy .sb-hero h1, .sb-academy .sb-hero h2,
.sb-academy .sb-cta h1, .sb-academy .sb-cta h2 { color: var(--sb-white); }

.sb-eyebrow {
	font-family: var(--sb-body);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--sb-bronze);
	margin: 0 0 14px;
}
.sb-section--dark .sb-eyebrow { color: var(--sb-gold); }
/* Deuxième ligne de l'eyebrow : phrase complète, donc ni majuscules
   ni interlettrage — sinon illisible sur mobile. */
.sb-eyebrow-sub {
	display: block;
	margin-top: 7px;
	font-size: .84rem;
	font-weight: 500;
	letter-spacing: .01em;
	text-transform: none;
	color: var(--sb-muted);
}
.sb-hero .sb-eyebrow-sub,
.sb-section--dark .sb-eyebrow-sub { color: rgba(255,255,255,.7); }
.sb-lead { font-size: 1.15rem; color: var(--sb-muted); max-width: 62ch; }
.sb-section--dark .sb-lead { color: rgba(255,255,255,.75); }
.sb-center { text-align: center; }
.sb-center .sb-lead { margin-left: auto; margin-right: auto; }

/* --- Boutons -------------------------------------------------------------- */
.sb-btn {
	display: inline-block;
	font-family: var(--sb-body);
	font-size: .95rem;
	font-weight: 700;
	letter-spacing: .04em;
	padding: 18px 38px;
	border: 1px solid transparent;
	border-radius: var(--sb-radius);
	text-decoration: none;
	cursor: pointer;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.sb-btn--primary { background: var(--sb-bronze); color: #fff; }
.sb-btn--primary:hover { background: var(--sb-gold); color: #fff; }
.sb-btn--ghost { background: transparent; color: var(--sb-black); border-color: var(--sb-black); }
.sb-btn--ghost:hover { background: var(--sb-black); color: #fff; }
/* Tous les fonds sombres : hero, sections sombres et CTA final. */
.sb-section--dark .sb-btn--ghost,
.sb-hero .sb-btn--ghost,
.sb-cta .sb-btn--ghost { color: #fff; border-color: rgba(255,255,255,.5); }
.sb-section--dark .sb-btn--ghost:hover,
.sb-hero .sb-btn--ghost:hover,
.sb-cta .sb-btn--ghost:hover { background: #fff; color: var(--sb-black); }

/* Une carte reste blanche même dans une section sombre : le bouton fantôme
   qu'elle contient doit donc rester foncé. Déclaré APRÈS les règles ci-dessus,
   à spécificité égale, pour l'emporter. */
.sb-card .sb-btn--ghost { color: var(--sb-black); border-color: var(--sb-black); }
.sb-card .sb-btn--ghost:hover { background: var(--sb-black); color: #fff; }
.sb-btn--wa { background: #25d366; color: #0b3d20; }
.sb-btn--wa:hover { background: #1fb857; color: #062d16; }
.sb-btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.sb-center .sb-btn-row { justify-content: center; }
.sb-btn-note { font-size: .85rem; color: var(--sb-muted); margin-top: 14px; }
.sb-section--dark .sb-btn-note { color: rgba(255,255,255,.6); }

/* --- Hero ----------------------------------------------------------------- */
.sb-hero {
	background: var(--sb-black);
	color: #fff;
	padding: 96px 0 88px;
	position: relative;
}
.sb-hero::after {
	content: '';
	position: absolute; inset: auto 0 0 0; height: 3px;
	background: linear-gradient(90deg, var(--sb-bronze), var(--sb-gold-bright), var(--sb-bronze));
}
.sb-hero h1 { color: #fff; }
.sb-hero .sb-lead { color: rgba(255,255,255,.78); }
.sb-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 56px; align-items: center; }
.sb-hero-media img { border-radius: var(--sb-radius); border: 1px solid rgba(197,157,95,.35); }

.sb-hero-facts { display: flex; flex-wrap: wrap; gap: 32px; margin-top: 34px; }
.sb-hero-fact { min-width: 110px; }
.sb-hero-fact b {
	display: block; font-family: var(--sb-display);
	font-size: 2rem; color: var(--sb-gold-bright); line-height: 1;
}
.sb-hero-fact span { font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.6); }

/* --- Barre de confiance --------------------------------------------------- */
.sb-trust { background: var(--sb-black-soft); color: rgba(255,255,255,.8); padding: 22px 0; }
.sb-trust-items { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 40px; font-size: .9rem; }
.sb-trust-items span::before { content: '✦'; color: var(--sb-gold); margin-right: 10px; }

/* --- Grille de cartes ----------------------------------------------------- */
.sb-grid { display: grid; gap: 28px; }
.sb-grid--3 { grid-template-columns: repeat(3, 1fr); }
.sb-grid--2 { grid-template-columns: repeat(2, 1fr); }

.sb-card {
	background: #fff;
	/* La carte impose sa propre couleur de texte : placée dans une section
	   sombre (.sb-cta, .sb-section--dark) elle héritait sinon du blanc, et son
	   texte disparaissait sur le fond blanc de la carte. */
	color: var(--sb-text);
	border: 1px solid var(--sb-line);
	border-radius: var(--sb-radius);
	display: flex; flex-direction: column;
	overflow: hidden;
	transition: transform .22s ease, box-shadow .22s ease;
}
.sb-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(18,15,12,.12); }
.sb-card-media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--sb-black); }
.sb-card-media img { width: 100%; height: 100%; object-fit: cover; }
.sb-card-body { padding: 28px; display: flex; flex-direction: column; flex: 1; }
.sb-card-body h3 { margin-bottom: .35em; }
.sb-card-meta {
	font-size: .8rem; letter-spacing: .12em; text-transform: uppercase;
	color: var(--sb-bronze); margin-bottom: 14px;
}
.sb-card-price {
	font-family: var(--sb-display); font-size: 2rem; color: var(--sb-black);
	margin: 6px 0 4px; line-height: 1;
}
.sb-card-price small { font-family: var(--sb-body); font-size: .8rem; color: var(--sb-muted); letter-spacing: .05em; }
.sb-card ul { font-size: .95rem; }
.sb-card .sb-btn { margin-top: auto; text-align: center; }

/* --- Liste à coches ------------------------------------------------------- */
.sb-checks { list-style: none; padding: 0; }
.sb-checks li { position: relative; padding-left: 30px; margin-bottom: .75em; }
.sb-checks li::before {
	content: ''; position: absolute; left: 4px; top: .55em;
	width: 9px; height: 5px; border-left: 2px solid var(--sb-gold);
	border-bottom: 2px solid var(--sb-gold); transform: rotate(-45deg);
}
.sb-crosses { list-style: none; padding: 0; }
.sb-crosses li { position: relative; padding-left: 30px; margin-bottom: .75em; }
.sb-crosses li::before {
	content: '✕'; position: absolute; left: 2px; top: 0; color: #b0553f; font-weight: 700;
}

/* --- Programme (jour par jour) -------------------------------------------- */
.sb-programme { display: grid; gap: 22px; counter-reset: sbmod; }
.sb-module {
	border: 1px solid var(--sb-line); border-radius: var(--sb-radius);
	padding: 28px 30px; background: #fff; position: relative;
}
.sb-module h3 { margin-bottom: .4em; display: flex; align-items: baseline; gap: 14px; }
.sb-module h3::before {
	counter-increment: sbmod; content: counter(sbmod, decimal-leading-zero);
	font-family: var(--sb-body); font-size: .8rem; font-weight: 700;
	letter-spacing: .1em; color: var(--sb-gold); flex: none;
}
.sb-module ul { margin-bottom: 0; }

/* --- Rentabilité ---------------------------------------------------------- */
.sb-roi { border: 1px solid var(--sb-line); border-radius: var(--sb-radius); overflow: hidden; }
.sb-roi table { width: 100%; border-collapse: collapse; font-size: .96rem; }
.sb-roi th, .sb-roi td { padding: 15px 20px; text-align: left; border-bottom: 1px solid var(--sb-line); }
.sb-roi thead th { background: var(--sb-black); color: #fff; font-weight: 600; letter-spacing: .06em; font-size: .82rem; text-transform: uppercase; }
.sb-roi tbody tr:last-child td { border-bottom: 0; }
.sb-roi tbody tr:nth-child(even) { background: var(--sb-cream); }
.sb-roi td b { color: var(--sb-black); }
.sb-roi-note { font-size: .84rem; color: var(--sb-muted); margin-top: 16px; }

/* Variante sur fond sombre : sans ces règles, le texte noir et la ligne
   crème rendaient le tableau illisible. */
.sb-section--dark .sb-roi { border-color: rgba(197,157,95,.35); }
.sb-section--dark .sb-roi th,
.sb-section--dark .sb-roi td { border-bottom-color: rgba(197,157,95,.22); }
.sb-section--dark .sb-roi thead th { background: rgba(197,157,95,.16); color: var(--sb-gold); }
.sb-section--dark .sb-roi tbody td { color: rgba(255,255,255,.82); }
.sb-section--dark .sb-roi tbody tr:nth-child(even) { background: rgba(255,255,255,.045); }
.sb-section--dark .sb-roi td b { color: var(--sb-gold-bright); }
.sb-section--dark .sb-roi-note { color: rgba(255,255,255,.6); }

/* --- Carte des tarifs (pages réservation par ville) ----------------------- */
.sb-tarifs { display: grid; gap: 40px; }
.sb-tarif-group h3 {
	border-bottom: 2px solid var(--sb-gold);
	padding-bottom: 10px; margin-bottom: 6px;
}
.sb-tarif-list { list-style: none; padding: 0; margin: 0; }
.sb-tarif-list li {
	display: flex; align-items: baseline; gap: 12px;
	padding: 11px 0; margin: 0;
	border-bottom: 1px solid var(--sb-line);
}
.sb-tarif-list li:last-child { border-bottom: 0; }
.sb-tarif-name { flex: 1; }
.sb-tarif-dur {
	flex: none; font-size: .84rem; color: var(--sb-muted);
	white-space: nowrap; min-width: 62px; text-align: right;
}
.sb-tarif-price {
	flex: none; font-weight: 700; color: var(--sb-black);
	white-space: nowrap; min-width: 78px; text-align: right;
}
.sb-tarif-price s { color: var(--sb-muted); font-weight: 400; margin-right: 6px; }
.sb-tarif-promo { color: #8c6b2f; font-size: .82rem; display: block; }

@media (max-width: 560px) {
	.sb-tarif-list li { flex-wrap: wrap; gap: 4px 12px; }
	.sb-tarif-name { flex-basis: 100%; }
	.sb-tarif-dur { min-width: 0; text-align: left; }
	.sb-tarif-price { margin-left: auto; }
}

/* --- Tarif / encadré prix ------------------------------------------------- */
.sb-price-box {
	border: 1px solid var(--sb-gold); border-radius: var(--sb-radius);
	padding: 36px; background: #fff; text-align: center;
}
.sb-price-box .sb-amount {
	font-family: var(--sb-display); font-size: 3.6rem; line-height: 1; color: var(--sb-black);
}
.sb-price-box .sb-was {
	color: var(--sb-muted); text-decoration: line-through; font-size: 1.05rem; margin-left: 10px;
}
.sb-price-box .sb-split { color: var(--sb-bronze); font-weight: 600; margin-top: 10px; }

/* --- Formatrice ----------------------------------------------------------- */
.sb-trainer { display: grid; grid-template-columns: .8fr 1.2fr; gap: 52px; align-items: center; }
.sb-trainer-media img { border-radius: var(--sb-radius); }
.sb-trainer-creds { list-style: none; padding: 0; margin-top: 22px; }
.sb-trainer-creds li { padding-left: 26px; position: relative; }
.sb-trainer-creds li::before { content: '★'; position: absolute; left: 0; color: var(--sb-gold-bright); }

/* --- FAQ ------------------------------------------------------------------ */
.sb-faq { max-width: 820px; margin: 0 auto; }
.sb-faq details {
	border-bottom: 1px solid var(--sb-line);
	padding: 20px 0;
}
.sb-faq summary {
	cursor: pointer; font-weight: 600; font-size: 1.04rem;
	list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px;
}
.sb-faq summary::-webkit-details-marker { display: none; }
.sb-faq summary::after { content: '+'; color: var(--sb-gold); font-size: 1.5rem; font-weight: 400; flex: none; line-height: 1; }
.sb-faq details[open] summary::after { content: '–'; }
.sb-faq details p { margin: 14px 0 0; color: var(--sb-muted); }
.sb-section--dark .sb-faq details p { color: rgba(255,255,255,.72); }

/* --- Lieux ---------------------------------------------------------------- */
.sb-venue {
	border: 1px solid var(--sb-line); border-radius: var(--sb-radius);
	padding: 30px; background: #fff;
}
.sb-venue h3 { margin-bottom: .25em; }
.sb-venue .sb-city { font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; color: var(--sb-bronze); }
.sb-venue address { font-style: normal; color: var(--sb-muted); margin: 12px 0 18px; }
.sb-venue dl { margin: 0; font-size: .92rem; }
.sb-venue dl div { display: flex; justify-content: space-between; padding: 5px 0; border-bottom: 1px dashed var(--sb-line); }
.sb-venue dt { color: var(--sb-muted); }
.sb-venue dd { margin: 0; }

/* --- CTA final ------------------------------------------------------------ */
.sb-cta { background: var(--sb-black); color: #fff; padding: 92px 0; text-align: center; position: relative; }
.sb-cta::before {
	content: ''; position: absolute; inset: 0 0 auto 0; height: 3px;
	background: linear-gradient(90deg, var(--sb-bronze), var(--sb-gold-bright), var(--sb-bronze));
}
.sb-cta h2 { color: #fff; }
.sb-cta .sb-lead { color: rgba(255,255,255,.78); margin: 0 auto; }
.sb-cta-steps { display: flex; flex-wrap: wrap; justify-content: center; gap: 34px; margin: 38px 0 6px; }
.sb-cta-step { max-width: 230px; }
.sb-cta-step b {
	display: block; font-family: var(--sb-display); font-size: 1.6rem;
	color: var(--sb-gold-bright); margin-bottom: 6px;
}
.sb-cta-step span { font-size: .92rem; color: rgba(255,255,255,.7); }

/* --- Fil d'Ariane --------------------------------------------------------- */
.sb-crumb { font-size: .82rem; color: var(--sb-muted); padding: 18px 0 0; }
.sb-crumb a { color: var(--sb-muted); text-decoration: none; }
.sb-crumb a:hover { color: var(--sb-bronze); }

/* --- Encadré d'information ------------------------------------------------ */
.sb-note {
	border-left: 3px solid var(--sb-gold); background: var(--sb-cream);
	padding: 22px 26px; border-radius: 0 var(--sb-radius) var(--sb-radius) 0;
}
.sb-note :last-child { margin-bottom: 0; }
.sb-section--dark .sb-note { background: rgba(255,255,255,.05); }

/* --- Barre CTA mobile persistante ----------------------------------------- */
.sb-sticky {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 998;
	background: var(--sb-black); border-top: 1px solid rgba(197,157,95,.4);
	padding: 10px 14px; display: none; gap: 10px; align-items: center;
}
.sb-sticky .sb-sticky-price { color: #fff; font-size: .88rem; line-height: 1.25; flex: 1; }
.sb-sticky .sb-sticky-price b { color: var(--sb-gold-bright); display: block; font-size: 1.05rem; }
.sb-sticky .sb-btn { padding: 13px 20px; font-size: .85rem; flex: none; }

/* --- Adaptatif ------------------------------------------------------------ */
@media (max-width: 960px) {
	.sb-hero-grid, .sb-trainer { grid-template-columns: 1fr; gap: 36px; }
	.sb-grid--3 { grid-template-columns: repeat(2, 1fr); }
	.sb-section { padding: 62px 0; }
}
@media (max-width: 720px) {
	.sb-academy { font-size: 16px; }
	.sb-grid--3, .sb-grid--2 { grid-template-columns: 1fr; }
	.sb-hero { padding: 64px 0 60px; }
	.sb-section { padding: 52px 0; }
	.sb-btn { width: 100%; text-align: center; }
	.sb-btn-row { flex-direction: column; }
	.sb-sticky { display: flex; }
	.sb-academy { padding-bottom: 74px; }
	.sb-roi { overflow-x: auto; }
	.sb-roi table { min-width: 520px; }
	.sb-hero-facts { gap: 22px; }
	.sb-price-box { padding: 26px; }
}

/* ==========================================================================
   En-tête et pied de page — reprise fidèle de l'identité du site
   (barre noire, logo, menu bronze, bouton or)
   ========================================================================== */

.sb-header {
	background: var(--sb-black);
	position: sticky; top: 0; z-index: 999;
	border-bottom: 1px solid rgba(197,157,95,.22);
}
.sb-header-inner {
	max-width: var(--sb-maxw); margin: 0 auto; padding: 12px 24px;
	display: flex; align-items: center; gap: 28px;
}
.sb-logo { flex: none; }
.sb-logo img { width: 96px; }

.sb-nav { flex: 1; }
.sb-nav ul {
	list-style: none; margin: 0; padding: 0;
	display: flex; justify-content: center; flex-wrap: wrap; gap: 26px;
}
.sb-nav li { margin: 0; position: relative; }
.sb-nav a {
	color: var(--sb-bronze); text-decoration: none;
	font-size: .95rem; font-weight: 600; letter-spacing: .01em;
	transition: color .18s ease; white-space: nowrap;
}
.sb-nav a:hover, .sb-nav a[aria-current="page"] { color: var(--sb-gold); }

.sb-nav .sb-has-sub > a::after { content: ' ⌄'; font-size: .8em; opacity: .7; }
.sb-nav .sb-sub {
	position: absolute; left: 50%; transform: translateX(-50%);
	top: 100%; margin-top: 14px; min-width: 220px;
	background: var(--sb-black); border: 1px solid rgba(197,157,95,.28);
	border-radius: var(--sb-radius); padding: 12px 0;
	display: none; flex-direction: column; gap: 0; z-index: 5;
}

/* Passerelle invisible au-dessus du sous-menu.
   Les 14 px de `margin-top` n'appartiennent ni au <li> ni au sous-menu :
   en y passant, le curseur perdait le :hover et le menu se refermait avant
   qu'on ait pu cliquer. Ce pseudo-élément recouvre ce vide — il est enfant
   du sous-menu, donc le survoler maintient `.sb-has-sub:hover`.
   Il n'existe que lorsque le sous-menu est affiché (le parent est
   `display:none` au repos), donc il ne piège jamais le curseur. */
.sb-nav .sb-sub::before {
	content: '';
	position: absolute;
	left: -24px; right: -24px;
	top: -20px; height: 20px;
}
.sb-nav .sb-has-sub:hover .sb-sub,
.sb-nav .sb-has-sub:focus-within .sb-sub { display: flex; }
.sb-nav .sb-sub li { width: 100%; }
.sb-nav .sb-sub a { display: block; padding: 9px 22px; font-weight: 400; }

.sb-header-cta { flex: none; }
.sb-header-cta .sb-btn {
	background: var(--sb-gold-bright); color: var(--sb-black);
	padding: 13px 24px; font-size: .8rem; letter-spacing: .08em;
}
.sb-header-cta .sb-btn:hover { background: var(--sb-gold); color: var(--sb-black); }

.sb-burger {
	display: none; flex: none; background: none; border: 0; cursor: pointer;
	color: var(--sb-bronze); font-size: 1.6rem; line-height: 1; padding: 6px 10px;
}

@media (max-width: 960px) {
	.sb-header-inner { flex-wrap: wrap; gap: 12px; }
	.sb-burger { display: block; margin-left: auto; order: 2; }
	.sb-header-cta { order: 3; }
	.sb-header-cta .sb-btn { padding: 11px 16px; font-size: .72rem; }
	.sb-nav { order: 4; flex-basis: 100%; display: none; }
	.sb-nav[data-open="true"] { display: block; }
	.sb-nav ul { flex-direction: column; align-items: flex-start; gap: 0; padding-bottom: 12px; }
	.sb-nav li { width: 100%; border-top: 1px solid rgba(197,157,95,.16); }
	.sb-nav a { display: block; padding: 13px 2px; }
	.sb-nav .sb-sub {
		position: static; transform: none; margin: 0 0 6px 14px;
		display: flex; border: 0; padding: 0; background: none; min-width: 0;
	}
	/* Le sous-menu est déplié en permanence sur mobile : plus de survol,
	   donc plus besoin de passerelle. */
	.sb-nav .sb-sub::before { display: none; }
	.sb-nav .sb-sub a { padding: 9px 2px; opacity: .82; }
	.sb-nav .sb-has-sub > a::after { content: ''; }
}

/* --- Pied de page --------------------------------------------------------- */
.sb-footer { background: var(--sb-black); color: rgba(255,255,255,.72); font-size: .92rem; }
.sb-footer a { color: rgba(255,255,255,.72); text-decoration: none; }
.sb-footer a:hover { color: var(--sb-gold); }
.sb-footer-grid {
	max-width: var(--sb-maxw); margin: 0 auto; padding: 58px 24px 44px;
	display: grid; grid-template-columns: 1.1fr 1fr 1.3fr; gap: 44px;
}
.sb-footer h4 {
	color: var(--sb-gold); font-size: .78rem; letter-spacing: .18em;
	text-transform: uppercase; margin: 0 0 16px; font-weight: 600;
}
.sb-footer p { margin: 0 0 .7em; }
.sb-footer-legal { font-size: .82rem; color: rgba(255,255,255,.45); }
.sb-footer-hours { display: grid; gap: 22px; grid-template-columns: 1fr 1fr; }
.sb-footer-hours dl { margin: 0; font-size: .85rem; }
.sb-footer-hours dl div { display: flex; justify-content: space-between; gap: 12px; padding: 2px 0; }
.sb-footer-hours dt { color: rgba(255,255,255,.5); }
.sb-footer-hours dd { margin: 0; }
.sb-footer-hours .sb-city-label {
	color: var(--sb-gold); font-size: .74rem; letter-spacing: .14em;
	text-transform: uppercase; margin-bottom: 8px;
}
.sb-footer-bottom {
	background: rgba(176,149,53,.8); color: #fff; text-align: center;
	padding: 16px 24px; font-size: .85rem;
}
.sb-footer-bottom a { color: #fff; }
.sb-footer-social { display: flex; gap: 18px; margin-top: 14px; }

@media (max-width: 860px) {
	.sb-footer-grid { grid-template-columns: 1fr; gap: 34px; padding: 44px 24px 36px; }
}
@media (max-width: 720px) {
	.sb-footer-bottom { padding-bottom: 84px; } /* dégage la barre CTA fixe */
}

/* --- Impression ------------------------------------------------------------ */
@media print {
	.sb-sticky, .sb-cta .sb-btn-row { display: none; }
	.sb-hero, .sb-section--dark, .sb-cta { background: #fff !important; color: #000 !important; }
	.sb-hero h1, .sb-cta h2 { color: #000 !important; }
}
