/* Groupe Vigneau — compléments de la version 1.3.0.
   Uniquement : corrections d'anomalies (débordements, accessibilité), éléments nouveaux
   (horaires CER, pop-ups, documents PDF, visuels neutres) et contenu de secours sans script.
   Les couleurs, typographies, cartes et animations de la maquette sont inchangées. */

/* ---------- Contenu de secours (sans JavaScript) ---------- */
/* Le serveur fournit le contenu de chaque page (titres, textes, liens) ; le script le remplace
   immédiatement par la présentation de la maquette. Sans script, ce contenu reste lisible. */
html.js #app > .gv-ssr{visibility:hidden;min-height:70vh}
.gv-ssr{padding-top:48px;padding-bottom:64px;color:var(--ink)}
.gv-ssr h1{font-size:34px;margin-bottom:14px}
.gv-ssr h2{font-size:24px;margin:30px 0 10px}
.gv-ssr h3{font-size:18px;margin:20px 0 8px}
.gv-ssr a{color:var(--blue);text-decoration:underline}
.gv-ssr ul{padding-left:20px}
.gv-ssr li{margin:4px 0}
#siteFooter .gv-ssr{padding:0;color:#c6d4e4}
#siteFooter .gv-ssr a{color:#c6d4e4}
#siteFooter .gv-ssr ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 12px}

/* Texte réservé aux lecteurs d'écran */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}

/* ---------- Boutons et liens convertis (aucun changement visuel) ---------- */
/* Les éléments de la maquette devenus de vrais boutons ou de vrais liens gardent leur apparence. */
a.gv-a,a.btn.gv-a{line-height:normal}
a.chip{display:inline-block;line-height:normal}
a.cat-card{display:block;color:inherit}
button.close{border:0;padding:0;font-family:inherit;line-height:1;flex:0 0 auto}
button.burger{background:none;border:0;font:inherit;-webkit-appearance:none;appearance:none}
button.totop{border:0;font-family:inherit;font-size:18px;line-height:1}
.fcard a.go,.fil-card a.disc,.a-card a.go,.card a.go{color:inherit}
.fcard .go,.a-card .go{display:inline-block}
a.btn-devis{display:inline-block;line-height:normal}

/* Focus visible au clavier */
:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.btn:focus-visible,.chip:focus-visible,.btn-devis:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.fcard:focus-visible,.mat-card:focus-visible,.fil-card:focus-visible,.res-line:focus-visible,.aud:focus-visible,.cer-two .c:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.cer-hero :focus-visible,.mini :focus-visible,footer :focus-visible{outline-color:#fff}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}


/* ---------- Titre principal de la page converti (fiche ouverte par son adresse) ---------- */
.h1{font-family:'Poppins';font-weight:700;line-height:1.16;color:var(--navy);margin:0 0 .5em;display:block}
.hero .h1{color:#fff;font-size:46px;font-weight:800;letter-spacing:-1px;margin-bottom:18px;line-height:1.08}
.cer-hero .h1{color:#fff;font-size:42px;max-width:740px;margin:10px 0 14px}
.mini .h1{color:#fff;font-size:36px;margin:0 0 8px}
.fiche-info h1.fiche-h1{margin:8px 0 16px;font-size:25px;line-height:1.2}
.cer .fiche-info h1.fiche-h1{color:var(--red)}
@media(max-width:980px){.hero .h1{font-size:34px}}

/* ---------- Visuels neutres (aucune photo fournie) ---------- */
.gv-ph{width:100%;height:100%;min-height:inherit;display:grid;place-items:center;background:linear-gradient(150deg,#1f4380,#0f3157)}
.gv-ph svg{width:46px;height:46px;opacity:.9}
.gv-ph-fiche{min-height:340px}
.gv-ph-fiche svg{width:84px;height:84px}
.gv-ph-sm svg{width:28px;height:28px}
.gv-ph-asst{width:96px;height:74px;min-height:0;border-radius:9px;flex:0 0 auto}
.gv-ph-asst svg{width:30px;height:30px}
.f-ic{flex:0 0 auto;display:grid;place-items:center}.f-ic svg{width:100%;height:100%}
.f-ic-big{display:flex;justify-content:center;margin-bottom:14px}.f-ic-big svg{width:56px;height:56px}

/* Documents PDF */
.dl-size{font-weight:500;opacity:.75;font-size:.88em}
.dl-row{display:flex;gap:10px;flex-wrap:wrap}
.gv-help{display:block;color:var(--muted);font-size:12.5px;margin-top:5px}
.a-date{display:block;font-size:12.5px;color:var(--muted);margin-bottom:4px}

/* ---------- Corrections responsive ---------- */
/* En-tête : entre 981 et 1200 px le menu complet dépassait de l'écran → menu « burger », comme sur tablette. */
@media(max-width:1200px){
 .menu{display:none}.burger{display:flex}
 .menu.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:#fff;padding:12px;box-shadow:var(--shadow);gap:2px;margin:0}
 .menu.open>a{font-size:14px;padding:10px 12px}
 .menu.open>a.active::after{left:12px;right:auto;width:28px}
}
/* Pied de page : une seule colonne sur les très petits écrans (débordement à 320 et 360 px). */
@media(max-width:400px){
 footer .cols{grid-template-columns:1fr}
 .foot-bottom{flex-direction:column}
}
/* Demande de devis : cartes de domaine sans débordement à 320 px. */
@media(max-width:359px){
 .dom-card{padding:16px 14px;gap:12px;min-width:0}
 .dom-card .dc-main{min-width:0}
 .dom-card .dc-go{display:none}
 .ddv-prog{overflow:hidden}
 .ddv-foot{flex-wrap:wrap;gap:10px}
 .ddv-foot .btn{min-width:0;flex:1 1 auto}
}
/* Fiches : photo moins haute sur téléphone (le contenu reste visible sans faire défiler longtemps). */
@media(max-width:600px){
 .fiche-top .ph-img,.gv-ph-fiche{min-height:220px}
 .fiche-top .ph-img img{min-height:220px!important;max-height:260px}
 .mb-head{padding:16px 18px}
 .fiche-info,.fiche-body{min-width:0}
 .spec td{word-break:break-word}
}
/* Cibles tactiles suffisantes (44 px) */
@media(pointer:coarse){
 .close{width:44px;height:44px}
 footer .soc a{width:44px;height:44px}
 .foot-bottom a{display:inline-block;padding:6px 0}
 .chip{min-height:40px}
}
/* Aucun défilement horizontal parasite */
.qfield,.quick,.cer-search{min-width:0}
.legal-art{overflow-wrap:anywhere}
.legal-art table{display:block;overflow-x:auto;max-width:100%}

/* ---------- Encadré « Horaires & accueil » (page Formations) ---------- */
.cer-hero .container.has-hor{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:34px;align-items:start}
.cer-hero-txt{min-width:0}
.hor-encart{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:18px 20px;color:#fff;backdrop-filter:blur(4px);margin-top:6px}
.hor-encart-h{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.hor-encart-h svg{width:22px;height:22px;flex:0 0 auto;stroke:#ff8a8a}
.hor-encart-h b{font-size:16px;color:#fff}
.hor-encart p{color:#f1d9d9;font-size:13.5px;margin:0 0 10px;max-width:none}
.hor-encart .hor-encart-today{color:#fff;font-weight:600}
.hor-encart .hor-encart-exc{background:#fff;color:#7a1414;border-radius:10px;padding:9px 11px;font-size:13px}
.hor-encart .hor-encart-exc b{color:#c81d1d}
.hor-encart .btn{width:100%;justify-content:center}
@media(max-width:860px){
 .cer-hero .container.has-hor{grid-template-columns:1fr;gap:18px}
 .hor-encart{max-width:440px}
}

/* ---------- Page « Horaires & accueil » ---------- */
#page-horaires .cer-hero .bc a{color:#ffb3b3;text-decoration:underline;text-underline-offset:2px}
.hor-section{padding-top:46px}
.hor-exc{display:flex;gap:14px;align-items:flex-start;background:#fff4f4;border:1px solid #ffc9c9;border-left:5px solid var(--red);border-radius:14px;padding:16px 18px;margin:0 0 18px}
.hor-exc[hidden]{display:none}
.hor-exc-ic{width:32px;height:32px;border-radius:50%;background:var(--red);color:#fff;font-weight:800;display:grid;place-items:center;flex:0 0 auto}
.hor-exc-tag{display:block;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#c81d1d;margin-bottom:2px}
.hor-exc b{color:#2d2d2a;font-size:16px}
.hor-exc p{margin:4px 0 0;color:#48586b}
.hor-exc small{display:block;margin-top:6px;color:#7a1414;font-weight:600}
.hor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:8px}
.hor-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);border-radius:16px;padding:22px;box-shadow:var(--shadow2);min-width:0}
.hor-card.hor-code{border-top-color:#2d2d2a}
.hor-card.hor-pro{border-top-color:#7a1414}
.hor-head{display:flex;gap:13px;align-items:flex-start;margin-bottom:14px}
.hor-ic{width:44px;height:44px;border-radius:12px;background:#ffe9e9;color:var(--red);display:grid;place-items:center;flex:0 0 auto}
.hor-code .hor-ic{background:#eceff1;color:#2d2d2a}
.hor-pro .hor-ic{background:#f6e3e3;color:#7a1414}
.hor-head h2{font-size:18px;margin:0 0 4px;color:#2d2d2a}
.hor-head p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.45}
.hor-now{display:inline-block;font-size:13px;font-weight:700;border-radius:20px;padding:5px 12px;background:#eceff1;color:#2d2d2a;margin-bottom:12px}
.hor-now.is-open{background:#e9f7ee;color:#1c7a43}
.hor-now[hidden]{display:none}
.hor-table{width:100%;border-collapse:collapse;font-size:14px}
.hor-table th,.hor-table td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.hor-table thead th{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;padding-top:0}
.hor-table tbody th{font-weight:700;color:#2d2d2a;white-space:nowrap}
.hor-table td{color:#33404f}
.hor-ferme{color:var(--muted)!important;font-style:italic}
.hor-cont{display:inline-block;font-size:11.5px;font-weight:700;color:#7a1414;background:#f6e3e3;border-radius:10px;padding:1px 7px;margin-left:4px}
.hor-note-row td{font-size:13px;color:var(--muted);padding-top:0;border-top:0}
tr.hor-alerte + .hor-note-row td,.hor-note-row.hor-alerte td{color:#c81d1d;font-weight:600}
tr:has(+ .hor-note-row) th,tr:has(+ .hor-note-row) td{border-bottom:0}
.hor-warn{color:var(--red)}
.hor-today th,.hor-today td{background:#fff4f4}
.hor-tag{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--red);border-radius:10px;padding:1px 7px;margin-left:4px;vertical-align:1px}
.hor-tel{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:700;color:#7a1414}
.hor-tel svg{width:18px;height:18px}
.hor-foot{margin:22px 0 0;font-size:14px}
.hor-back{margin:26px 0 0}
@media(max-width:1020px){.hor-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.hor-grid{grid-template-columns:1fr}.hor-card{padding:18px}}
@media(max-width:360px){.hor-table th,.hor-table td{padding:8px 4px;font-size:13px}.hor-table tbody th{white-space:normal}}

/* ---------- Plan du site ---------- */
.plan-grid{align-items:start}
.plan-col h2{font-size:18px;margin:0 0 10px}
.plan-col .s-sub{display:block;padding:4px 0 4px 14px;font-size:14px;color:var(--muted)}
.plan-col .s-sub:hover{color:var(--navy)}
.plan-col ul{list-style:none;padding:0;margin:0 0 16px}

/* ---------- Pop-ups (accueil : bleu ; formations : rouge) ---------- */
.gvp-wrap{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:16px;opacity:0;transition:opacity .2s}
.gvp-wrap.open{opacity:1}
.gvp-wrap[hidden]{display:none}
.gvp-ov{position:absolute;inset:0;background:rgba(15,31,55,.55);backdrop-filter:blur(2px)}
.gvp{position:relative;width:100%;max-width:460px;max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.35);transform:translateY(10px);transition:transform .25s}
.gvp-wrap.open .gvp{transform:none}
.gvp.has-img{max-width:720px;display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr)}
.gvp-img{background:#eef2f6;min-height:100%}
.gvp-img img{width:100%;height:100%;object-fit:cover;display:block}
.gvp-body{padding:28px 28px 26px;border-top:6px solid var(--navy)}
.gvp.has-img .gvp-body{border-top:0;border-left:6px solid var(--navy)}
.gvp-tag{display:block;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:8px}
.gvp h2{font-size:22px;margin:0 0 10px;padding-right:34px}
.gvp-txt{color:#48586b;font-size:15px;line-height:1.6}
.gvp .btn{margin-top:18px}
.gvp-x{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;border:0;background:#f1f6fb;color:var(--navy);font-size:17px;cursor:pointer;display:grid;place-items:center;z-index:2;font-family:inherit}
.gvp-x:hover{background:#e5eff7}
.gvp-cer .gvp-body{border-color:var(--red)}
.gvp-cer .gvp-tag{color:var(--red)}
.gvp-cer h2{color:#2d2d2a}
.gvp-cer .gvp-x{background:#ffe9e9;color:#7a1414}
@media(max-width:640px){
 .gvp-wrap{place-items:end center;padding:0}
 .gvp,.gvp.has-img{max-width:none;border-radius:20px 20px 0 0;display:block;max-height:88vh}
 .gvp-img{min-height:0;max-height:200px;overflow:hidden}
 .gvp.has-img .gvp-body{border-left:0;border-top:6px solid var(--navy)}
 .gvp-cer.has-img .gvp-body{border-top-color:var(--red)}
 .gvp-body{padding:24px 20px 26px}
 .gvp .btn{width:100%;justify-content:center;white-space:normal;text-align:center}
}

/* ---------- Formulaire de demande sur les données personnelles ---------- */
.gv-dd-form{max-width:640px;margin:18px 0}
.gv-dd-form fieldset{border:0;padding:0;margin:0 0 14px}
.gv-dd-form legend{font-weight:600;font-size:14px;color:var(--navy);margin-bottom:8px}
.gv-dd-form fieldset label{display:flex;gap:9px;align-items:flex-start;font-size:14.5px;margin:6px 0;color:#33404f}
.gv-dd-form fieldset input{margin-top:5px}
.gv-dd-help{font-size:13px;color:var(--muted)}
.gv-dd-msg{padding:14px 16px;border-radius:12px;margin:14px 0;font-size:14.5px}
.gv-dd-ok{background:#e9f7ee;border:1px solid #b7e4c7;color:#1c7a43}
.gv-dd-err{background:#fff4f4;border:1px solid #ffc9c9;color:#c81d1d}

/* Mentions de protection des données sous les formulaires */
.gv-rgpd{font-size:11.5px;line-height:1.5;color:var(--muted);margin:10px 0 0}
footer .gv-rgpd{color:#9db4d0}
.gv-consent a{text-decoration:underline}
.gv-entry-back{display:flex;gap:10px;flex-wrap:wrap;margin:30px 0 0}.gv-wp-hero .bc a{color:#cfe0f2;text-decoration:underline;text-underline-offset:2px}
.nl-consent a,.gv-consent a{display:inline!important}
@media(min-width:401px){.hor-table td{white-space:nowrap}.hor-note-row td{white-space:normal}}
