/**
 * VST43° — Pages de service v2 (lot 2, p01 à p09). Règles reprises de la maquette validée le 18.10 (maquettes/pages/src.html), préfixées.
 * Portée : sections Divi de classe .vst-pg (posées par scripts/divi5-pages.php). Même spécificité « deux identifiants » que vst-categorie.css
 * pour passer devant les règles globales de Divi 5, sans !important. Couleurs : variables globales Divi 5 (gcid-vst-*) avec repli.
 */
:is(.vst-pg, #vst-x#vst-y) {
  --vst-rouge: var(--gcid-vst-rouge, #E21F20);
  --vst-rouge-fonce: var(--gcid-vst-rouge-fonce, #C41A1B);
  --vst-voile: var(--gcid-vst-voile, #FBE6DF);
  --vst-texte: var(--gcid-vst-texte, #575758);
  --vst-encre: var(--gcid-vst-encre, #232324);
  --vst-fond: var(--gcid-vst-fond, #FFF8F4);
  --vst-blanc: var(--gcid-vst-blanc, #FFFDFC);
  --vst-ligne: var(--gcid-vst-ligne, #E9DED7);
  --vst-photo: var(--gcid-vst-photo, #F4F2F1);
  --vst-corail: var(--gcid-de2da1d0-439d-46e9-990a-e1a6d8120582, #E75736);
  --vst-corail-texte: var(--gcid-vst-corail-texte, #B5361C);
  --vst-ligne-ui: var(--gcid-vst-ligne-ui, #9C7763);
  --vst-erreur: var(--gcid-vst-erreur, #9F1C1C);
  --font-titre: "Work Sans", "Helvetica Neue", Arial, sans-serif;
  --font-corps: "Open Sans", "Helvetica Neue", Arial, sans-serif;
  --gouttiere: 20px;
  --rayon: var(--gvid-vst-rayon, 4px);
  color: var(--vst-texte); font: 300 16px/1.6 var(--font-corps);
}

/* ——— Socle : fond de page, marges des modules Divi neutralisées ——— */
body.vst-pg-page, body.vst-pg-page #page-container, body.vst-pg-page #main-content { background: var(--gcid-vst-fond, #FFF8F4); }
.vst-pg.et_pb_section { background: transparent; }
.vst-pg.et_pb_section, .vst-pg .et_pb_row, .vst-pg .et_pb_column, .vst-pg .et_pb_module { padding: 0; margin: 0; width: 100%; max-width: 100%; }
.vst-pg .et_pb_row { max-width: 1440px; margin: 0 auto; }
.vst-pg .et_pb_text_inner > :last-child { margin-bottom: 0; }
:is(.vst-pg, #vst-x#vst-y) * { box-sizing: border-box; }
:is(.vst-pg, #vst-x#vst-y) img { max-width: 100%; height: auto; display: block; }
:is(.vst-pg, #vst-x#vst-y) a { color: inherit; }
:is(.vst-pg, #vst-x#vst-y) :focus-visible { outline: 2px solid var(--vst-encre); outline-offset: 2px; }
:is(.vst-pg, #vst-x#vst-y) .sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:is(.vst-pg, #vst-x#vst-y) p { padding: 0; }

/* ——— En-tête de page ——— */
:is(.vst-pg, #vst-x#vst-y) .ariane { padding: 10px var(--gouttiere) 0; font: 400 13px/1.3 var(--font-corps); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--vst-texte); }
:is(.vst-pg, #vst-x#vst-y) .ariane a { text-decoration: none; }
:is(.vst-pg, #vst-x#vst-y) .tete-page { padding: 10px var(--gouttiere) 0; display: grid; gap: 6px; }
:is(.vst-pg, #vst-x#vst-y) h1 { margin: 0; padding: 0; font: 600 24px/1.15 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .05em; text-wrap: balance; }
:is(.vst-pg, #vst-x#vst-y) .intro { margin: 2px 0 0; font-size: 14px; line-height: 1.6; max-width: 62ch; }
:is(.vst-pg, #vst-x#vst-y) .section-page { padding: 40px var(--gouttiere) 0; }
:is(.vst-pg, #vst-x#vst-y) .vst-pg-fin { padding-bottom: 72px; }

/* ——— Boutons ——— */
:is(.vst-pg, #vst-x#vst-y) .btn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; height: 52px; padding: 0 32px; border: 0; background: var(--vst-rouge); color: #fff; border-radius: var(--rayon); font: 600 12px/1 var(--font-titre); text-transform: uppercase; letter-spacing: .14em; cursor: pointer; }
:is(.vst-pg, #vst-x#vst-y) .btn:hover { background: var(--vst-rouge-fonce); }
:is(.vst-pg, #vst-x#vst-y) .btn-second { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; min-height: 48px; padding: 0 32px; border: 1px solid var(--vst-encre); border-radius: var(--rayon); background: transparent; font: 600 12px/1.2 var(--font-titre); text-transform: uppercase; letter-spacing: .14em; color: var(--vst-encre); text-align: center; }
:is(.vst-pg, #vst-x#vst-y) .btn-second:hover { background: var(--vst-encre); color: var(--vst-blanc); }

/* ——— Liste des boutiques (p02) ——— */
:is(.vst-pg, #vst-x#vst-y) .boutiques-liste { list-style: none; margin: 16px 0 0; padding: 0; border-top: 1px solid var(--vst-ligne); }
:is(.vst-pg, #vst-x#vst-y) .boutique-l { display: grid; gap: 10px; padding: 20px 0; border-bottom: 1px solid var(--vst-ligne); }
:is(.vst-pg, #vst-x#vst-y) .boutique-nom { display: grid; gap: 6px; justify-items: start; }
:is(.vst-pg, #vst-x#vst-y) .boutique-l h2 { margin: 0; padding: 0; font: 600 16px/1.2 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .08em; }
:is(.vst-pg, #vst-x#vst-y) .boutique-l h2 a { text-decoration: none; }
:is(.vst-pg, #vst-x#vst-y) .boutique-l .etat { font-size: 13px; line-height: 1.6; color: var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .boutique-l .etat:empty { display: none; }
:is(.vst-pg, #vst-x#vst-y) .boutique-l address { margin: 0; font-style: normal; font-size: 14px; line-height: 1.5; }
:is(.vst-pg, #vst-x#vst-y) .boutique-l dl { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; font-size: 14px; line-height: 1.5; }
:is(.vst-pg, #vst-x#vst-y) .boutique-l dt { color: var(--vst-texte); }
:is(.vst-pg, #vst-x#vst-y) .boutique-l dd { margin: 0; padding: 0; color: var(--vst-encre); font-variant-numeric: tabular-nums; }
:is(.vst-pg, #vst-x#vst-y) .boutique-l .retrait { background: var(--vst-voile); color: var(--vst-encre); font-size: 13px; padding: 4px 8px; border-radius: 2px; }
:is(.vst-pg, #vst-x#vst-y) .boutique-l .actions-b { display: flex; flex-wrap: wrap; gap: 4px 20px; font-size: 14px; }
:is(.vst-pg, #vst-x#vst-y) .boutique-l .actions-b a { display: inline-flex; align-items: center; min-height: 44px; color: var(--vst-encre); text-underline-offset: 3px; }
:is(.vst-pg, #vst-x#vst-y) .commander { padding: 32px var(--gouttiere) 0; display: grid; gap: 12px; justify-items: start; }
:is(.vst-pg, #vst-x#vst-y) .commander h2 { margin: 0; padding: 0; font: 600 13px/1.2 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .14em; }

@media (min-width: 960px) {
  :is(.vst-pg, #vst-x#vst-y) { --gouttiere: 40px; }
  :is(.vst-pg, #vst-x#vst-y) .ariane { padding-top: 20px; }
  :is(.vst-pg, #vst-x#vst-y) .tete-page { padding-top: 24px; }
  :is(.vst-pg, #vst-x#vst-y) h1 { font-size: 34px; }
  :is(.vst-pg, #vst-x#vst-y) .section-page { padding-top: 56px; }
  :is(.vst-pg, #vst-x#vst-y) .vst-pg-fin { padding-bottom: 120px; }
  :is(.vst-pg, #vst-x#vst-y) .boutique-l { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.2fr) minmax(0, 1.6fr) minmax(0, 1fr); align-items: start; gap: 24px; padding: 28px 0; }
  :is(.vst-pg, #vst-x#vst-y) .boutique-l .actions-b { flex-direction: column; gap: 0; }
}
:is(.vst-pg, #vst-x#vst-y) .boutiques-zone { padding: 16px var(--gouttiere) 0; }

/* ——— Guide des tailles (p04) : tableaux HTML lus dans data/tailles.php ——— */
:is(.vst-pg, #vst-x#vst-y) .sous-nav { display: flex; gap: 8px; overflow-x: auto; padding: 16px var(--gouttiere) 4px; scrollbar-width: none; }
:is(.vst-pg, #vst-x#vst-y) .sous-nav::-webkit-scrollbar { display: none; }
:is(.vst-pg, #vst-x#vst-y) .sous-nav a { flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid var(--vst-ligne-ui); border-radius: 999px; font-size: 13px; color: var(--vst-encre); text-decoration: none; background: var(--vst-blanc); }
:is(.vst-pg, #vst-x#vst-y) .tailles { padding: 40px var(--gouttiere) 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; }
:is(.vst-pg, #vst-x#vst-y) .tailles > section { min-width: 0; }
:is(.vst-pg, #vst-x#vst-y) .tailles h2 { margin: 0 0 4px; padding: 0; font: 600 18px/1.2 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .1em; scroll-margin-top: var(--vst-ancre); }
:is(.vst-pg, #vst-x#vst-y) .tailles h3 { margin: 20px 0 8px; padding: 0; font: 600 12px/1.3 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .12em; }
:is(.vst-pg, #vst-x#vst-y) .tableau-defile { overflow-x: auto; border: 1px solid var(--vst-ligne); background: var(--vst-blanc); }
:is(.vst-pg, #vst-x#vst-y) .tableau-tailles { border-collapse: collapse; border: 0; width: 100%; min-width: max-content; margin: 0; font-size: 14px; line-height: 1.6; font-variant-numeric: tabular-nums; }
:is(.vst-pg, #vst-x#vst-y) .tableau-tailles :is(th, td) { padding: 10px 12px; text-align: center; border: 0; border-bottom: 1px solid var(--vst-ligne); white-space: nowrap; color: var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .tableau-tailles thead th { font: 600 13px/1.2 var(--font-titre); letter-spacing: .08em; background: var(--vst-fond); }
:is(.vst-pg, #vst-x#vst-y) .tableau-tailles tbody th { text-align: left; font-weight: 400; color: var(--vst-texte); position: sticky; left: 0; background: var(--vst-blanc); box-shadow: 1px 0 0 var(--vst-ligne); }
:is(.vst-pg, #vst-x#vst-y) .tableau-tailles thead th:first-child { position: sticky; left: 0; z-index: 1; text-align: left; }
:is(.vst-pg, #vst-x#vst-y) .tableau-tailles tr:last-child > * { border-bottom: 0; }
:is(.vst-pg, #vst-x#vst-y) .unite { font-size: 13px; margin: 8px 0 0; }
:is(.vst-pg, #vst-x#vst-y) .retour-boutique { padding: 40px var(--gouttiere) 0; }

/* ——— Pages légales (p05, p06) : sommaire calculé, ancres, lignes de 62 caractères ——— */
.vst-pg .legal.et_pb_row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 24px var(--gouttiere, 20px) 0; }
.vst-pg .legal .et_pb_column { min-width: 0; }
:is(.vst-pg, #vst-x#vst-y) .sommaire { border: 1px solid var(--vst-ligne); background: var(--vst-blanc); }
:is(.vst-pg, #vst-x#vst-y) .sommaire summary { list-style: none; display: flex; justify-content: space-between; align-items: center; min-height: 48px; padding: 0 16px; cursor: pointer; font: 600 12px/1 var(--font-titre); text-transform: uppercase; letter-spacing: .14em; color: var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .sommaire summary::-webkit-details-marker { display: none; }
:is(.vst-pg, #vst-x#vst-y) .sommaire summary::after { content: "+"; font: 400 20px/1 var(--font-corps); }
:is(.vst-pg, #vst-x#vst-y) .sommaire[open] summary::after { content: "\2013"; }
:is(.vst-pg, #vst-x#vst-y) .sommaire ol { margin: 0; padding: 0 16px 12px; list-style: none; display: grid; }
:is(.vst-pg, #vst-x#vst-y) .sommaire ol ol { padding: 0; }
:is(.vst-pg, #vst-x#vst-y) .sommaire li { padding: 0; }
:is(.vst-pg, #vst-x#vst-y) .sommaire li a { display: block; padding: 9px 0; font-size: 14px; line-height: 1.35; color: var(--vst-encre); text-decoration: none; border-top: 1px solid var(--vst-ligne); }
:is(.vst-pg, #vst-x#vst-y) .sommaire li li a { padding-left: 14px; font-size: 13px; color: var(--vst-texte); }
:is(.vst-pg, #vst-x#vst-y) .vst-prose { max-width: 62ch; min-width: 0; font-size: 15px; line-height: 1.7; overflow-wrap: break-word; }
:is(.vst-pg, #vst-x#vst-y) .vst-prose h2 { margin: 40px 0 12px; padding: 0; font: 600 18px/1.25 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .08em; scroll-margin-top: var(--vst-ancre); }
:is(.vst-pg, #vst-x#vst-y) .legal-texte > .vst-prose:first-child h2:first-child { margin-top: 0; }
/* Encadré réglementaire de la garantie légale de conformité (annexe à l'art. D. 211-2, partie A).
   La loi impose un « encadré » : le texte doit être visuellement détouré, pas seulement présent. */
:is(.vst-pg, #vst-x#vst-y) .vst-encadre-legal { margin: 24px 0; padding: 20px 24px; border: 1px solid var(--vst-ligne-ui); background: var(--vst-fond); }
:is(.vst-pg, #vst-x#vst-y) .vst-encadre-legal > p:first-child { margin-top: 0; }
:is(.vst-pg, #vst-x#vst-y) .vst-encadre-legal > p:last-child { margin-bottom: 0; }
:is(.vst-pg, #vst-x#vst-y) .vst-prose h3 { margin: 24px 0 6px; padding: 0; font: 600 15px/1.35 var(--font-corps); color: var(--vst-encre); text-transform: none; letter-spacing: 0; scroll-margin-top: var(--vst-ancre); }
:is(.vst-pg, #vst-x#vst-y) .vst-prose :is(p, ul, ol) { margin: 0 0 12px; padding: 0; }
:is(.vst-pg, #vst-x#vst-y) .vst-prose :is(ul, ol) { padding-left: 1.2em; }
:is(.vst-pg, #vst-x#vst-y) .vst-prose ul { list-style: disc; }
:is(.vst-pg, #vst-x#vst-y) .vst-prose a { color: var(--vst-encre); text-underline-offset: 3px; overflow-wrap: anywhere; }
:is(.vst-pg, #vst-x#vst-y) .vst-prose .haut { display: inline-block; margin-top: 4px; font-size: 13px; color: var(--vst-texte); }
:is(.vst-pg, #vst-x#vst-y) .bouton-pdf { margin: 24px 0 0; }
@media (min-width: 960px) {
  .vst-pg .legal.et_pb_row { grid-template-columns: 280px minmax(0, 62ch); gap: 64px; padding-top: 40px; }
  .vst-pg .legal.legal-seul.et_pb_row { grid-template-columns: minmax(0, 62ch); }
  .vst-pg .legal-sommaire.et_pb_column { position: sticky; top: 92px; align-self: start; max-height: calc(100vh - 120px); overflow: auto; }
}

/* ——— Contact (p05) : module Formulaire de contact de Divi habillé par le composant Champ (formulaires.css de la maquette) ——— */
.vst-pg .contact.et_pb_row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; padding: 24px var(--gouttiere, 20px) 0; }
:is(.vst-pg, #vst-x#vst-y) .contact h2 { margin: 0 0 6px; padding: 0; font: 600 13px/1.2 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .14em; }
:is(.vst-pg, #vst-x#vst-y) .contact-intro p { margin: 0 0 16px; font-size: 14px; line-height: 1.6; }
.vst-pg .et_pb_contact_form_container { max-width: 560px; }
.vst-pg .et_pb_contact_form { display: flex; flex-wrap: wrap; gap: 16px; margin: 0; }
.vst-pg .et_pb_contact_form .et_pb_contact_field { flex: 1 1 100%; width: 100%; max-width: 100%; margin: 0; padding: 0; display: grid; gap: 6px; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_form_label { display: block; position: static; font: 600 13px/1.3 var(--font-corps); color: var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field :is(input.input, textarea.input) { height: 48px; width: 100%; border: 1px solid var(--vst-ligne-ui); border-radius: var(--rayon); background: var(--vst-blanc); padding: 0 12px; font: 400 15px/1.4 var(--font-corps); color: var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field textarea.input { height: auto; min-height: 140px; padding: 12px; resize: vertical; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field :is(input.input, textarea.input) { box-shadow: none; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_form .et_pb_contact_field :is(input.input, textarea.input):focus { outline: 2px solid var(--vst-encre); outline-offset: 0; border-color: var(--vst-encre); box-shadow: none; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field :is(input.input, textarea.input)::placeholder { color: transparent; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field .et_contact_error { border-color: var(--vst-erreur); }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field[data-type="checkbox"] > .et_pb_contact_form_label, :is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field_options_title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Case du design system (tunnel) : intérieur blanc, alignée sur la 1re ligne ; le lien reste dans la phrase (pas de grille). */
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field_checkbox label { display: block; position: relative; min-height: 44px; padding: 10px 0 0 30px; font-size: 13px; line-height: 1.5; color: var(--vst-texte); cursor: pointer; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field_checkbox label a { color: var(--vst-encre); text-decoration: underline; text-underline-offset: 3px; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field_checkbox label i { position: absolute; left: 0; top: 10px; width: 20px; height: 20px; margin: 0; background: var(--vst-blanc); border: 1.5px solid var(--vst-texte); border-radius: 3px; box-shadow: none; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field_checkbox input:checked + label i { border-color: var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field_checkbox input:checked + label i::before { color: var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_field_checkbox input:focus-visible + label i { outline: 2px solid var(--vst-encre); outline-offset: 2px; }
:is(.vst-pg, #vst-x#vst-y) .et_contact_bottom_container { float: none; display: block; width: 100%; margin: 0; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_submit { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 52px; margin: 0; padding: 0 40px; border: 0; border-radius: var(--rayon); background: var(--vst-rouge); color: #fff; font: 600 12px/1 var(--font-titre); text-transform: uppercase; letter-spacing: .14em; cursor: pointer; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_submit:hover { background: var(--vst-rouge-fonce); padding: 0 40px; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_contact_submit::after { display: none; }
:is(.vst-pg, #vst-x#vst-y) .et-pb-contact-message { font-size: 14px; color: var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .et-pb-contact-message ul { margin: 0 0 12px; padding: 0; list-style: none; color: var(--vst-erreur); font-weight: 600; font-size: 13px; }
:is(.vst-pg, #vst-x#vst-y) .contact-coord p { margin: 0; font-size: 14px; line-height: 1.6; }
:is(.vst-pg, #vst-x#vst-y) .boutiques-liste-court { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
:is(.vst-pg, #vst-x#vst-y) .boutiques-liste-court li { padding: 0; }
:is(.vst-pg, #vst-x#vst-y) .boutiques-liste-court a { display: flex; flex-direction: column; justify-content: center; min-height: 48px; border-bottom: 1px solid var(--vst-ligne); text-decoration: none; font-size: 14px; line-height: 1.4; color: var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .boutiques-liste-court small { font-size: 13px; color: var(--vst-texte); }
@media (min-width: 600px) {
  .vst-pg .et_pb_contact_form .et_pb_contact_field:is([data-id="name"], [data-id="surname"]) { flex: 1 1 calc(50% - 8px); width: auto; }
}
@media (min-width: 960px) {
  .vst-pg .contact.et_pb_row { grid-template-columns: minmax(0, 560px) minmax(0, 1fr); gap: 96px; padding-top: 40px; }
  :is(.vst-pg, #vst-x#vst-y) .et_pb_contact_submit { width: auto; min-width: 220px; }
}

/* ——— Pages boutiques (p02 bis) : infos lues dans data/boutiques.php, galerie Divi, avis en liste fixe ——— */
:is(.vst-pg, #vst-x#vst-y) .lien-fleche { font-size: 13px; color: var(--vst-encre); text-underline-offset: 3px; white-space: nowrap; display: inline-flex; align-items: center; min-height: 24px; }
:is(.vst-pg, #vst-x#vst-y) .lien-fleche::after { content: " \2192"; white-space: pre; }
:is(.vst-pg, #vst-x#vst-y) :is(.visite, .avis-zone) { padding: 40px var(--gouttiere) 0; display: grid; gap: 12px; justify-items: start; }
:is(.vst-pg, #vst-x#vst-y) :is(.visite, .avis-zone) h2, .vst-pg-galerie h2 { margin: 0; padding: 0; font: 600 18px/1.2 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .1em; }
:is(.vst-pg, #vst-x#vst-y) .vst-boutique-infos { display: grid; gap: 12px; }
:is(.vst-pg, #vst-x#vst-y) .vst-boutique-infos p, :is(.vst-pg, #vst-x#vst-y) .visite p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--vst-texte); }
:is(.vst-pg, #vst-x#vst-y) .vst-boutique-infos strong, :is(.vst-pg, #vst-x#vst-y) .visite strong { font-weight: 600; color: var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .vst-boutique-infos a { color: var(--vst-encre); text-underline-offset: 3px; }
.vst-pg-galerie .et_pb_column { padding: 40px var(--gouttiere, 20px) 0; display: grid; gap: 12px; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_gallery { margin: 0; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_gallery_items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_gallery_item { width: auto; margin: 0; padding: 0; float: none; clear: none; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_gallery_image { aspect-ratio: 4 / 3; overflow: hidden; background: var(--vst-photo); }
:is(.vst-pg, #vst-x#vst-y) .et_pb_gallery_image img { width: 100%; height: 100%; object-fit: cover; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_gallery_image .et_overlay { display: none; }
:is(.vst-pg, #vst-x#vst-y) .et_pb_gallery_pagination { display: none; }
:is(.vst-pg, #vst-x#vst-y) .avis { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 0; width: 100%; border-top: 1px solid var(--vst-ligne); }
:is(.vst-pg, #vst-x#vst-y) .avis li { padding: 20px 0; border-bottom: 1px solid var(--vst-ligne); display: grid; gap: 8px; }
:is(.vst-pg, #vst-x#vst-y) .avis blockquote { margin: 0; padding: 0; border: 0; font: 300 16px/1.6 var(--font-corps); color: var(--vst-encre); max-width: 62ch; }
:is(.vst-pg, #vst-x#vst-y) .avis blockquote p { margin: 0; }
:is(.vst-pg, #vst-x#vst-y) .avis-auteur { margin: 0; font: 600 12px/1.3 var(--font-titre); text-transform: uppercase; letter-spacing: .12em; color: var(--vst-texte); }
:is(.vst-pg, #vst-x#vst-y) .avis-lien { margin: 12px 0 0; }
@media (min-width: 960px) {
  :is(.vst-pg, #vst-x#vst-y) .et_pb_gallery_items { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  :is(.vst-pg, #vst-x#vst-y) .avis { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 40px; border-top: 0; }
  :is(.vst-pg, #vst-x#vst-y) .avis li { border-top: 1px solid var(--vst-ligne); border-bottom: 0; align-content: start; }
}

/* ——— 404 (p08) ——— */
:is(.vst-pg, #vst-x#vst-y) .introuvable { padding: 40px var(--gouttiere) 0; display: grid; gap: 16px; justify-items: start; max-width: 720px; }
:is(.vst-pg, #vst-x#vst-y) .introuvable > p { margin: 0; font-size: 15px; line-height: 1.6; }
:is(.vst-pg, #vst-x#vst-y) .recherche-404 { display: flex; width: 100%; max-width: 480px; }
:is(.vst-pg, #vst-x#vst-y) .recherche-404 input[type="search"] { flex: 1; min-width: 0; height: 48px; border: 1px solid var(--vst-ligne-ui); border-right: 0; border-radius: var(--rayon) 0 0 var(--rayon); background: var(--vst-blanc); padding: 0 12px; font: 400 15px/1 var(--font-corps); color: var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .recherche-404 .btn-second { border-radius: 0 var(--rayon) var(--rayon) 0; padding: 0 20px; cursor: pointer; }
:is(.vst-pg, #vst-x#vst-y) .univers { display: flex; flex-wrap: wrap; gap: 8px; padding: 8px 0 0; }
:is(.vst-pg, #vst-x#vst-y) .univers a { display: inline-flex; align-items: center; height: 38px; padding: 0 14px; border: 1px solid var(--vst-ligne); border-radius: 999px; background: var(--vst-blanc); text-decoration: none; font: 600 12px/1 var(--font-titre); text-transform: uppercase; letter-spacing: .1em; color: var(--vst-encre); white-space: nowrap; }
:is(.vst-pg, #vst-x#vst-y) .introuvable .liens { display: flex; flex-wrap: wrap; gap: 4px 20px; font-size: 14px; }
:is(.vst-pg, #vst-x#vst-y) .introuvable .liens a { display: inline-flex; align-items: center; min-height: 44px; color: var(--vst-encre); text-underline-offset: 3px; }

/* ——— Nos marques (p03) : tuiles de l'accueil ——— */
:is(.vst-pg, #vst-x#vst-y) .marques-zone { padding: 40px var(--gouttiere) 0; display: grid; gap: 20px; }
:is(.vst-pg, #vst-x#vst-y) .marques-zone h2, :is(.vst-pg, #vst-x#vst-y) .marques-texte h2 { margin: 0; padding: 0; font: 600 18px/1.2 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .1em; }
:is(.vst-pg, #vst-x#vst-y) .marques-grille { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
:is(.vst-pg, #vst-x#vst-y) .marques-grille li { padding: 0; }
:is(.vst-pg, #vst-x#vst-y) .marques-grille a { position: relative; display: block; aspect-ratio: 3 / 4; overflow: hidden; color: var(--vst-blanc); text-decoration: none; background: var(--vst-photo); }
:is(.vst-pg, #vst-x#vst-y) .marques-grille img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; transition: transform .6s ease; }
:is(.vst-pg, #vst-x#vst-y) .marques-grille a::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(35,35,36,0) 50%, rgba(35,35,36,.62) 100%); }
:is(.vst-pg, #vst-x#vst-y) .marques-grille span { position: absolute; z-index: 2; left: 12px; right: 12px; bottom: 12px; font-size: 13px; line-height: 1.3; }
:is(.vst-pg, #vst-x#vst-y) .marques-grille b { display: block; font: 600 13px/1.2 var(--font-titre); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 3px; }
:is(.vst-pg, #vst-x#vst-y) .marques-grille a:hover img { transform: scale(1.03); }
:is(.vst-pg, #vst-x#vst-y) .marques-texte { padding: 56px var(--gouttiere) 0; display: grid; gap: 12px; justify-items: start; max-width: calc(62ch + 2 * var(--gouttiere)); }
:is(.vst-pg, #vst-x#vst-y) .marques-texte p { margin: 0; font-size: 15px; line-height: 1.7; }
@media (min-width: 960px) {
  :is(.vst-pg, #vst-x#vst-y) .marques-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  :is(.vst-pg, #vst-x#vst-y) .marques-grille span { left: 20px; bottom: 20px; }
  :is(.vst-pg, #vst-x#vst-y) .marques-grille b { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { .vst-pg .marques-grille img { transition: none; } }

/* ——— Galerie des pages boutiques (p02 bis) et tableaux des pages légales (p06) ———
   Rétablis le 20.10 : retirés par erreur avec l'ancien bloc de Notre histoire (commit b180abf). */
:is(.vst-pg, #vst-x#vst-y) .galerie { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; width: 100%; }
:is(.vst-pg, #vst-x#vst-y) .galerie li { padding: 0; aspect-ratio: 3 / 4; overflow: hidden; background: var(--vst-photo); }
:is(.vst-pg, #vst-x#vst-y) .galerie img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 960px) { :is(.vst-pg, #vst-x#vst-y) .galerie { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
/* Tableaux dans les textes légaux (CGV : frais de port) : défilement du seul tableau sur mobile */
:is(.vst-pg, #vst-x#vst-y) .vst-prose table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: 0 0 12px; font-size: 14px; }
:is(.vst-pg, #vst-x#vst-y) .vst-prose :is(th, td) { padding: 8px 10px; border: 1px solid var(--vst-ligne); text-align: left; }

/* ——— Notre histoire (p01) : direction A « Carnet de bord », équipe de la direction B (choix de Gabrielle, 19.10).
   Repris de maquettes/pages/histoire/src.html (classes a-* → h-*). Chapitres numérotés par compteur CSS (aucun texte ajouté). ——— */
body.vst-pg-page #main-content { counter-reset: chapitre; }
:is(.vst-pg, #vst-x#vst-y) .h-hero { position: relative; height: min(86vh, 760px); min-height: 520px; display: grid; align-content: end; color: var(--vst-blanc); overflow: hidden; background: #4a5a6a; }
:is(.vst-pg, #vst-x#vst-y) .h-hero-photo { margin: 0; position: absolute; inset: 0; }
:is(.vst-pg, #vst-x#vst-y) .h-hero .h-sur { margin: 0; }
:is(.vst-pg, #vst-x#vst-y) .h-hero img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 60% 50%; }
:is(.vst-pg, #vst-x#vst-y) .h-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(35,35,36,0) 35%, rgba(35,35,36,.68) 100%); }
:is(.vst-pg, #vst-x#vst-y) .h-hero-texte { position: relative; z-index: 2; padding: 0 var(--gouttiere) 36px; display: grid; gap: 12px; }
:is(.vst-pg, #vst-x#vst-y) .h-hero .h-sur { font: 600 12px/1.3 var(--font-titre); color: var(--vst-blanc); text-transform: uppercase; letter-spacing: .16em; }
:is(.vst-pg, #vst-x#vst-y) .h-hero h1 { color: var(--vst-blanc); font: 500 52px/.95 var(--font-titre); letter-spacing: .01em; max-width: 9ch; text-transform: uppercase; }
:is(.vst-pg, #vst-x#vst-y) .h-releve { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--vst-ligne); background: var(--vst-blanc); }
:is(.vst-pg, #vst-x#vst-y) .h-releve > div { padding: 20px 12px 18px var(--gouttiere); border-right: 1px solid var(--vst-ligne); display: grid; gap: 4px; align-content: start; }
:is(.vst-pg, #vst-x#vst-y) .h-releve > div:last-child { border-right: 0; }
:is(.vst-pg, #vst-x#vst-y) .h-releve b { font: 500 28px/1 var(--font-titre); color: var(--vst-encre); font-variant-numeric: tabular-nums; white-space: nowrap; }
:is(.vst-pg, #vst-x#vst-y) .h-releve span { font-size: 13px; line-height: 1.35; }
:is(.vst-pg, #vst-x#vst-y) .h-chap { counter-increment: chapitre; padding: 72px var(--gouttiere) 0; display: grid; gap: 28px; }
:is(.vst-pg, #vst-x#vst-y) .h-tete { display: grid; gap: 14px; align-content: start; }
:is(.vst-pg, #vst-x#vst-y) .h-tete::before { content: counter(chapitre, upper-roman); font: 600 13px/1 var(--font-titre); color: var(--vst-corail-texte); letter-spacing: .16em; }
:is(.vst-pg, #vst-x#vst-y) .h-chap h2 { margin: 0; padding: 0; font: 500 34px/1.02 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .02em; text-wrap: balance; }
:is(.vst-pg, #vst-x#vst-y) .h-prose { min-width: 0; }
:is(.vst-pg, #vst-x#vst-y) .h-prose p { margin: 0 0 18px; padding: 0; font-size: 16px; line-height: 1.75; max-width: 58ch; } /* ≈ 72 caractères par ligne (relevé du 22.10 : 78 à 81) */
:is(.vst-pg, #vst-x#vst-y) .h-prose ul { margin: 0 0 14px; padding: 0; list-style: none; display: grid; gap: 6px; max-width: 62ch; }
:is(.vst-pg, #vst-x#vst-y) .h-prose li { position: relative; padding: 0 0 0 22px; font-size: 16px; line-height: 1.6; }
:is(.vst-pg, #vst-x#vst-y) .h-prose .puce { position: absolute; left: 0; top: 0; width: 22px; color: var(--vst-corail); }
:is(.vst-pg, #vst-x#vst-y) .vst-lettre { font: 500 1.35em/1 var(--font-titre); color: var(--vst-corail); }
:is(.vst-pg, #vst-x#vst-y) .h-photo { margin: 0 calc(-1 * var(--gouttiere)); background: var(--vst-photo); }
:is(.vst-pg, #vst-x#vst-y) .h-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
:is(.vst-pg, #vst-x#vst-y) .h-citation { margin: 72px 0 0; padding: 0 var(--gouttiere); }
:is(.vst-pg, #vst-x#vst-y) .h-citation blockquote { margin: 0; padding: 0; border: 0; font: 500 30px/1.15 var(--font-titre); color: var(--vst-corail); text-transform: uppercase; letter-spacing: .01em; text-wrap: balance; max-width: 18ch; }
:is(.vst-pg, #vst-x#vst-y) .h-plein { margin: 72px 0 0; background: var(--vst-photo); }
:is(.vst-pg, #vst-x#vst-y) .h-plein img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
:is(.vst-pg, #vst-x#vst-y) .h-frise { list-style: none; margin: 8px 0 0; padding: 0; border-left: 1px solid var(--vst-encre); display: grid; gap: 22px; }
:is(.vst-pg, #vst-x#vst-y) .h-frise li { position: relative; padding: 0 0 0 22px; display: grid; gap: 2px; }
:is(.vst-pg, #vst-x#vst-y) .h-frise li::before { content: ""; position: absolute; left: -5px; top: 5px; width: 9px; height: 9px; border-radius: 50%; background: var(--vst-fond); border: 1px solid var(--vst-encre); }
:is(.vst-pg, #vst-x#vst-y) .h-frise b { font: 600 13px/1.2 var(--font-titre); color: var(--vst-encre); letter-spacing: .1em; text-transform: uppercase; }
:is(.vst-pg, #vst-x#vst-y) .h-frise span { font-size: 14px; line-height: 1.45; }
/* Équipe : direction B */
:is(.vst-pg, #vst-x#vst-y) .h-equipe { counter-increment: chapitre; padding: 72px var(--gouttiere) 0; display: grid; gap: 20px; justify-items: start; }
:is(.vst-pg, #vst-x#vst-y) .h-equipe h2 { margin: 0; padding: 0; font: 600 13px/1.2 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .16em; } /* titre de la direction B */
:is(.vst-pg, #vst-x#vst-y) .h-equipe ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; width: 100%; }
:is(.vst-pg, #vst-x#vst-y) .h-equipe li { padding: 0 0 16px; display: grid; grid-template-columns: 96px 1fr; gap: 16px; align-items: center; border-bottom: 1px solid var(--vst-ligne); }
:is(.vst-pg, #vst-x#vst-y) .h-equipe img { width: 96px; height: 96px; object-fit: contain; background: #fff; border-radius: 50%; }
:is(.vst-pg, #vst-x#vst-y) .h-equipe b { display: block; font: 600 16px/1.2 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .08em; }
:is(.vst-pg, #vst-x#vst-y) .h-equipe li span { font-size: 14px; }
:is(.vst-pg, #vst-x#vst-y) .h-fin { counter-increment: chapitre; padding: 72px var(--gouttiere) 0; display: grid; gap: 28px; }
:is(.vst-pg, #vst-x#vst-y) .h-fin .h-texte { display: grid; gap: 16px; justify-items: start; min-width: 0; }
:is(.vst-pg, #vst-x#vst-y) .h-fin h2 { margin: 0; padding: 0; font: 500 34px/1.02 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; max-width: 14ch; }
:is(.vst-pg, #vst-x#vst-y) .h-fin .h-texte::before { content: counter(chapitre, upper-roman); font: 600 13px/1 var(--font-titre); color: var(--vst-corail-texte); letter-spacing: .16em; }
:is(.vst-pg, #vst-x#vst-y) .h-fin figure { margin: 0; background: var(--vst-photo); }
:is(.vst-pg, #vst-x#vst-y) .h-fin figure img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
:is(.vst-pg, #vst-x#vst-y) .h-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }
:is(.vst-pg, #vst-x#vst-y) .h-actions .lien-fleche { font-size: 14px; }
@media (min-width: 960px) {
  :is(.vst-pg, #vst-x#vst-y) .h-hero h1 { font-size: 112px; max-width: none; }
  :is(.vst-pg, #vst-x#vst-y) .h-hero-texte { padding: 0 var(--gouttiere) 56px; }
  :is(.vst-pg, #vst-x#vst-y) .h-releve > div { padding: 28px 24px 26px var(--gouttiere); }
  :is(.vst-pg, #vst-x#vst-y) .h-releve b { font-size: 44px; }
  :is(.vst-pg, #vst-x#vst-y) .h-chap { padding: 120px var(--gouttiere) 0; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 32px; align-items: start; }
  :is(.vst-pg, #vst-x#vst-y) .h-chap > .h-tete { grid-column: 1 / 5; position: sticky; top: 100px; }
  :is(.vst-pg, #vst-x#vst-y) .h-chap > .h-prose { grid-column: 6 / 12; }
  :is(.vst-pg, #vst-x#vst-y) .h-chap h2 { font-size: 56px; }
  :is(.vst-pg, #vst-x#vst-y) .h-chap.inverse > .h-tete { grid-column: 8 / 13; grid-row: 1; }
  :is(.vst-pg, #vst-x#vst-y) .h-chap.inverse > .h-prose { grid-column: 1 / 7; grid-row: 1; }
  :is(.vst-pg, #vst-x#vst-y) .h-photo { grid-column: 6 / 13; margin: 0 calc(-1 * var(--gouttiere)) 0 0; }
  :is(.vst-pg, #vst-x#vst-y) .h-photo.gauche { grid-column: 1 / 8; margin: 0 0 0 calc(-1 * var(--gouttiere)); }
  :is(.vst-pg, #vst-x#vst-y) .h-photo img { aspect-ratio: 16 / 10; }
  :is(.vst-pg, #vst-x#vst-y) .h-citation { margin-top: 120px; padding: 0 var(--gouttiere) 0 calc(var(--gouttiere) + 41.66%); }
  :is(.vst-pg, #vst-x#vst-y) .h-citation blockquote { font-size: 54px; }
  :is(.vst-pg, #vst-x#vst-y) .h-plein { margin-top: 120px; }
  :is(.vst-pg, #vst-x#vst-y) .h-plein img { aspect-ratio: 21 / 9; }
  :is(.vst-pg, #vst-x#vst-y) .h-equipe { padding-top: 120px; }
  /* Équipe : 2 colonnes de fiches « photo + nom » (3 colonnes laissaient un tiers vide pour 2 personnes, relevé du 22.10). */
  :is(.vst-pg, #vst-x#vst-y) .h-equipe ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 48px; max-width: 1000px; }
  :is(.vst-pg, #vst-x#vst-y) .h-equipe li { grid-template-columns: 160px minmax(0, 1fr); gap: 24px; padding-bottom: 24px; }
  :is(.vst-pg, #vst-x#vst-y) .h-equipe img { width: 160px; height: 160px; }
  :is(.vst-pg, #vst-x#vst-y) .h-equipe b { font-size: 18px; margin-bottom: 4px; }
  :is(.vst-pg, #vst-x#vst-y) .h-fin { padding-top: 120px; grid-template-columns: 5fr 7fr; column-gap: 64px; align-items: center; }
  :is(.vst-pg, #vst-x#vst-y) .h-fin h2 { font-size: 56px; }
}

/* ——— Vêtements sportswear multimarques (p07) : ancienne accueil, textes et titres gardés ——— */
:is(.vst-p07, #vst-x#vst-y) .p07-bloc { padding: 56px var(--gouttiere) 0; display: grid; gap: 14px; justify-items: start; min-width: 0; }
:is(.vst-p07, #vst-x#vst-y) .p07-bloc > * { max-width: 100%; }
:is(.vst-p07, #vst-x#vst-y) .p07-bloc :is(h2, h3) { margin: 0; padding: 0; font: 600 18px/1.2 var(--font-titre); color: var(--vst-encre); text-transform: uppercase; letter-spacing: .1em; text-wrap: balance; }
:is(.vst-p07, #vst-x#vst-y) .p07-bloc h3 { font-size: 13px; letter-spacing: .14em; margin-top: 12px; }
:is(.vst-p07, #vst-x#vst-y) .p07-bloc p { margin: 0; font-size: 15px; line-height: 1.7; max-width: 68ch; }
:is(.vst-p07, #vst-x#vst-y) .p07-bandeau { padding: 10px var(--gouttiere); background: var(--vst-voile); color: var(--vst-encre); font-size: 13px; text-align: center; }
:is(.vst-p07, #vst-x#vst-y) .p07-bandeau p { margin: 0; }
:is(.vst-p07, #vst-x#vst-y) .p07-bloc .defile-x { list-style: none; margin: 0 calc(-1 * var(--gouttiere)); padding: 0 var(--gouttiere); display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; width: calc(100% + 2 * var(--gouttiere)); max-width: none; }
:is(.vst-p07, #vst-x#vst-y) .p07-bloc .defile-x::-webkit-scrollbar { display: none; }
:is(.vst-p07, #vst-x#vst-y) .cartes > .produit { flex: 0 0 62%; scroll-snap-align: start; }
:is(.vst-p07, #vst-x#vst-y) .cartes :is(.rapide, .coeur, .pastilles) { display: none; }
:is(.vst-p07, #vst-x#vst-y) .grille-p07 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; width: 100%; }
:is(.vst-p07, #vst-x#vst-y) .grille-p07 > div { display: grid; gap: 8px; align-content: start; min-width: 0; }
:is(.vst-p07, #vst-x#vst-y) .grille-p07 img, :is(.vst-p07, #vst-x#vst-y) .diapo img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; background: var(--vst-photo); }
:is(.vst-p07, #vst-x#vst-y) .grille-p07 p { font-size: 14px; }
.vst-p07 .p07-diapos.et_pb_column { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 56px var(--gouttiere, 20px) 0; scrollbar-width: none; }
.vst-p07 .p07-diapos.et_pb_column > .et_pb_module { flex: 0 0 82%; width: auto; scroll-snap-align: start; }
:is(.vst-p07, #vst-x#vst-y) .diapo { display: grid; gap: 10px; justify-items: start; }
:is(.vst-p07, #vst-x#vst-y) .diapo img { aspect-ratio: 4 / 3; }
:is(.vst-p07, #vst-x#vst-y) .diapo h2 { margin: 0; padding: 0; font: 600 12px/1.3 var(--font-titre); color: var(--vst-corail-texte); text-transform: uppercase; letter-spacing: .14em; }
:is(.vst-p07, #vst-x#vst-y) .diapo h2 + h2 { font: 500 22px/1.15 var(--font-titre); color: var(--vst-encre); letter-spacing: .03em; text-wrap: balance; }
@media (min-width: 960px) {
  :is(.vst-p07, #vst-x#vst-y) .p07-bloc { padding-top: 96px; }
  :is(.vst-p07, #vst-x#vst-y) .cartes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 40px 16px; overflow: visible; margin: 0; padding: 0; width: 100%; }
  :is(.vst-p07, #vst-x#vst-y) .grille-p07 { grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 16px; }
  .vst-p07 .p07-diapos.et_pb_column > .et_pb_module { flex-basis: calc((100% - 36px) / 4); }
}

/* ——— Carte cadeau (p09, corps « Fiche carte cadeau v2 ») : champs PW Gift Cards au composant Champ.
   Le prix du montant choisi est affiché par le module Prix (lot 1, 19.10) : pas de surcharge ici. ——— */
#pwgc-purchase-container .pwgc-field-container { display: grid; gap: 6px; margin: 0 0 16px; padding: 0; float: none; width: 100%; }
#pwgc-purchase-container .pwgc-label { display: block; margin: 0; font: 600 13px/1.3 "Open Sans", sans-serif; color: var(--gcid-vst-encre, #232324); }
#pwgc-purchase-container :is(input[type="text"], textarea, select) { box-sizing: border-box; width: 100%; max-width: 100%; height: 48px; margin: 0; padding: 0 12px; border: 1px solid var(--gcid-vst-ligne-ui, #9C7763); border-radius: var(--gvid-vst-rayon, 4px); background: var(--gcid-vst-blanc, #FFFDFC); font: 400 15px/1.4 "Open Sans", sans-serif; color: var(--gcid-vst-encre, #232324); }
#pwgc-purchase-container textarea { height: auto; min-height: 120px; padding: 12px; }
#pwgc-purchase-container :is(input, textarea, select):focus { outline: 2px solid var(--gcid-vst-encre, #232324); outline-offset: 0; border-color: var(--gcid-vst-encre, #232324); }
#pwgc-purchase-container .pwgc-subtitle { font-size: 13px; line-height: 1.4; color: var(--gcid-vst-texte, #575758); }
#pwgc-purchase-container #pwgc-email-design-id { margin: 0; }
:is(.vst-pg, #vst-x#vst-y) .h-fin .h-prose > :last-child { margin-bottom: 0; }

/* ——— Carte cadeau (21.10) : visuel HTML/CSS au format carte bancaire (ratio 1,586), vignettes de modèle, points d'information, étapes.
   Couleurs des modèles : réglages de PW Gift Cards (--cc-*, posées en PHP et en JS) ; fond quasi blanc remplacé par le fond de la DA. ——— */
.vst-cc-visuel { --cc-fond: #FFF8F4; --cc-texte: #575758; --cc-accent: #E21F20; --cc-bord: #E9DED7; display: flex; justify-content: center; align-items: center; box-sizing: border-box; width: 100%; padding: clamp(24px, 6vw, 72px) clamp(20px, 5vw, 64px); background: var(--gcid-vst-photo, #F4F2F1); }
.vst-cc-carte { position: relative; box-sizing: border-box; width: 100%; max-width: 520px; aspect-ratio: 1.586; display: grid; grid-template: "logo type" auto "vide vide" 1fr "occasion montant" auto / 1fr auto; gap: 4px 16px; padding: clamp(16px, 5%, 32px); border: 1px solid var(--cc-bord); border-radius: clamp(10px, 3%, 18px); background: var(--cc-fond); color: var(--cc-texte); box-shadow: 0 18px 40px -22px rgba(35, 35, 36, .45); overflow: hidden; }
.vst-cc-carte::before { content: ""; position: absolute; right: -12%; bottom: -38%; width: 62%; aspect-ratio: 1; border-radius: 50%; border: 1px solid currentColor; opacity: .14; pointer-events: none; }
.vst-cc-carte .vst-cc-logo { grid-area: logo; font: 700 clamp(20px, 4.6vw, 30px)/1 "Work Sans", "Helvetica Neue", Arial, sans-serif; letter-spacing: .02em; }
.vst-cc-degre { color: #ED7B01; }
.vst-cc-carte .vst-cc-type { grid-area: type; align-self: start; font: 600 clamp(10px, 2.2vw, 12px)/1.2 "Work Sans", "Helvetica Neue", Arial, sans-serif; text-transform: uppercase; letter-spacing: .14em; }
.vst-cc-carte .vst-cc-occasion { grid-area: occasion; align-self: end; min-width: 0; font: 400 clamp(12px, 2.6vw, 15px)/1.3 "Open Sans", "Helvetica Neue", Arial, sans-serif; overflow-wrap: anywhere; }
.vst-cc-carte .vst-cc-montant { grid-area: montant; align-self: end; text-align: right; white-space: nowrap; font: 600 clamp(15px, 3.4vw, 20px)/1 "Work Sans", "Helvetica Neue", Arial, sans-serif; color: var(--cc-accent); }
.vst-cc-carte.vst-cc-choisi .vst-cc-montant { font-size: clamp(26px, 7vw, 44px); letter-spacing: -.01em; }
.vst-pdp .vst-colonne-photos .vst-cc-visuel { margin: 0; }
.vst-pdp .woocommerce-Price-amount + .vst-cc-plage, .vst-cc-plage { font: 600 20px/1.3 "Work Sans", "Helvetica Neue", Arial, sans-serif; color: var(--gcid-vst-encre, #232324); }

.vst-cc-modeles { min-width: 0; margin: 4px 0 20px; padding: 0; border: 0; }
.vst-cc-modeles legend { margin: 0 0 8px; padding: 0; font: 600 13px/1.3 "Open Sans", sans-serif; color: var(--gcid-vst-encre, #232324); }
.vst-cc-vignettes { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 10px; }
.vst-cc-vignette { position: relative; display: grid; gap: 6px; margin: 0; padding: 6px; border: 1px solid var(--gcid-vst-ligne, #E9DED7); border-radius: var(--gvid-vst-rayon, 4px); background: var(--gcid-vst-blanc, #FFFDFC); cursor: pointer; }
.vst-cc-vignette input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.vst-cc-vignette:has(input:checked) { border-color: var(--gcid-vst-encre, #232324); box-shadow: inset 0 0 0 1px var(--gcid-vst-encre, #232324); }
.vst-cc-vignette:has(input:focus-visible) { outline: 2px solid var(--gcid-vst-encre, #232324); outline-offset: 2px; }
.vst-cc-mini { --cc-fond: #FFF8F4; --cc-texte: #575758; --cc-bord: #E9DED7; display: block; aspect-ratio: 1.586; padding: 7px 8px; box-sizing: border-box; border: 1px solid var(--cc-bord); border-radius: 5px; background: var(--cc-fond); color: var(--cc-texte); }
.vst-cc-mini .vst-cc-logo { font: 700 12px/1 "Work Sans", "Helvetica Neue", Arial, sans-serif; }
.vst-cc-nom { font: 400 12px/1.3 "Open Sans", sans-serif; color: var(--gcid-vst-encre, #232324); }
.vst-cc-vignette:has(input:checked) .vst-cc-nom { font-weight: 600; }
.vst-cc-vignette:has(input:checked) .vst-cc-nom::before { content: "✓ "; }
#pwgc-purchase-container .vst-cc-masque { display: none; }

.vst-cc-infos { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font: 400 14px/1.45 "Open Sans", sans-serif; color: var(--gcid-vst-texte, #575758); }
.vst-pdp .et_pb_text ul.vst-cc-infos { padding: 0; list-style: none; }
.vst-pdp .et_pb_text ul.vst-cc-infos li, .vst-cc-infos li { position: relative; margin: 0; padding: 0 0 0 18px; list-style: none; }
.vst-cc-infos li::before { content: ""; position: absolute; left: 0; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: var(--gcid-de2da1d0-439d-46e9-990a-e1a6d8120582, #E75736); }

.vst-cc-etapes .et_pb_row { padding-top: 48px; padding-bottom: 64px; }
.vst-cc-etapes h2 { margin: 0 0 24px; padding: 0; font: 600 clamp(22px, 3vw, 28px)/1.2 "Work Sans", "Helvetica Neue", Arial, sans-serif; color: var(--gcid-vst-encre, #232324); }
.vst-cc-etapes ol { list-style: none; counter-reset: etape; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.vst-cc-etapes li { counter-increment: etape; margin: 0; padding: 20px 0 0; border-top: 1px solid var(--gcid-vst-ligne, #E9DED7); font: 400 15px/1.5 "Open Sans", sans-serif; color: var(--gcid-vst-texte, #575758); }
.vst-cc-etapes li::before { content: counter(etape); display: block; margin-bottom: 10px; font: 600 28px/1 "Work Sans", "Helvetica Neue", Arial, sans-serif; color: var(--gcid-de2da1d0-439d-46e9-990a-e1a6d8120582, #E75736); }
.vst-cc-etapes li strong { display: block; margin-bottom: 4px; font: 600 16px/1.3 "Work Sans", "Helvetica Neue", Arial, sans-serif; color: var(--gcid-vst-encre, #232324); }
@media (max-width: 767px) {
  .vst-cc-etapes ol { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .vst-cc-etapes .et_pb_row { padding-top: 32px; padding-bottom: 40px; }
}
/* Sections de la carte cadeau : sans les 50 px de marge par défaut de Divi (le fil d'Ariane et le visuel suivent l'en-tête). */
:is(.vst-pdp-ariane, #vst-x#vst-y).et_pb_section, :is(.vst-cc, #vst-x#vst-y).et_pb_section, :is(.vst-cc-etapes, #vst-x#vst-y).et_pb_section { padding-top: 0; padding-bottom: 0; }
/* Champs de l'extension avant la quantité et le bouton (la grille de la fiche ne leur donne pas de zone). */
.vst-pdp.vst-cc .woocommerce-variation-add-to-cart { grid-template-areas: "cc cc" "qte qte" "btn fav"; }
.vst-pdp.vst-cc #pwgc-purchase-container { grid-area: cc; }
@media (min-width: 981px) { .vst-pdp.vst-cc .woocommerce-variation-add-to-cart { grid-template-areas: "cc cc cc" "qte btn fav"; } }
@media (max-width: 980px) { .vst-pdp.vst-cc .vst-colonne-photos .vst-cc-visuel { padding: 24px 20px; } }

/* ——— Recette du 21.10 : ancres sous l'en-tête collant, guide des tailles ———
   --vst-ancre = hauteur réelle de l'en-tête collant (mesurée : 57 px à 375, 69 px à 1440, bordure comprise) + 16 px.
   Le bandeau promo défile avec la page : il ne compte pas. Le clic sur une ancre passe aussi par vst-pages.js (Divi ignore scroll-margin). */
.vst-pg { --vst-ancre: 73px; }
@media (min-width: 960px) { .vst-pg { --vst-ancre: 85px; } }
.vst-pg :is(.vst-prose, .tailles, .legal) [id] { scroll-margin-top: var(--vst-ancre); }
/* Guide des tailles : un seul conteneur qui défile, première colonne collante plus étroite (elle ne mange plus 40 % de l'écran à 375 px). */
:is(.vst-pg, #vst-x#vst-y) .tableau-defile { overflow: auto hidden; overscroll-behavior-x: contain; }
:is(.vst-pg, #vst-x#vst-y) .tableau-tailles :is(thead th:first-child, tbody th) { z-index: 1; width: 96px; min-width: 96px; max-width: 96px; white-space: normal; overflow-wrap: anywhere; padding: 10px 8px 10px 12px; font-size: 13px; line-height: 1.3; background-clip: padding-box; }
:is(.vst-pg, #vst-x#vst-y) .tableau-tailles thead th:first-child { box-shadow: 1px 0 0 var(--vst-ligne); }
@media (min-width: 960px) {
  :is(.vst-pg, #vst-x#vst-y) .tableau-tailles :is(thead th:first-child, tbody th) { width: auto; min-width: 0; max-width: none; white-space: nowrap; font-size: 14px; }
}
