/* ============================================================================
   Compléments du CLONE aux pages « Divi natives » (06/11/2026) — ce qui n'existe pas dans le CSS de
   l'original parce que le clone le fait autrement : en-tête non fixe, façades vidéo, évolutions validées.
   ============================================================================ */
/* l'original réservait la hauteur de son en-tête FIXE ; l'en-tête du clone est dans le flux */
.divi #page-container { padding-top: 0 !important; margin-top: 0 !important; }
.divi #main-content { background: transparent; }

/* façade vidéo (aucun appel à YouTube avant le clic) : remplit la boîte de la vidéo d'origine */
.divi .video-facade { position: relative; display: block; width: 100%; padding: 0; border: 0; overflow: hidden; cursor: pointer; background: #222; border-radius: inherit; }
/* coins arrondis sur les 4 côtés (Christophe, 07/11) : le module vidéo arrondi contient aussi la légende « Nom —
   Entreprise » sous la vignette — le conteneur et la vignette (puis le lecteur, placé dedans) héritent donc du
   rayon du module, au lieu de compter sur le seul découpage du module */
.divi .et_pb_code_inner:has(> .video-facade), .divi .et_pb_video_box:has(> .video-facade) { border-radius: inherit; }
.divi .video-facade iframe { border: 0; border-radius: inherit; }
.divi .video-facade img { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; }
.divi .video-facade .lecture::before { content: ''; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 68px; height: 48px; border-radius: 14px; background: #e62117; transition: background .15s; }
.divi .video-facade .lecture::after { content: ''; position: absolute; left: 50%; top: 50%; transform: translate(-40%, -50%); border-style: solid; border-width: 10px 0 10px 17px; border-color: transparent transparent transparent #fff; }
.divi .video-facade:hover .lecture::before { background: #f00; }
.divi .video-facade .video-titre { position: absolute; left: 0; right: 0; top: 0; padding: 10px 14px 18px; font: 600 15px/1.4 'Open Sans', Arial, sans-serif; color: #fff; text-align: left; background: linear-gradient(rgba(0, 0, 0, .6), transparent); }
/* choix n° 6 : nom et entreprise du client sous sa vidéo */
.divi .legende-video { margin: 10px 0 0; padding: 0; text-align: center; font-size: 15px; font-weight: 600; line-height: 1.4; }

/* rangée de portraits recentrée quand elle compte moins de colonnes que l'original (colonnes de la même largeur) */
.divi .et_pb_row.rangee-centree { display: flex; justify-content: center; }
.divi .et_pb_row.rangee-centree > .et_pb_column { float: none; }
.divi .et_pb_row.rangee-centree > .et_pb_column:last-child { margin-right: 0 !important; }
@media (max-width: 980px) { .divi .et_pb_row.rangee-centree { display: block; } }

/* pavés « Découvrez nos autres articles » : allégés à la demande de Christophe (06/11) */
.divi .pave-article { display: flex !important; align-items: center; justify-content: center; padding: 12px 20px !important; border-radius: 10px !important; }
.divi .pave-article .et_pb_module { margin: 0 !important; }
.divi .pave-article h3 { font-size: 20px !important; font-weight: 600 !important; line-height: 1.3 !important; letter-spacing: .02em; padding: 0 !important; }
.divi .pave-article a { text-decoration: none; }
.divi .pave-article:hover { filter: brightness(1.12); }

/* liens dans le texte : comme l'original (rouges, sans soulignement) ; soulignés au survol et au focus clavier */
.divi a:hover, .divi a:focus-visible { text-decoration: underline; }
.divi .et_pb_button:hover, .divi .et_pb_button:focus-visible { text-decoration: none; }

/* carte de situation (iframe du clone, chargée au clic comme avant) */
.divi .carte iframe { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; border: 0; }

/* accordéons : animation de l'ouverture/fermeture (le script reproduit Divi : un seul élément ouvert) */
.divi .et_pb_toggle_title { cursor: pointer; }
.divi .et_pb_toggle_title:focus-visible { outline: 2px solid #C5392A; outline-offset: 4px; }

/* polices d'icônes de Divi, déclarées comme sur l'original (fichiers de la licence Divi de GAYA ; Font Awesome
   sous licence SIL OFL) — réduites aux glyphes utilisés par releve/reduire-icones.py */
@font-face { font-family: ETmodules; font-display: block; src: url('/polices/divi/etmodules.woff2') format('woff2'); font-weight: 400; font-style: normal; }
@font-face { font-family: FontAwesome; font-style: normal; font-weight: 400; font-display: block; src: url('/polices/divi/fa-regular-400.woff2') format('woff2'); }
@font-face { font-family: FontAwesome; font-style: normal; font-weight: 900; font-display: block; src: url('/polices/divi/fa-solid-900.woff2') format('woff2'); }
@font-face { font-family: FontAwesome; font-style: normal; font-weight: 400; font-display: block; src: url('/polices/divi/fa-brands-400.woff2') format('woff2'); }

/* Pilotage, bande « Résultats obtenus » : rouge GAYA de l'accueil (variable partagée --rouge-vif, départ du
   dégradé de « Nos perspectives de développement ») à la place du doré — décision de Christophe du 07/11/2026.
   Texte blanc : contraste 5,26:1 (WCAG AA). */
.divi .bande-resultats { background-color: var(--rouge-vif) !important; }
/* Formulaire Contact natif (06/11) : la case RGPD est obligatoire ; Divi la masque (display:none) et dessine
   la sienne. Une case obligatoire non affichée bloque l'envoi sans message : elle reste invisible mais
   atteignable au clavier, et son focus se voit sur la case dessinée. */
.divi .et_pb_contact_field_checkbox { position: relative; }
.divi .et_pb_contact p input[type="checkbox"] { display: block !important; position: absolute; left: 0; top: 50%; width: 18px; height: 18px; margin: -9px 0 0; opacity: 0; pointer-events: none; }
.divi .et_pb_contact p input[type="checkbox"]:focus-visible + label i { outline: 2px solid #c5392a; outline-offset: 2px; }
.divi .et_pb_contact_form input:focus-visible, .divi .et_pb_contact_form textarea:focus-visible, .divi .et_pb_contact_submit:focus-visible { outline: 2px solid #c5392a; outline-offset: 2px; }
.divi .ancre-minuscule { position: absolute; }
/* Portfolio filtrable (Ressources) : Divi masque les fiches et son script affiche celles du filtre actif */
.divi .et_pb_filterable_portfolio_grid .et_pb_portfolio_item.active { display: block; }
/* texte réservé aux lecteurs d'écran (h1 des archives de catégorie, que l'original n'a pas) */
.divi .lecteur-ecran { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* fitVids (script Divi) : vidéo ou carte à la largeur de la colonne, au rapport de ses dimensions d'origine */
.divi .fluid-width-video-wrapper { width: 100%; position: relative; padding: 0; }
.divi .fluid-width-video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }
/* Flèche « retour en haut » de Divi (présente sur toutes les pages de l'original ; revue visuelle du 06/11) —
   règles de Divi/style-static.min.css, à l'identique ; affichée après 800 px de défilement (script de Divi). */
.et-pb-icon{font-family:ETmodules;speak:none;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;font-size:96px;font-style:normal;display:inline-block;box-sizing:border-box;direction:ltr}
.et_pb_scroll_top.et-pb-icon{text-align:center;background:rgba(0,0,0,.4);text-decoration:none;position:fixed;z-index:99999;bottom:125px;right:0;border-top-left-radius:5px;border-bottom-left-radius:5px;display:none;cursor:pointer;font-size:30px;padding:5px;color:#fff}
.et_pb_scroll_top:before{content:"2"}
.et_pb_scroll_top.et-visible{opacity:1;animation:fadeInRight 1s cubic-bezier(.77,0,.175,1) 1}
.et_pb_scroll_top.et-hidden{opacity:0;animation:fadeOutRight 1s cubic-bezier(.77,0,.175,1) 1}
.et_pb_scroll_top:focus-visible{outline:2px solid #c5392a;outline-offset:2px}
@keyframes fadeInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.et_pb_scroll_top.et-visible,.et_pb_scroll_top.et-hidden{animation:none}}
