/* ==========================================================================
   L'aventure du vin par Trésors de cave — feuille de style principale
   v4 — passe design provisoire (palette chaleureuse, typographie de
   caractère, cartes stylées, bannières de page, espacements). Contenu et
   logique inchangés depuis la v3, uniquement du visuel. Voir style.css
   pour la note de réversibilité (thème v3 laissé intact à côté).
   ========================================================================== */

:root {
	/* --- Palette chaleureuse vin/caviste ---------------------------------- */
	--adv-bordeaux: #7a2333;
	--adv-bordeaux-fonce: #4e1620;
	--adv-terracotta: #c1602f;
	--adv-terracotta-fonce: #9c4a22;
	--adv-terracotta-clair: #f3ddc9;
	--adv-or: #c9973f;
	--adv-or-clair: #ecd9ad;
	--adv-creme: #faf3e9;
	--adv-creme-fonce: #f1e2cc;
	--adv-texte: #34211a;
	--adv-texte-clair: #7c6355;
	--adv-blanc: #ffffff;
	--adv-succes: #4a7c59;
	--adv-erreur: #a83232;

	--adv-radius: 14px;
	--adv-radius-petit: 8px;
	--adv-ombre: 0 8px 24px rgba(74, 30, 20, 0.1);
	--adv-ombre-hover: 0 16px 32px rgba(74, 30, 20, 0.16);

	--adv-espace-section: clamp(48px, 7vw, 96px);

	--adv-police-titres: 'Fraunces', Georgia, 'Times New Roman', serif;
	--adv-police-texte: 'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* --- Réinitialisation légère ------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }

/* Le bandeau (.adv-header) est en position: sticky — sans ce réglage, un
   lien "#form-devis"/"#form-reservation"/"#form-inscription" atterrit avec
   le HAUT de la section caché derrière ce bandeau : on croit alors avoir
   "trop défilé" alors qu'on est juste arrivé sous le titre de la section,
   dans le formulaire directement. scroll-padding-top laisse la place
   nécessaire au-dessus de la cible. Valeurs = hauteur réelle du bandeau à
   chaque taille d'écran (mesurée), + marge de respiration. */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 80px;
}
@media (min-width: 781px) {
	html {
		scroll-padding-top: 185px;
	}
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--adv-bordeaux); }
ul { padding: 0; margin: 0; list-style: none; }

.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}

.adv-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--adv-bordeaux);
	color: #fff;
	padding: 10px 16px;
	z-index: 1000;
}
.adv-skip-link:focus {
	left: 0;
}

body {
	font-family: var(--adv-police-texte);
	color: var(--adv-texte);
	background: var(--adv-creme);
	line-height: 1.65;
}

h1, h2, h3, h4 {
	font-family: var(--adv-police-titres);
	font-optical-sizing: auto;
	font-weight: 600;
	color: var(--adv-bordeaux-fonce);
	line-height: 1.2;
	margin: 0 0 0.5em;
}

h1 { font-size: clamp(2rem, 4.5vw, 3rem); font-weight: 600; }
h2 { font-size: clamp(1.6rem, 3.2vw, 2.2rem); }
h3 { font-weight: 600; }

.adv-container {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 24px;
}

/* --- En-tête ------------------------------------------------------------ */
.adv-header {
	background: var(--adv-creme);
	border-bottom: 1px solid var(--adv-or-clair);
	position: sticky;
	top: 0;
	z-index: 100;
}
.adv-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 24px;
	gap: 16px 24px;
	flex-wrap: wrap;
}
.adv-header__logo {
	/* Empêche le nom du site de forcer une largeur trop grande sur mobile :
	   sans ça, un item flex refuse par défaut de rétrécir sous la largeur
	   de son contenu, et le texte déborde au lieu de passer à la ligne.
	   Pas de flex-grow (1 -> 0) : sinon ce bloc s'étire pour occuper tout
	   l'espace restant de la ligne — invisible avec le texte du site, mais
	   ça poussait le menu à passer à la ligne suivante dès que le logo
	   (image) a pris la place du texte, la largeur totale dépassant alors
	   tout juste celle du bandeau.*/
	min-width: 0;
	flex: 0 1 auto;
	display: flex;
	align-items: center;
	gap: 12px;
}
.adv-header__logo-img {
	display: block;
	height: 48px;
	width: auto;
	max-width: 100%;
	flex-shrink: 0;
}
.adv-footer__logo-img {
	/* Fond clair en médaillon : le logo (tons bordeaux/beige) se fondait
	   dans le fond bordeaux foncé du pied de page — ce fond crée le
	   contraste qui lui manquait, sans avoir besoin d'une version claire
	   séparée du logo. */
	display: block;
	height: 76px;
	width: auto;
	max-width: 100%;
	margin-bottom: 12px;
	background: var(--adv-creme);
	/* Pas un cercle (50%) : le logo n'est pas carré (portrait), un cercle le
	   rognerait en ovale et couperait le haut/bas du dessin. Un rectangle
	   arrondi, même rayon que les autres cartes du site, habille sans rogner. */
	border-radius: var(--adv-radius);
	padding: 10px;
	box-sizing: content-box;
}
.adv-header__site-name {
	font-family: var(--adv-police-titres);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.2;
	color: var(--adv-bordeaux);
	display: block;
	max-width: 220px;
}

.adv-nav-toggle {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 8px;
}
.adv-nav-toggle__bar {
	width: 24px;
	height: 2px;
	background: var(--adv-bordeaux);
}

.adv-menu {
	display: flex;
	/* 9 onglets + le logo tiennent tout juste sur une ligne dans le bandeau :
	   un peu moins d'espace entre chaque onglet (28px -> 18px) pour garder
	   de la place au logo à gauche sans repasser à la ligne. */
	gap: 18px;
	flex-wrap: wrap;
}
.adv-menu a {
	text-decoration: none;
	color: var(--adv-texte);
	font-weight: 600;
	letter-spacing: 0.01em;
	position: relative;
}
.adv-menu a:hover {
	color: var(--adv-terracotta-fonce);
}
/* Page/section en cours : classes ajoutées automatiquement par WordPress
   (wp_nav_menu) sur le <li> du menu qui correspond à la page affichée. */
.adv-menu .current-menu-item > a,
.adv-menu .current_page_item > a,
.adv-menu .current-menu-ancestor > a,
.adv-menu .current_page_ancestor > a,
.adv-menu .current_page_parent > a {
	color: var(--adv-bordeaux);
	/* Pas de font-weight ici (déjà 600 pour tous les liens du menu, voir plus
	   haut) : un texte en gras est un peu plus large, donc "en fonction de
	   l'onglet actif" (court ou long), la largeur totale de la barre changeait
	   de quelques pixels — assez pour faire parfois passer "Mes règlements" à
	   la ligne suivante et parfois non. La couleur + le soulignement
	   ci-dessous suffisent à signaler l'onglet actif sans toucher la largeur. */
}
.adv-menu .current-menu-item > a::after,
.adv-menu .current_page_item > a::after,
.adv-menu .current-menu-ancestor > a::after,
.adv-menu .current_page_ancestor > a::after,
.adv-menu .current_page_parent > a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -6px;
	height: 2px;
	border-radius: 2px;
	background: var(--adv-terracotta);
}

@media (max-width: 780px) {
	.adv-nav-toggle { display: flex; }
	.adv-nav {
		display: none;
		width: 100%;
		order: 3;
	}
	.adv-nav--ouvert { display: block; }
	.adv-menu { flex-direction: column; gap: 4px; padding: 12px 0; }
	.adv-header__site-name { font-size: 1.15rem; }
}

/* --- Hero / Accueil ------------------------------------------------------ */
.adv-hero {
	padding: var(--adv-espace-section) 0;
	background: linear-gradient(160deg, var(--adv-terracotta-clair), var(--adv-creme) 60%);
	text-align: center;
}
.adv-hero__titre {
	font-size: clamp(2.2rem, 5vw, 3.4rem);
}
.adv-hero__texte {
	max-width: 720px;
	margin: 0 auto;
	color: var(--adv-texte-clair);
	font-size: 1.15rem;
}
/* Bloc de marque de la bannière d'accueil (retour client du 19/09/2026) :
   "TRESORS DE CAVE" en gros, "L'aventure du vin" plus petit dessous — pour
   qu'on sache immédiatement où l'on est en arrivant sur le site. */
.adv-hero__marque {
	display: flex;
	flex-direction: column;
	gap: 0.15em;
	margin-bottom: 0.4em;
	min-width: 0;
	max-width: 100%;
}
.adv-hero__marque-principale {
	font-size: clamp(2.8rem, 8vw, 5rem);
	text-transform: uppercase;
	letter-spacing: 0.02em;
	/* Retour client du 23/09/2026 : "sur téléphone le texte est mal mis" —
	   le titre débordait de l'écran sur mobile au lieu de renvoyer à la
	   ligne (bug de dimensionnement flex en cascade). On force le retour
	   à la ligne quoi qu'il arrive. */
	max-width: 100%;
	overflow-wrap: break-word;
}
.adv-hero__marque-secondaire {
	font-size: clamp(1.1rem, 3vw, 1.6rem);
	font-family: var(--adv-police-texte, inherit);
	font-weight: 400;
}

/* --- Bannière visuelle en tête de page (adv_hero_page(), v4) ------------- */
.adv-hero-page {
	background-color: var(--adv-bordeaux-fonce);
	background-size: cover;
	background-position: center;
	color: #fff;
	/* Retour client du 22/09/2026 : bannière agrandie (même logique que
	   l'accueil), pour laisser plus de place aux photos — ex. le portrait
	   de Sylvain sur "Qui suis-je". */
	padding: clamp(80px, 15vw, 180px) 0 clamp(56px, 10vw, 96px);
	text-align: center;
	margin-bottom: var(--adv-espace-section);
}
/* Vidéo en tête de page (5e paramètre de adv_hero_page()) : grande, sans
   texte dessus ; le titre est dans une bande bordeaux juste en dessous. */
.adv-hero-video {
	background: var(--adv-bordeaux-fonce);
	height: clamp(420px, 85vh, 900px);
}
.adv-hero-video__media {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.adv-hero-page--sous-video {
	padding: clamp(28px, 5vw, 56px) 0;
}
.adv-hero-page h1 {
	color: #fff;
	margin-bottom: 0.3em;
}
/* "Qui suis-je" (page-id-37) : photo de Sylvain au domaine Stark-Condé,
   visage dans le tiers supérieur — le cadrage "center" par défaut coupait
   le visage une fois la bannière agrandie. On recentre plus haut. */
.page-id-37 .adv-hero-page {
	background-position: center 30%;
}
/* Retour client du 24/09/2026 : "plus grande la photo" — bannière
   Témoignages agrandie spécifiquement (nouvelle photo de groupe en
   dégustation), sans toucher aux autres pages qui utilisent ce même
   composant de bannière. */
.page-id-38 .adv-hero-page {
	/* Même hauteur totale de bannière qu'avant (140+290 = 280+150), mais
	   padding-top réduit / padding-bottom augmenté pour remonter le bloc
	   titre "Témoignages" dans la bannière (retour client du 24/09/2026 :
	   "Je veux monter ce texte"). */
	padding: clamp(70px, 10vw, 140px) 0 clamp(160px, 26vw, 290px);
	/* Retour client du 24/09/2026 : "le texte de la partie témoignage, tu
	   montes un peu" — le texte d'intro ("Ce que nos élèves...") avait un
	   grand vide au-dessus (cumul de la marge sous la bannière + le
	   padding de la section suivante). */
	margin-bottom: 0;
}
.page-id-38 .adv-hero-page + .adv-section {
	padding-top: clamp(24px, 4vw, 40px);
}
.adv-hero-page__sous-titre {
	max-width: 640px;
	margin: 0 auto;
	font-size: 1.15rem;
	color: rgba(255, 255, 255, 0.92);
}

/* --- Sections génériques -------------------------------------------------- */
.adv-section {
	padding: var(--adv-espace-section) 0;
}
.adv-section + .adv-section,
.adv-hero-page + .adv-section {
	/* Pas 0 : un h2 en 1er enfant n'a pas de quoi empêcher son margin-top de
	   "traverser" un padding-top à 0 (les marges se cumulent avec celles du
	   parent quand celui-ci n'a ni padding ni bordure sur ce côté) — la
	   marge finissait donc au-dessus du changement de fond au lieu d'en
	   dessous. Un padding, contrairement à une margin, ne peut pas
	   s'échapper comme ça : on garde un peu d'espace ici plutôt que 0, pour
	   qu'il y ait toujours de l'air visible sous une ligne de changement de
	   couleur, sans revenir au double espacement complet entre 2 sections
	   de même fond. */
	padding-top: clamp(40px, 6vw, 64px);
}
.adv-section h2 {
	text-align: center;
	margin-bottom: 40px;
}
.adv-section__voir-plus {
	text-align: center;
	margin-top: 40px;
}

/* Alternance douce de fonds pour donner du rythme entre les sections */
.adv-section--vins,
.adv-section--activites,
.adv-section--temoignages,
.adv-section--cpf {
	background: var(--adv-creme-fonce);
	/* Retour client du 19/09/2026 : bien distinguer ce bloc (partenaire
	   externe) du calendrier de masterclass qui suit — bordures dorées en
	   plus du fond teinté et de la phrase explicite. */
	border-top: 3px solid var(--adv-or);
	border-bottom: 3px solid var(--adv-or);
}
.adv-section--extrait {
	background: var(--adv-blanc);
}
/* Sections formulaire (Table Clandestine : Réserver / Demander un devis —
   aussi Masterclass : inscription, Nos vins : Commander / J'ai aimé j'en
   veux encore, Événements & entreprises : devis) : sans ça, elles avaient le
   même fond que le contenu juste au-dessus, tout se mélangeait en un seul
   bloc plat. On teinte légèrement la section, et surtout on pose le
   formulaire dans une vraie carte blanche à ombre (même langage visuel que
   .adv-carte), pour que ça se détache nettement de ce qui précède. */
.adv-section--formulaire,
.adv-page-reachat {
	background: var(--adv-creme-fonce);
}
.adv-section--formulaire .adv-container,
.adv-page-reachat .adv-container {
	background: var(--adv-blanc);
	max-width: 760px;
	padding: clamp(32px, 5vw, 56px);
	border-radius: var(--adv-radius);
	box-shadow: var(--adv-ombre);
}
/* "J'ai aimé, j'en veux encore" affiche maintenant une grille de cartes
   (comme "Vins du moment") avant son formulaire : cette grille a besoin de
   toute la largeur de page, pas de la carte blanche étroite prévue pour un
   formulaire — sans ce correctif, la grille se retrouvait comprimée sur
   760px et repassait à 2 colonnes au lieu de 3. */
.adv-page-reachat .adv-container.adv-container--pleine-largeur {
	background: none;
	max-width: 1180px;
	padding: 0 24px;
	border-radius: 0;
	box-shadow: none;
}
/* Les formulaires "Commander" / "J'ai aimé, j'en veux encore" listent
   maintenant tout le catalogue (jusqu'à 34 vins) : les noms les plus longs
   ("Château de Mérande « Le Sheitan » Gamay 2023 (Savoie)") passaient à la
   ligne dans une carte à 760px. Élargie pour ces 2 formulaires précis
   seulement (pas les autres, plus courts, qui restent bien centrés). */
#form-commande .adv-container,
#form-reachat .adv-container {
	max-width: 920px;
}
/* La grille de cartes de "J'ai aimé, j'en veux encore" (voir plus haut,
   .adv-container--pleine-largeur) doit garder toute la largeur de page :
   sans ce correctif, la règle ID ci-dessus (plus spécifique que la classe
   seule) la recomprimait quand même à 920px. */
#form-reachat .adv-container.adv-container--pleine-largeur {
	max-width: 1180px;
}
.adv-section--cpf .adv-container {
	text-align: center;
	max-width: 720px;
}
.adv-section--cpf h2 {
	margin: 14px 0 10px;
}
.adv-section--cpf p {
	color: var(--adv-texte-clair);
	margin-bottom: 20px;
}
.adv-cpf-actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}
.adv-cpf-dates {
	background: var(--adv-blanc);
	border-radius: var(--adv-radius);
	padding: 24px 28px;
	margin: 20px 0 28px;
	text-align: left;
}
.adv-cpf-dates h3 {
	margin: 0 0 6px;
	font-size: 1.1rem;
}
.adv-cpf-dates__adresse {
	margin: 0 0 14px;
	color: var(--adv-texte-clair);
	font-size: 0.9rem;
}
.adv-cpf-dates__liste {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}
.adv-cpf-dates__liste li {
	padding-left: 18px;
	position: relative;
	font-size: 0.95rem;
}
.adv-cpf-dates__liste li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--adv-or);
}

/* --- Infos pratiques Paris/Rennes (page Masterclass) ----------------------- */
.adv-infos-villes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
	margin-bottom: 32px;
}
.adv-infos-villes__carte {
	background: var(--adv-blanc);
	border-radius: var(--adv-radius);
	box-shadow: var(--adv-ombre);
	padding: 22px 26px;
}
.adv-infos-villes__carte h3 {
	margin: 0 0 12px;
	font-size: 1.15rem;
	color: var(--adv-bordeaux);
}
.adv-infos-villes__carte ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.adv-infos-villes__carte li {
	padding-left: 18px;
	position: relative;
	font-size: 0.92rem;
	color: var(--adv-texte-clair);
}
.adv-infos-villes__carte li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.5em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--adv-terracotta);
}

/* --- Thèmes proposés sans date (page Masterclass) --------------------------- */
.adv-themes-attente {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
}
.adv-themes-attente__item {
	background: var(--adv-blanc);
	border-radius: var(--adv-radius);
	box-shadow: var(--adv-ombre);
	padding: 20px 24px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.adv-themes-attente__item h3 {
	margin: 0;
	font-size: 1.05rem;
}
.adv-themes-attente__item p {
	color: var(--adv-texte-clair);
	font-size: 0.9rem;
	margin: 0;
	flex: 1;
}
.adv-themes-attente__eventbrite {
	/* Volontairement discret : juste une référence vers une édition
	   précédente, le bouton "Proposer ce thème" doit rester l'action
	   principale — on ne veut pas retenir les visiteurs sur Eventbrite. */
	flex: 0 0 auto;
	margin: 0;
}
.adv-themes-attente__eventbrite a {
	font-size: 0.8rem;
	color: var(--adv-texte-clair);
	text-decoration: underline;
}
.adv-themes-attente__eventbrite a:hover {
	color: var(--adv-bordeaux);
}
.adv-themes-attente__item .adv-btn {
	align-self: flex-start;
	margin-top: 6px;
	font-size: 0.85rem;
	padding: 9px 18px;
}

/* --- Sous-titre de groupe (ex. "Prochains départs" / "Ils l'ont déjà
   vécu" sur Vignobles/Événements & entreprises — retour client du
   21/09/2026 : séparer les offres à venir des exemples déjà réalisés) --- */
.adv-sous-titre-groupe {
	text-align: center;
	font-size: 1.15rem;
	color: var(--adv-texte-clair);
	margin: 40px 0 24px;
	padding-top: 24px;
	border-top: 1px solid var(--adv-creme-fonce);
}
.adv-section > .adv-container > .adv-sous-titre-groupe:first-of-type {
	border-top: none;
	padding-top: 0;
}

/* --- Grille de cartes ------------------------------------------------------ */
.adv-grille {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 32px;
}

.adv-carte {
	background: var(--adv-blanc);
	border-radius: var(--adv-radius);
	overflow: hidden;
	box-shadow: var(--adv-ombre);
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.adv-carte:hover {
	transform: translateY(-4px);
	box-shadow: var(--adv-ombre-hover);
}
.adv-carte__image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.adv-carte__image {
	display: block;
	overflow: hidden;
}
.adv-carte:hover .adv-carte__image img {
	transform: scale(1.04);
}

/* --- Grilles "vitrine" : week-ends & voyages vignobles déjà réalisés -----
   (retour client du 20/09/2026) — cartes moins nombreuses par ligne,
   photos bien plus grandes et au format plus cinématique, pour donner
   envie plutôt que présenter une simple liste d'événements. */
.adv-grille--voyages {
	grid-template-columns: repeat(auto-fill, minmax(460px, 1fr));
	gap: 48px;
}
.adv-grille--voyages .adv-carte__image img {
	aspect-ratio: 4 / 3;
}
.adv-grille--voyages .adv-carte__corps {
	padding: 28px;
}

/* --- Carte "vitrine" décorée (retour client du 21/09/2026 : "mettre plus
   de photos et mieux décorer, là juste tu les alignes") : titre en
   surimpression sur la photo avec dégradé, ruban "Déjà réalisé", et une
   petite bande de photos supplémentaires sous la description. ------------- */
.adv-carte--vitrine {
	position: relative;
}
.adv-carte--vitrine .adv-carte__image {
	position: relative;
}
.adv-carte__ruban {
	position: absolute;
	top: 20px;
	left: -36px;
	transform: rotate(-45deg);
	background: var(--adv-or);
	color: var(--adv-texte);
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 5px 42px;
	box-shadow: 0 2px 6px rgba(0,0,0,0.25);
	z-index: 2;
	pointer-events: none;
}
.adv-carte__voile {
	position: absolute;
	inset: auto 0 0 0;
	padding: 32px 24px 20px;
	background: linear-gradient(0deg, rgba(30,14,10,.85) 0%, rgba(30,14,10,.35) 60%, transparent 100%);
}
.adv-carte__titre--voile {
	color: #fff;
	margin: 0 0 6px;
}
.adv-carte__titre--voile,
.adv-carte--vitrine .adv-carte__lien-image {
	text-decoration: none;
}
.adv-carte__meta--voile {
	color: rgba(255,255,255,0.9);
	margin: 0;
}
.adv-carte--vitrine .adv-carte__corps {
	padding-top: 22px;
}
.adv-carte__mini-galerie {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 10px;
	margin: 20px 0 4px;
}
.adv-carte__mini-galerie img,
.adv-carte__mini-galerie video {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--adv-radius-petit);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.adv-carte__mini-galerie img:hover,
.adv-carte__mini-galerie video:hover {
	transform: scale(1.06);
	box-shadow: var(--adv-ombre);
	position: relative;
	z-index: 1;
}
/* Petite anecdote décorative (retour client du 21/09/2026 : "des petites
   histoires alléchantes pas trop longues, juste pour décorer") — citation
   discrète, pas un vrai bloc de contenu. */
.adv-carte__anecdote {
	margin: 16px 0 0;
	font-family: var(--adv-police-titres);
	font-style: italic;
	font-size: 0.95rem;
	color: var(--adv-terracotta-fonce);
}
/* En dessous de 940px (une seule colonne de toute façon), autant garder un
   format un peu moins haut pour ne pas trop faire défiler sur mobile. */
@media (max-width: 940px) {
	.adv-grille--voyages .adv-carte__image img {
		aspect-ratio: 16 / 10;
	}
}
/* Vin : photo produit (bouteille debout, fond clair) — un cadrage 4:3
   façon "photo de salle" coupait le haut et le bas de la bouteille. On
   montre la bouteille en entier (object-fit: contain), sur un fond clair
   qui prolonge naturellement le fond blanc/transparent des photos fournies
   par le client — retour client du 18/09/2026 ("pas giga mis en valeur"). */
.adv-carte--vin .adv-carte__image img {
	aspect-ratio: 3 / 4;
	object-fit: contain;
	background: var(--adv-creme);
	padding: 16px;
}
.adv-carte__titre a:hover { text-decoration: underline; }
.adv-carte__en-savoir-plus {
	display: inline-block;
	margin-top: 10px;
	color: var(--adv-bordeaux);
	font-weight: 700;
	font-size: 0.9rem;
	text-decoration: none;
}
.adv-carte__en-savoir-plus:hover { text-decoration: underline; }

.adv-btn-commander--ajoute {
	background: var(--adv-succes);
	border-color: var(--adv-succes);
}
.adv-carte__corps {
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}
.adv-carte__titre {
	margin: 0;
	font-size: 1.2rem;
}
.adv-carte__titre a {
	color: inherit;
	text-decoration: none;
}
.adv-carte__domaine {
	color: var(--adv-terracotta-fonce);
	font-size: 0.85rem;
	font-weight: 600;
	margin: -4px 0 0;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.adv-carte__meta {
	color: var(--adv-texte-clair);
	font-size: 0.9rem;
	margin: 0;
}
.adv-carte__description {
	font-size: 0.95rem;
	color: var(--adv-texte-clair);
	flex: 1;
}
.adv-carte__description p { margin: 0 0 8px; }
.adv-carte__description p:last-child { margin-bottom: 0; }

.adv-vin-suite { margin-top: 4px; }
.adv-vin-suite summary {
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--adv-bordeaux);
	background: var(--adv-creme);
	border: 1px solid var(--adv-or-clair);
	border-radius: 999px;
	padding: 6px 16px;
	font-family: var(--adv-police-texte);
	font-size: 0.8rem;
	font-weight: 700;
	list-style: none;
}
.adv-vin-suite summary::-webkit-details-marker { display: none; }
.adv-vin-suite summary::after { content: '⌄'; font-size: 0.95em; }
.adv-vin-suite[open] summary::after { content: '⌃'; }
.adv-vin-suite[open] summary { margin-bottom: 8px; }
.adv-vin-suite summary:hover {
	background: var(--adv-bordeaux);
	border-color: var(--adv-bordeaux);
	color: #fff;
}
.adv-carte__pied {
	display: flex;
	align-items: center;
	/* Pas de justify-content: space-between ici : ça ne marche que quand le
	   prix ET le bouton sont tous les deux présents. Or le prix (adv-carte__prix)
	   ne s'affiche que si le champ "Prix bouteille" est rempli — pour un vin
	   sans prix renseigné, le bouton se retrouvait seul dans ce conteneur, et
	   space-between avec un seul élément le collait à gauche au lieu de le
	   laisser à droite. Le margin-left: auto ci-dessous sur le bouton/badge
	   le pousse à droite dans tous les cas, prix présent ou non. */
	margin-top: auto;
	padding-top: 10px;
	gap: 12px;
}
.adv-carte__prix {
	font-weight: 700;
	color: var(--adv-bordeaux);
	font-size: 1.1rem;
	font-family: var(--adv-police-titres);
}
.adv-carte__pied .adv-btn--reserver,
.adv-carte__pied .adv-badge--indispo,
.adv-carte__pied .adv-badge--realise {
	/* Toujours plaqué à droite du pied de carte, que le prix soit affiché
	   à côté (auto le pousse contre le bord) ou totalement absent (auto le
	   sort du bord gauche par défaut du flex). */
	margin-left: auto;
}
.adv-carte__prix-unite {
	font-weight: 400;
	color: var(--adv-texte-clair);
	font-size: 0.8rem;
	font-family: var(--adv-police-texte);
}

/* --- Inscription repliée dans l'encart CPF --------------------------------- */
/* <details> natif, pas de JS de framework nécessaire pour l'ouvrir/fermer.
   Voir archive-masterclass.php, encart "Certificat de dégustation CPF". */
.adv-cpf-inscription summary {
	list-style: none;
	margin: 0 auto;
	width: fit-content;
}
.adv-cpf-inscription summary::-webkit-details-marker {
	display: none;
}
.adv-cpf-inscription__formulaire {
	text-align: left;
	padding: 20px 0 0;
}

/* --- Boutons et badges ------------------------------------------------------ */
.adv-btn {
	display: inline-block;
	background: var(--adv-terracotta);
	color: #fff;
	text-decoration: none;
	padding: 12px 26px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.95rem;
	border: 1px solid var(--adv-terracotta);
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.adv-btn:hover {
	background: var(--adv-terracotta-fonce);
	border-color: var(--adv-terracotta-fonce);
	color: #fff;
	transform: translateY(-1px);
}
.adv-btn--discret {
	background: transparent;
	color: var(--adv-bordeaux);
	border-color: var(--adv-bordeaux);
}
.adv-btn--discret:hover {
	background: var(--adv-bordeaux);
	color: #fff;
}

.adv-badge {
	display: inline-block;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: 0.85rem;
	font-weight: 600;
}
.adv-badge--indispo,
.adv-badge--realise {
	background: var(--adv-creme-fonce);
	color: var(--adv-texte-clair);
}
.adv-badge--cpf {
	background: var(--adv-or);
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	font-size: 0.8rem;
}

/* --- Filtres (page Nos vins) ------------------------------------------------ */
.adv-filtres {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 16px;
	background: var(--adv-blanc);
	padding: 22px;
	border-radius: var(--adv-radius);
	box-shadow: var(--adv-ombre);
	margin-bottom: 40px;
}
.adv-filtres__champ {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.adv-filtres__champ label {
	font-size: 0.85rem;
	color: var(--adv-texte-clair);
	font-weight: 600;
}
.adv-filtres select,
.adv-filtres input,
.adv-page-reservation input,
.adv-page-reservation textarea,
.adv-page-reservation select {
	padding: 10px 14px;
	border: 1px solid var(--adv-creme-fonce);
	border-radius: var(--adv-radius-petit);
	font-family: inherit;
	font-size: 0.95rem;
	background: var(--adv-blanc);
}

/* --- Sous-navigation "aller directement à…" (page Nos vins) ----------------
   Reste visible pendant le défilement (position: sticky), collée juste
   sous l'en-tête principal (lui-même sticky) — top: doit donc correspondre
   à la hauteur réelle de l'en-tête à chaque taille d'écran, mêmes valeurs
   que le scroll-padding-top plus haut dans ce fichier, sinon la barre se
   retrouve cachée derrière l'en-tête au lieu de s'afficher sous lui. */
.adv-vins-nav {
	background: var(--adv-blanc);
	border-bottom: 1px solid var(--adv-creme-fonce);
	position: sticky;
	top: 80px;
	z-index: 90;
	box-shadow: 0 4px 10px rgba(74, 30, 20, 0.06);
}
@media (min-width: 781px) {
	.adv-vins-nav { top: 185px; }
}
.adv-vins-nav__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 20px;
	padding: 12px 24px;
}
.adv-vins-nav__liens {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
}
.adv-vins-nav__liens a {
	color: var(--adv-bordeaux);
	font-weight: 700;
	font-size: 0.9rem;
	text-decoration: none;
	white-space: nowrap;
}
.adv-vins-nav__liens a:hover { text-decoration: underline; }
.adv-vins-nav__commande {
	padding: 8px 18px;
	font-size: 0.85rem;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
/* Reste discret tant qu'aucun vin n'est sélectionné (fond neutre plutôt que
   le terracotta plein), pour ne pas donner l'impression qu'il y a déjà une
   commande en cours dès l'arrivée sur la page. */
.adv-vins-nav__commande:not(.adv-vins-nav__commande--rempli) {
	background: transparent;
	color: var(--adv-bordeaux);
	border-color: var(--adv-bordeaux);
}
.adv-vins-nav__commande:not(.adv-vins-nav__commande--rempli):hover {
	background: var(--adv-bordeaux);
	color: #fff;
}
@keyframes adv-pulse-commande {
	0%   { transform: scale( 1 ); }
	35%  { transform: scale( 1.12 ); }
	100% { transform: scale( 1 ); }
}
.adv-vins-nav__commande--pulse {
	animation: adv-pulse-commande 0.4s ease;
}
@media (prefers-reduced-motion: reduce) {
	.adv-vins-nav__commande--pulse { animation: none; }
}

/* Écrans larges : la barre horizontale (collée sous l'en-tête, toujours à
   l'écran) prend une bande entière en hauteur en permanence — gênant pour
   regarder les vins (retour client du 18/09/2026). À partir de 1300px, il y
   a assez de marge à gauche du contenu (celui-ci est lui-même centré, max
   1180px) pour la transformer en petit panneau flottant sur le côté :
   même bouton, même logique JS, juste une autre mise en page. */
@media (min-width: 1300px) {
	.adv-vins-nav {
		position: fixed;
		top: 50%;
		left: 20px;
		transform: translateY(-50%);
		width: 200px;
		border: 1px solid var(--adv-creme-fonce);
		border-bottom: 1px solid var(--adv-creme-fonce);
		border-radius: var(--adv-radius);
		box-shadow: var(--adv-ombre);
	}
	.adv-vins-nav__inner {
		flex-direction: column;
		align-items: stretch;
		padding: 18px;
	}
	.adv-vins-nav__liens {
		flex-direction: column;
		gap: 12px;
	}
	.adv-vins-nav__commande {
		margin-top: 16px;
		text-align: center;
	}
}

/* --- Fiche détail vin (single-vin.php) -------------------------------------- */
.adv-fiche-vin__inner {
	display: grid;
	grid-template-columns: minmax(0, 380px) minmax(0, 1fr);
	gap: 48px;
	padding: var(--adv-espace-section) 24px;
	align-items: start;
}
@media (max-width: 780px) {
	.adv-fiche-vin__inner {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}
.adv-fiche-vin__image {
	position: relative;
	background: var(--adv-creme);
	border-radius: var(--adv-radius);
	padding: 32px;
	text-align: center;
}
.adv-fiche-vin__image img {
	width: 100%;
	max-height: 520px;
	object-fit: contain;
	margin: 0 auto;
}
.adv-fiche-vin__image .adv-badge--coup-de-coeur {
	position: absolute;
	top: 16px;
	left: 16px;
}
.adv-fiche-vin__fil { margin: 0 0 16px; }
.adv-fiche-vin__fil a {
	color: var(--adv-texte-clair);
	font-size: 0.9rem;
	text-decoration: none;
}
.adv-fiche-vin__fil a:hover { text-decoration: underline; }
.adv-fiche-vin__meta {
	color: var(--adv-texte-clair);
	font-size: 1.05rem;
	margin: 4px 0 20px;
}
.adv-fiche-vin__description { max-width: 640px; }
.adv-fiche-vin__description p { margin: 0 0 14px; }
.adv-fiche-vin__achat {
	margin-top: 28px;
	padding-top: 24px;
	border-top: 1px solid var(--adv-creme-fonce);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 20px;
}
.adv-fiche-vin__achat .adv-carte__offre { width: 100%; margin: -4px 0 0; }

/* --- Fiche détail (événement / formation) ----------------------------------- */
.adv-fiche__bandeau img {
	width: 100%;
	max-height: 620px;
	object-fit: cover;
}

/* --- Bandeau photo en tête d'une page (ex. Table Clandestine) --------------- */
.adv-page__bandeau img {
	width: 100%;
	max-height: 460px;
	object-fit: cover;
}
.adv-fiche__contenu {
	padding-top: 40px;
}
.adv-fiche__infos {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	margin: 16px 0 28px;
	color: var(--adv-texte-clair);
}
.adv-fiche__action {
	margin-top: 28px;
}
.adv-fiche__galerie {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 16px;
	margin-top: 24px;
}
.adv-fiche__galerie img,
.adv-fiche__galerie video {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--adv-radius);
}

/* --- Défilement glissable d'illustrations (page Table Clandestine) ---------- */
/* Défilement horizontal natif (overflow-x + scroll-snap) : fonctionne au
   doigt sur mobile/tactile et au trackpad sans JS. La classe .adv-glisseur
   ajoute en plus le glisser-déposer à la souris (voir assets/js/main.js). */
.adv-tc-diaporama {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 4px 4px 12px;
	margin: 0 -4px;
}
.adv-tc-diaporama::-webkit-scrollbar {
	display: none;
}
.adv-tc-diaporama img,
.adv-tc-diaporama video {
	flex: 0 0 auto;
	width: min(88vw, 640px);
	height: clamp(320px, 46vw, 520px);
	object-fit: cover;
	border-radius: var(--adv-radius);
	box-shadow: var(--adv-ombre);
	scroll-snap-align: center;
	pointer-events: none; /* évite le "fantôme" de glisser-déposer natif du navigateur sur l'image */
}
.adv-glisseur {
	cursor: grab;
	user-select: none;
}
.adv-glisseur.adv-glisseur--actif {
	cursor: grabbing;
	scroll-snap-type: none;
}

/* --- Présentation du dîner (page Table Clandestine) ------------------------- */
/* Un seul produit sur cette page : un bloc de présentation unique (texte +
   prix/CTA), pas une grille de fiches à parcourir/cliquer. */
.adv-tc-presentation__inner {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 32px;
	align-items: center;
}
/* Carte "billet VIP" sombre et dorée — plus proche de l'esprit secret/
   intimiste de la Table Clandestine qu'un simple encart blanc. */
.adv-tc-presentation__prix {
	position: relative;
	overflow: hidden;
	background: linear-gradient(165deg, var(--adv-bordeaux-fonce), #2b140e);
	border-radius: var(--adv-radius);
	box-shadow: var(--adv-ombre-hover);
	padding: 36px 28px 30px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	transition: transform 0.2s ease;
}
.adv-tc-presentation__prix:hover {
	transform: translateY(-4px);
}
.adv-tc-presentation__prix::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, transparent, var(--adv-or), transparent);
}
.adv-tc-presentation__eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--adv-or-clair);
	margin-bottom: 10px;
}
.adv-tc-presentation__montant {
	font-family: var(--adv-police-titres);
	font-size: 2.6rem;
	font-weight: 700;
	color: #fff;
	line-height: 1;
}
.adv-tc-presentation__unite {
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.9rem;
	margin-top: 4px;
}
.adv-tc-presentation__detail {
	color: var(--adv-or-clair);
	font-size: 0.85rem;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	width: 100%;
}
/* Liste de tarifs (Événements & entreprises : 3 formules) — variante de la
   carte VIP pour un prix qui dépend d'une formule, plutôt qu'un seul
   montant fixe. */
.adv-tc-presentation__tarifs {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
}
.adv-tc-presentation__tarifs li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 7px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.95rem;
}
.adv-tc-presentation__tarifs li:first-child {
	padding-top: 0;
}
.adv-tc-presentation__tarifs li:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.adv-tc-presentation__tarifs strong {
	font-family: var(--adv-police-titres);
	color: #fff;
	font-size: 1.15rem;
}
.adv-tc-presentation__prix .adv-btn {
	margin-top: 16px;
	background: var(--adv-or);
	border-color: var(--adv-or);
	color: var(--adv-bordeaux-fonce);
	font-weight: 700;
}
.adv-tc-presentation__prix .adv-btn:hover {
	background: var(--adv-or-clair);
	border-color: var(--adv-or-clair);
	color: var(--adv-bordeaux-fonce);
}
@media (max-width: 780px) {
	.adv-tc-presentation__inner {
		grid-template-columns: 1fr;
	}
}

.adv-tc-diaporama__indice {
	text-align: center;
	color: var(--adv-texte-clair);
	font-style: italic;
	font-size: 0.9rem;
	margin: 0 0 16px;
}
.adv-tc-diaporama-cadre {
	position: relative;
}
.adv-tc-diaporama__fleche {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: none;
	background: rgba(43, 20, 14, 0.55);
	color: #fff;
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s ease, transform 0.15s ease;
}
.adv-tc-diaporama__fleche:hover {
	background: var(--adv-terracotta);
}
.adv-tc-diaporama__fleche--prev {
	left: 4px;
}
.adv-tc-diaporama__fleche--next {
	right: 4px;
}
@media (max-width: 600px) {
	.adv-tc-diaporama__fleche {
		width: 36px;
		height: 36px;
		font-size: 1.3rem;
	}
}

/* --- Page Contact / RIB ------------------------------------------------------ */
.adv-page-contact__coordonnees { margin: 20px 0; display: flex; flex-direction: column; gap: 6px; }
.adv-rib {
	background: var(--adv-terracotta-clair);
	border-left: 4px solid var(--adv-or);
	padding: 24px 28px;
	border-radius: var(--adv-radius);
	margin-top: 24px;
}
.adv-rib h3 { margin-top: 0; }
.adv-rib ul { display: flex; flex-direction: column; gap: 4px; }

/* --- Notices ------------------------------------------------------------------ */
.adv-notice {
	background: #fdf0de;
	border-left: 4px solid var(--adv-or);
	padding: 14px 18px;
	border-radius: var(--adv-radius-petit);
}
.adv-notice--discret {
	background: none;
	border-left: none;
	padding: 0;
	font-style: italic;
	color: var(--adv-texte-clair);
	font-size: 0.92rem;
}

/* --- Pied de page -------------------------------------------------------------- */
.adv-footer {
	background: var(--adv-bordeaux-fonce);
	color: #f2e2d2;
	margin-top: var(--adv-espace-section);
}
.adv-footer__inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 32px;
	padding: 56px 24px;
}
.adv-footer a { color: #f2e2d2; }
.adv-footer__site-name { font-family: var(--adv-police-titres); font-weight: 600; font-size: 1.25rem; margin: 0 0 8px; }
.adv-menu--footer { flex-direction: column; gap: 8px; }
.adv-footer__bas {
	border-top: 1px solid rgba(255,255,255,0.14);
	padding: 16px 0;
	font-size: 0.85rem;
	opacity: 0.85;
}

/* --- Formulaires Fluent Forms : intégration visuelle légère -------------------- */
/* Par défaut, un champ Fluent Forms s'étire à la largeur de son conteneur —
   sur nos pages (.adv-container fait 1180px), ça donne des champs "Nom
   complet" ou "Téléphone" absurdement longs. On limite la largeur du
   formulaire lui-même, pas juste des champs, pour un rendu plus lisible. */
.fluentform {
	max-width: 480px;
}
.fluentform label,
.fluentform .ff-el-form-check-label {
	color: var(--adv-texte);
}
.fluentform button[type="submit"],
.fluentform .ff-btn-submit {
	background: var(--adv-terracotta) !important;
	border-color: var(--adv-terracotta) !important;
	border-radius: 999px !important;
}
.fluentform button[type="submit"]:hover,
.fluentform .ff-btn-submit:hover {
	background: var(--adv-terracotta-fonce) !important;
	border-color: var(--adv-terracotta-fonce) !important;
}

/* --- Badge "coup de cœur" sur les cartes vin ----------------------------------- */
.adv-carte__image { position: relative; }
.adv-badge--coup-de-coeur {
	position: absolute;
	top: 14px;
	left: 14px;
	background: var(--adv-or);
	color: var(--adv-texte);
	padding: 5px 14px;
	border-radius: 999px;
	font-size: 0.8rem;
	font-weight: 700;
	box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.adv-carte__offre {
	font-size: 0.85rem;
	color: var(--adv-terracotta-fonce);
	font-weight: 600;
	margin: 0;
}

/* --- Réachat groupé ("J'ai aimé et j'en veux à nouveau") ----------------------- */
.adv-liste-reachat {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 20px 0 32px;
}
.adv-liste-reachat__item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	background: var(--adv-blanc);
	padding: 14px 18px;
	border-radius: var(--adv-radius);
	box-shadow: var(--adv-ombre);
}
.adv-liste-reachat__item > label:first-child {
	flex: 1 1 380px;
	min-width: 0;
}
.adv-liste-reachat__qte {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.85rem;
	color: var(--adv-texte-clair);
	flex: 0 0 auto;
}
.adv-liste-reachat__qte input {
	width: 80px;
	padding: 6px 10px;
	border: 1px solid var(--adv-creme-fonce);
	border-radius: var(--adv-radius-petit);
}
.adv-liste-reachat__retirer {
	flex: 0 0 auto;
	background: none;
	border: 0;
	color: var(--adv-erreur);
	font-size: 0.8rem;
	font-weight: 700;
	cursor: pointer;
	padding: 4px 0;
}
.adv-liste-reachat__retirer:hover { text-decoration: underline; }

/* "Votre sélection" : récapitulatif compact rempli par JS (voir main.js),
   pour ne pas obliger le client à faire défiler tout le catalogue pour
   retrouver ses vins — retour client du 18/09/2026. */
.adv-selection-vins {
	background: var(--adv-creme);
	border: 1px solid var(--adv-or-clair);
	border-radius: var(--adv-radius);
	padding: 18px 20px;
	margin: 20px 0;
}
.adv-selection-vins h3 {
	margin: 0 0 4px;
	font-size: 1.05rem;
}
.adv-selection-vins .adv-liste-reachat {
	margin: 14px 0 0;
}

/* Catalogue complet : replié par défaut (natif, fonctionne sans JS) — la
   liste des 34 vins ne s'affiche que si on choisit de la parcourir. */
.adv-catalogue-complet {
	margin: 20px 0 0;
}
.adv-catalogue-complet summary {
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--adv-bordeaux);
	background: var(--adv-creme);
	border: 1px solid var(--adv-or-clair);
	border-radius: 999px;
	padding: 8px 18px;
	font-weight: 700;
	font-size: 0.9rem;
	list-style: none;
}
.adv-catalogue-complet summary::-webkit-details-marker { display: none; }
.adv-catalogue-complet summary::after { content: '⌄'; }
.adv-catalogue-complet[open] summary::after { content: '⌃'; }
.adv-catalogue-complet summary:hover {
	background: var(--adv-bordeaux);
	border-color: var(--adv-bordeaux);
	color: #fff;
}
.adv-catalogue-complet .adv-liste-reachat {
	margin-top: 16px;
}
.adv-form-reachat input[type="text"],
.adv-form-reachat input[type="email"],
.adv-form-reachat input[type="tel"],
.adv-form-reachat textarea,
.adv-form-reachat select {
	width: 100%;
	max-width: 420px;
	padding: 10px 14px;
	border: 1px solid var(--adv-creme-fonce);
	border-radius: var(--adv-radius-petit);
	font-family: inherit;
	font-size: 0.95rem;
}

/* Adresse de livraison en champs séparés (numéro, rue, code postal, ville,
   pays) — retour client du 19/09/2026, pour éviter les adresses saisies en
   vrac dans un simple champ texte. Numéro/rue et code postal/ville sur une
   même ligne (repère visuel d'une vraie adresse postale), pays seul. */
.adv-adresse-structuree__ligne {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	max-width: 420px;
}
.adv-adresse-structuree__ligne label { margin: 0; }
.adv-adresse-structuree__numero,
.adv-adresse-structuree__cp {
	flex: 0 0 110px;
}
.adv-adresse-structuree__rue,
.adv-adresse-structuree__ville {
	flex: 1 1 200px;
	min-width: 0;
}
.adv-adresse-structuree__numero input,
.adv-adresse-structuree__cp input,
.adv-adresse-structuree__rue input,
.adv-adresse-structuree__ville input {
	max-width: 100% !important;
}
.adv-notice--succes {
	background: #e8f3ea;
	border-left-color: var(--adv-succes);
}

/* --- Témoignages ---------------------------------------------------------------- */
.adv-temoignage__note { color: var(--adv-or); margin: 0 0 8px; font-size: 1.1rem; }
.adv-temoignage__texte { margin: 0 0 12px; font-style: italic; color: var(--adv-texte-clair); font-family: var(--adv-police-titres); font-size: 1.05rem; }
.adv-temoignage__texte p { margin: 0 0 10px; }
.adv-temoignage__texte p:last-child { margin-bottom: 0; }
.adv-temoignage__auteur { margin: 0; }

.adv-temoignage__suite { margin-top: 10px; }
.adv-temoignage__suite summary {
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--adv-bordeaux);
	background: var(--adv-creme);
	border: 1px solid var(--adv-or-clair);
	border-radius: 999px;
	padding: 6px 16px;
	font-family: var(--adv-police-texte);
	font-style: normal;
	font-size: 0.8rem;
	font-weight: 700;
	list-style: none;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.adv-temoignage__suite summary::-webkit-details-marker { display: none; }
.adv-temoignage__suite summary::after { content: '⌄'; font-size: 0.95em; }
.adv-temoignage__suite[open] summary::after { content: '⌃'; }
.adv-temoignage__suite[open] summary { margin-bottom: 10px; }
.adv-temoignage__suite summary:hover {
	background: var(--adv-bordeaux);
	border-color: var(--adv-bordeaux);
	color: #fff;
}

/* --- Contact Paris / Rennes ------------------------------------------------------ */
.adv-page-contact__grille {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 24px;
	margin: 24px 0;
}

/* --- Accueil v3/v4 : bannière photo ------------------------------------------------- */
.adv-hero--photo {
	/* Retour client du 22/09/2026 : "essaye d'insérer la photo telle
	   qu'elle" — après plusieurs essais de recadrage (cover plein écran,
	   photo encadrée), la photo est maintenant une vraie image (pas un
	   fond CSS) affichée à sa taille naturelle : jamais recadrée.
	   Retour client (suite) : "espace au-dessus de la photo à supprimer"
	   — .adv-hero (règle de base) mettait un padding + un fond dégradé
	   crème ; on les annule ici pour que la photo touche directement le
	   bandeau de navigation. "le texte recadré pour qu'on le voit quand on
	   rentre sur le site" — le texte passe en haut de la photo (au lieu du
	   bas) pour être visible immédiatement, quelle que soit la hauteur de
	   la photo affichée (très variable selon la largeur d'écran, la photo
	   n'étant jamais recadrée). */
	position: relative;
	overflow: hidden;
	color: #fff;
	padding: 0;
	background: none;
}
.adv-hero__image {
	display: block;
	width: 100%;
	height: auto;
}
.adv-hero__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-start;
	background: linear-gradient(180deg, rgba(78, 22, 32, .82) 0%, rgba(78, 22, 32, .05) 45%);
	/* Retour client du 22/09/2026 : "descend le texte un peu" */
	padding: 100px 0 40px;
}
/* Retour client du 22/09/2026 : "recentre-le un peu le texte" — en flex,
   .adv-container ne prenait que la largeur de son contenu (aligné à
   gauche) au lieu de toute la largeur, empêchant le text-align:center
   (hérité de .adv-hero) de centrer le titre dans la bannière. */
.adv-hero__overlay .adv-container {
	width: 100%;
	/* Retour client du 23/09/2026 : "sur téléphone le texte est mal mis" —
	   le titre en grande police empêchait ce conteneur (item flex) de
	   rétrécir sous la largeur de son contenu, ce qui le faisait déborder
	   de l'écran sur mobile au lieu de renvoyer le texte à la ligne. */
	min-width: 0;
}
.adv-hero--photo .adv-hero__titre,
.adv-hero--photo .adv-hero__texte {
	color: #fff;
}
/* Retour client du 23/09/2026 : "sur téléphone le texte est mal mis" — le
   titre débordait de l'écran sur mobile (le clamp() du titre ne descend
   pas assez bas sur les petits écrans). Taille fixe et sûre en dessous de
   480px plutôt que de dépendre du clamp(). */
@media (max-width: 480px) {
	.adv-hero__marque-principale {
		font-size: 2rem;
	}
	.adv-hero__marque-secondaire {
		font-size: 1rem;
	}
	.adv-hero__overlay .adv-hero__texte {
		font-size: 0.95rem;
	}
}

/* --- Accueil : aperçu des activités (vignettes) ------------------------------- */
.adv-grille--activites {
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.adv-vignette {
	display: block;
	background: var(--adv-blanc);
	border-radius: var(--adv-radius);
	box-shadow: var(--adv-ombre);
	padding: 28px 24px;
	text-decoration: none;
	color: inherit;
	border-top: 3px solid var(--adv-or);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.adv-vignette:hover {
	transform: translateY(-4px);
	box-shadow: var(--adv-ombre-hover);
}
.adv-vignette h3 {
	margin: 0 0 6px;
	font-size: 1.15rem;
}
.adv-vignette p {
	margin: 0;
	color: var(--adv-texte-clair);
	font-size: 0.92rem;
}

/* --- Accueil : extraits (Qui suis-je) ----------------------------------------- */
.adv-section--extrait__inner {
	max-width: 720px;
	text-align: center;
	margin: 0 auto;
}
.adv-section--extrait__inner p {
	color: var(--adv-texte-clair);
	font-size: 1.08rem;
}

/* --- Accueil : bandeau règlement ----------------------------------------------- */
.adv-bandeau-reglement {
	background: var(--adv-bordeaux);
	padding: 36px 0;
}
.adv-bandeau-reglement__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 20px;
	text-align: center;
}
.adv-bandeau-reglement__inner p {
	margin: 0;
	color: #fff;
	font-size: 1.02rem;
}
.adv-bandeau-reglement .adv-btn--discret {
	color: #fff;
	border-color: rgba(255,255,255,0.6);
}
.adv-bandeau-reglement .adv-btn--discret:hover {
	background: #fff;
	color: var(--adv-bordeaux);
}

/* --- Pied de page : réseaux sociaux ----------------------------------------------- */
.adv-footer__social {
	display: flex;
	gap: 16px;
	margin-top: 12px;
}
.adv-footer__social a {
	text-decoration: underline;
}

/* --- Pages génériques (page.php) : titre simple sans bannière (mentions légales) -- */
.adv-page__contenu {
	max-width: 760px;
}
.adv-page__contenu h2 { margin-top: 2.2em; }
.adv-page__contenu h3 { margin-top: 1.6em; }

/* Points encore à trancher avec le client avant mise en ligne définitive
   (CGU/CGV) — reprend la convention "italique orangé" du document source,
   pour rester repérable au premier coup d'œil dans l'admin comme sur le
   site tant que ces points ne sont pas tranchés. */
.adv-a-completer {
	color: var(--adv-terracotta-fonce);
	font-style: italic;
}

/* --- Exemple de voyage vignobles (page Vignobles) --------------------------- */
.adv-voyage-exemple {
	background: var(--adv-blanc);
	border-radius: var(--adv-radius);
	box-shadow: var(--adv-ombre);
	padding: 28px 32px;
	margin: 24px 0 32px;
	max-width: 680px;
}
.adv-voyage-exemple__badge {
	display: inline-block;
	background: var(--adv-or-clair);
	color: var(--adv-bordeaux-fonce);
	padding: 5px 14px;
	border-radius: 999px;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin-bottom: 12px;
}
.adv-voyage-exemple h3 {
	margin: 0 0 10px;
	font-size: 1.3rem;
}
.adv-voyage-exemple p {
	color: var(--adv-texte-clair);
	margin-bottom: 14px;
}
.adv-voyage-exemple ul {
	margin: 0 0 20px;
	display: grid;
	gap: 8px;
}
.adv-voyage-exemple li {
	padding-left: 18px;
	position: relative;
	font-size: 0.95rem;
	color: var(--adv-texte);
}
.adv-voyage-exemple li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--adv-terracotta);
}

/* --- "Dernièrement" : notes d'actualité sur l'accueil -------------------- */
.adv-section--dernierement {
	background: var(--adv-creme-fonce);
}
.adv-carte--dernierement .adv-carte__description p:last-child {
	margin-bottom: 0;
}

/* Témoignages : profil (Sommelier, Caviste…) et formations/événements suivis. */
.adv-temoignage__parcours {
	margin: 0.2em 0 0;
	font-size: 0.9rem;
	color: var(--adv-texte-clair);
}
.adv-temoignage__profil {
	display: inline-block;
	margin-right: 0.6em;
	padding: 2px 10px;
	border-radius: 999px;
	background: var(--adv-creme-fonce);
	font-weight: 600;
}

/* --- Pop-up "Dernièrement" (accueil, 1re visite) ------------------------- */
.adv-popup-dernierement {
	width: min(560px, calc(100% - 32px));
	max-height: 85vh;
	overflow-y: auto;
	padding: 28px 24px;
	border: 0;
	border-radius: 12px;
	background: #fff;
	color: var(--adv-texte, #2b2b2b);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}
.adv-popup-dernierement::backdrop {
	background: rgba(40, 10, 18, 0.6);
}
.adv-popup-dernierement h2 {
	margin-top: 0;
}
.adv-popup-dernierement__fermer {
	position: absolute;
	top: 8px;
	right: 12px;
	border: 0;
	background: none;
	font-size: 2rem;
	line-height: 1;
	cursor: pointer;
	color: var(--adv-bordeaux);
}
.adv-popup-dernierement__note + .adv-popup-dernierement__note {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid var(--adv-creme-fonce);
}
.adv-popup-dernierement__note img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	margin-bottom: 8px;
}
.adv-popup-dernierement__note h3 {
	margin: 0 0 0.4em;
}

/* RIB : IBAN/BIC révélés au clic (voir adv_get_rib_html()). */
.adv-rib__secret ul {
	margin: 0 0 12px;
}
.adv-rib__afficher {
	margin-top: 8px;
}
