/* ============================================================
   PAGES VITRINES refonte V2.5 — fashioncurvyshop.com (03/08/2026, refonte-code)
   Déployé dans : wp-content/themes/enfold-child/refonte-vitrine.css (STAGING)
   Source de vérité : maintenance-fcs/ux/refonte-vitrine.css
   Enfilé par : functions.php, hook wp_enqueue_scripts, prio 999
   Chargé UNIQUEMENT sur FAQ (44528), Livraison & Retour (73626), Contact
   (377), Guides d'entretien (95322), Tableau de bord d'affiliation (114349)
   — fcs_refonte_vitrine_ids(). À PROPOS (12365) N'EST PLUS DANS CETTE LISTE
   depuis le 03/08/2026 : cette page a reçu un remplacement de texte complet
   (contenu maquette V2.5, autorisé explicitement par la gérante) avec son
   propre H1 intégré au contenu — voir refonte-apropos.css, fichier dédié.

   Contexte mesuré avant toute modification (curl réel, staging) : ces pages
   rendaient 0 (zéro) <h1> — la barre de titre Enfold est en 'empty_title'
   (réglage de page/thème existant, jamais touché ici). Un H1 est injecté
   par functions.php via the_content (voir fcs_refonte_vitrine_ids + le
   filtre associé, qui compare get_the_ID() et NON is_page() — piège
   documenté au CHANGELOG du skill), texte = le VRAI titre de la page
   (aucune copie marketing inventée). Ce fichier ne fait que le STYLER
   (.fcs-vitrine-h1).

   ⚠️ Tableau de bord d'affiliation (114349) : à distinguer ABSOLUMENT de
   la page PUBLIQUE d'inscription /affiliation/ (114512, shortcode
   [yith_wcaf_registration_form]) — JAMAIS touchée ici. 114349 contient
   [yith_wcaf_affiliate_dashboard] (état "non affiliée" visible sans
   connexion en tant qu'affiliée ; le détail chiffré du tableau de bord
   n'a pas pu être vérifié visuellement faute de compte affilié de test).

   Le reste du contenu de ces pages n'est PAS restructuré : uniquement
   restylage des classes Enfold/plugins natives déjà rendues (av_toggle,
   av_one_third, boutons, formulaire av_contact, YITH WCAF) — 0 surcharge
   de template, 0 changement de texte.
   ============================================================ */

/* ---------- H1 injecté (structure commune aux 4 pages) --------------------- */
.fcs-vitrine-h1 {
  font-family: var(--fcs-font-title);
  color: var(--fcs-prune);
  font-weight: 400;
  font-size: clamp(28px, 4.5vw, 40px);
  /* line-height retiré 04/08/2026 : mort (1 classe contre la règle sitewide
     à 3 ID de refonte-socle.css). L'interligne passe par --fcs-hn-lh. */
  margin: 8px 0 28px;
  text-wrap: pretty;
}

/* ============================================================
   FAQ (44528) — restylage de l'accordéon natif Enfold (av_toggle_container).
   Classes réelles confirmées par rendu HTML (curl staging, 03/08/2026) :
   .togglecontainer > .av_toggle_section > .single_toggle > p.toggler
   (+ span.toggle_icon > span.vert_icon/.hor_icon) puis .toggle_wrap >
   .toggle_content. Comportement d'ouverture/fermeture 100% natif Enfold
   (son propre script) : aucun JS ajouté ici.
   ============================================================ */
#top.page-id-44528 .av-special-heading-tag {
  font-family: var(--fcs-font-text);
  color: var(--fcs-prune);
  font-weight: 600;
  font-size: 17px;
}
#top.page-id-44528 .togglecontainer { margin-bottom: 28px; }
#top.page-id-44528 .single_toggle {
  border: 1px solid var(--fcs-border-light);
  border-radius: var(--fcs-radius-md);
  margin-bottom: 10px;
  overflow: hidden;
  background: var(--fcs-white);
}
#top.page-id-44528 p.toggler {
  font-family: var(--fcs-font-text);
  font-weight: 600;
  font-size: 15px;
  color: var(--fcs-prune) !important;
  background: transparent !important;
  padding: 15px 20px !important;
  min-height: 44px;
  display: flex;
  align-items: center;
  cursor: pointer;
}
/* Enfold pose des couleurs inline via ses options ("colors_current",
   "hover_colors") sur cette même règle : la charte est reprise ici avec
   !important pour gagner face à ces styles générés en ligne par le
   shortcode (même mécanisme que le badge SAG, étape 4/5 — vérifié via
   document.styleSheets qu'Enfold pose bien du style inline ici). */
#top.page-id-44528 .single_toggle.active_tab p.toggler,
#top.page-id-44528 p.toggler:hover {
  background: var(--fcs-bg-soft) !important;
  color: var(--fcs-framboise) !important;
}
#top.page-id-44528 .toggle_icon .vert_icon,
#top.page-id-44528 .toggle_icon .hor_icon { background: var(--fcs-framboise) !important; }
#top.page-id-44528 .toggle_content {
  font-family: var(--fcs-font-text);
  color: var(--fcs-text-secondary);
  line-height: 1.7;
  padding: 4px 20px 18px !important;
  background: var(--fcs-white) !important;
}
#top.page-id-44528 .toggle_content strong { color: var(--fcs-prune); }

/* ============================================================
   Livraison & Retour (73626) — cartes transporteurs (av_one_third natif),
   badge réassurance ajouté par hook (fcs_refonte_livraison_badge), boutons
   natifs (av_button → .avia-button).
   ============================================================ */
#top.page-id-73626 .fcs-vitrine-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--fcs-bg-soft);
  border: 1px solid var(--fcs-border-light);
  color: var(--fcs-prune);
  font-size: 13.5px;
  font-weight: 600;
  padding: 10px 18px;
  border-radius: var(--fcs-radius-pill);
  margin: 0 0 28px;
}
#top.page-id-73626 .flex_column.av_one_third,
#top.page-id-73626 .flex_column.av_one_half {
  background: var(--fcs-white);
  border: 1px solid var(--fcs-border-light);
  border-radius: var(--fcs-radius-md);
  padding: 6px 4px !important;
}
#top.page-id-73626 .av-special-heading-tag {
  font-family: var(--fcs-font-title);
  color: var(--fcs-prune);
  font-weight: 400;
}
#top.page-id-73626 .avia-button,
#top.page-id-73626 .avia-button-wrap .avia-button {
  border-radius: var(--fcs-radius-pill) !important;
  background: var(--fcs-framboise) !important;
  border-color: var(--fcs-framboise) !important;
  font-family: var(--fcs-font-text);
  min-height: 44px;
}
#top.page-id-73626 .avia-button:hover { background: #8f3a55 !important; border-color: #8f3a55 !important; }
#top.page-id-73626 .avia_textblock { font-family: var(--fcs-font-text); color: var(--fcs-text-secondary); line-height: 1.7; }
#top.page-id-73626 .avia_textblock strong { color: var(--fcs-prune); }

/* ============================================================
   Contact (377) — cartes de contact (av_codeblock existant) + formulaire
   natif Enfold (av_contact). Classes réelles confirmées par rendu (pas
   .av_contact_form_container, deviné puis invalidé au test navigateur) :
   form.avia_ajax_form > input.text_input / textarea.text_area /
   input[type=submit].button. Champs réels = Nom, e-mail, message (+ 1 champ
   caché anti-spam) — PAS d'"Objet" ni de case newsletter visibles sur ce
   site, contrairement à la maquette : aucun champ ajouté/retiré ici,
   uniquement l'habillage visuel de ce qui existe réellement.
   ============================================================ */
#top.page-id-377 .av-special-heading-tag {
  font-family: var(--fcs-font-title);
  color: var(--fcs-prune);
  font-weight: 400;
}
#top.page-id-377 .avia_ajax_form .text_input,
#top.page-id-377 .avia_ajax_form .text_area {
  border: 1px solid var(--fcs-border-light) !important;
  border-radius: var(--fcs-radius-sm) !important;
  font-family: var(--fcs-font-text);
  min-height: 44px;
}
#top.page-id-377 .avia_ajax_form .text_area { min-height: 120px; }
#top.page-id-377 .avia_ajax_form .text_input:focus,
#top.page-id-377 .avia_ajax_form .text_area:focus {
  border-color: var(--fcs-framboise) !important;
  outline: 2px solid var(--fcs-framboise);
  outline-offset: 1px;
}
#top.page-id-377 .avia_ajax_form input[type="submit"].button {
  background: var(--fcs-framboise) !important;
  border-color: var(--fcs-framboise) !important;
  border-radius: var(--fcs-radius-pill) !important;
  font-family: var(--fcs-font-text);
  min-height: 48px;
  padding: 0 32px !important;
}
#top.page-id-377 .avia_ajax_form input[type="submit"].button:hover { background: #8f3a55 !important; }

/* ============================================================
   Guides d'entretien (95322) — accordéon + sommaire construits par
   refonte-vitrine.js (25 guides matière répartis sur 5 catégories,
   contenu réel jamais réécrit). Même motif <details>/<summary> ouverts
   par défaut que la mini-FAQ de la page live (0 CLS, 0 animation).
   ============================================================ */
#top.page-id-95322 .avia_textblock h1,
#top.page-id-95322 .avia_textblock .fcs-entretien-h2 {
  font-family: var(--fcs-font-title);
  color: var(--fcs-prune);
  font-weight: 400;
}
#top.page-id-95322 .avia_textblock .fcs-entretien-h2 { margin-top: 44px; scroll-margin-top: 90px; }
#top.page-id-95322 .avia_textblock p,
#top.page-id-95322 .avia_textblock li { font-family: var(--fcs-font-text); color: var(--fcs-text-secondary); line-height: 1.7; }
#top.page-id-95322 .avia_textblock a { color: var(--fcs-framboise); }

.fcs-entretien-toc {
  background: var(--fcs-bg-soft);
  border: 1px solid var(--fcs-border-light);
  border-radius: var(--fcs-radius-md);
  padding: 20px 24px;
  margin: 16px 0 36px;
}
.fcs-entretien-toc-title {
  font-family: var(--fcs-font-text);
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fcs-framboise, #b04d6b);
  margin: 0 0 12px;
}
.fcs-entretien-toc-list { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.fcs-entretien-toc-link {
  font-family: var(--fcs-font-text);
  font-size: 13.5px;
  color: var(--fcs-prune);
  background: var(--fcs-white);
  border: 1px solid var(--fcs-border-light);
  border-radius: var(--fcs-radius-pill);
  padding: 8px 16px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}
.fcs-entretien-toc-link:hover,
.fcs-entretien-toc-link:focus-visible { border-color: var(--fcs-framboise); color: var(--fcs-framboise); }

.fcs-entretien-item {
  border: 1px solid var(--fcs-border-light);
  border-radius: var(--fcs-radius-md);
  margin: 10px 0;
  padding: 2px 20px;
  background: var(--fcs-white);
}
.fcs-entretien-q {
  cursor: pointer;
  list-style: none;
  padding: 15px 0;
  font-family: var(--fcs-font-text);
  font-weight: 600;
  font-size: 15px;
  color: var(--fcs-prune);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
}
.fcs-entretien-q::-webkit-details-marker { display: none; }
.fcs-entretien-q::after {
  content: '';
  flex: none;
  width: 9px; height: 9px;
  border-right: 2px solid var(--fcs-framboise);
  border-bottom: 2px solid var(--fcs-framboise);
  transform: rotate(45deg);
  transition: transform var(--fcs-duration-fast) var(--fcs-ease-out);
}
.fcs-entretien-item[open] .fcs-entretien-q::after { transform: rotate(-135deg); }
.fcs-entretien-a { padding: 0 0 16px; }
.fcs-entretien-a p:first-child { margin-top: 0; }

/* ============================================================
   Tableau de bord d'affiliation (114349) — shortcode natif YITH WCAF
   ([yith_wcaf_affiliate_dashboard]). Seul l'état "non connectée / non
   affiliée" a pu être vérifié visuellement (pas de compte affilié de
   test) : le bouton de repli vers /affiliation/ (page PUBLIQUE
   d'inscription, JAMAIS modifiée ici) est restylé en CTA framboise.
   ============================================================ */
#top.page-id-114349 .avia_textblock { font-family: var(--fcs-font-text); color: var(--fcs-text-secondary); line-height: 1.7; }
#top.page-id-114349 .avia-button,
#top.page-id-114349 .avia-button-wrap .avia-button {
  border-radius: var(--fcs-radius-pill) !important;
  background: var(--fcs-framboise) !important;
  border-color: var(--fcs-framboise) !important;
  font-family: var(--fcs-font-text);
  min-height: 44px;
}
#top.page-id-114349 .avia-button:hover { background: #8f3a55 !important; border-color: #8f3a55 !important; }

/* ---------- Mobile (commun à toutes les pages de ce fichier) --------------- */
@media only screen and (max-width: 767px) {
  .fcs-vitrine-h1 { margin: 4px 0 20px; }
  #top.page-id-73626 .flex_column.av_one_third,
  #top.page-id-73626 .flex_column.av_one_half { margin-bottom: 16px; }
  .fcs-entretien-toc { padding: 16px 18px; }
}

/* ---- Sous-navigation des pages légales (gabarit « standard ») ---- */
.fcs-legal-nav { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 30px; }
.fcs-legal-nav-item {
  display: inline-block; padding: 8px 18px;
  border: 1px solid var(--fcs-border); border-radius: var(--fcs-radius-pill);
  font-size: 14px; color: var(--fcs-text-secondary); text-decoration: none;
  transition: color var(--fcs-duration-fast) var(--fcs-ease-out), border-color var(--fcs-duration-fast) var(--fcs-ease-out);
}
.fcs-legal-nav-item:hover { color: var(--fcs-framboise); border-color: var(--fcs-rose); }
.fcs-legal-nav-item.is-current { background: var(--fcs-framboise); border-color: var(--fcs-framboise); color: var(--fcs-white); }

/* ============================================================
   FAQ (44528) — restructuration V2.5 du 03/08/2026
   11 accordéons de RUBRIQUE → 31 accordéons de QUESTION, groupés sous
   11 libellés H3 de rubrique (CONSERVÉS, conformes à la maquette) et
   2 vrais H2 de section. Avant : 28 questions présentes dans le HTML mais
   0 visible au chargement (contenu en visibility:hidden dans 11 rubriques
   repliées) ; la visiteuse ne voyait que 11 titres de chapitre.
   ============================================================ */

/* ---------- H1 : Birthstone CONSERVÉ (c'est le design de la maquette) ------
   La frame V2.5 « faq » déclare font-family:'Birthstone',cursive;
   font-size:76px; line-height:1. Ce n'est donc PAS le bug de police —
   contrairement aux titres de SECTION, qui eux doivent être en Marcellus.
   Enfold impose 80px/0.7em : on rejoue les valeurs de la maquette avec la
   spécificité qui gagne. L'interligne passe par --fcs-hn-lh (règle sitewide
   de refonte-socle.css), posée SUR LE TITRE. */
#top #main.all_colors h1.fcs-vitrine-h1 {
  font-family: var(--fcs-font-script), cursive;
  font-size: 76px;
  --fcs-hn-lh: 1;
}

/* ---------- H1 remis dans la grille (mesuré : x=0 au lieu de x=50) --------
   Le H1 est injecté par filtre the_content en tête de contenu et sortait en
   pleine largeur, alors que le fil d'Ariane démarre à x=50 px : la boucle du
   « F » de « Foire »/« FAQ » débordait hors écran à 1280 px. À 375 px le
   rendu était déjà correct — d'où un correctif borné au desktop. */
@media only screen and (min-width: 768px) {
  #top #main.all_colors h1.fcs-vitrine-h1 {
    padding-left: 50px;
    padding-right: 50px;
    box-sizing: border-box;
  }
}

/* ---------- H2 de section : Marcellus 34 px (maquette) --------------------
   Étaient des H3 en Birthstone 40px/0.7em — illisibles sur 3 lignes de
   manuscrit. La maquette V2.5 les donne en Marcellus 34px, poids 400. */
/* ⚠️ PIÈGE ALB : `custom_class` d'un [av_heading] est posée sur le WRAPPER
   (div.av-special-heading), PAS sur le titre — qui porte la classe générique
   .av-special-heading-tag. Un sélecteur `h2.fcs-faq-section-title` ne matche
   donc RIEN (vérifié sur la page réelle). Le SUJET du sélecteur doit être le
   titre, la classe custom servant d'ancrage sur le parent.
   Le line-height passe obligatoirement par --fcs-hn-lh : la règle sitewide à
   3 ID de refonte-socle.css bat ces 2 ID/2 classes. */
#top #main.all_colors .fcs-faq-section-title h2 {
  font-family: var(--fcs-font-title);
  font-size: 34px;
  font-weight: 400;
  color: var(--fcs-prune);
  --fcs-hn-lh: 1.2;
  line-height: 1.2;
  text-wrap: pretty;
  margin: 0 0 4px;
}

/* ---------- H3 de rubrique : libellé, pas un titre décoratif --------------
   Maquette : 12px, uppercase, letter-spacing .14em, rose foncé, poids 600.
   --fcs-framboise (#b04d6b, 5,10:1 sur blanc) et NON --fcs-framboise-clair
   (#c05a78, 4,22:1) : à 12px/600 le seuil AA applicable est 4,5:1.
   Même arbitrage que la date des cartes blog au Lot A. */
#top #main.all_colors .fcs-faq-rubrique h3 {
  font-family: var(--fcs-font-text);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fcs-framboise);
  --fcs-hn-lh: 1.4;
  line-height: 1.4;
  margin: 28px 0 4px;
}

/* ---------- Accordéons de question ---------------------------------------
   Cible tactile : la maquette impose min-height 44px sur le summary. */
#top.page-id-44528 .fcs-faq-groupe .single_toggle { margin-bottom: 0; border-radius: 0; border: 0; }
#top.page-id-44528 .fcs-faq-groupe p.toggler {
  font-size: 15.5px;
  font-weight: 600;
  min-height: 44px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--fcs-border-light);
  background: none;
}
#top.page-id-44528 .fcs-faq-groupe .toggle_content { font-size: 15px; max-width: 62ch; }
#top.page-id-44528 .fcs-faq-outro { margin-top: 32px; }

@media only screen and (max-width: 767px) {
  #top #main.all_colors .fcs-faq-section-title h2 { font-size: 24px; }
}

/* ⚠️ `!important` OBLIGATOIRE ET BORNÉ AU MOBILE — mesuré, pas supposé.
   Enfold pose, sous @media (max-width:767px) :
     #top #wrap_all .all_colors h1, .main-title .entry-title
       { font-size: 35px !important }
   (relevé par getPropertyPriority sur la page réelle). Aucune spécificité,
   si haute soit-elle, ne bat un !important : les 3 ID ci-dessus suffisent
   pour la POLICE et l'INTERLIGNE (règles Enfold en priorité normale) mais
   PAS pour la taille en mobile. En desktop la règle adverse (80px) est en
   priorité normale : aucun !important n'y est nécessaire, et il n'y en a pas. */
@media only screen and (max-width: 767px) {
  #top #wrap_all #main h1.fcs-vitrine-h1 { font-size: 46px !important; }
}

/* ============================================================
   INTERLIGNE DES H1 BIRTHSTONE EN MOBILE — écart ASSUMÉ à la maquette
   (arbitrage manager 04/08/2026, documenté comme tel).

   La maquette impose `line-height: 1`. Or Birthstone est une police script
   à longs jambages : une ligne a besoin d'environ **1,37 fois le corps**
   pour ne pas empiéter sur la précédente (mesuré : 48 px de hauteur
   naturelle pour un corps de 35 px). À ratio 1, deux lignes se chevauchent
   donc NÉCESSAIREMENT — la maquette n'a pas prévu le cas d'un H1 sur deux
   lignes.

   Sans conséquence tant que le titre tient sur UNE ligne : c'est le cas de
   tous ces H1 en DESKTOP, où l'interligne 1 de la maquette est conservé.
   En MOBILE, la largeur disponible chute et un titre un peu long bascule
   sur 2 lignes (constaté sur /live/ à 375 px) : l'interligne y est porté à
   1,4, au-dessus du seuil de 1,37. Appliqué à TOUS les H1 Birthstone en
   mobile, et pas seulement à celui qui casse aujourd'hui : le défaut est
   latent partout, il ne dépend que de la longueur du titre — un simple
   changement de libellé le réveillerait ailleurs.

   Pourquoi relever l'interligne plutôt que réduire la taille : réduire
   rendrait le titre chétif sur la page qui porte l'activité la plus
   rentable de la boutique. On troquerait un défaut visible contre un
   défaut discret.
   ============================================================ */
@media only screen and (max-width: 767px) {
  /* SURENCHÈRE DE SPÉCIFICITÉ SUPPRIMÉE (04/08/2026, exigence refonte-compat).
     Ce sélecteur montait à 3 ID + 1 classe pour battre le socle en déclarant
     `line-height` en dur — exactement ce que la convention interdit : un
     gabarit raffine par la VARIABLE, jamais en surenchérissant les ID, sinon
     la prochaine correction devra passer à 4 ID et la convention reproduit le
     CSS qui ment qu'elle devait supprimer. Seule la variable subsiste ; elle
     n'a besoin d'AUCUNE spécificité particulière, étant résolue sur le titre. */
  #top #main.all_colors h1.fcs-vitrine-h1 { --fcs-hn-lh: 1.4; }
}

/* ============================================================
   CONTACT (377) — conversion du corps, maquette V2.5 (04/08/2026)

   La frame MOBILE du prototype ne contient que 8 blocs de texte contre 30 en
   desktop, et omet notamment les 4 CHAMPS du formulaire tout en gardant son
   bouton. Un formulaire avec un bouton et aucun champ n'est pas un design :
   cette frame est un wireframe abrégé, pas une consigne de masquage.
   Décision (manager, 04/08/2026) : contenu desktop intégral, servi en
   responsive, RIEN de masqué en mobile — masquer la carte « Live shopping »
   sur un site indexé en mobile-first, pour l'activité la plus rentable de la
   boutique, serait une faute.
   Conséquence à connaître : l'indicateur « 33 % de couverture mobile » de
   l'audit ne mesurait pas un défaut du site, il mesurait que la frame de
   référence est incomplète.
   ============================================================ */

#top.page-id-377 .fcs-contact-chapo {
  max-width: 640px;
  margin: 0 0 32px;
}
#top #main.all_colors .fcs-contact-chapo p {
  font-size: 16px;
  line-height: 1.6;
  color: var(--fcs-text-secondary);
}

/* ---------- Les 3 cartes de contact ---------- */
#top.page-id-377 .fcs-contact-cartes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 0 0 48px;
}
#top.page-id-377 .fcs-contact-carte {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 24px 22px;
  /* Fond BLANC, valeur de la maquette (`background:#fff` sur la carte).
     `var(--fcs-bg-powder)` était utilisée ici alors qu'elle n'est définie
     NULLE PART et sans repli : `background` n'étant pas héritée, la valeur
     initiale s'applique — transparent. Les 3 cartes n'avaient donc AUCUN
     fond, juste une bordure. Aucune erreur console : var() sur une variable
     inexistante échoue en silence. Corrigé avec une variable EXISTANTE
     plutôt qu'en en créant une quasi jumelle de --fcs-bg-soft. */
  background: var(--fcs-white);
  border: 1px solid var(--fcs-border-light);
  border-radius: var(--fcs-radius-md);
}
#top.page-id-377 .fcs-contact-icone { font-size: 26px; line-height: 1; }
#top.page-id-377 .fcs-contact-carte-titre {
  font-family: var(--fcs-font-title);
  font-size: 19px;
  color: var(--fcs-prune);
}
/* Cible tactile ≥ 44 px sur les liens de contact (règle projet). */
#top #main.all_colors .fcs-contact-carte a.fcs-contact-lien {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 15.5px;
  font-weight: 600;
  color: var(--fcs-prune);
  word-break: break-word;
}
/* Survol/focus : `color:#b04d6b` + `background:#fdeef2`, valeurs exactes de
   la maquette (style-hover de la carte). `var(--fcs-rose-hover)` n'existait
   nulle part : `color` ÉTANT héritée, la déclaration devenait « invalide à la
   valeur calculée » et le lien héritait du NOIR — un survol ET un focus
   clavier faux, pas simplement absents, sur une page de contact.
   Contraste vérifié : #2a1620 sur #fff = 15,8:1 · #b04d6b sur #fdeef2 = 4,8:1,
   tous deux au-dessus du seuil AA de 4,5:1. */
#top #main.all_colors .fcs-contact-carte a.fcs-contact-lien:hover,
#top #main.all_colors .fcs-contact-carte a.fcs-contact-lien:focus-visible {
  color: var(--fcs-framboise);
}
#top.page-id-377 .fcs-contact-carte:hover,
#top.page-id-377 .fcs-contact-carte:focus-within {
  background: var(--fcs-bg-soft);
}
#top.page-id-377 .fcs-contact-carte-sub {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--fcs-text-secondary);
}

/* ---------- Titre du formulaire (H2 Marcellus, maquette) ---------- */
#top #main.all_colors .fcs-contact-form-title,
#top #main.all_colors h2.fcs-contact-form-title {
  font-family: var(--fcs-font-title);
  font-size: 30px;
  font-weight: 400;
  color: var(--fcs-prune);
  --fcs-hn-lh: 1.2;
  line-height: 1.2;
  margin: 0 0 18px;
}

/* ---------- Formulaire natif Enfold restylé ---------- */
#top.page-id-377 .avia_ajax_form .form_element input[type="text"],
#top.page-id-377 .avia_ajax_form .form_element textarea {
  font-family: var(--fcs-font-text);
  font-size: 15px;
  border: 1px solid var(--fcs-border-light);
  border-radius: var(--fcs-radius-sm);
  padding: 12px 14px;
  min-height: 44px;
  box-sizing: border-box;
}
#top.page-id-377 .avia_ajax_form .button {
  min-height: 48px;
  border-radius: var(--fcs-radius-pill);
  font-family: var(--fcs-font-text);
  font-size: 15px;
  font-weight: 600;
}

@media only screen and (max-width: 767px) {
  #top.page-id-377 .fcs-contact-cartes { grid-template-columns: 1fr; gap: 14px; }
  #top.page-id-377 .fcs-contact-carte { padding: 18px 16px; }
  #top #main.all_colors .fcs-contact-form-title { font-size: 24px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  #top.page-id-377 .fcs-contact-cartes { grid-template-columns: 1fr 1fr; }
}

/* ---------- Label du champ Message : rendu mis à l'abri ------------------
   Enfold pose `class="textare_label hidden"` EN DUR sur le label de tout
   textarea (class-form-generator.php l.995, hors du bloc `if placeholder`),
   puis neutralise cette classe plus loin dans la même feuille via
   `.avia_ajax_form label { visibility:visible; display:block; position:relative }`.
   Spécificité ÉGALE, règle postérieure : elle gagne, et le label EST visible
   (mesuré : « Message * », 26 px de haut, présent dans l'arbre d'accessibilité).

   MAIS ce rendu correct ne tient qu'à l'ORDRE de deux règles d'Enfold dans une
   feuille GÉNÉRÉE. Une mise à jour du thème qui les réordonne ferait
   disparaître le libellé du champ Message sans le moindre signal — ni erreur,
   ni avertissement, sur un formulaire de contact.
   Cette règle rend l'affichage indépendant de cet ordre. Elle est
   volontairement redondante avec le comportement actuel : c'est un filet,
   pas un correctif. Ne pas la retirer en la croyant morte. */
#top.page-id-377 .avia_ajax_form label.textare_label {
  visibility: visible;
  display: block;
  position: relative;
}

/* ---------- Bouton « Prendre rendez-vous fitting » (Contact, 377) ---------
   Ce bouton N'EXISTE PAS dans la maquette : c'est une création rendue
   nécessaire par le passage de TidyCal en chargement au clic. Il reprend donc
   strictement la charte des cartes de contact voisines — aucune valeur
   inventée. Vrai <button> : focus clavier, cible ≥ 44 px. */
#top.page-id-377 .fcs-tidycal { margin: 8px 0 32px; }
#top #main.all_colors .fcs-tidycal .fcs-tidycal-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 26px;
  border: 1px solid var(--fcs-border-light);
  border-radius: var(--fcs-radius-pill);
  background: var(--fcs-white);
  font-family: var(--fcs-font-text);
  font-size: 15px;
  font-weight: 600;
  color: var(--fcs-prune);
  cursor: pointer;
  transition: background var(--fcs-duration-micro) var(--fcs-ease-out),
              color var(--fcs-duration-micro) var(--fcs-ease-out);
}
#top #main.all_colors .fcs-tidycal .fcs-tidycal-btn:hover,
#top #main.all_colors .fcs-tidycal .fcs-tidycal-btn:focus-visible {
  background: var(--fcs-bg-soft);
  color: var(--fcs-framboise);
}
#top #main.all_colors .fcs-tidycal .fcs-tidycal-btn[disabled] { opacity: .7; cursor: progress; }
#top.page-id-377 .fcs-tidycal-note {
  font-size: 12.5px;
  color: var(--fcs-text-muted);
  margin: 8px 0 0;
}
