/* ==========================================================================
   Bal à l'Opéra — 5 à 7 champêtre à La Sapinière
   Conversion fidèle de la maquette Canva (source : PDF WEB RETINA 1534,5 × 4608 pt)
   Desktop ≥ 901 px : composition au pourcent près (unités de conteneur)
   Mobile  ≤ 900 px : mêmes éléments, réorganisés en parcours vertical
   ========================================================================== */

/* ---------- polices (locales, licence OFL) ---------- */
@font-face {
	font-family: "BalTitre";
	src: url("../fonts/Fraunces-400-normal.woff2") format("woff2");
	font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "BalTitre";
	src: url("../fonts/Fraunces-600-normal.woff2") format("woff2");
	font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "BalTitre";
	src: url("../fonts/Fraunces-700-normal.woff2") format("woff2");
	font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "BalCorps";
	src: url("../fonts/CormorantGaramond-600-normal.woff2") format("woff2");
	font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "BalCorps";
	src: url("../fonts/CormorantGaramond-700-normal.woff2") format("woff2");
	font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
	font-family: "BalCorps";
	src: url("../fonts/CormorantGaramond-600-italic.woff2") format("woff2");
	font-weight: 600; font-style: italic; font-display: swap;
}

/* ---------- variables ---------- */
.balsap {
	--bs-navy: #001129;
	--bs-navy-arche: #001330;
	--bs-cream: #F5ECE3;
	--bs-gold: #C9A36B;
	--bs-gold-line: #B99B5F;
	--bs-olive: #999934;
	--bs-sage: #C2CA82;
	--bs-pill: #A3B144;
	--bs-ink: #141414;
	--bs-titre: "BalTitre", "Playfair Display", Georgia, serif;
	--bs-corps: "BalCorps", "Cormorant Garamond", Georgia, serif;
}

/* ---------- socle : pleine largeur, reset local ---------- */
.balsap {
	position: relative;
	width: 100vw;
	left: 50%;
	margin-left: -50vw;
	background: var(--bs-cream);
	overflow: hidden;
	font-family: var(--bs-corps);
	font-weight: 700;
	color: var(--bs-ink);
	line-height: 1.2;
	-webkit-font-smoothing: antialiased;
}
/* calibré sur la métrique du PDF Canva (Cormorant y est légèrement plus serré) ;
   déclaré sur chaque élément pour que le em suive sa taille de police */
.balsap p, .balsap li, .balsap a, .balsap span { letter-spacing: -0.024em; }
.balsap h1, .balsap h2 { letter-spacing: normal; }
.balsap *, .balsap *::before, .balsap *::after { box-sizing: border-box; margin: 0; padding: 0; }
.balsap ul, .balsap ol { list-style: none; }
.balsap img { max-width: 100%; height: auto; display: block; border: 0; }
.balsap a { text-decoration: none; }
.balsap section { position: relative; container-type: inline-size; }
.balsap h1, .balsap h2 { font-family: var(--bs-titre); font-weight: 700; }
.bs-titre-noir { color: var(--bs-ink); }
.bs-deco, .bs-vague, .bs-arche, .bs-ornement, .bs-branche-hero, .bs-branche-bas, .bs-mobile-hero-scene { pointer-events: none; user-select: none; }

/* boutons / liens communs */
.balsap .bs-btn-or {
	display: flex; align-items: center; justify-content: center;
	font-family: var(--bs-corps); font-weight: 700; color: #fff;
	background: linear-gradient(180deg, #E9CA95 0%, #DDB57E 45%, #CDA26A 100%);
	border: 0.14em solid rgba(62, 48, 20, 0.38);
	box-shadow: inset 0 0 0 0.1em rgba(255, 244, 220, 0.35);
	letter-spacing: 0.06em;
}
.balsap .bs-btn-partenaire {
	display: flex; align-items: center; justify-content: center;
	font-family: var(--bs-corps); font-weight: 700; color: #fff;
	background: linear-gradient(160deg, #37435A 0%, #263349 100%);
	border-style: solid; border-color: #7B6555;
	text-decoration: underline;
	text-underline-offset: 0.2em;
	text-decoration-thickness: 0.085em;
	letter-spacing: 0.012em;
	white-space: nowrap;
}
.balsap .bs-lien-blanc {
	color: #fff; font-family: var(--bs-corps); font-weight: 700;
	text-decoration: underline; text-underline-offset: 0.22em;
	text-decoration-thickness: 0.07em; letter-spacing: 0.06em;
}
.balsap .bs-btn-vert {
	display: flex; align-items: center; justify-content: center;
	background: var(--bs-pill); color: #fff; border-radius: 999px;
	font-family: var(--bs-corps); font-weight: 700; letter-spacing: 0.05em;
}

/* ==========================================================================
   DESKTOP — composition exacte de la maquette (≥ 901 px)
   ========================================================================== */
@media (min-width: 901px) {

	.bs-courbe-mobile { display: none; }
	.bs-arche--mobile { display: none; }
	.bs-mobile-hero-scene { display: none; }

	/* ---------- HERO (page 0 → 24,46 %) ---------- */
	.bs-hero { aspect-ratio: 1534.5 / 1127.2; background: var(--bs-navy); }
	.bs-hero__photo {
		position: absolute; inset: 0; width: 100%; height: 100%;
		object-fit: cover; object-position: 50% 0%;
	}
	/* le bas de la photo fond vers le bleu nuit de la maquette (et non le noir) */
	.bs-hero::after {
		content: ""; position: absolute; inset: 0; z-index: 1;
		background: linear-gradient(180deg, rgba(0,17,41,0) 46%, rgba(0,17,41,0.75) 62%, var(--bs-navy) 74%);
	}
	.bs-vague { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; }
	.bs-hero__textes {
		position: absolute; left: 42.95%; top: 0; transform: translateX(-50%);
		width: 60cqw; height: 100%; text-align: center; color: #fff; z-index: 3;
	}
	.bs-hero__titre {
		position: absolute; left: 50%; top: 42.4%; transform: translateX(-50%);
		width: 100%; color: #fff;
		font-size: 5.96cqw; line-height: 1.29; font-weight: 700;
		z-index: 2;
	}
	/* le filet est décalé pour que son point central tombe sous le jambage du « p » d'Opéra */
	.bs-hero__filet {
		position: absolute; left: calc(50% + 1.05cqw); top: 59.45%; transform: translateX(-50%);
		width: 39cqw; height: auto;
		z-index: 1;
	}
	.bs-hero__sous-titre {
		position: absolute; left: 50%; top: 64.9%; transform: translateX(-50%);
		width: 100%; font-family: var(--bs-titre); font-weight: 400;
		font-size: 2.07cqw; white-space: nowrap;
	}
	.bs-hero__accroche {
		position: absolute; left: 50%; top: 72.9%; transform: translateX(-50%);
		width: 100%; font-size: 1.9cqw; white-space: nowrap;
	}
	.bs-hero__actions { position: absolute; inset: 0; }
	.bs-hero .bs-btn-or {
		position: absolute; left: 6.75cqw; top: 79.0%;
		width: 22.58cqw; height: 7.81%;
		font-size: 2.25cqw;
	}
	.bs-hero .bs-btn-partenaire {
		position: absolute; left: 33.8cqw; top: 80.8%;
		width: 20.47cqw; height: 6.47%;
		border-width: 0.59cqw;
		font-size: 2.3cqw;
	}
	.bs-branche-hero {
		position: absolute; left: 65.79%; top: 72.47%; width: 34.21%; z-index: 4;
	}

	/* ---------- LE CONCEPT (24,46 → 37,0 %) ---------- */
	.bs-concept { aspect-ratio: 1534.5 / 577.8; background: var(--bs-cream); }
	.bs-deco--concept { position: absolute; left: 1.17%; top: 34.6%; width: 98.8%; z-index: 0; }
	.bs-coupe { position: absolute; left: 41.39%; top: -22.8%; width: 41.5%; z-index: 5; }
	.bs-concept__textes { position: absolute; left: 12.1%; top: 0; width: 44cqw; z-index: 1; }
	.bs-concept__titre { position: absolute; top: 0; left: 0; font-size: 4.086cqw; line-height: 1.1; white-space: nowrap; }
	.bs-concept__textes p {
		position: relative; font-size: 1.864cqw; line-height: 1.055;
		width: 31.7cqw;
	}
	.bs-concept__textes p:nth-of-type(1) { margin-top: 9.55cqw; }
	.bs-concept__textes p + p { margin-top: 1.06cqw; }

	/* ---------- L'EXPÉRIENCE (37,0 → 54,0 %) ---------- */
	.bs-vivrez {
		background: var(--bs-cream) url("../images/fond-vivrez-v433.webp") 0 0 / 100% 100% no-repeat;
		padding: 3.0cqw 11% 4.4cqw 9.5%;
	}
	.bs-vivrez__titre { font-size: 3.043cqw; margin-left: 2.6cqw; white-space: nowrap; }
	.bs-bulles {
		display: grid; grid-template-columns: repeat(3, 1fr);
		gap: 1.4cqw 2.1cqw; margin-top: 1.0cqw;
	}

	/* ---------- LA PROMENADE (54,0 → 65,5 %) ---------- */
	.bs-promenade { aspect-ratio: 1534.5 / 529.9; background: var(--bs-cream); }
	.bs-promenade__titre { position: absolute; left: 11.6%; top: 6.4%; font-size: 3.532cqw; white-space: nowrap; z-index: 1; }
	.bs-promenade__arrivee { position: absolute; left: 79.1%; top: 4.8%; font-size: 1.76cqw; line-height: 1.07; z-index: 1; }
	.bs-parcours { position: absolute; inset: 0; }
	.bs-parcours__bande { position: absolute; left: 6.91%; top: 9.34%; width: 89.39%; }
	.balsap .bs-etape__photo, .balsap .bs-etape__icone { display: none; }
	.bs-etape { position: absolute; }
	.bs-etape--1 { left: 10.85%; top: 85.0%; }
	.bs-etape--2 { left: 28.96%; top: 87.3%; }
	.bs-etape--3 { left: 46.0%;  top: 86.0%; }
	.bs-etape--4 { left: 64.8%;  top: 85.8%; }
	.bs-etape--5 { left: 79.8%;  top: 86.6%; }
	.bs-etape--1 .bs-etape__nom { font-size: 1.453cqw; }
	.bs-etape--2 .bs-etape__nom { font-size: 1.518cqw; }
	.bs-etape--3 .bs-etape__nom { font-size: 1.727cqw; }
	.bs-etape--4 .bs-etape__nom { font-size: 1.655cqw; }
	.bs-etape--5 .bs-etape__nom { font-size: 1.518cqw; }
	.bs-etape__nom { line-height: 1.09; white-space: nowrap; }
	.bs-branche-bas { position: absolute; left: 80.38%; top: 87.8%; width: 16.72%; z-index: 3; }

	/* ---------- MOMENTS FORTS (65,5 → 77,5 %) ---------- */
	.bs-moments { aspect-ratio: 1534.5 / 553.0; background: var(--bs-cream); }
	.bs-moments__titre {
		position: absolute; left: 48%; top: 4.9%; transform: translateX(-50%);
		font-size: 3.115cqw; white-space: nowrap;
	}
	.bs-cartes { position: absolute; left: 0; top: 18.75%; width: 100%; height: 78.1%; }
	.bs-carte { position: absolute; top: 0; height: 100%; border-radius: 0.9cqw; overflow: hidden; }
	.bs-carte--olive { left: 5.5%;  width: 25.43%; background: var(--bs-olive); }
	.bs-carte--navy  { left: 33.5%; width: 29.6%;  background: var(--bs-navy); }
	.bs-carte--sage  { left: 66.3%; width: 27.7%;  background: var(--bs-sage); }
	.bs-carte > img {
		position: absolute; right: 0; top: 0; height: 100%; width: 63.4%;
		object-fit: cover; border-radius: 0.9cqw;
	}
	.bs-carte--sage > img { width: 65.6%; }
	.bs-carte__panneau {
		position: absolute; inset: 0 auto 0 0; width: 37.5%;
		color: #fff; padding: 3.35cqw 1.5% 0 3%;
	}
	.bs-carte__num { display: block; font-size: 3.71cqw; line-height: 1; }
	.bs-carte__panneau p { margin-top: 2.4cqw; font-size: 1.564cqw; line-height: 1.083; }
	.bs-carte--olive .bs-carte__panneau p { max-width: 7.4cqw; }
	.bs-carte--navy .bs-carte__panneau p { max-width: 9.8cqw; }
	.bs-carte--sage .bs-carte__panneau p { max-width: 7.4cqw; }

	/* ---------- PARTENAIRES (77,5 → 83,0 %) ---------- */
	.bs-partenaires { aspect-ratio: 1534.5 / 253.4; background: var(--bs-cream); }
	.bs-partenaires__titre {
		position: absolute; left: 47.7%; top: 9.8%; transform: translateX(-50%);
		font-size: 2.972cqw; white-space: nowrap;
	}
	.bs-partenaires__grille { position: absolute; inset: 0; }
	.bs-partenaires__grille li { position: absolute; text-align: center; }
	.bs-partenaires__grille li:nth-child(1) { left: 25.4%; top: 38.0%; width: 29.8%; }
	.bs-partenaires__grille li:nth-child(2) { left: 60.9%; top: 43.6%; width: 13.2%; }
	.bs-part__logo { display: block; width: 100%; height: auto; }

	/* ---------- INFORMATIONS PRATIQUES (83,0 → 90,0 %) ---------- */
	.bs-infos { aspect-ratio: 1534.5 / 322.6; background: var(--bs-cream); }
	.bs-infos__titre { position: absolute; left: 6.13%; top: 9.4%; font-size: 2.698cqw; white-space: nowrap; }
	.bs-infos__liste li { position: absolute; left: 10.93%; white-space: nowrap; }
	.bs-infos__lieu     { top: 27.0%; font-size: 1.72cqw; }
	.bs-infos__adresse  { top: 42.0%; font-size: 1.56cqw; }
	.bs-infos__date     { top: 56.8%; font-size: 1.90cqw; }
	.bs-infos__tenue    { top: 72.6%; font-size: 1.62cqw; }
	.bs-infos__courriel { top: 87.0%; font-size: 1.68cqw; font-weight: 600; }

	/* ---------- RÉSERVATION (90,0 → 100 %) ---------- */
	.bs-final { aspect-ratio: 1534.5 / 460.8; background: var(--bs-cream); }
	.bs-arche--desktop {
		position: absolute; left: 0; top: -25%; width: 100%; height: 125%;
	}
	.bs-ornement {
		position: absolute; left: 50%; top: -12%; transform: translateX(-50%);
		width: 4.7cqw;
	}
	.bs-final__places {
		position: absolute; left: 48.9%; top: 51.2%; transform: translateX(-50%);
		color: #fff; font-size: 1.564cqw; white-space: nowrap;
	}
	.bs-final__places-mobile { display: none; }
	.bs-final__titre {
		position: absolute; left: 48.9%; top: 62.6%; transform: translateX(-50%);
		color: #fff; font-family: var(--bs-titre); font-weight: 600;
		font-size: 2.15cqw; white-space: nowrap;
	}
	.bs-final__actions { position: absolute; inset: 0; }
	.bs-btn-vert {
		position: absolute; left: 27.2%; top: 80.3%;
		width: 15.55cqw; height: 14.5%;
		font-size: 2.35cqw;
	}
	.balsap .bs-lien-blanc--final {
		position: absolute; left: 54.74%; top: 82.9%;
		font-size: 1.564cqw; white-space: nowrap; text-decoration: none;
	}
}

/* ---------- bulles de l'expérience : commun desktop + mobile ----------
   Chaque bulle est une image normalisée 750×750 (cercle centré, rayon
   identique) ; l'étiquette est du vrai texte positionné en unités de
   conteneur (cqw de la bulle), alignée sous l'icône incrustée. */
.bs-bulle { position: relative; display: block; container-type: inline-size; }
.bs-bulle__img { width: 100%; height: auto; display: block; }
.bs-bulle__etiquette {
	position: absolute; transform: translateY(-50%);
	text-align: left; font-weight: 700; color: var(--bs-ink);
	font-size: 6.5cqw; line-height: 1.083; white-space: nowrap;
}
.bs-bulle--accueil    .bs-bulle__etiquette { left: 17.9%; top: 55.2%; }
.bs-bulle--ambiance   .bs-bulle__etiquette { left: 12.7%; top: 57.4%; }
.bs-bulle--reseautage .bs-bulle__etiquette { left: 10.9%; top: 60.2%; }
.bs-bulle--photobooth .bs-bulle__etiquette { left: 18.3%; top: 61.8%; }
.bs-bulle--saveurs    .bs-bulle__etiquette { left: 14.8%; top: 57.8%; }
.bs-bulle--surprises  .bs-bulle__etiquette { left: 17.8%; top: 55.8%; }

/* ==========================================================================
   MOBILE / TABLETTE — mêmes éléments, parcours vertical (≤ 900 px)
   ========================================================================== */
@media (max-width: 900px) {

	.bs-br-bureau { display: none; }

	.balsap { font-size: clamp(15px, 4.6vw, 22px); }
	.balsap .bs-deco { display: none; }
	.bs-arche--desktop { display: none; }
	.bs-courbe-mobile { display: block; width: min(78vw, 420px); margin: 6vw auto 0; opacity: 0.85; }

	/* ---------- HERO ---------- */
	.bs-hero { background: var(--bs-cream); height: 200vw; overflow: hidden; }
	.bs-mobile-hero-scene {
		display: block;
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: 50% 0;
		z-index: 0;
	}
	.bs-hero__photo {
		display: none;
	}
	.bs-hero::before {
		content: none;
	}
	.bs-hero__textes {
		position: absolute; left: 0; right: 0; top: 29.6vw; z-index: 7;
		text-align: center; color: #fff;
		padding: 0 4vw;
	}
	.bs-hero__titre {
		position: relative;
		z-index: 2;
		font-size: clamp(39px, 12.4vw, 64px);
		line-height: 1.02;
		text-shadow: 0 0.04em 0.18em rgba(0,0,0,0.35);
	}
	.bs-hero__filet {
		position: relative; z-index: 1; width: min(54vw, 265px);
		margin: -1vw auto 0; transform: translateX(2.1vw);
		content: url("../images/divider-or-mobile.png");
	}
	.bs-hero__sous-titre { font-family: var(--bs-titre); font-weight: 400; font-size: clamp(13px, 4.1vw, 21px); margin-top: 1.4vw; white-space: nowrap; }
	.bs-hero__accroche { font-size: clamp(13px, 4.0vw, 20px); margin-top: 5.9vw; }
	.bs-hero__actions {
		display: grid; grid-template-columns: 1fr 1fr; align-items: center;
		gap: 6vw; margin: 3.0vw auto 0; width: min(86vw, 360px);
	}
	.bs-hero .bs-btn-or {
		width: 100%; min-height: 8.4vw; font-size: clamp(12px, 3.9vw, 19px);
	}
	.bs-hero .bs-btn-partenaire {
		width: 100%; min-height: 8.4vw; padding: 0.25em 0.4em;
		border-width: max(2px, 0.6vw);
		font-size: clamp(11px, 3.3vw, 17px);
	}
	.bs-vague { display: none; }
	.bs-branche-hero { display: none; }

	/* ---------- LE CONCEPT ---------- */
	.bs-concept {
		background: var(--bs-cream);
		padding: 8vw 7vw 0;
	}
	.bs-concept .bs-coupe { display: none !important; visibility: hidden !important; width: 0 !important; height: 0 !important; margin: 0 !important; }
	.bs-concept__titre { font-size: clamp(36px, 10.8vw, 58px); line-height: 1.06; }
	.bs-concept__textes p {
		margin-top: 5.5vw;
		font-size: clamp(20px, 5.7vw, 28px);
		line-height: 1.11;
		max-width: 34em;
	}

	/* ---------- L'EXPÉRIENCE ---------- */
	.bs-vivrez {
		background: var(--bs-cream) url("../images/fond-vivrez-v433.webp") center / cover no-repeat;
		padding: 10vw 6vw 8vw;
	}
	.bs-vivrez__titre { font-size: clamp(26px, 7.6vw, 44px); margin-left: 1vw; }
	.bs-bulles {
		display: grid; grid-template-columns: 1fr; justify-items: center;
		gap: 4vw; margin-top: 5vw;
	}
	.bs-bulle { width: min(88vw, 420px); }

	/* ---------- LA PROMENADE ---------- */
	.bs-promenade { background: var(--bs-cream); padding: 10vw 6vw 6vw; }
	.bs-promenade__titre { font-size: clamp(28px, 8.6vw, 48px); }
	.balsap .bs-parcours__bande { display: none; }
	.bs-etapes { position: relative; margin-top: 7vw; }
	.bs-etapes::before {
		/* fil doré continu du parcours */
		content: ""; position: absolute; left: 50%; top: 2vw; bottom: 2vw;
		border-left: 3px dashed var(--bs-gold-line); transform: translateX(-1.5px);
	}
	.bs-etape { position: relative; display: flex; flex-direction: column; align-items: center; }
	.bs-etape + .bs-etape { margin-top: 9vw; }
	.bs-etape__photo { position: relative; z-index: 1; width: min(62vw, 300px); }
	.bs-etape__rep {
		position: relative; z-index: 1; display: flex; align-items: center; gap: 3.5vw;
		margin-top: 4vw; background: var(--bs-cream); padding: 1.5vw 4vw;
		border-radius: 999px;
	}
	.bs-etape__icone { display: block; width: clamp(34px, 10vw, 52px); height: auto; }
	.bs-etape--1 .bs-etape__icone { width: clamp(38px, 11vw, 58px); }
	.bs-etape__nom { font-size: clamp(17px, 5.2vw, 24px); }
	.bs-promenade__arrivee {
		text-align: center; font-size: clamp(17px, 5.2vw, 24px); line-height: 1.15;
		margin-top: 8vw;
	}
	/* l'annonce d'arrivée vient après le parcours sur mobile */
	.bs-promenade { display: flex; flex-direction: column; }
	.bs-promenade__titre { order: 1; }
	.bs-parcours { order: 2; }
	.bs-promenade__arrivee { order: 3; }
	.bs-branche-bas { order: 4; align-self: flex-end; width: 38vw; margin: 4vw -6vw -2vw 0; }

	/* ---------- MOMENTS FORTS ---------- */
	.bs-moments { background: var(--bs-cream); padding: 10vw 6vw 4vw; }
	.bs-moments__titre { text-align: center; font-size: clamp(28px, 8.6vw, 48px); }
	.bs-cartes { margin-top: 7vw; display: grid; gap: 6vw; }
	.bs-carte {
		position: relative; display: flex; align-items: stretch;
		border-radius: 12px; overflow: hidden; min-height: 96vw;
	}
	.bs-carte--olive { background: var(--bs-olive); }
	.bs-carte--navy  { background: var(--bs-navy); }
	.bs-carte--sage  { background: var(--bs-sage); }
	.bs-carte__panneau { width: 52%; color: #fff; padding: 8vw 5vw 8vw 6vw; }
	.bs-carte__num { display: block; font-size: clamp(30px, 9.6vw, 52px); line-height: 1; }
	.bs-carte__panneau p { margin-top: 6vw; font-size: clamp(15px, 4.6vw, 22px); line-height: 1.15; }
	.bs-carte > img { width: 48%; object-fit: cover; border-radius: 12px; }

	/* ---------- PARTENAIRES ---------- */
	.bs-partenaires { background: var(--bs-cream); padding: 10vw 6vw 2vw; }
	.bs-partenaires__titre { text-align: center; font-size: clamp(26px, 7.9vw, 44px); }
	.bs-partenaires__grille {
		display: grid; grid-template-columns: 1fr 1fr; gap: 9vw 4vw;
		margin-top: 8vw; text-align: center;
		align-items: center;
	}
	.bs-part__logo { display: block; width: 100%; height: auto; }
	.bs-part__logo--ssjb { width: 86%; margin: 0 auto; }

	/* ---------- INFORMATIONS PRATIQUES ---------- */
	.bs-infos { background: var(--bs-cream); padding: 12vw 8vw 4vw; }
	.bs-infos__titre { font-size: clamp(26px, 7.6vw, 44px); }
	.bs-infos__liste { margin: 6vw 0 0 4vw; }
	.bs-infos__liste li + li { margin-top: 3.5vw; }
	.bs-infos__lieu  { font-size: clamp(16px, 4.9vw, 23px); }
	.bs-infos__adresse, .bs-infos__tenue { display: none; }
	.bs-infos__date  { font-size: clamp(17px, 5.2vw, 24px); }
	.bs-infos__courriel { font-size: clamp(16px, 4.9vw, 23px); font-weight: 600; overflow-wrap: anywhere; }

	/* ---------- RÉSERVATION ---------- */
	.bs-final { background: var(--bs-cream); padding-top: 20vw; }
	.bs-final { display: flex; flex-direction: column; align-items: center; }
	.bs-arche--mobile {
		position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 100%;
	}
	.bs-ornement { position: relative; z-index: 1; width: clamp(54px, 16vw, 76px); margin-bottom: 2vw; }
	.bs-final__places {
		position: relative; z-index: 1; color: #fff; text-align: center;
		font-size: clamp(16px, 4.8vw, 23px); padding: 0 8vw; margin-top: 0;
	}
	.bs-final__places-web { display: none; }
	.bs-final__places-mobile { display: inline; }
	.bs-final__titre {
		position: relative; z-index: 1; color: #fff; text-align: center;
		font-family: var(--bs-titre); font-weight: 600;
		font-size: clamp(20px, 6.2vw, 30px); padding: 0 7vw; margin-top: 4vw; line-height: 1.25;
	}
	.bs-final__actions {
		position: relative; z-index: 1; display: flex; flex-direction: column;
		align-items: center; gap: 5vw; margin: 7vw 0 12vw;
	}
	.bs-btn-vert { width: min(60vw, 300px); min-height: 54px; font-size: clamp(18px, 5.6vw, 26px); }
	.bs-lien-blanc--final { font-size: clamp(14px, 4.3vw, 20px); padding: 0.4em; }
}

/* tablette : bulles sur 2 colonnes, cartes plus basses */
@media (min-width: 561px) and (max-width: 900px) {
	.bs-bulles { grid-template-columns: 1fr 1fr; gap: 3vw; }
	.bs-bulle { width: 100%; }
	.bs-carte { min-height: 52vw; }
}
