/* Cave Saint Etienne · Pages Dégustations (lot 7)
   Portée depuis maquettes/degustations.css, partie « Pages Dégustations ». Aucune valeur nouvelle :
   uniquement des variables --cse-… existantes. Chargée après cse-accueil.css, sur le site et dans l'éditeur.
   Étape 2 : styles des blocs dynamiques (cse/agenda, cse/a-la-une, cse/autres-rdv, cse/prochaine-soiree).
   Étape 3 : sections des compositions de la page Dégustations (fil d'Ariane, en-tête de page et
   carte « rdv », Ce samedi, agenda, mode d'emploi, soirées d'initiation, questions fréquentes).
   Étape 4 : fiche d'un rendez-vous (gabarit single-cse_rdv.html, blocs cse/fil-ariane,
   cse/fiche-entete, cse/fiche-infos, cse/cuvees, compositions rdv-samedi et rdv-soiree).
   Étape 5 : carte d'appel « Demander une place » (cse/fiche-inscription, grille ev-form adaptée)
   et barre d'action mobile (cse/barre-mobile, .barre-mob, .is-off). */

/* ---- Remises à zéro des listes et titres produits par les blocs ----
   (la maquette remet ul/ol à zéro partout ; le thème ne le fait que pour les Groupes). */
.wp-block-cse-agenda, .ag-list, .une .cuvees{margin:0; padding:0; list-style:none}
:is(.wp-block-cse-agenda, .wp-block-cse-a-la-une, .wp-block-cse-autres-rdv, .wp-block-cse-prochaine-soiree) :is(h3, h4, p, ul, ol){margin-block:0}

/* ---- À la une : le prochain samedi (cse/a-la-une) ---- */
.une{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); background:var(--cse-blanc); border:1px solid rgba(42,27,23,.1); border-radius:var(--cse-radius-m); overflow:hidden; position:relative}
.une__media{position:relative; min-height:100%}
.une__media img{display:block; width:100%; height:100%; object-fit:cover; aspect-ratio:1}
.une__date{position:absolute; left:16px; top:16px; display:grid; justify-items:center; padding:10px 14px 8px; border-radius:var(--cse-radius-s); background:var(--cse-papier); font:500 var(--cse-fs-label)/1.2 var(--cse-font-etiq); letter-spacing:.1em; text-transform:uppercase; color:var(--cse-text-muted)}
.une__date b{font:300 2.5rem/1 var(--cse-font-titre); color:var(--cse-bordeaux); letter-spacing:0}
.une__body{display:grid; gap:14px; align-content:center; padding:clamp(22px, 3vw, 44px)}
.une__body h3{font:300 clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem)/1.08 var(--cse-font-titre); letter-spacing:-.01em}
.une__body h3 em{color:var(--cse-accent)}
.une__body > p{color:var(--cse-text-muted)}
.cuvees{display:grid; border-top:1px solid var(--cse-line)}
.cuvees li{display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--cse-line); font-size:.9375rem}
.cuvees li span:last-child{font:500 var(--cse-fs-label)/1.6 var(--cse-font-etiq); letter-spacing:.08em; text-transform:uppercase; color:var(--cse-text-muted); white-space:nowrap}
.cuvees li span:only-child{font:inherit; letter-spacing:normal; text-transform:none; color:inherit; white-space:normal}
.une__foot{display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin-top:4px}
.une__foot .cse-link-arrow{margin-left:auto}
.une .cse-card__link::after{z-index:1}
.une a:not(.cse-card__link){position:relative; z-index:2}
@media (max-width: 860px){ .une{grid-template-columns:1fr} .une__media img{aspect-ratio:16/10} }
@media (max-width: 480px){ .cuvees li{flex-direction:column; gap:2px} .une__foot .cse-link-arrow{margin-left:0} .une__foot .cse-tag{letter-spacing:.05em; padding-inline:9px} }

/* ---- Agenda : groupes par mois et lignes (cse/agenda, variante page) ---- */
.ag-month{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; padding:14px 0; border-top:1px solid var(--cse-text)}
.ag-month h3{font:400 1.5rem/1.1 var(--cse-font-titre)}
.ag-month .cse-label{white-space:nowrap}
.ag-list{border-top:1px solid var(--cse-line)}
.ag-list + .ag-month{margin-top:36px}
.ag-row{position:relative; display:grid; grid-template-columns:76px 148px minmax(0,1fr) auto; gap:24px; align-items:center; padding:20px 0; border-bottom:1px solid var(--cse-line)}
.ag-row:hover h4 a{color:var(--cse-bordeaux)}
.ag-row time{display:grid; justify-items:start; gap:2px; font:500 var(--cse-fs-label)/1.2 var(--cse-font-etiq); letter-spacing:.1em; text-transform:uppercase; color:var(--cse-text-muted)}
.ag-row time b{font:300 2.5rem/1 var(--cse-font-titre); letter-spacing:0; color:var(--cse-bordeaux); font-variant-numeric:lining-nums}
.ag-row time.is-tbd b{font:italic 300 1.375rem/1.1 var(--cse-font-titre); text-transform:none}
.ag-row img, .ag-row__ph{display:block; width:148px; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:var(--cse-radius-s)}
.ag-row__ph{background:var(--cse-lin)}
.ag-row__body{display:grid; gap:6px; min-width:0}
.ag-row h4{font-size:1.375rem; line-height:1.15}
.ag-row h4 a{color:inherit; text-decoration:none}
/* Toute la ligne est cliquable : le lien du titre est étendu à la ligne. */
.ag-row h4 a::after{content:""; position:absolute; inset:0}
.ag-row p{font-size:.9375rem; color:var(--cse-text-muted); line-height:1.5}
.ag-meta{display:flex; flex-wrap:wrap; gap:4px 22px; clip-path:inset(-8px 0 -8px 0); font:500 var(--cse-fs-label)/1.5 var(--cse-font-etiq); letter-spacing:.08em; text-transform:uppercase; color:var(--cse-text-muted)}
.ag-row .ag-meta{font:500 var(--cse-fs-label)/1.5 var(--cse-font-etiq); letter-spacing:.08em; color:var(--cse-text-muted)}
.ag-meta span{position:relative; white-space:nowrap}
/* Le point séparateur ne reste jamais seul en bout de ligne. */
.ag-meta span + span::before{content:"·"; position:absolute; left:-13px}
.ag-row__cta{justify-self:end; display:inline-flex; align-items:center; min-height:var(--cse-tap-min); white-space:nowrap}
.ag-row--soiree{padding-inline:20px; margin-block:10px; border:0; border-radius:var(--cse-radius-m); background:var(--cse-lin)}
.ag-row--soiree .ag-meta strong{font-weight:400; color:var(--cse-text)}
.ag-vide{font-size:.9375rem; color:var(--cse-text-muted); padding:20px 0; border-top:1px solid var(--cse-line); border-bottom:1px solid var(--cse-line)}
@media (max-width: 1060px){
  .ag-row{grid-template-columns:76px 120px minmax(0,1fr)}
  .ag-row img, .ag-row__ph{width:120px}
  /* Lien « Voir le détail » masqué : la ligne entière reste cliquable. */
  .ag-row .ag-row__cta{display:none}
}
@media (max-width: 640px){
  .ag-row{grid-template-columns:56px minmax(0,1fr); gap:6px 14px; align-items:start; padding:18px 0}
  .ag-row img, .ag-row__ph{display:none}
  .ag-row time b{font-size:2rem}
  .ag-row h4{font-size:1.1875rem}
  .ag-row--soiree{padding-inline:14px}
}

/* ---- Agenda, variante accueil (ol.agenda > li.ev, mise en page dans cse-accueil.css) ----
   Seuls ajouts : titre lié à la fiche, lien étendu à la ligne, date « à venir ». */
.wp-block-cse-agenda .ev{position:relative}
.wp-block-cse-agenda .ev h4 a{color:inherit; text-decoration:none}
.wp-block-cse-agenda .ev h4 a::after{content:""; position:absolute; inset:0}
.wp-block-cse-agenda .ev:hover h4 a{color:var(--cse-bordeaux)}
.ev .ev__date.is-tbd strong{font:italic 300 1.25rem/1.1 var(--cse-font-titre); text-transform:none}

/* ---- Autres rendez-vous (cse/autres-rdv, dans la section .autres de la fiche) ---- */
.wp-block-cse-autres-rdv .cse-card__media{height:auto}
.autres__head{display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:12px 32px; margin-bottom:26px}
.autres__head h2{margin:0}
.autres .cse-card__foot{font:500 var(--cse-fs-label)/1.4 var(--cse-font-etiq); letter-spacing:.08em; text-transform:uppercase; color:var(--cse-text-muted)}
.autres .cse-card h3{font-size:1.3125rem}
.autres .cse-cards{grid-template-columns:repeat(3, minmax(0,1fr))}
@media (max-width: 860px){
  .autres .cse-cards{grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:min(78%, 320px); overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:12px; margin-inline:calc(-1 * var(--cse-gutter)); padding-inline:var(--cse-gutter); scroll-padding-inline:var(--cse-gutter)}
  .autres .cse-cards > *{scroll-snap-align:start}
}

/* ---- Prochaine soirée (cse/prochaine-soiree, dans .init__txt de la section sombre) ----
   Conteneur transparent : la phrase et le bouton sont des enfants de la grille .init__txt. */
.wp-block-cse-prochaine-soiree{display:contents}
.init__next{font-size:.9375rem; color:var(--cse-text-muted)}
.init__next strong{font-weight:500; color:var(--cse-text)}
@media (max-width: 560px){ .init__txt .cse-btn{justify-self:stretch} }

/* ---- Liens fléchés des blocs : cible tactile de 44 px, même aspect ---- */
.une__foot .cse-link-arrow, .autres__head .cse-link-arrow{display:inline-flex; align-items:center; min-height:var(--cse-tap-min)}

/* =====================================================================================
   Étape 3 · Compositions de la page Dégustations (patterns/degustations-*.php)
   ===================================================================================== */

/* ---- Généralités ---- */
/* Aucune marge automatique de WordPress dans les sections hors .cse-section (les autres le sont
   déjà par cse-accueil.css) : toutes les marges viennent des règles ci-dessous, comme la maquette. */
:is(.crumbs-band, .p-head-band, .une-sec) :where(.is-layout-flow, .wp-block-group) > *,
:is(.crumbs-band, .p-head-band, .une-sec) > *{margin-block:0}
/* Ancres (#agenda, #initiation) : le décalage sous l'en-tête collant vient de html{scroll-padding-top} (cse-wp.css). */
/* Défilement doux vers les ancres de la page, seulement sans réduction des animations. */
@media (prefers-reduced-motion: no-preference){ html:has(.p-head){scroll-behavior:smooth} }

/* ---- Fil d'Ariane (Liste numérotée) ---- */
.crumbs{padding-block:18px 0}
.crumbs ol{display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:0; padding:0; list-style:none; font:500 var(--cse-fs-label)/1.4 var(--cse-font-etiq); letter-spacing:.1em; text-transform:uppercase; color:var(--cse-text-muted)}
.crumbs li{display:inline-flex; align-items:center; margin:0}
.crumbs li + li::before{content:"/"; margin-right:6px; opacity:.6}
/* Lien : cible de 44 px (24 px dans la maquette), compensée par des marges négatives : même hauteur de ligne. */
.crumbs a{display:inline-flex; align-items:center; min-height:var(--cse-tap-min); margin-block:calc((24px - var(--cse-tap-min)) / 2); color:inherit; text-decoration:none}
.crumbs a:hover{color:var(--cse-accent); text-decoration:underline}
.crumbs [aria-current]{color:var(--cse-text)}

/* ---- En-tête de page ---- */
.p-head{padding-block:clamp(2rem, 1rem + 4vw, 4.5rem) clamp(2.5rem, 1.5rem + 3vw, 4rem)}
.p-head__grid{display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(32px, 5vw, 80px); align-items:end}
.p-head__txt{display:grid; gap:18px}
.p-head h1{font:var(--cse-fw-titre) var(--cse-fs-display)/1.03 var(--cse-font-titre); letter-spacing:var(--cse-ls-titre)}
.p-head h1 em{display:block}
/* Boutons = un Paragraphe (comme le hero) : pas de mesure de lecture. */
.p-head .p-head__ctas{display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; margin-top:6px; max-width:none}

/* Carte « rdv » : le samedi en un coup d'œil. */
.rdv{position:relative; display:grid; gap:16px; padding:26px 28px 24px; border-radius:var(--cse-radius-m); background:var(--cse-blanc); border:1px solid rgba(42,27,23,.1); box-shadow:var(--cse-shadow-card); overflow:hidden}
/* Bandeau de robes = bloc Espacement : les 5 teintes du composant .cse-robe-band en dégradé à paliers. */
.rdv .rdv__band{position:absolute; inset:0 0 auto; height:6px; background:linear-gradient(90deg, var(--cse-robe-pourpre) 0 20%, var(--cse-robe-grenat) 20% 40%, var(--cse-robe-tuile) 40% 60%, var(--cse-robe-ambre) 60% 80%, var(--cse-robe-or) 80% 100%)}
.rdv__top{display:flex; align-items:baseline; gap:16px; padding-top:6px}
.rdv .rdv__day{font:300 4rem/.9 var(--cse-font-titre); color:var(--cse-bordeaux); letter-spacing:-.02em}
.rdv .rdv__hours{font:300 1.75rem/1 var(--cse-font-titre); font-variant-numeric:lining-nums}
/* Liste de définitions de la maquette (dl) en Groupes / Paragraphes : mêmes déclarations. */
.rdv__infos{display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--cse-line)}
.rdv__info{display:grid; gap:2px; padding:12px 0; border-bottom:1px solid var(--cse-line)}
.rdv__info:nth-child(odd){padding-right:12px; border-right:1px solid var(--cse-line)}
.rdv__info:nth-child(even){padding-left:16px}
.rdv .rdv__dt{font:500 var(--cse-fs-label)/1.4 var(--cse-font-etiq); letter-spacing:.1em; text-transform:uppercase; color:var(--cse-text-muted)}
.rdv .rdv__dd{font:400 1.125rem/1.25 var(--cse-font-titre)}
.rdv .rdv__note{font-size:.875rem; color:var(--cse-text-muted)}
@media (max-width: 860px){ .p-head__grid{grid-template-columns:1fr; align-items:start} }
@media (max-width: 420px){ .rdv{padding:22px 18px 20px} .rdv .rdv__day{font-size:3.25rem} .rdv__info:nth-child(even){padding-left:12px} }

/* ---- Agenda : titre et phrase autour du bloc cse/agenda ---- */
.ag-head{margin-bottom:22px}
.ag-head h2{margin:0}
.ag-next{margin-top:22px; font-size:.9375rem; color:var(--cse-text-muted)}

/* ---- Le samedi, mode d'emploi ---- */
.deroule{display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:clamp(32px, 5vw, 72px); align-items:start}
.deroule h2{margin:12px 0 0}
.deroule .cse-steps li{padding-top:18px; border-top:1px solid var(--cse-line)}
/* Titre de l'étape = Paragraphe en gras (strong de la maquette) : pas le style des textes d'étape. */
.cse-steps .cse-steps__titre{font:400 1.1875rem/1.2 var(--cse-font-titre); color:var(--cse-text)}
@media (max-width: 860px){ .deroule{grid-template-columns:1fr} }

/* ---- Soirées d'initiation (section sombre, variation Cave) ---- */
.init{color-scheme:dark}
.init__grid{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(32px, 5vw, 72px); align-items:end}
.init__txt{display:grid; gap:20px; justify-items:start}
.init__txt h2{margin:0}
.init__txt .cse-eyebrow{margin-bottom:-8px}
.init .cse-lead{color:var(--cse-text-muted)}
/* Citation = bloc Citation : styles de theme.json (filet gauche, marges) remplacés par ceux de
   la maquette (figure.init__quote) ; la signature (cite) prend le style .cse-label. */
.init .init__quote{display:grid; gap:10px; margin:0; padding:24px 0 0; border:0; border-top:1px solid var(--cse-line)}
.init__quote p{font:italic 300 clamp(1.375rem, 1.2rem + .8vw, 1.75rem)/1.3 var(--cse-font-titre); color:var(--cse-text); max-width:none}
.init__quote cite{font:500 var(--cse-fs-label)/1.4 var(--cse-font-etiq); letter-spacing:var(--cse-ls-label); text-transform:uppercase; font-style:normal; color:var(--cse-text-muted)}
@media (max-width: 860px){ .init__grid{grid-template-columns:1fr} }

/* ---- Questions fréquentes (blocs Détails) ---- */
.faq{display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:clamp(32px, 5vw, 72px); align-items:start}
.faq h2{margin:12px 0 14px}
.faq__list{border-top:1px solid var(--cse-line)}
.faq details{border-bottom:1px solid var(--cse-line)}
.faq summary{display:flex; justify-content:space-between; align-items:center; gap:18px; min-height:var(--cse-tap-min); padding:18px 0; cursor:pointer; list-style:none; font:400 1.25rem/1.25 var(--cse-font-titre)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; flex:none; width:32px; height:32px; display:grid; place-items:center; border:1px solid var(--cse-btn-outline); border-radius:50%; font:300 1.25rem/1 var(--cse-font-texte); color:var(--cse-bordeaux)}
.faq details[open] summary::after{content:"–"}
/* Réponse : blocs placés directement dans details (la maquette les enveloppe d'un div). */
.faq details > :not(summary){padding-right:48px}
.faq details > :not(summary) + :not(summary){margin-top:10px}
.faq details > :last-child:not(summary){padding-bottom:20px}
.faq details p{color:var(--cse-text-muted)}
/* Numéro de téléphone jamais coupé (finition de la maquette, limitée ici pour ne pas changer l'accueil). */
.faq a[href^="tel:"]{white-space:nowrap}
@media (max-width: 860px){ .faq{grid-template-columns:1fr} .faq details > :not(summary){padding-right:0} }

/* =====================================================================================
   Étape 4 · Fiche d'un rendez-vous (partie « Fiche événement » de la maquette)
   ev-form et barre-mob : étape 5, en fin de fichier.
   ===================================================================================== */

/* ---- Généralités : aucune marge automatique de WordPress dans la fiche ---- */
.wp-block-cse-fil-ariane ol, .ev-hero :is(h1, p), .infos :is(h2, dl), .ev-body > *,
.ev-article :where(.is-layout-flow, .wp-block-group) > *, .ev-article > *{margin-block:0}
.infos dd{margin:0}
.ev-article :is(ul, ol){margin:0; padding:0; list-style:none}

/* ---- En-tête (cse/fiche-entete) ---- */
.ev-hero{padding-block:clamp(1.5rem, .5rem + 3vw, 3rem) clamp(2.5rem, 1.5rem + 3vw, 4rem)}
.ev-hero__grid{display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(32px, 5vw, 72px); align-items:center}
.ev-hero__txt{display:grid; gap:18px; justify-items:start}
.ev-hero h1{font:var(--cse-fw-titre) var(--cse-fs-display)/1.03 var(--cse-font-titre); letter-spacing:var(--cse-ls-titre)}
.ev-hero h1 em{display:block}
.ev-hero__tagline{font:italic 300 clamp(1.25rem, 1.1rem + .6vw, 1.625rem)/1.3 var(--cse-font-titre); color:var(--cse-text-muted)}
.ev-hero__ctas{display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; margin-top:4px}
.ev-hero__ctas:not(:has(*)){display:none}
.ev-hero__media{position:relative}
.ev-hero__media img{display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:var(--cse-radius-m)}
.ev-hero__media .cse-robe-band{position:absolute; left:0; right:0; bottom:0; border-radius:0 0 var(--cse-radius-m) var(--cse-radius-m); overflow:hidden}
/* Rendez-vous sans photo : le texte prend toute la largeur. */
.ev-hero__grid > .ev-hero__txt:only-child{grid-column:1 / -1}
@media (max-width: 860px){ .ev-hero__grid{grid-template-columns:1fr} .ev-hero__media{order:-1} .ev-hero__media img{aspect-ratio:16/10} }

/* ---- Texte libre (core/post-content en article.ev-article) et encadré ---- */
.ev-body{display:grid; grid-template-columns:minmax(0,7fr) minmax(0,4fr); gap:clamp(32px, 5vw, 80px); align-items:start}
/* Texte libre vide : l'encadré reste dans une colonne étroite, à gauche. */
.ev-body > .infos:first-child{grid-column:1}
.ev-body:not(:has(> .ev-article)){grid-template-columns:minmax(0,4fr) minmax(0,7fr)}
.ev-article{display:grid; gap:44px}
.ev-article section{display:grid; gap:14px}
.ev-article h2{font-size:clamp(1.625rem, 1.4rem + .9vw, 2.125rem)}
.ev-article p{color:var(--cse-text-muted)}
.ev-article p.big{font:300 clamp(1.25rem, 1.1rem + .6vw, 1.5rem)/1.45 var(--cse-font-titre); color:var(--cse-text); max-width:56ch}

/* Déroulé = Liste numérotée .etapes : le début en gras (strong) sert de titre, le texte suit,
   la sous-liste (nuancier) passe sous le texte. */
.etapes{display:grid; border-top:1px solid var(--cse-line)}
.etapes > li{display:grid; grid-template-columns:120px minmax(0,1fr); gap:10px 20px; padding:20px 0; border-bottom:1px solid var(--cse-line); color:var(--cse-text-muted)}
.etapes > li > strong{font:300 2rem/1 var(--cse-font-titre); color:var(--cse-bordeaux)}
.etapes > li > ul{grid-column:2}
.etapes .nuancier{margin-top:4px}
@media (max-width: 560px){ .etapes > li{grid-template-columns:1fr; gap:6px} .etapes > li > ul{grid-column:auto; margin-top:8px} }

/* Nuancier des robes = sous-liste .nuancier : la pastille (::before) prend les cinq teintes dans
   l'ordre de la maquette (pourpre, grenat, tuilé, ambré, or). */
.nuancier{display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px}
.nuancier li{display:grid; align-content:start; gap:8px; font-size:.8125rem; line-height:1.35; color:var(--cse-text-muted)}
.nuancier li::before{content:""; display:block; height:44px; border-radius:var(--cse-radius-s); background:var(--k)}
.nuancier li:nth-child(5n+1){--k:var(--cse-robe-pourpre)}
.nuancier li:nth-child(5n+2){--k:var(--cse-robe-grenat)}
.nuancier li:nth-child(5n+3){--k:var(--cse-robe-tuile)}
.nuancier li:nth-child(5n+4){--k:var(--cse-robe-ambre)}
.nuancier li:nth-child(5n){--k:var(--cse-robe-or)}
.nuancier strong{font:500 var(--cse-fs-label)/1.3 var(--cse-font-etiq); letter-spacing:.1em; text-transform:uppercase; color:var(--cse-text)}
/* Mobile : une ligne par teinte, nom et description lisibles (finition de la maquette). */
@media (max-width: 560px){
  .nuancier{grid-template-columns:minmax(0,1fr); gap:0; border-top:1px solid var(--cse-line)}
  .nuancier li{grid-template-columns:28px minmax(0,1fr); column-gap:14px; row-gap:2px; align-items:center; padding:10px 0; border-bottom:1px solid var(--cse-line)}
  .nuancier li::before{grid-row:1 / span 2; grid-column:1; width:28px; height:28px}
  .nuancier strong{grid-column:2}
}

/* Citation = bloc Citation .ev-quote : styles de theme.json remplacés par ceux de la maquette
   (figure.ev-quote) ; la signature (cite) prend le style .cse-label. */
.ev-article .ev-quote{display:grid; gap:10px; margin:0; padding:26px 0 0; border:0; border-top:1px solid var(--cse-line)}
.ev-article .ev-quote p{font:italic 300 clamp(1.375rem, 1.2rem + .8vw, 1.75rem)/1.3 var(--cse-font-titre); color:var(--cse-bordeaux); max-width:none}
.ev-quote cite{font:500 var(--cse-fs-label)/1.4 var(--cse-font-etiq); letter-spacing:var(--cse-ls-label); text-transform:uppercase; font-style:normal; color:var(--cse-text-muted)}

/* Cuvées dans « Au programme » (cse/cuvees) */
.ev-article .cuvees li{font-size:1rem; padding:14px 0; color:var(--cse-text)}
.ev-article .cuvees li span:first-child{font:400 1.1875rem/1.25 var(--cse-font-titre)}

/* Encadré « En pratique » (cse/fiche-infos), collant au défilement sur ordinateur */
.infos{position:sticky; top:100px; display:grid; gap:16px; padding:24px; border-radius:var(--cse-radius-m); background:var(--cse-blanc); border:1px solid rgba(42,27,23,.1); box-shadow:var(--cse-shadow-card)}
.infos h2{font:500 var(--cse-fs-label)/1.4 var(--cse-font-etiq); letter-spacing:var(--cse-ls-label); text-transform:uppercase; color:var(--cse-text-muted)}
.infos dl{display:grid; border-top:1px solid var(--cse-line)}
.infos dl > div{display:grid; grid-template-columns:96px minmax(0,1fr); gap:12px; padding:11px 0; border-bottom:1px solid var(--cse-line); font-size:.9375rem}
.infos dt{font:500 var(--cse-fs-label)/1.6 var(--cse-font-etiq); letter-spacing:.08em; text-transform:uppercase; color:var(--cse-text-muted)}
.infos dd strong{font-weight:600}
.infos .cse-btn{width:100%}
.infos__small{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px}
.infos__small .cse-link-arrow{display:inline-flex; align-items:center; min-height:var(--cse-tap-min); font-size:var(--cse-fs-label); white-space:nowrap}
@media (max-width: 860px){ .ev-body, .ev-body:not(:has(> .ev-article)){grid-template-columns:1fr} .infos{position:static; order:-1} .ev-body > .infos:first-child{grid-column:auto} .infos > .cse-btn{display:none} }

/* Liens fléchés de la fiche : cible tactile de 44 px, même aspect */
.ev-hero__ctas .cse-link-arrow{display:inline-flex; align-items:center; min-height:var(--cse-tap-min)}

/* Venir samedi (bloc de la maquette, sans emploi pour l'instant : la fiche samedi n'a plus de
   section « Bon à savoir ») */
.venir{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px}
.venir li{display:grid; gap:6px; padding:20px; border-radius:var(--cse-radius-m); background:var(--cse-blanc); border:1px solid rgba(42,27,23,.1)}
.venir strong{font:400 1.25rem/1.2 var(--cse-font-titre)}
.venir span{font-size:.9375rem; color:var(--cse-text-muted)}
@media (max-width: 760px){ .venir{grid-template-columns:1fr} }

/* =====================================================================================
   Étape 5 · Demander une place (cse/fiche-inscription) et barre d'action mobile
   (cse/barre-mobile). Grille ev-form de la maquette ; la carte d'appel prend la place du
   formulaire (décision 18), sur le modèle de .futs__appel (cse-accueil.css).
   ===================================================================================== */

/* ---- Section #inscription : écart sous le texte libre (style en ligne de la maquette) ---- */
main .ev-inscription{margin-top:var(--cse-space-section)}
.ev-form{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(32px, 5vw, 72px); align-items:start}
.ev-form .wp-block-group > *{margin-block:0}
.ev-form__txt{display:grid; gap:16px}
.ev-form__txt h2{margin:0}

/* ---- Carte d'appel (place et cadre du formulaire de la maquette : .ev-form .cse-form) ---- */
.ev-form__appel{display:grid; gap:12px; padding:clamp(20px, 3vw, 32px); border-radius:var(--cse-radius-m); background:var(--cse-surface); box-shadow:var(--cse-shadow-card)}
.ev-form__appel .ev-form__signature{margin-top:-6px; font:500 var(--cse-fs-label)/1.5 var(--cse-font-etiq); letter-spacing:.1em; text-transform:uppercase; color:var(--cse-text-muted)}
/* Numéro en grand (.ev-form__tel de la maquette, taille de .futs__tel) : cible de 44 px. */
.ev-form__tel a{display:inline-flex; align-items:center; min-height:var(--cse-tap-min); font:300 2.125rem/1 var(--cse-font-titre); color:var(--cse-bordeaux); text-decoration:underline; text-decoration-color:transparent; text-underline-offset:6px; text-decoration-thickness:1px; white-space:nowrap; transition:text-decoration-color var(--cse-dur-fast) var(--cse-ease)}
.ev-form__tel a:hover{text-decoration-color:currentColor}
.ev-form__rappel{font-size:.9375rem; color:var(--cse-text-muted)}
@media (max-width: 860px){ .ev-form{grid-template-columns:1fr} }

/* ---- Barre d'action mobile ---- */
.barre-mob{display:none}
@media (max-width: 860px){
  .barre-mob{position:fixed; left:0; right:0; bottom:0; z-index:40; display:flex; align-items:center; gap:12px; padding:10px var(--cse-gutter) calc(10px + env(safe-area-inset-bottom, 0px)); background:color-mix(in srgb, var(--cse-papier) 94%, transparent); backdrop-filter:blur(8px); border-top:1px solid var(--cse-line); transition:transform var(--cse-dur) var(--cse-ease), visibility 0s}
  .barre-mob.is-off{transform:translateY(110%); visibility:hidden; transition:transform var(--cse-dur) var(--cse-ease), visibility 0s linear var(--cse-dur)}
  .barre-mob span{flex:1; min-width:0; font:500 var(--cse-fs-label)/1.35 var(--cse-font-etiq); letter-spacing:.08em; text-transform:uppercase; color:var(--cse-text-muted)}
  /* Titre complet (décision 20) : deux lignes au plus. */
  .barre-mob span b{display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; font:400 1rem/1.2 var(--cse-font-titre); letter-spacing:0; text-transform:none; color:var(--cse-text)}
  /* Bouton cse-btn--sm (36 px) porté à 44 px : cible tactile. */
  .barre-mob .cse-btn{flex:none; min-height:var(--cse-tap-min)}
  /* La barre ne cache ni la cible d'une ancre ni l'élément qui reçoit le focus (WCAG 2.4.11). */
  html:has(.barre-mob){scroll-padding-bottom:calc(64px + env(safe-area-inset-bottom, 0px))}
}
@media (prefers-reduced-motion: reduce){ .barre-mob, .barre-mob.is-off{transition:none} }
