/*
 * Vamilo — Styles complémentaires Divi
 * Reproduit les détails de la maquette v2.html non paramétrables via les attributs Divi.
 * Chaque règle est scopée à des classes préfixées .vamilo-* pour éviter conflit avec Divi core.
 */

/* ============================================================
   HEADER (Theme Builder) — sticky + centrage vertical + sous-menus élargis
   ============================================================ */

/* Sticky header : reste visible au scroll.
   Divi met souvent overflow:hidden sur ses wrappers de theme builder — on force visible. */
html, body,
#page-container,
#et-boc,
#et-main-area,
.et-l--header,
.et_pb_section_0_tb_header,
.et_theme_builder_header,
.et_pb_theme_builder_area {
    overflow: visible !important;
    overflow-x: clip;
}

/* Le wrapper Theme Builder Header devient sticky (topbar + header ensemble) */
.et-l--header,
.et_pb_theme_builder_area {
    position: sticky !important;
    top: 0 !important;
    z-index: 999 !important;
    background: #FFFFFF;
    box-shadow: 0 2px 8px rgba(9, 26, 92, .06);
}

/* Offset pour la barre WordPress admin quand connecté */
.admin-bar .et-l--header,
.admin-bar .et_pb_theme_builder_area { top: 32px !important; }
@media (max-width: 782px) {
    .admin-bar .et-l--header,
    .admin-bar .et_pb_theme_builder_area { top: 46px !important; }
}

.vamilo-header .et_pb_row {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap;
}
.vamilo-header .et_pb_column { align-self: center !important; }
.vamilo-header .et_pb_menu_inner_container,
.vamilo-header .et_pb_menu__wrap,
.vamilo-header .et_pb_menu__menu {
    display: flex !important;
    align-items: center !important;
}
.vamilo-header .et_pb_menu__menu > nav > ul {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 22px;
    flex-wrap: nowrap !important;
}
.vamilo-header .et_pb_menu__menu > nav > ul > li {
    padding: 0 !important;
    margin: 0 !important;
    position: relative;
}
.vamilo-header .et_pb_menu__menu > nav > ul > li > a {
    padding: 4px 4px !important;
    font-size: 14px !important;
    white-space: nowrap !important;
}
/* Réserve la place à droite pour le caret des items parents (Nos services, Nos agences) */
.vamilo-header .et_pb_menu__menu > nav > ul > li.menu-item-has-children > a {
    padding-right: 20px !important;
}
/* Positionne le caret Divi (▾) verticalement centré avec le texte */
.vamilo-header .et_pb_menu__menu > nav > ul > li.menu-item-has-children > a::after {
    position: absolute !important;
    right: 2px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    line-height: 1 !important;
    font-size: 11px !important;
    color: #6b7494 !important;
}

/* ============================================================
   RESPONSIVE HEADER — tablet (≤980px)
   Logo à gauche, hamburger à droite, CTA "Devis gratuit" masqué (va dans le drawer)
   ============================================================ */
@media (max-width: 980px) {
    /* Topbar : entièrement masquée en mobile */
    .vamilo-topbar { display: none !important; }

    /* Header : 2 colonnes seulement (Logo + Menu à droite), CTA masquée */
    .vamilo-header .et_pb_row {
        flex-wrap: nowrap !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
    }
    .vamilo-header .et_pb_column {
        margin: 0 !important;
        padding: 0 !important;
    }
    .vamilo-header .et_pb_column:nth-child(1) { flex: 0 0 auto !important; width: auto !important; } /* Logo compact */
    .vamilo-header .et_pb_column:nth-child(2) { flex: 1 1 auto !important; width: auto !important; text-align: right !important; } /* Menu → hamburger à droite */
    .vamilo-header .et_pb_column:nth-child(3) { display: none !important; } /* CTA "Devis gratuit" masquée */

    /* Menu Divi : bascule en hamburger natif */
    .vamilo-header .et_pb_menu__menu { display: none !important; }
    .vamilo-header .et_pb_menu__wrap {
        justify-content: flex-end !important;
        text-align: right !important;
    }
    .vamilo-header .et_pb_menu_inner_container {
        display: flex !important;
        justify-content: flex-end !important;
    }
    .vamilo-header .et_mobile_nav_menu {
        display: block !important;
        margin-left: auto !important;
        float: right !important;
    }
    .vamilo-header .mobile_menu_bar {
        text-align: right !important;
    }
}

/* ============================================================
   MOBILE PADDING — évite que tout touche les bords
   Approche : padding sur les SECTIONS (pas les rows)
   → pousse tout le contenu vers l'intérieur (colonnes, images, texte)
   ============================================================ */
@media (max-width: 980px) {
    /* Padding intérieur sur toutes les sections Divi */
    .et_pb_section,
    section.et_pb_section,
    body .et_pb_section {
        padding-left: 12px !important;
        padding-right: 12px !important;
        box-sizing: border-box !important;
    }

    /* Les rows remplissent leur section (sans padding supplémentaire) */
    .et_pb_section > .et_pb_row,
    .et_pb_section .et_pb_row_inner {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Images qui pourraient déborder */
    .et_pb_section img { max-width: 100%; height: auto; }

    /* Header : padding plus serré (16px) mais logique identique */
    .vamilo-header {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

@media (max-width: 640px) {
    /* Topbar : très compact ou masqué */
    .vamilo-topbar { padding: 6px 0 !important; }
    .vamilo-topbar .et_pb_text { font-size: 10px !important; }

    /* Logo réduit */
    .vamilo-header .et_pb_column:first-child img { max-height: 44px !important; }

    /* Bouton devis rétréci */
    .vamilo-header-cta a[href="/contact/"] {
        padding: 8px 14px !important;
        font-size: 12px !important;
    }
}

/* ============================================================
   MOBILE PADDING — évite que le contenu touche les bords
   ============================================================ */
@media (max-width: 980px) {
    /* Marge intérieure sur toutes les sections Divi */
    .et_pb_section .et_pb_row,
    .et_pb_section .et_pb_row_inner {
        padding-left: 20px !important;
        padding-right: 20px !important;
        width: 100% !important;
        box-sizing: border-box;
    }
    /* Le header/topbar/footer aussi */
    .vamilo-topbar .et_pb_row,
    .vamilo-header .et_pb_row {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

/* ============================================================
   MOBILE MENU DROPDOWN — fond blanc opaque + style visible
   Cible large : Divi rend ce menu avec plusieurs wrappers selon la version
   ============================================================ */
.et_mobile_menu,
ul.et_mobile_menu,
nav .et_mobile_menu,
.et_pb_menu .et_mobile_menu,
.et_pb_fullwidth_menu .et_mobile_menu,
.mobile_nav .et_mobile_menu,
.et_pb_menu_inner_container .et_mobile_menu,
.et_pb_module .et_mobile_menu {
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
    border-top: 3px solid #F75C03 !important;
    border-bottom: 1px solid #d8d3c2 !important;
    padding: 8px 0 !important;
    box-shadow: 0 12px 24px rgba(9, 26, 92, .12) !important;
    opacity: 1 !important;
    visibility: visible !important;
}
/* Le container qui wrappe le menu mobile peut aussi être transparent */
.et_pb_menu .mobile_menu_bar_toggle + .et_mobile_menu,
.et_pb_menu__wrap > .et_mobile_menu {
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
}
.et_mobile_menu li a {
    color: #091A5C !important;
    background: transparent !important;
    font-weight: 500 !important;
    font-size: 15px !important;
    padding: 12px 20px !important;
    border-bottom: 1px solid #f0eeea !important;
    text-decoration: none !important;
}
.et_mobile_menu li a:hover {
    background: #F6F5F1 !important;
    color: #F75C03 !important;
}
.et_mobile_menu li li a {
    padding-left: 36px !important;
    font-size: 14px !important;
    color: #6b7494 !important;
}
/* Icône hamburger : couleur navy visible */
.mobile_menu_bar:before,
.mobile_menu_bar_toggle:before {
    color: #091A5C !important;
    font-size: 30px !important;
}

/* Pont invisible sous les items parents pour maintenir le hover jusqu'au dropdown */
.vamilo-header .menu-item-has-children {
    position: relative;
    padding-bottom: 12px !important;
    margin-bottom: -12px !important;
}

/* Sous-menus : largeur adaptée + ombre douce + collé au parent (pas de gap qui casse le hover) */
.vamilo-header .sub-menu,
.vamilo-header ul.sub-menu {
    min-width: 220px !important;
    width: auto !important;
    max-width: none !important;
    padding: 6px 0 !important;
    border-radius: 10px !important;
    box-shadow: 0 12px 32px rgba(9, 26, 92, .12) !important;
    border: 1px solid #d8d3c2 !important;
    background: #FFFFFF !important;
    margin-top: 0 !important;
    top: 100% !important;
    left: 0 !important;
    right: auto !important;
    overflow: visible !important;
    display: table;
}
.vamilo-header .sub-menu li,
.vamilo-header ul.sub-menu li {
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
    display: block !important;
}
.vamilo-header .sub-menu li a,
.vamilo-header ul.sub-menu li a {
    padding: 8px 14px !important;
    font-size: 13.5px !important;
    white-space: nowrap !important;
    color: #091A5C !important;
    font-weight: 500 !important;
    display: block !important;
    line-height: 1.4 !important;
}
.vamilo-header .sub-menu li a:hover,
.vamilo-header ul.sub-menu li a:hover {
    background: #F6F5F1 !important;
    color: #F75C03 !important;
}

/* ============================================================
   TYPOGRAPHIE GLOBALE
   Fraunces déjà chargé via Divi Custom Fonts / functions.php
   ============================================================ */

/* ============================================================
   HERO — section entière dans la viewport (topbar 40 + header 80 = 120)
   ============================================================ */
/* section hero : plus de min-height forcée, plus de flex sur la section — Divi builder OK */

/* CTA row : les 2 boutons hero côte-à-côte (approche CSS only) */
.vamilo-hero-section .et_pb_button_module_wrapper {
    display: inline-block !important;
    margin: 0 14px 0 0 !important;
    padding: 0 !important;
    width: auto !important;
    vertical-align: middle;
}
.vamilo-hero-section .et_pb_button_module_wrapper:last-of-type { margin-right: 0 !important; }
.vamilo-hero-section .et_pb_button {
    margin: 0 !important;
    display: inline-block !important;
}

/* Badges hero : ombres douces (override preset Divi trop marqué) */
.vamilo-hero-badge {
    box-shadow: 0 4px 14px rgba(9, 26, 92, .12) !important;
}

/* Ghost btn plus visible sur le cream — halo léger */
.et_pb_button.vamilo-btn-ghost {
    background: rgba(255,255,255,0.6) !important;
    border: 1.5px solid #091A5C !important;
    color: #091A5C !important;
    padding: 12px 24px !important;
    border-radius: 999px !important;
    font-weight: 500 !important;
}
.et_pb_button.vamilo-btn-ghost:hover {
    background: #091A5C !important;
    color: #FFFFFF !important;
    border-color: #091A5C !important;
}

/* Image hero : remplit toute la largeur de la colonne, aspect 1:1 comme la maquette */
.vamilo-hero-image { text-align: left !important; }
.vamilo-hero-image .et_pb_image_wrap {
    display: block !important;
    width: 100% !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    box-shadow: 0 12px 32px rgba(9, 26, 92, .09) !important;
}
.vamilo-hero-image img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block !important;
}

/* Colonne du visuel hero (right) : position relative pour accrocher les badges flottants */
.vamilo-hero-section > .et_pb_row > .et_pb_column:last-child {
    position: relative;
}

/* Badges flottants -50% + 15 ans de confiance */
.vamilo-hero-badge {
    position: absolute !important;
    z-index: 5;
    max-width: 200px;
    box-shadow: 0 4px 14px rgba(9, 26, 92, .12) !important;
}
.vamilo-hero-badge-tr { top: 36px !important; right: -10px !important; }
.vamilo-hero-badge-bl { bottom: 36px !important; left: -10px !important; }

@media (max-width: 980px) {
    .vamilo-hero-badge-tr, .vamilo-hero-badge-bl { right: 0 !important; left: 0 !important; }
}

/* ============================================================
   CARDS (SERVICES, ZONES, PILIERS)
   ============================================================ */

/* Le row parent : force les colonnes à avoir la même hauteur */
.et_pb_row:has(> .vamilo-card),
.et_pb_row_inner:has(> .vamilo-card) {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
}

.vamilo-card {
    background: #FFFFFF;
    border: 1px solid #d8d3c2;
    border-radius: 18px;
    overflow: hidden;
    transition: transform .25s, box-shadow .25s, border-color .25s;
    display: flex !important;
    flex-direction: column !important;
    align-self: stretch;
}
.vamilo-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(9, 26, 92, .09);
    border-color: #ECEBF3;
}
.vamilo-card .et_pb_image_wrap,
.vamilo-card .et_pb_image_wrap img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    width: 100% !important;
    max-width: 100% !important;
    display: block;
    border-radius: 0 !important;
}
.vamilo-card > .et_pb_module { padding-left: 28px; padding-right: 28px; }
.vamilo-card > .et_pb_image { padding: 0 !important; }
.vamilo-card > .et_pb_module:last-child { padding-bottom: 28px; margin-top: auto; }

/* ============================================================
   PILLARS NAVY (POURQUOI VAMILO)
   ============================================================ */
.vamilo-pillar .et_pb_image_wrap img {
    max-height: 120px;
    max-width: 120px;
    width: auto !important;
    height: auto !important;
}

/* ============================================================
   STATS
   ============================================================ */
.vamilo-stat-num {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 52px;
    color: #091A5C;
    line-height: 1;
    margin-bottom: 6px;
}
.vamilo-stat-label {
    font-family: 'Inter', system-ui, sans-serif;
    font-weight: 500;
    font-size: 14px;
    color: #6b7494;
}

/* ============================================================
   REVIEWS RATING PILL
   ============================================================ */
.vamilo-rating-pill {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: #ECEBF3;
    padding: 10px 22px;
    border-radius: 999px;
    font-size: 15px;
    color: #1d2d5e;
}
.vamilo-rating-pill .stars {
    color: #F75C03;
    letter-spacing: 2px;
}
.vamilo-rating-pill a {
    color: #449DD1;
    font-weight: 600;
    text-decoration: underline;
}

/* ============================================================
   BUTTONS — override Divi default border on outline buttons
   ============================================================ */
.et_pb_button.vamilo-btn-ghost {
    background: transparent !important;
    border: 1.5px solid #091A5C !important;
    color: #091A5C !important;
    border-radius: 999px !important;
    padding: 10px 22px !important;
}
.et_pb_button.vamilo-btn-ghost:hover {
    background: #091A5C !important;
    color: #FFFFFF !important;
}

/* ============================================================
   ZONE-TAG (pastille dept)
   ============================================================ */
.vamilo-zone-tag {
    display: inline-block !important;
    background: #ECEBF3 !important;
    color: #091A5C !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    padding: 5px 12px !important;
    border-radius: 999px !important;
}

/* ============================================================
   FAQ TOGGLES (Divi Toggle par défaut a des bordures moches)
   ============================================================ */
.vamilo-faq .et_pb_toggle {
    border: none !important;
    border-bottom: 1px solid #d8d3c2 !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 24px 0 !important;
    margin: 0 !important;
}
.vamilo-faq .et_pb_toggle_title {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 500 !important;
    font-size: 20px !important;
    color: #091A5C !important;
    padding-right: 40px !important;
}
.vamilo-faq .et_pb_toggle_content { font-size: 16px; color: #1d2d5e; }

/* ============================================================
   SECTION HEADS (eyebrow + h2 + lead)
   ============================================================ */
.vamilo-eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #449DD1;
    margin-bottom: 14px;
}
.vamilo-eyebrow--light { color: #ECEBF3; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 980px) {
    .vamilo-hero-image {
        max-width: 380px;
        margin: 40px auto 0;
    }
    .vamilo-hero-badge-tr,
    .vamilo-hero-badge-bl {
        right: 0;
        left: 0;
    }
}
