/* ============================================
   Vectisec - ajouts accessibilité
   À coller à la fin du style.css du thème enfant
   ============================================ */

/* Focus clavier visible sur tout le site */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
    outline: 2px solid #0077b6;
    outline-offset: 2px;
}

/* Respect des préférences de mouvement réduites */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* ============================================
   Bandeau de consentement cookies — mobile
   Le panneau plein écran masquait le CTA principal sur toutes les pages
   testées (audit SEO, Visual High #1).

   CORRECTIF : les deux premières tentatives ciblaient les classes `.cky-*`
   (nomenclature "CookieYes" moderne), en supposant que c'était le plugin
   actif car le script est chargé depuis cdn-cookieyes.com. Une vérification
   directe du HTML brut (round 3) montre qu'aucune classe `.cky-*` n'existe
   sur le site — le handle de script réel est `cookie-law-info-wca-js`,
   signature du plugin WebToffee "Cookie Law Info" (le prédécesseur/nom
   historique de CookieYes, dont certaines installations conservent la
   nomenclature de classes `.cli-*` / `#cookie-law-info-bar` même après le
   rebranding). Le bandeau étant injecté en JavaScript après le chargement
   de la page, son HTML n'apparaît dans aucune requête curl — impossible de
   confirmer les classes exactes sans les DevTools du navigateur sur le site
   réel. Les deux familles de sélecteurs sont donc couvertes ci-dessous à
   titre défensif, mais SANS GARANTIE que l'une ou l'autre corresponde
   réellement au DOM rendu.

   Recommandation prioritaire : configurer un bandeau "barre basse" compact
   directement dans les réglages du plugin (Cookie Law Info / CookieYes →
   Réglages → Bannière/Bar → Disposition), qui est la manière prévue par le
   plugin lui-même de contrôler sa taille — bien plus fiable qu'un CSS
   deviné de l'extérieur. Si les DevTools confirment d'autres noms de
   classes, remplacer les sélecteurs ci-dessous en conséquence.
   ============================================ */
@media (max-width: 782px) {
    .cky-consent-container .cky-consent-bar,
    .cky-modal-open .cky-overlay + .cky-consent-container,
    #cookie-law-info-bar,
    .cli-modal-content,
    .cli-bar-container {
        max-height: 18vh !important;
        overflow-y: auto !important;
    }
    .cky-consent-container,
    #cookie-law-info-bar {
        top: auto !important;
        bottom: 0 !important;
    }
}

/* BEGIN VECTISEC BANDEAU COOKIES 20261025
   CNIL : le bouton « Tout refuser » doit avoir le même niveau et le même aspect que « Tout accepter ». */
.cky-consent-container .cky-btn.cky-btn-reject,
.cky-modal .cky-btn.cky-btn-reject {
    background-color: #1863dc !important;
    border-color: #1863dc !important;
    color: #ffffff !important;
}
/* END VECTISEC BANDEAU COOKIES 20261025 */

/* BEGIN VECTISEC CONTRASTES 20261025
   Audit WCAG 2.x AA : textes sous 4,5:1 corrigés. Couleurs choisies pour dépasser 4,5:1 sur leur fond réel. */
.v-footer-container .v-footer-brand .v-tagline { color: #64748b !important; }
a.skip-link.screen-reader-text:focus, a.skip-link { color: #005a8a !important; }
.vc-profiles .vc-profile .vc-profile-icon,
.vc-articles .vc-article-link .vc-article-tag,
.vxb-body .vxb-veille-link a,
.vr-profil .vr-quote .stars,
.vr-profil .vr-quote a,
.vcpme-hub .vcpme-eyebrow,
.vcpme-card .vcpme-card-header .vcpme-card-badge,
.v-card .v-hero .v-badge { color: #005a8a !important; }
.vc-wrap .vc-card > p[style*="#9ca3af"] { color: #6b7280 !important; }
.flex.items-center .text-gray-400.font-bold { color: #6b7280 !important; }
.mt-16.text-center.text-gray-400 a[style*="#0077b6"] { color: #7dd3fc !important; }
.vcpme-hub .vcpme-risk-banner--ok span { color: #047857 !important; }
.legal-hero .legal-hero-inner .legal-badge { color: #7dd3fc !important; }
.legal-hero .legal-hero-inner p { color: #cbd5e1 !important; }
.v-grid-top .v-stat-box .v-stat-kicker { color: #e2e8f0 !important; }
#vectisec-tarifs-page .v-badge.v-badge-red { background-color: #dc2626 !important; color: #ffffff !important; }
/* END VECTISEC CONTRASTES 20261025 */

/* BEGIN VECTISEC HARMONISATION 20261026
   Référence visuelle : pages tarifs, à propos, consultant (bandeau bleu en dégradé, titres Poppins, fond crème).
   Retour arrière : supprimer ce bloc. */
:root { --vx-hero-grad: linear-gradient(135deg, #326586 0%, #1e4259 100%); --vx-cream: #FBFAF7; --vx-ink: #1e4259; }
body { background-color: var(--vx-cream); }
h1, h2, h3, h4, h5, h6 { font-family: 'Poppins', sans-serif !important; }

/* Pages en blocs (modèle par défaut) : bandeau construit par functions.php (bloc VECTISEC PAGES BLOCS) */
#vectisec-article-wrap .vx-page-hero {
    background: var(--vx-hero-grad); text-align: center;
    margin: -24px calc(50% - 50vw) 56px; padding: clamp(56px, 7vw, 96px) 24px clamp(48px, 6vw, 80px);
}
#vectisec-article-wrap .vx-page-hero__inner { max-width: 860px; margin: 0 auto; }
#vectisec-article-wrap .vx-page-hero h1 { color: #ffffff !important; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.12; font-weight: 700; margin: 0 0 18px; text-wrap: balance; }
#vectisec-article-wrap .vx-page-hero p { color: rgba(255, 255, 255, 0.9) !important; font-size: 1.125rem; line-height: 1.7; max-width: 720px; margin: 0 auto 28px; }
#vectisec-article-wrap .vx-page-hero > .vx-page-hero__inner > :last-child { margin-bottom: 0; }
#vectisec-article-wrap .vx-page-hero .wp-block-buttons { justify-content: center; gap: 12px; }
#vectisec-article-wrap .vx-page-hero .wp-block-button__link { border-radius: 999px; padding: 14px 30px; font-size: 15px; font-weight: 600; }
#vectisec-article-wrap .vx-page-hero .wp-block-button:first-child .wp-block-button__link { background: #ffffff; color: var(--vx-ink); }
#vectisec-article-wrap .vx-page-hero .wp-block-button:not(:first-child) .wp-block-button__link { background: transparent; color: #ffffff; border: 1px solid rgba(255, 255, 255, 0.55); }

/* Régie */
#vectisec-regie .vr-hero { background: var(--vx-hero-grad); }
#vectisec-regie .vr-hero h1 { color: #ffffff; }
#vectisec-regie .vr-hero .lead { color: rgba(255, 255, 255, 0.88); }
#vectisec-regie .vr-hero .vr-badge { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.25); color: #e6f1f8; }
#vectisec-regie .vr-hero .vr-btn-primary { background: #ffffff; color: var(--vx-ink); }
#vectisec-regie .vr-hero .vr-btn-ghost { background: transparent; color: #ffffff; border-color: rgba(255, 255, 255, 0.55); }

/* Ressources */
#vx-blog { background-color: var(--vx-cream); }
#vx-blog .vxb-hero { background: var(--vx-hero-grad); }
#vx-blog .vxb-hero h1 { font-size: clamp(2.25rem, 4.2vw, 3.5rem); line-height: 1.1; }
#vx-blog .vxb-hero .vxb-hero-desc { color: rgba(255, 255, 255, 0.88); }
#vx-blog .vxb-hero .vxb-hero-eyebrow { color: #e6f1f8; }

/* Contact : bande bleue derrière le haut de la carte */
#vectisec-contact-block { background: var(--vx-hero-grad) no-repeat; background-size: 100% 300px; padding-top: 56px; }

/* Veille (extension Vectisec Veille Cyber PME) */
.vcpme-hub .vcpme-hero { background: var(--vx-hero-grad); }
.vcpme-hub .vcpme-hero h1 { color: #ffffff; }
.vcpme-hub .vcpme-hero p { color: rgba(255, 255, 255, 0.88); }
.vcpme-hub .vcpme-hero .vcpme-eyebrow { color: #e6f1f8 !important; background: rgba(255, 255, 255, 0.12) !important; border: 1px solid rgba(255, 255, 255, 0.25) !important; }
.vcpme-hub .vcpme-hero a { color: #ffffff; text-decoration: underline; text-underline-offset: 2px; }
/* END VECTISEC HARMONISATION 20261026 */

/* BEGIN VECTISEC EDITORIAL PAGES 20261026
   Même style éditorial que l'accueil (sections ouvertes, sans cadres) pour tarifs, consultant, à propos, régie,
   contact, ressources et articles. Le contenu et le balisage des modèles ne changent pas.
   Retour arrière : supprimer ce bloc. */
:root { --ed-ink: #0f2a43; --ed-steel: #326586; --ed-signal: #0077b6; --ed-text: #3d4a5a; --ed-muted: #5d6b7b; --ed-rule: #d9dee4; --ed-mist: #e8eef3; }

/* ---------- Tarifs ---------- */
#vectisec-tarifs-page .v-section-title, #vectisec-tarifs-page .v-intro h2, #vectisec-tarifs-page .v-faq > h2 { text-align: center !important; margin-left: auto !important; margin-right: auto !important; max-width: 24ch !important; font-size: clamp(2rem, 3.4vw, 3rem) !important; font-weight: 600 !important; letter-spacing: -0.02em !important; line-height: 1.1 !important; color: var(--ed-ink) !important; }
#vectisec-tarifs-page .v-section-subtitle { font-size: 1.2rem !important; max-width: 60ch !important; margin-left: auto !important; margin-right: auto !important; }
/* Cartes d'offres conservées (demande de Fergé) : seulement allégées. */
#vectisec-tarifs-page .v-card-title { font-size: 1.4rem !important; font-weight: 600 !important; color: var(--ed-ink) !important; }

/* ---------- Consultant ---------- */
#vectisec-consultant .vc-wrap { gap: clamp(72px, 9vw, 120px); max-width: 1200px; }
#vectisec-consultant .vc-title { font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.1; color: var(--ed-ink); max-width: 20ch; }
#vectisec-consultant .vc-label { background: none; padding: 0; text-transform: none; letter-spacing: 0; color: var(--ed-steel); font-weight: 600; font-size: 15px; }
/* Cases internes (demande de Fergé : alléger, pas tout retirer) */
#vectisec-consultant .vc-def-item, #vectisec-consultant .vc-profile, #vectisec-consultant .vc-diff, #vectisec-consultant .vc-article-link,
#vectisec-apropos .va-cert, #vectisec-apropos .va-reg, #vectisec-apropos .va-mission,
#vectisec-regie .vr-card, #vectisec-regie .vr-mission, #vectisec-regie .vr-panel {
    background: #FBFAF7; border: 1px solid #e7ebef; border-radius: 18px; box-shadow: none; }

/* ---------- À propos ---------- */
#vectisec-apropos .va-card h2 { font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.1; color: var(--ed-ink); }

/* ---------- Régie ---------- */
#vectisec-regie .vr-section h2 { font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 600; letter-spacing: -0.02em; line-height: 1.1; color: var(--ed-ink); }
#vectisec-regie .vr-eyebrow { text-transform: none; letter-spacing: 0; font-size: 15px; }
#vectisec-regie .vr-cta-box { background: var(--vx-hero-grad); border: 0; box-shadow: none; }

/* ---------- Contact ---------- */

/* ---------- Ressources ---------- */

/* ---------- Articles ---------- */
#vectisec-article-wrap .v-hero h1 { color: var(--ed-ink) !important; font-size: clamp(2.1rem, 4vw, 3.25rem) !important; font-weight: 600 !important; letter-spacing: -0.02em !important; line-height: 1.1 !important; }
#vectisec-article-wrap .v-hero-image { border: 0 !important; box-shadow: none !important; }
#vectisec-article-wrap .v-section h2 { color: var(--ed-ink) !important; font-weight: 600 !important; letter-spacing: -0.01em !important; }
/* Largeur de lecture et cartes de prix (retouches 26/10) */
#vectisec-consultant .vc-card > p, #vectisec-apropos .va-card > p, #vectisec-regie .vr-section p { max-width: 72ch; }
#vectisec-consultant .vc-price-card { background: #FBFAF7; border: 1px solid #e7ebef; border-radius: 20px; box-shadow: 0 10px 30px rgba(15, 42, 67, 0.06); }
#vectisec-consultant .vc-price-card.featured { border: 2px solid var(--ed-signal); }
/* Icônes au trait (à la place des émojis) et section des guides du consultant (retouches 26/10) */
#vectisec-consultant .vc-profile-icon, #vectisec-consultant .vc-diff-icon, #vectisec-regie .vr-card .ico {
    width: 48px; height: 48px; flex: 0 0 48px; border-radius: 14px; background: #e8f1f8; color: #0077b6;
    display: inline-flex; align-items: center; justify-content: center; font-size: 0; line-height: 0; }
#vectisec-consultant .vc-diff-icon { margin: 0 auto 16px; }
#vectisec-regie .vr-card .ico { display: inline-flex; margin-bottom: 16px; }
#vectisec-consultant .vc-guides { display: grid; gap: 20px; margin-top: 28px; }
@media (min-width: 900px) { #vectisec-consultant .vc-guides { grid-template-columns: repeat(2, 1fr); } }
#vectisec-consultant .vc-guide-group { background: #FBFAF7; border: 1px solid #e7ebef; border-radius: 18px; padding: 24px 24px 10px; }
#vectisec-consultant .vc-guide-group h3 { font-size: 1.05rem; font-weight: 600; color: var(--ed-ink); margin: 0 0 6px; }
#vectisec-consultant .vc-guide-group ul { list-style: none; margin: 0; padding: 0; }
#vectisec-consultant .vc-guide-group li + li { border-top: 1px solid #e7ebef; }
#vectisec-consultant .vc-guide-group a { display: flex; flex-direction: column; gap: 4px; padding: 14px 0; text-decoration: none; }
#vectisec-consultant .vc-guide-tag { font-size: 12.5px; font-weight: 600; color: var(--ed-signal); }
#vectisec-consultant .vc-guide-title { font-size: 15.5px; font-weight: 500; line-height: 1.45; color: var(--ed-ink); }
#vectisec-consultant .vc-guide-group a:hover .vc-guide-title, #vectisec-consultant .vc-guide-group a:focus-visible .vc-guide-title { color: var(--ed-signal); text-decoration: underline; text-underline-offset: 3px; }
/* END VECTISEC EDITORIAL PAGES 20261026 */

/* BEGIN VECTISEC ACCESSIBILITE LIENS 20261026
   Audit axe-core du 26/10 : liens repérables par la couleur seule (WCAG 1.4.1) et contraste du vert de l'étape 1 (WCAG 1.4.3).
   Retour arrière : supprimer ce bloc. */
main p a:not([class*="btn"]):not([class*="button"]), main li p a:not([class*="btn"]),
.vx-stat__source a, .legal-contact a, .vx-ed-note a { text-decoration: underline !important; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.vx-ed-note a, .vx-ed .vx-ed-note a { color: #005f92 !important; }
.vx-ed .vx-ed-step:nth-child(1) { --step: #1e7d45; }
.vx-ed .vx-ed-link, .vx-ed .vx-stat__cta, .vx-ed .vx-ed-post__more { color: #005f92; }
.vx-ed .vx-ed-band--mist a { color: #005f92; }
/* END VECTISEC ACCESSIBILITE LIENS 20261026 */

/* BEGIN VECTISEC SANS JOST 20261026 : une seule famille de titres (Poppins) ; la police Jost n'est plus téléchargée. Retour arrière : supprimer ce bloc. */
#vectisec-article-wrap h1, #vectisec-article-wrap h2, #vectisec-article-wrap h3, #vectisec-article-wrap h4,
#vectisec-article-wrap .v-stat-number, #vectisec-article-wrap .v-summary-title,
#vectisec-article-wrap .v-tarif-label h4, #vectisec-article-wrap .v-tarif-price,
#vectisec-article-wrap [style*="Jost"] { font-family: 'Poppins', sans-serif !important; }
/* END VECTISEC SANS JOST 20261026 */
