/* =====================================================================
   pros.css : styles propres à la page /pros/ (pros.php, guichet Collectivités, CSE et
   associations). Chargé APRÈS /style.css, /output.css et /pros-base.css (composants communs,
   variables --pro-*). Comportements : pros.js.
   Points de rupture : 380, 480, 640, 768, 900, 1024, 1280.
   ===================================================================== */

/* ---------- Cadre ---------- */
.pro-page { background: #fff; overflow-x: clip; }
.pro-page .rf-hint { margin: 0; }
.pro-page :is(button, a, summary):focus-visible { outline: 3px solid var(--pro-citron); outline-offset: 2px; }
.pro-page .tar-note { color: var(--pro-gris-2); }
.pro-court { display: none; }
@media (max-width: 639px) {
  .pro-page .loa-section-white, .pro-page .loa-section-gray { padding: 3.5rem 0; }
}
@media (max-width: 479px) {
  .pro-page .loa-container, .pro-page .loa-container-sm, .pro-page .loa-hero-inner { padding-left: 1.25rem; padding-right: 1.25rem; }
}

/* En-tête du site sur /pros/ : sous 900 px, « Réserver » (formulaire grand public) quitte la barre
   (même mécanisme que .sh-bar .sh-cta.is-here) ; il reste dans le menu. Le seul bouton citron
   permanent est alors « Proposition », dans la barre de prix. */
@media (max-width: 900px) {
  .pro-page .sh-bar .sh-cta { display: none; }
}

/* =====================================================================
   1. BANDEAU
   ===================================================================== */
.pro-hero { padding: calc(3rem + var(--header-overlap, 0px)) 0 7rem; }
.pro-hero .loa-hero-badge-wrap { margin-bottom: 1.25rem; }
.pro-hero .hero-badge { flex-wrap: nowrap; text-align: left; }
.pro-hero .hero-badge > .material-symbols-outlined { flex: none; }
.pro-hero .loa-hero-title { max-width: 15em; font-size: clamp(2.25rem, 4vw, 3rem); line-height: 1.08; text-wrap: balance; }
.pro-hero .loa-hero-desc { margin-bottom: 1.5rem; }
/* Boutons du bandeau (même schéma que .idx-cta-row de l'accueil) */
.pro-hero-cta { margin: 1.75rem 0 0; }
.pro-hero-cta .material-symbols-outlined { font-size: 20px; }
/* Liste des engagements */
.pro-engagements-cadre { position: relative; display: flex; justify-content: center; margin: 0; }
.pro-engagements { display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); gap: 10px 28px; justify-content: center; margin: 0; padding: 0; list-style: none; }
.pro-engagements .loa-badge-item { align-items: flex-start; text-align: left; line-height: 1.4; }
.pro-engagements .loa-badge-icon { flex: none; margin-top: 1px; }
.pro-eng-txt { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }
.pro-hero-media { position: relative; justify-self: end; width: 100%; max-width: 360px; }
/* Photo en tirage (copie de .idx-hero-img-card et .idx-print-cap d'index.php), en portrait : la borne au centre. */
.pro-tirage { padding: 10px 10px 0; border-radius: 3px; background: #fbfcf8; transform: rotate(-2deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3), 0 34px 60px -22px rgba(0,0,0,0.75); }
.pro-hero-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 45% 60%; }
/* Légende : copie de .idx-print-cap (index.php, l. 280-281) : lieu en Fraunces italique, numéro en capitales */
.pro-tirage__cap { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 46px; padding: 0 4px; font: italic 400 15px/1 'Fraunces', Georgia, serif; color: #5a6950; }
.pro-tirage__cap b { font: 700 10.5px/1 'Plus Jakarta Sans', sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #1a2e00; white-space: nowrap; }

/* Carte « Fiche fournisseur » */
.pro-fiche { padding: 1.25rem 1.375rem 1rem; border-radius: 1.25rem; background: #fff; color: var(--pro-texte); box-shadow: var(--pro-ombre-flottante); text-align: left; }
.pro-fiche__resume { display: flex; align-items: center; gap: 10px; list-style: none; cursor: pointer; }
.pro-fiche__resume::-webkit-details-marker { display: none; }
.pro-fiche__resume img { flex: none; width: 32px; height: 32px; border-radius: 50%; }
.pro-fiche__noms { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pro-fiche__lbl { font: 700 11px/1.3 'Montserrat', Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: var(--pro-gris); }
.pro-fiche__court, .pro-fiche__chev { display: none; }
.pro-fiche__dl { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 7px 12px; margin: 12px 0 0; }
.pro-fiche__dl dt { padding-top: 1px; font-size: 12px; font-weight: 600; line-height: 1.4; color: var(--pro-gris-2); }
.pro-fiche__dl dd { margin: 0; font-size: 13.5px; font-weight: 600; line-height: 1.4; color: var(--pro-texte); }
.pro-fiche__dl a[href^="tel"] { color: inherit; }
.pro-fiche__siret { margin-right: 4px; font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pro-fiche__dl .pro-cote { margin-top: 2px; }
.pro-fiche__pied { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0 0; padding-top: 10px; border-top: 1px dashed var(--pro-filet); font-size: 12.5px; line-height: 1.4; color: var(--pro-texte-2); }
.pro-fiche__pied .material-symbols-outlined { flex: none; font-size: 16px; color: var(--pro-vert-texte); }

@media (min-width: 900px) {
  .pro-hero-inner { grid-template-columns: 1.15fr .85fr; gap: 3.5rem; }
  .pro-engagements-cadre { justify-content: flex-start; }
  .pro-engagements { justify-content: start; }
  /* Fiche posée droite (données administratives : pas d'inclinaison), sur le tiers inférieur du tirage au plus :
     la borne reste visible, le numéro du tirage aussi, à droite. */
  .pro-fiche { position: absolute; left: -4.5rem; bottom: -2.5rem; z-index: 2; width: min(268px, calc(100% - 2rem)); padding: .875rem 1rem .75rem; transform: none; }
  .pro-fiche .pro-fiche__siret { font-size: 14px; }
  .pro-fiche__resume { pointer-events: none; cursor: default; }
  .pro-fiche__dl { grid-template-columns: 62px minmax(0, 1fr); gap: 4px 10px; margin-top: 8px; }
  .pro-fiche__pied { margin-top: 8px; padding-top: 8px; }
}
/* De 900 à 1 199 px, la colonne de texte est trop proche : la fiche passe sous le tirage et ne le chevauche
   que légèrement (la légende « N° 0702 » reste lisible), sans toucher les engagements.
   Le décalage à gauche (left: -4.5rem) n'est gardé qu'à partir de 1 200 px. */
@media (min-width: 900px) and (max-width: 1199px) {
  .pro-fiche { position: relative; left: auto; bottom: auto; width: 100%; margin-top: -.5rem; }
}
/* Bandeau, 1024 px et plus */
@media (min-width: 1024px) {
  .pro-hero { padding-bottom: 6.75rem; }
  .pro-hero .loa-hero-title { font-size: 2.75rem; }
  .pro-hero .loa-hero-desc { line-height: 1.6; }
}
@media (max-width: 899px) {
  .pro-hero { padding-bottom: 4.5rem; }
  .pro-hero .loa-hero-title { margin-left: auto; margin-right: auto; font-size: 2.1rem; }
  .pro-hero .loa-hero-desc { font-size: 15px; }
  /* Tirage gardé sur téléphone, traité comme .hero-mobile-img de l'accueil (index.php, l. 282-283) */
  .pro-tirage { padding: 7px 7px 0; border-radius: 4px; transform: rotate(-1.2deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3), 0 24px 44px -18px rgba(0,0,0,0.7); }
  .pro-hero-photo { aspect-ratio: auto; max-height: 246px; }
  .pro-tirage__cap { height: 38px; font-size: 14px; }
  .pro-hero-media { justify-self: stretch; max-width: none; margin-top: 1.5rem; }
  .pro-tirage + .pro-fiche { margin-top: 1.25rem; }
  .pro-fiche { padding: 0; }
  .pro-fiche__resume { min-height: 48px; padding: 8px 14px; border-radius: 1.25rem; }
  .pro-fiche__court { display: block; font-size: 13px; font-weight: 700; color: var(--pro-texte); font-variant-numeric: tabular-nums; }
  .pro-fiche__chev { display: inline-block; margin-left: auto; color: var(--pro-gris-2); transition: transform .2s var(--ease-out); }
  .pro-fiche[open] .pro-fiche__chev { transform: rotate(180deg); }
  .pro-fiche__dl { margin: 0 14px; padding-top: 10px; border-top: 1px solid var(--pro-filet-3); }
  .pro-fiche__pied { margin: 12px 14px 0; padding-bottom: 14px; }
}
/* Badge du bandeau sur une ligne à 390 px */
@media (max-width: 479px) {
  .pro-hero .hero-badge { font-size: 11.5px; letter-spacing: .03em; }
}
@media (max-width: 639px) {
  .pro-engagements { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
  .pro-engagements .loa-badge-item { font-size: 12px; }
  .pro-engagements .loa-badge-icon { font-size: 16px; }
  .pro-eng-txt { flex-direction: column; align-items: flex-start; }
  .pro-hero-cta > * { justify-content: center; width: 100%; }
}

/* =====================================================================
   2. LE GUICHET
   ===================================================================== */
.pro-guichet { display: flow-root; padding-bottom: 2rem; background: var(--pro-fond-guichet); }
.pro-guichet__in { position: relative; z-index: 2; max-width: 1200px; margin: -4rem auto 0; padding: 0 2rem; }
@media (min-width: 1024px) {
  .pro-guichet__in { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: start; }
}
@media (max-width: 1023px) {
  .pro-guichet__in { display: flex; flex-direction: column; gap: 24px; margin-top: -2.5rem; }
}
/* Même marge latérale que .loa-container sous 480 px (pros.css, « Cadre ») : les bords s'alignent d'une section à l'autre */
@media (max-width: 479px) {
  .pro-guichet__in { padding: 0 1.25rem; }
}

/* ---------- Carte de configuration ---------- */
.pro-config { min-width: 0; }
.pro-config .rf-head--row { align-items: flex-start; }
.pro-config-titres { display: flex; flex: 1 1 320px; flex-direction: column; gap: 8px; min-width: 0; }
.pro-config .rf-h2:focus { outline: none; }
.pro-sans-compte { display: inline-flex; align-items: center; gap: 6px; margin: 4px 0 0; font-size: 13px; font-weight: 600; color: var(--pro-gris-2); white-space: nowrap; }
.pro-sans-compte .material-symbols-outlined { font-size: 16px; }
/* Sans JavaScript, ou données du calcul illisibles : encart gris en tête de la carte */
.pro-noscript, .pro-guichet-indispo { margin: 0; padding: 14px 18px; border-radius: 16px; background: var(--pro-fond-guichet); color: var(--pro-texte-2); font-size: 14.5px; line-height: 1.5; }
.pro-noscript a, .pro-guichet-indispo a { font-weight: 700; color: var(--pro-vert-ok); text-decoration: underline; white-space: nowrap; }

/* Blocs numérotés */
.pro-bloc { min-width: 0; margin: 0; padding: 0; border: 0; }
.pro-config .pro-bloc > * + * { margin-top: 16px; }
.pro-bloc + .pro-bloc { padding-top: 28px; border-top: 1px solid var(--pro-filet-2); }
.pro-bloc-legende { float: left; width: 100%; margin: 0 0 16px; padding: 0; }
.pro-config .pro-bloc-legende + * { clear: both; margin-top: 0; }
.pro-bloc-head { display: flex; align-items: center; gap: 10px; }
.pro-bloc-head .rf-h3 { color: var(--pro-encre); }
.pro-bloc-num { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--pro-citron-grad); color: var(--pro-vert); font-size: 13px; font-weight: 800; line-height: 1; }
.pro-bloc-num .material-symbols-outlined { font-size: 16px; }
.pro-bloc.is-signal { border-radius: 14px; outline: 3px solid var(--pro-citron); outline-offset: 8px; }
.pro-config .rf-opt-choice { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
.pro-config .rf-opt-choice .material-symbols-outlined { font-size: 18px; text-decoration: none; }
.pro-config .rf-opt-choice:disabled { opacity: .55; cursor: not-allowed; }

/* Bloc 1 : statut */
.pro-statuts.event-type-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pro-statuts .event-type-card { position: relative; min-height: 96px; padding: 12px 8px; text-align: center; }
.pro-statuts .event-type-card:focus-within { outline: 3px solid var(--pro-citron); outline-offset: 2px; }
.pro-statut-ic { font-size: 30px; color: var(--pro-vert-texte); transition: color .2s; }
.event-type-card.selected .pro-statut-ic { color: var(--pro-citron); }
.pro-statut-err[hidden] { display: none; }
.pro-payeur { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .2s var(--ease-out), visibility 0s linear .2s; }
.pro-config .pro-bloc > .pro-payeur { margin-top: 0; }
.pro-payeur.is-ouvert { grid-template-rows: 1fr; visibility: visible; transition: grid-template-rows .2s var(--ease-out); }
.pro-payeur__in { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-height: 0; overflow: hidden; }
.pro-payeur__in > .rf-field { align-self: stretch; margin-top: 16px; }
.pro-bascule { display: flex; align-items: flex-start; gap: 6px; margin: 0; font-size: 13px; font-weight: 600; line-height: 1.45; color: var(--pro-vert-ok); }
.pro-bascule .material-symbols-outlined { flex: none; font-size: 18px; }
.pro-regime { display: inline-flex; align-items: center; padding: 4px 10px; border: 1px solid #DCE5C6; border-radius: var(--pro-r-pill); background: var(--pro-fond-ok); color: var(--pro-vert-ok); font-size: 12.5px; font-weight: 700; line-height: 1.35; }
.pro-regime:empty { display: none; }

/* Bloc 2 : animation */
.pro-tabs--fill { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-self: stretch; }
.pro-tabs--fill .rf-tab { padding: 10px 8px; }
.pro-pour { display: flex; flex-direction: column; gap: 16px; }
/* Nombre de colonnes : nombre de forfaits ou de formules de l'admin (--pro-nb, posé par pros.php) */
.pro-forfaits.pb-card__tabs { grid-template-columns: repeat(var(--pro-nb, 4), minmax(0, 1fr)); }
.pro-formules.pb-card__tabs { grid-template-columns: repeat(var(--pro-nb, 3), minmax(0, 1fr)); }
.pro-config .pb-card__tabs button { transition: background .2s, color .2s; }
.pro-config .pb-card__tabs button:not(.is-active):hover { background: #e3ead6; }
.pro-forfait-meta { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "nom prix" "detail prix"; align-items: center; gap: 2px 16px; padding: 14px 16px; border-radius: var(--pro-r-m); background: var(--pro-fond-encart); }
.pro-meta-nom { grid-area: nom; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0; font: 700 24px/1.15 'Fraunces', Georgia, serif; color: var(--pro-vert); }
.pro-meta-nom .pb-card__badge { font: 700 12px/1.2 'Plus Jakarta Sans', sans-serif; }
.pro-meta-detail { grid-area: detail; margin: 0; font-size: 14px; color: var(--pro-gris); }
.pro-meta-prix { grid-area: prix; margin: 0; font: 700 28px/1 'Fraunces', Georgia, serif; font-variant-numeric: tabular-nums; color: var(--pro-vert); text-align: right; white-space: nowrap; }
.pro-conseil { display: flex; align-items: flex-start; gap: 6px; margin: 0; font-size: 13px; font-weight: 600; line-height: 1.45; color: var(--pro-texte-3); }
.pro-conseil .material-symbols-outlined { flex: none; font-size: 18px; color: var(--pro-vert-texte); }
.pro-num-offer { display: flex; align-items: center; gap: 14px; width: 100%; padding: 14px 16px; border: 2px solid var(--pro-filet-2); border-radius: var(--pro-r-m); background: #fff; color: var(--pro-encre); font-family: 'Plus Jakarta Sans', sans-serif; text-align: left; cursor: pointer; transition: border-color .2s, background .2s; }
.pro-num-offer:hover { border-color: var(--pro-citron); }
.pro-num-offer[aria-pressed="true"] { border-color: var(--pro-sombre); background: var(--pro-fond-ok); }
.pro-num-offer__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pro-num-offer strong { font-size: 15px; font-weight: 700; }
.pro-num-offer small { font-size: 13px; color: var(--pro-gris-2); }
.pro-num-offer b { margin-left: auto; font: 700 1.5rem/1 'Fraunces', Georgia, serif; white-space: nowrap; }
.pro-video-plus { display: flex; flex-flow: row wrap; align-items: center; gap: 4px 18px; margin: 0; font-size: 14px; font-weight: 600; color: var(--pro-vert-texte); }
.pro-video-plus > span { display: inline-flex; align-items: center; gap: 4px; }
.pro-video-plus .material-symbols-outlined { font-size: 18px; }

/* Bloc 3 : date et lieu */
.pro-date-grille .rf-field { gap: 8px; }
.pro-hors-liste { margin-top: -4px; }
.pro-dispo-regle { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-top: 4px; font-size: 13px; }
.rf-dispo a { font-weight: 700; color: inherit; text-decoration: underline; white-space: nowrap; }
.pro-dates-plus { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pro-dates-plus:empty { display: none; }
.pro-dates-plus li { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: center; gap: 8px; max-width: 440px; }
.pro-date-retirer { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: var(--pro-fond-guichet); color: var(--pro-encre); cursor: pointer; }
.pro-date-retirer:hover { background: var(--pro-fond-onglet); }
.pro-date-retirer .material-symbols-outlined { font-size: 20px; }
.pro-dates-aide { margin: 0; font-size: 13px; color: var(--pro-gris-2); }
.pro-zone-choix { display: flex; flex-direction: column; gap: 10px; }
.pro-zone-puces { display: flex; flex-wrap: wrap; gap: 8px; }
.pro-zone-puces .zone-chip, .pro-puces-intitule .zone-chip { min-height: 40px; padding: 8px 14px; font-family: 'Plus Jakarta Sans', sans-serif; cursor: pointer; transition: border-color .2s, background .2s; }
.pro-zone-puces .zone-chip:hover, .pro-puces-intitule .zone-chip:hover { border-color: var(--pro-citron); }
.pro-zone-puces .zone-chip[aria-pressed="true"] { border: 1.5px solid var(--pro-vert-texte); }
@media (pointer: coarse) {
  .pro-zone-puces .zone-chip, .pro-puces-intitule .zone-chip { min-height: 44px; }
}
.pro-note-livraison.tar-note { margin-top: 0; font-size: 12.5px; text-align: left; }

/* Bloc 4 : options. Règles de base de .rf-opts et .rf-opt : COPIE NON MODIFIÉE de
   formulaire-reservation.php (l. 456-458), absentes de pros-base.css ; puis les règles
   « téléphone » du même formulaire (l. 728-737), recopiées après pour garder leur priorité. */
.rf-opts { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; }
.rf-opt { display: flex; flex-direction: column; gap: 6px; padding: 16px 16px 18px; border: 2px solid #E3E6DE; border-radius: 20px; background: #fff; color: #16210F; cursor: pointer; transition: border-color .2s, background .2s; }
.rf-opt:hover { border-color: #B0D91C; }
@media (max-width: 639px) {
  .rf-opts { grid-template-columns: 1fr; gap: 10px; }
  .rf-opt { display: grid; grid-template-columns: 40px minmax(0, 1fr) 26px; align-items: start; gap: 4px 12px; padding: 14px; border-radius: 18px; }
}
button.rf-opt { width: 100%; font-family: 'Plus Jakarta Sans', sans-serif; text-align: left; }
/* Une seule carte (logo, inclus) : toute la largeur, sans colonne vide à droite */
@media (min-width: 640px) {
  .pro-opts.rf-opts { grid-template-columns: minmax(0, 1fr); }
}
.rf-opt-price { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.pro-autres-btn .material-symbols-outlined { transition: transform .2s var(--ease-out); }
.pro-autres-btn[aria-expanded="true"] .material-symbols-outlined { transform: rotate(180deg); }
.pro-autres { display: flex; flex-direction: column; gap: 2px; padding: 8px 16px; border-radius: var(--pro-r-m); background: var(--pro-fond-encart); }
.pro-autres .rf-check { align-items: flex-start; padding: 10px 0; }
.pro-autres .rf-check + .rf-check { border-top: 1px solid var(--pro-filet); }
.pro-autres .rf-check label { display: flex; flex-direction: column; gap: 4px; flex: 1 1 auto; min-width: 0; }
.pro-check-ligne { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font-size: 15px; font-weight: 600; color: var(--pro-encre); }
.pro-check-ligne b { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pro-check-note { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 12.5px; color: var(--pro-gris-2); }
.pro-autres .rf-check.is-off label { cursor: not-allowed; }
.pro-autres .rf-check.is-off .pro-check-ligne { opacity: .5; }
.pro-autres .rf-check input:disabled { cursor: not-allowed; opacity: .5; }

/* Ligne facultative */
.pro-facultatif { display: flex; flex-direction: column; gap: 12px; padding-top: 20px; border-top: 1px solid var(--pro-filet-2); }
.pro-puces-intitule { display: flex; flex-wrap: wrap; gap: 6px; }

/* ---------- Colonne « Votre prix » ----------
   Total, lignes, conditions et bouton PDF tiennent ensemble à l'écran (1366 × 768) : pas de défilement
   interne. Le bouton PDF est dans le flux, juste sous les conditions. Si la colonne devient plus haute
   que l'écran (plusieurs dates…), pros.js la rend statique (.is-statique) : elle suit alors la page. */
.pro-aside { min-width: 0; padding-top: 32px; }
@media (min-width: 1024px) {
  .pro-aside { position: sticky; top: calc(var(--header-h-compact) + 16px); gap: 10px; }
  .pro-aside.is-statique { position: static; }
  .pro-aside .rf-sum { gap: 10px; padding: 16px 22px 14px; }
  .pro-aside .rf-sum-dark { padding: 14px 20px 14px; }
  .pro-aside .pro-btn-pdf { padding-top: .85rem; padding-bottom: .85rem; }
  /* Grille des prix : sous le formulaire, dans la colonne de gauche */
  .pro-guichet__in > .pro-grille { grid-column: 1; }
}
.pro-sum { position: relative; }
.pro-temoin { position: absolute; top: -30px; right: 18px; z-index: 1; --tm-w: 150px; transform: rotate(-3deg); pointer-events: none; transition: opacity .2s ease, transform .2s var(--ease-out); }
.pro-temoin .tm { --tm-shadow: 0 14px 28px -10px rgba(3,8,0,.7); }
.pro-temoin .tm__band--long { --tm-fs: 5.1; }
.pro-temoin.is-off { opacity: 0; transform: translateY(6px) rotate(-3deg); }
.pro-logo-slot { display: inline-block; width: 1.6em; height: 1em; margin-right: .35em; border: 1px dashed currentColor; border-radius: 2px; opacity: .55; vertical-align: -0.1em; }
/* La place du mini tirage n'est réservée qu'à côté du titre ; la ligne de date passe sous le total, en pleine largeur. */
.pro-sum-head { min-height: 30px; }
.pro-sum-head .rf-sum-title { padding-right: 150px; }
.pro-sum-date { margin: 2px 0 0; font-size: 12.5px; line-height: 1.45; color: var(--pro-gris-2); }
.pro-sum-resume { margin: 0; font-size: 15px; line-height: 1.4; }
.pro-sum-resume .pro-sum-lien { position: relative; min-height: 0; font-size: 15px; }
.pro-sum-resume .pro-sum-lien::after { content: ''; position: absolute; inset: -12px 0; }   /* zone tactile de 44 px */
/* Total et libellé sur une ligne (« 307 € Total net »), puis suite, mention TVA et date en pleine largeur */
.pro-total-bloc { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; padding: 0 0 12px; border-bottom: 1px solid var(--pro-filet-2); }
.pro-total-lbl { order: 2; font-size: 14px; font-weight: 600; color: var(--pro-texte-3); }
.pro-total { order: 1; display: block; font: 700 40px/1.1 'Fraunces', Georgia, serif; font-variant-numeric: tabular-nums; color: var(--pro-vert); }
.pro-total-bloc > :nth-child(n+3) { order: 3; flex-basis: 100%; }
.pro-total-bloc > .pro-total-cote { flex-basis: auto; }
.pro-total.is-maj { animation: proTotal .16s var(--ease-out); }
@keyframes proTotal { from { opacity: .4; transform: translateY(4px); } }
.pro-total-suite { font-size: 13px; color: var(--pro-gris-2); }
.pro-total-suite:empty { display: none; }
.pro-total-cote { margin-top: 6px; }
.pro-sum-lien { min-height: 44px; padding: 0; border: 0; background: none; color: var(--pro-vert-texte); font: 700 15px/1.3 'Plus Jakarta Sans', sans-serif; text-align: left; text-decoration: underline; text-decoration-color: var(--pro-citron); text-decoration-thickness: 2px; text-underline-offset: 4px; cursor: pointer; }
.pro-sum-lien:hover { color: var(--pro-vert); }
.pro-sum .rf-sum-name { line-height: 1.35; }
.rf-sum-totals .rf-sum-row { position: relative; display: flex; isolation: isolate; }
.pro-l-lib { min-width: 0; }
.pro-l-val { display: inline-flex; flex: none; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 4px 6px; max-width: 62%; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--pro-encre); text-align: right; }
.pro-l-gratuit { font-weight: 700; color: var(--pro-vert-ok); }
.pro-l-sep { margin-top: 4px; padding-top: 8px; border-top: 1px dashed var(--pro-filet-2); }
.rf-sum-row.is-flash::before { content: ''; position: absolute; inset: -3px -8px; z-index: -1; border-radius: 8px; background: var(--pro-fond-ok); animation: proFlash 1.2s ease-out forwards; }
@keyframes proFlash { from { opacity: 1; } to { opacity: 0; } }
.pro-multi { display: flex; flex-direction: column; gap: 12px; }
.pro-frises { display: flex; flex-direction: column; gap: 10px; }
.pro-frise-annee { margin: 0 0 4px; font-size: 12px; font-weight: 700; color: var(--pro-gris-2); }
.pro-frise { display: flex; gap: 3px; }
.pro-frise__m { display: flex; flex: 1 1 0; align-items: center; justify-content: center; gap: 2px; min-width: 0; height: 28px; border-radius: 6px; background: var(--pro-fond-onglet); color: var(--pro-gris-2); font: 700 10px/1 'Plus Jakarta Sans', sans-serif; }
.pro-frise__m.is-on { background: var(--pro-vert); color: var(--pro-citron); }
.pro-frise__m b { font-size: 11px; font-weight: 800; color: #fff; }
.pro-frise--grande .pro-frise__m { height: 34px; font-size: 11px; }
.pro-exercices { margin: 0; font-size: 13px; line-height: 1.5; color: var(--pro-texte-3); }
.pro-sum-conv { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border: 1px solid #DCE5C6; border-radius: 14px; background: var(--pro-fond-ok); }
.pro-sum-conv .material-symbols-outlined { flex: none; font-size: 20px; color: var(--pro-vert-texte); }
.pro-sum-conv p { margin: 0; font-size: 13px; line-height: 1.55; color: var(--pro-texte-3); }
.pro-sum-conv a { font-weight: 700; color: var(--pro-vert-ok); text-decoration: underline; }

/* Conditions (fond vert sombre) */
.pro-conditions { position: relative; gap: 10px; }
.pro-conditions span { opacity: 1; font-size: inherit; }
.pro-conditions .material-symbols-outlined { font-size: 14px; }
.pro-conditions__in { display: flex; flex-direction: column; gap: 8px; transition: opacity .16s ease; }
.pro-conditions__in.is-fondu { opacity: 0; }
.pro-conditions strong { font-size: 15px; color: #fff; }
.pro-cond-tete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin: 0; }
.pro-cond-ul { display: flex; flex-direction: column; gap: 5px; margin: 0; padding: 0; list-style: none; }
.pro-cond-ul li { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; line-height: 1.4; color: rgba(255,255,255,.88); }
.pro-cond-ul li > span:last-child { display: inline; }
.pro-cond-ul .pro-cond-ic { flex: none; margin-top: 1px; font-size: 18px; color: var(--pro-citron); }
.pro-cond-attente { margin: 0; font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.85); }
.pro-cond-lien { position: relative; display: inline-flex; align-items: center; min-height: 24px; color: var(--pro-citron); font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.pro-cond-lien::after { content: ''; position: absolute; inset: -10px -4px; }   /* zone tactile de 44 px */
.pro-cond-lien:hover { color: var(--pro-citron-2); }

/* Actions */
.pro-pdf-colle { display: flex; flex-direction: column; }
.pro-pdf-colle .pro-btn-pdf { justify-content: center; }
.pro-actions { display: flex; flex-direction: column; gap: 8px; }
.pro-pdf-colle + .pro-actions { margin-top: -6px; }
.pro-btn-pdf .material-symbols-outlined { font-size: 20px; }
.pro-btn-pdf.is-ok { background: var(--pro-fond-ok); box-shadow: inset 0 0 0 2px var(--pro-citron); }
.pro-pdf-suite { margin: 0; font-size: 13px; line-height: 1.5; color: var(--pro-vert-ok); text-align: center; }
.pro-pdf-suite button { padding: 0; border: 0; background: none; color: inherit; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
.pro-actions-note { margin: -2px 0 2px; font-size: 12px; color: var(--pro-gris-2); text-align: center; }
.pro-actions .btn-outline { justify-content: center; width: 100%; padding: .875rem 1rem; font-size: .95rem; }
.pro-actions__rang { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pro-actions .pro-btn-court { gap: 6px; min-height: 44px; padding: .55rem .5rem; font-size: 14px; line-height: 1.2; text-align: center; }
.pro-btn-court .material-symbols-outlined { flex: none; font-size: 18px; }
.pro-lien-dossier { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 6px 8px; border: 0; background: none; color: var(--pro-vert-ok); font: 700 14px/1.3 'Plus Jakarta Sans', sans-serif; text-align: left; cursor: pointer; }
.pro-lien-dossier .material-symbols-outlined { flex: none; font-size: 20px; }
.pro-lien-dossier__txt { display: flex; flex-direction: column; gap: 1px; }
.pro-lien-dossier__txt > span { text-decoration: underline; text-underline-offset: 3px; }
.pro-lien-dossier small { font-size: 12px; font-weight: 500; color: var(--pro-gris-2); }
.pro-lien-dossier:hover .pro-lien-dossier__txt > span { color: var(--pro-sombre); }

/* Grille complète */
.pro-grille { min-width: 0; padding: 16px 20px; border-radius: 20px; background: #fff; }
.pro-grille summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; margin: -6px 0; font-size: 14px; font-weight: 700; list-style: none; cursor: pointer; }
.pro-grille summary::-webkit-details-marker { display: none; }
.pro-grille summary .material-symbols-outlined { transition: transform .2s var(--ease-out); }
.pro-grille[open] summary .material-symbols-outlined { transform: rotate(180deg); }
.pro-grille__corps { padding-top: 8px; }
.pro-grille table { width: 100%; margin-top: 8px; border-collapse: collapse; font-size: 13.5px; }
.pro-grille caption { padding: 8px 0 4px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pro-vert-texte); text-align: left; }
.pro-grille td { padding: 7px 0; border-bottom: 1px solid var(--pro-filet-3); line-height: 1.4; color: var(--pro-texte-2); }
.pro-grille td:last-child { padding-left: 12px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--pro-texte); text-align: right; white-space: nowrap; }
.pro-grille__pied { margin: 12px 0 0; font-size: 12px; line-height: 1.5; color: var(--pro-gris-2); }

@media (max-width: 639px) {
  .pro-statuts .event-type-card { min-height: 84px; padding: 10px 4px; }
  .pro-statuts .event-label { font-size: 12.5px; }
  .pro-statut-ic { font-size: 26px; }
  .pro-tabs--fill .rf-tab { padding: 10px 4px; font-size: 13px; }
  .pro-forfaits.pb-card__tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pro-forfait-meta { grid-template-areas: "nom prix" "detail detail"; }
  .pro-meta-nom { font-size: 22px; }
  .pro-meta-prix { font-size: 26px; }
  .pro-temoin { --tm-w: 128px; }
  .pro-sum-head .rf-sum-title { padding-right: 130px; }
  .pro-sum.rf-sum { padding: 22px 18px; }
  .pro-total { font-size: 36px; }
  .pro-sans-compte { margin-top: 0; }
}

/* =====================================================================
   3. RÉFÉRENCES
   ===================================================================== */
.pro-refs { padding: 1rem 0 4rem; background: var(--pro-fond-guichet); }
.pro-plaque { padding: 2rem 2.5rem 1.75rem; border-radius: 1.75rem; background: #fff; box-shadow: 0 20px 50px rgba(26,46,0,.10), 0 1px 0 #e8edde; }
.pro-chiffres { display: flex; flex-direction: column; }
.pro-chiffre { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 1rem 0; }
.pro-chiffre:first-child { padding-top: 0; }
.pro-chiffre + .pro-chiffre { border-top: 1px solid #eaefdf; }
.pro-chiffre__val { display: inline-flex; align-items: center; gap: 6px; font: 700 2.5rem/1 'Fraunces', Georgia, serif; font-variant-numeric: tabular-nums; color: var(--pro-vert); }
.pro-etoile { font-size: 18px; color: #f9ab00; font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24; }
.pro-chiffre__lbl { font-size: 13px; font-weight: 600; color: var(--pro-gris); }
.pro-chiffre__lien { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; font-size: 13px; font-weight: 700; color: var(--pro-vert-texte); }
.pro-chiffre__lien .material-symbols-outlined { font-size: 16px; }
.pro-chiffre__lien:hover { text-decoration: underline; }
.pro-plaque .pb-tech-label { margin-bottom: 1.25rem; text-align: left; }
.pro-logos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1.5rem; }
.pro-ref { display: flex; flex-direction: column; align-items: center; margin: 0; }
.pro-ref__boite { display: flex; align-items: center; justify-content: center; width: 100%; height: 80px; }
.pro-plaque .idx-logo-img { max-width: 100%; opacity: .7; }
.pro-ref:hover .idx-logo-img { opacity: 1; filter: none; }
@media (min-width: 900px) {
  /* Logos centrés face aux chiffres : pas de vide sous les logos */
  .pro-plaque { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 2.5rem; align-items: center; }
}
@media (max-width: 899px) {
  .pro-chiffres { flex-direction: row; gap: 1.5rem; margin-bottom: 1.25rem; padding-bottom: 1.25rem; border-bottom: 1px solid #eaefdf; }
  .pro-chiffre { flex: 1 1 0; padding: 0; }
  .pro-chiffre + .pro-chiffre { padding-left: 1.5rem; border-top: 0; border-left: 1px solid #eaefdf; }
}
@media (max-width: 639px) {
  .pro-refs { padding-bottom: 3rem; }
  .pro-plaque { padding: 1.5rem 1.25rem; border-radius: 22px; }
  .pro-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem 1rem; }
  .pro-chiffre__val { font-size: 2rem; }
}

/* =====================================================================
   4. DU PRIX À LA FACTURE (section resserrée : 1 200 px au plus à 1440 px de large)
   ===================================================================== */
.pro-circuit.loa-section-white { padding-top: 4rem; padding-bottom: 4rem; }
.pro-circuit .loa-section-header { margin-bottom: 2rem; }
.pro-statut-tabs { width: fit-content; max-width: 100%; margin: 0 auto 2rem; }
.pro-etapes { display: grid; align-content: start; gap: 2rem; margin: 0; padding: 0; list-style: none; }
.pro-etape { position: relative; display: grid; grid-template-columns: 52px minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 12px; row-gap: 14px; }
.pro-etape .process-num { position: relative; z-index: 1; grid-column: 1; grid-row: 1; }
.pro-etape__acteurs { position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; grid-column: 2; grid-row: 1; }
.pro-etape__txt { grid-column: 1 / -1; grid-row: 2; }
.pro-etape__txt h3 { margin: 0 0 6px; font-size: 17px; font-weight: 800; line-height: 1.3; color: var(--pro-texte); }
.pro-etape__txt p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--pro-gris); }
.pro-etape__acteurs, .pro-etape__txt { transition: opacity .16s ease; }
.pro-etapes.is-fondu .pro-etape__acteurs, .pro-etapes.is-fondu .pro-etape__txt { opacity: 0; }
.pro-acteur { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: var(--pro-r-pill); font: 700 12px/1.4 'Plus Jakarta Sans', sans-serif; white-space: nowrap; }
.pro-acteur .material-symbols-outlined { font-size: 14px; }
.pro-acteur--vous { border: 1px solid var(--pro-filet-2); background: #fff; color: var(--pro-encre); }
.pro-acteur--fotografia { background: var(--pro-citron-grad); color: var(--pro-vert); }
@media (min-width: 900px) {
  .pro-etapes { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pro-etape:not(:last-child)::after { content: ''; position: absolute; top: 25px; left: 60px; right: calc(-2rem + 6px); z-index: 0; border-top: 2px dashed var(--pro-pointille); }
}
@media (max-width: 899px) {
  .pro-etapes { gap: 1.75rem; }
  .pro-etape { grid-template-columns: 44px minmax(0, 1fr); grid-template-rows: auto auto; row-gap: 8px; column-gap: 14px; }
  .pro-etape .process-num { grid-row: 1 / span 2; align-self: start; width: 44px; height: 44px; font-size: 1.1rem; }
  .pro-etape__acteurs { min-height: 44px; }
  .pro-etape__txt { grid-column: 2; }
  .pro-etape:not(:last-child)::after { content: ''; position: absolute; top: 50px; bottom: calc(-1.75rem + 6px); left: 21px; z-index: 0; border-left: 2px dashed var(--pro-pointille); }
}
@media (max-width: 639px) {
  .pro-statut-tabs { width: 100%; }
  .pro-long { display: none; }
  .pro-court { display: inline; }
}
.pro-statut-tabs .rf-tab { transition: background .2s, color .2s; }

/* Encadré du bon de commande */
.pro-bc { display: grid; gap: .75rem 2rem; margin-top: 2rem; padding: 1.25rem 1.75rem; border: 1px solid var(--pro-filet); border-radius: 1.5rem; background: #fff; }
.pro-bc__titre { margin: 0; font-size: 18px; font-weight: 800; line-height: 1.3; color: var(--pro-texte); }
.pro-bc__texte { margin: 6px 0 0; font-size: 14px; color: var(--pro-gris); }
.pro-bc .pricing-feature .check .material-symbols-outlined { font-size: 14px; color: var(--pro-vert-texte); }
.pro-bc .pricing-feature { padding-top: .3rem; padding-bottom: .3rem; font-size: 14.5px; }
.pro-bc__note.tar-note { margin-top: .5rem; text-align: left; }
@media (min-width: 768px) {
  .pro-bc { grid-template-columns: 1.3fr 1fr; }
}
@media (max-width: 639px) {
  .pro-bc { padding: 1.25rem; }
}

/* Conditions du statut consulté (sous les étapes, mêmes onglets) */
.pro-cond-detail { margin-top: 1.25rem; border: 1px solid var(--pro-filet); border-radius: 1.5rem; background: #fff; }
.pro-cond-detail__resume { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 6px 22px; list-style: none; cursor: pointer; }
.pro-cond-detail__resume::-webkit-details-marker { display: none; }
.pro-cond-detail__resume:focus { outline: none; }
.pro-cond-detail__resume:focus-visible { outline: 3px solid var(--pro-citron); outline-offset: 2px; border-radius: 1.5rem; }
.pro-cond-detail__titre { font-size: 16px; font-weight: 800; line-height: 1.35; color: var(--pro-texte); }
.pro-cond-detail__resume > .material-symbols-outlined { flex: none; color: var(--pro-gris-2); transition: transform .2s var(--ease-out); }
.pro-cond-detail[open] .pro-cond-detail__resume > .material-symbols-outlined { transform: rotate(180deg); }
.pro-cond-detail__corps { padding: 0 22px 10px; border-top: 1px solid var(--pro-filet); }
.pro-cond-detail .spec-row { display: grid; grid-template-columns: 170px minmax(0, 1fr); align-items: baseline; gap: 2px 18px; padding: .55rem 0; }
.pro-cond-detail__lbl { font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pro-vert-texte); }
.pro-cond-detail__val { font-size: 14.5px; line-height: 1.5; color: var(--pro-texte-2); text-align: left; }
@media (max-width: 639px) {
  .pro-cond-detail__resume { padding: 8px 16px; }
  .pro-cond-detail__corps { padding: 0 16px 8px; }
  .pro-cond-detail .spec-row { grid-template-columns: minmax(0, 1fr); }
}

/* =====================================================================
   5. LES PIÈCES ADMINISTRATIVES
   ===================================================================== */
/* Texte d'introduction sur fond gris : gris plus foncé que .loa-section-desc (4,26:1) pour atteindre AA (style.css inchangé) */
.pro-pieces-section .loa-section-desc { color: var(--pro-gris-2); }
.pro-pieces-grille { display: grid; align-items: start; gap: 2rem; }
@media (min-width: 900px) {
  .pro-pieces-grille { grid-template-columns: 5fr 7fr; }
}
/* Valeur et outils sur la même ligne tant qu'il y a la place (sinon les outils passent dessous) */
.pro-pieces-grille .pro-identite dd > span:first-child { flex: 1 1 0; min-width: min-content; }
.pro-identite dd a { color: inherit; font-weight: 600; white-space: nowrap; }
.pro-identite dd a:hover { text-decoration: underline; }
.pro-pieces-mini { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.pro-pieces-mini li { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: start; gap: 12px; padding: 14px 16px; border: 1px solid var(--pro-filet-2); border-radius: 18px; background: #fff; }
.pro-piece-tuile { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: var(--pro-fond-guichet); }
.pro-piece-tuile .material-symbols-outlined { font-size: 22px; color: var(--pro-vert-texte); }
.pro-piece-nom { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--pro-texte); }
.pro-piece-statut { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 4px 0 0; font-size: 12.5px; font-weight: 600; line-height: 1.4; color: var(--pro-vert-ok); }
.pro-piece-statut.is-neutre { color: var(--pro-gris-2); }
.pro-pieces-fraude { margin-top: 1.5rem; }
.pro-pieces-cta { display: flex; flex-direction: column; align-items: center; gap: 2px; margin-top: 2rem; text-align: center; }
.pro-pieces-cta .tar-note { margin-top: .75rem; font-size: 13px; }
@media (max-width: 639px) {
  .pro-pieces-mini { grid-template-columns: 1fr; }
  .pro-pieces-cta .btn-outline { justify-content: center; width: 100%; }
  .pro-fraude { padding: 18px 16px; }
}

/* =====================================================================
   6. SUR PLACE ET APRÈS
   ===================================================================== */
.pro-cartes { display: grid; gap: 1.5rem; }
@media (min-width: 900px) {
  .pro-cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.pro-carte { display: flex; flex-direction: column; gap: 18px; padding: 28px; border: 1px solid var(--pro-filet-3); border-radius: 1.5rem; background: var(--pro-fond-gris); }
.pro-carte .pb-tech-label { margin: 0; text-align: left; }
.pro-tech-liste { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
.pro-tech-liste li { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.45; color: var(--pro-texte-2); }
.pro-tech-liste li > span:last-child { padding-top: 7px; }
.pro-tuile { display: flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 36px; border: 1px solid var(--pro-filet); border-radius: 10px; background: #fff; }
.pro-tuile .material-symbols-outlined { font-size: 20px; color: var(--pro-vert-texte); }
.pro-carte__pied { margin: auto 0 0; padding-top: 16px; border-top: 1px solid var(--pro-filet); font-size: 13.5px; line-height: 1.55; color: var(--pro-gris); }
.pro-carte__img { margin: 0; text-align: center; }
.pro-carte__img img { display: block; width: 220px; max-width: 100%; height: auto; margin: 0 auto; border-radius: 14px; background: #fff; }
.pro-carte__img figcaption { margin-top: 6px; font-size: 12.5px; color: var(--pro-gris-2); }
/* Fiche technique, 640 px et plus : le schéma (180 px) flotte à droite ; chaque ligne de la liste (un bloc
   flex, donc un contexte de formatage) se range à côté du schéma, puis reprend toute la largeur dessous.
   Les deux cartes de la grille gardent la même hauteur, sans vide sous la liste de droite. */
.pro-tech-corps { display: flow-root; }
@media (min-width: 640px) {
  .pro-carte--tech .pro-carte__img { float: right; width: 180px; margin: 0 0 12px 20px; }
  .pro-carte--tech .pro-carte__img img { width: 100%; }
  .pro-carte--tech .pro-tech-liste { display: block; }
  .pro-carte--tech .pro-tech-liste li + li { margin-top: 12px; }
}
/* Deux cartes côte à côte (900 px et plus) : la liste de la carte « Photos » se répartit sur la hauteur de
   la carte voisine, sans bloc vide avant son pied. */
@media (min-width: 900px) {
  .pro-cartes > .pro-carte:not(.pro-carte--tech) > .pro-tech-liste { flex: 1 1 auto; justify-content: space-between; }
}
@media (max-width: 639px) {
  .pro-carte { padding: 22px 18px; }
  .pro-carte__img img { width: 240px; }
  .pro-carte--tech .pro-carte__img { margin-bottom: 18px; }
}

/* =====================================================================
   7. PLUSIEURS DATES DANS L'ANNÉE
   ===================================================================== */
.pro-surtitre { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pro-citron); }
.pro-liste-sombre { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pro-liste-sombre li { display: flex; align-items: flex-start; gap: 10px; font-size: 16px; line-height: 1.45; color: rgba(255,255,255,.85); }
.pro-liste-sombre li > .material-symbols-outlined { flex: none; margin-top: 1px; font-size: 20px; color: var(--pro-citron); }
.pro-conv-btns { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin-top: .5rem; }
.pro-conv-btns .material-symbols-outlined { font-size: 20px; }
.pro-conv-btns .btn-primary { padding-left: 1.4rem; padding-right: 1.4rem; }
.pro-conv-lien { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0; border: 0; background: none; color: #fff; font: 700 15px/1.3 'Plus Jakarta Sans', sans-serif; text-decoration: underline; text-decoration-color: var(--pro-citron); text-decoration-thickness: 2px; text-underline-offset: 5px; cursor: pointer; }
.pro-conv-lien:hover { color: var(--pro-citron); }
.pro-conv-lien .material-symbols-outlined { font-size: 18px; text-decoration: none; transition: transform .2s var(--ease-out); }
.pro-conv-lien:hover .material-symbols-outlined { transform: translateX(3px); }
.pro-conv-tel { margin: 0; font-size: 14px; color: rgba(255,255,255,.6); }
.pro-conv-tel a { font-weight: 700; color: #fff; text-decoration: underline; white-space: nowrap; }
.pro-frise-legende { margin: 8px 0 0; font-size: 12px; color: var(--pro-gris); }
.pro-conv-lignes .spec-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: baseline; gap: 12px; font-size: 14.5px; color: var(--pro-texte-2); }
.pro-conv-forfait { font-size: 13px; color: var(--pro-gris); }
.pro-conv-prix { font: 700 22px/1 'Fraunces', Georgia, serif; font-variant-numeric: tabular-nums; color: var(--pro-vert); text-align: right; white-space: nowrap; }
.pro-conv-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 14px; border-top: 1px solid var(--pro-filet); }
.pro-conv-total__lbl { font-size: 15px; font-weight: 700; color: var(--pro-texte); }
.pro-conv-total .pb-card__price { font-size: 2.5rem; }
.pro-conv-net { font-size: 14px; color: var(--pro-gris); }
.pro-conv-degressif { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 0; font-size: 13.5px; color: var(--pro-texte-2); }
@media (max-width: 639px) {
  .pro-convention .pb-tarifs__in { padding: 3.5rem 1.25rem; }
  .pro-conv-btns .btn-primary { justify-content: center; width: 100%; }
}
@media (max-width: 479px) {
  .pro-conv-lignes .spec-row { grid-template-columns: minmax(0, 1fr) auto; row-gap: 2px; }
  .pro-conv-forfait { grid-column: 1; grid-row: 2; }
  .pro-conv-prix { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
}

/* =====================================================================
   8. QUESTIONS
   ===================================================================== */
.pro-faq .faq-answer a { font-weight: 700; color: var(--pro-vert-texte); white-space: nowrap; }

/* =====================================================================
   9. APPEL FINAL
   ===================================================================== */
.pro-final .loa-cta-inner { text-align: center; }
.pro-final .loa-cta-desc { margin-left: auto; margin-right: auto; }
.pro-final .loa-cta-row .material-symbols-outlined { font-size: 20px; }
.pro-final-mail { margin: 1.25rem 0 0; font-size: 14px; color: rgba(255,255,255,.65); user-select: all; }
@media (max-width: 639px) {
  .pro-final .loa-cta-card { padding: 2.5rem 1.25rem; }
  .pro-final .loa-cta-row > * { justify-content: center; width: 100%; }
}

/* =====================================================================
   FEUILLE DE DEMANDE (dialog)
   ===================================================================== */
.pro-feuille { width: min(560px, calc(100vw - 32px)); max-width: none; max-height: 88vh; margin: auto; padding: 0; overflow: hidden; border: 0; border-radius: 28px; background: #fff; color: var(--pro-encre); box-shadow: 0 24px 60px rgba(0,0,0,.3); }
.pro-feuille[open] { display: flex; }
.pro-feuille::backdrop { background: rgba(22,33,15,.55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.pro-feuille__form { display: flex; flex-direction: column; width: 100%; min-height: 0; max-height: 88vh; }
.pro-feuille__tete { flex: none; padding: 24px 28px 10px; }
.pro-feuille__poignee { display: none; }
.pro-feuille__titre { margin: 0; font: 700 26px/1.15 'Fraunces', Georgia, serif; color: var(--pro-encre); }
.pro-feuille__titre:focus { outline: none; }
.pro-feuille__fermer { position: relative; }
.pro-feuille__fermer::after { content: ''; position: absolute; inset: -4px; border-radius: 50%; }
.pro-feuille__corps { display: flex; flex-direction: column; gap: 18px; flex: 1 1 auto; min-height: 0; padding: 8px 28px 20px; overflow-y: auto; overscroll-behavior: contain; }
.pro-feuille__pied { display: flex; flex-direction: column; gap: 12px; flex: none; padding: 16px 28px 24px; border-top: 1px solid var(--pro-filet-2); background: #fff; }
.pro-feuille__pied .rf-reassure { justify-content: center; gap: 4px 18px; }
.pro-rappel { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0; padding: 12px 14px; border-radius: 14px; background: var(--pro-fond-guichet); font-size: 14px; font-weight: 600; line-height: 1.45; }
.pro-rappel > .material-symbols-outlined { flex: none; font-size: 20px; color: var(--pro-vert-texte); }
.pro-rappel__txt { flex: 1 1 200px; min-width: 0; }
.pro-rappel__mod { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; color: var(--pro-vert-ok); font-weight: 700; text-decoration: underline; }
.pro-feuille__demandes { min-width: 0; margin: 0; padding: 0; border: 0; }
.pro-feuille__demandes > * + * { margin-top: 10px; }
.pro-feuille .rf-check label { padding-top: 1px; }
.pro-feuille .rf-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 12px; }
.pro-feuille .rf-grid-3 .rf-field { justify-content: flex-end; }
.pro-f-public { display: flex; flex-direction: column; gap: 8px; }
.pro-textarea.rf-textarea { min-height: 96px; }
.pro-f-err { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 13px; font-weight: 600; color: #ba1a1a; }
.pro-f-err .material-symbols-outlined { flex: none; font-size: 16px; }
.pro-f-info { display: flex; align-items: flex-start; gap: 6px; margin: 0; font-size: 13px; line-height: 1.45; color: var(--pro-gris-2); }
.pro-f-info .material-symbols-outlined { flex: none; font-size: 16px; margin-top: 1px; }
/* Erreur d'envoi de la feuille (au-dessus du bouton) : texte rouge du site, icône 18 px */
.pro-feuille__pied .pro-f-err { align-items: flex-start; margin: 0 0 10px; line-height: 1.45; }
.pro-feuille__pied .pro-f-err .material-symbols-outlined { font-size: 18px; }
body.pro-feuille-ouverte { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
  .pro-feuille { transition: opacity .24s var(--ease-out), transform .24s var(--ease-out); }
  .pro-feuille.is-entree, .pro-feuille.is-sortie { opacity: 0; transform: translateY(12px) scale(.98); }
}
@media (max-width: 639px) {
  .pro-feuille { width: 100%; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); margin: auto 0 0; border-radius: 22px 22px 0 0; }
  .pro-feuille__form { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
  .pro-feuille__tete { padding: 10px 16px 8px; touch-action: none; }
  .pro-feuille__poignee { display: block; width: 36px; height: 4px; margin: 0 auto 12px; border-radius: 999px; background: var(--pro-pointille); }
  .pro-feuille__titre { font-size: 23px; }
  .pro-feuille__corps { padding: 6px 16px 18px; }
  .pro-feuille__pied { padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); }
  .pro-feuille .rf-grid-3 { grid-template-columns: 1fr; }
  .pro-feuille .rf-reassure { gap: 4px 12px; }
}
@media (max-width: 639px) and (prefers-reduced-motion: no-preference) {
  .pro-feuille { transition: transform .26s var(--ease-out); }
  .pro-feuille.is-entree, .pro-feuille.is-sortie { opacity: 1; transform: translateY(100%); }
  .pro-feuille.is-glisse { transition: none; }
}

/* =====================================================================
   CONFIRMATION « DEMANDE ENVOYÉE » (popup existante du formulaire)
   ===================================================================== */
.rf-merci:not([hidden]) { display: flex; }
.rf-merci-title:focus { outline: none; }
/* Croix de 36 px (pros-base.css, déjà en position absolue) : zone tactile portée à 44 px */
.rf-merci-close::after { content: ''; position: absolute; inset: -4px; border-radius: 50%; }
.rf-merci-text p { margin: 0; }
.rf-merci-text p + p { margin-top: 8px; }
.rf-merci-info > span { align-items: flex-start; }
.rf-merci-info > span > .material-symbols-outlined { flex: none; }
body.pro-merci-ouverte { overflow: hidden; }

/* =====================================================================
   BARRE DE PRIX FIXE (sous 1024 px)
   ===================================================================== */
.pro-mbar { display: none; }
@media (max-width: 1023px) {
  .pro-mbar { position: fixed; right: 0; bottom: 0; left: 0; z-index: 8000; display: block; padding-bottom: env(safe-area-inset-bottom, 0px); border-top: 1px solid var(--pro-filet-2); background: #fff; color: var(--pro-encre); box-shadow: 0 -8px 24px rgba(22,33,15,.08); font-family: 'Plus Jakarta Sans', sans-serif; transform: translateY(100%); visibility: hidden; transition: transform .26s var(--ease-out), visibility 0s linear .26s; }
  .pro-mbar.is-on { transform: none; visibility: visible; transition: transform .26s var(--ease-out); }
  body.has-mbar { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  /* Bulle du chat au-dessus de la barre (elle en masquait le bouton « Proposition »),
     mêmes valeurs que formulaire-reservation.php */
  body.has-mbar #fcw-btn { bottom: calc(78px + env(safe-area-inset-bottom, 0px)); }
  body.has-mbar #fcw-tip { bottom: calc(146px + env(safe-area-inset-bottom, 0px)); }
}
@media (min-width: 601px) and (max-width: 1023px) {
  body.has-mbar #fcw-win { bottom: 150px; }
}
.pro-mbar__ligne { display: flex; align-items: center; gap: 6px; min-height: 64px; padding-right: 16px; }
.pro-mbar .rf-mrecap-bar { flex: 1 1 auto; min-width: 0; padding-right: 4px; }
.pro-mbar .rf-mrecap-sel { flex: 1 1 auto; }
.pro-mbar .rf-mrecap-total { font-variant-numeric: tabular-nums; }
.pro-mbar .rf-mrecap-total small { font: 600 12px 'Plus Jakarta Sans', sans-serif; color: var(--pro-gris-2); }
/* Ce qui n'est pas dans le total (livraison sur devis ou selon le lieu) : 3e ligne, seulement si besoin */
.pro-mbar-suite { overflow: hidden; font-size: 12px; font-weight: 600; line-height: 1.3; color: var(--pro-gris-2); text-overflow: ellipsis; white-space: nowrap; }
.pro-mbar-suite:empty { display: none; }
.pro-mbar-chev { flex: none; color: var(--pro-gris-2); transition: transform .2s; }
.pro-mbar.is-open .pro-mbar-chev { transform: rotate(180deg); }
.pro-mbar-pdf { display: inline-flex; flex: none; align-items: center; gap: 6px; height: 44px; padding: 0 16px; border-radius: var(--pro-r-pill); background: var(--pro-citron-grad); color: var(--pro-vert); font-size: 15px; font-weight: 800; white-space: nowrap; }
.pro-mbar-pdf .material-symbols-outlined { font-size: 20px; }
.pro-mbar .rf-mrecap-inner { gap: 12px; }
/* Replié : invisible aussi pour le clavier et les lecteurs d'écran (pas seulement max-height: 0). */
.pro-mbar .rf-mrecap-content { visibility: hidden; transition: max-height .3s ease, visibility 0s linear .3s; }
.pro-mbar.is-open .rf-mrecap-content { visibility: visible; transition: max-height .3s ease; }
.pro-mbar-lignes.rf-sum-totals { padding-top: 0; border-top: 0; }
.pro-mbar .btn-outline { justify-content: center; width: 100%; padding: .8rem 1rem; font-size: .95rem; }
.pro-mbar :is(button, a):focus-visible { outline: 3px solid var(--pro-citron); outline-offset: 2px; }
@media (max-width: 379px) {
  .pro-mbar-pdf { padding: 0 12px; font-size: 14px; }
  .pro-mbar-pdf .material-symbols-outlined { display: none; }
}

/* ---------- Animations réduites ---------- */
@media (prefers-reduced-motion: reduce) {
  .pro-payeur, .pro-payeur.is-ouvert, .pro-temoin, .pro-conditions__in, .pro-etape__acteurs, .pro-etape__txt,
  .pro-mbar, .pro-mbar.is-on, .pro-mbar-chev, .pro-fiche__chev, .pro-grille summary .material-symbols-outlined,
  .pro-autres-btn .material-symbols-outlined, .pro-num-offer, .pro-statut-ic, .pro-cond-detail__resume > .material-symbols-outlined,
  .pro-conv-lien .material-symbols-outlined, .pro-mbar .rf-mrecap-content, .pro-mbar.is-open .rf-mrecap-content,
  .rf-opt, .rf-opt-check, .pro-zone-puces .zone-chip, .pro-puces-intitule .zone-chip, .pro-statut-tabs .rf-tab,
  .pro-config .pb-card__tabs button, .pro-sum-lien { transition: none; }
  .pro-conv-lien:hover .material-symbols-outlined { transform: none; }
  .pro-total.is-maj, .rf-sum-row.is-flash::before { animation: none; }
  .rf-sum-row.is-flash::before { display: none; }
  .rf-merci-pose { animation: none; }
}

/* ---------- Impression ---------- */
@media print {
  .pro-mbar, .pro-feuille, .rf-merci { display: none !important; }
}
