/* ==========================================================================
   HEADER NATIF — Phase 1
   Reproduction du header HFE/Elementor en PHP/CSS purs
   ========================================================================== */


/* --------------------------------------------------------------------------
   Container principal du header
   -------------------------------------------------------------------------- */

.mcp-header {
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background: #ffffff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    width: 100%;
}

.mcp-header__inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 10px 10px;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    align-items: center;
    gap: 10px 30px;
}


/* --------------------------------------------------------------------------
   Logo (colonne 1, ligne 1)
   -------------------------------------------------------------------------- */

.mcp-header__logo {
    grid-column: 1;
    grid-row: 1;
}

.mcp-header__logo a {
    display: block;
    line-height: 0;
}

.mcp-header__logo img {
    display: block;
    height: auto;
    max-width: 300px;
    width: 100%;
}


/* --------------------------------------------------------------------------
   Barre de recherche (colonne 2, ligne 1)
   -------------------------------------------------------------------------- */

.mcp-header__search {
    grid-column: 2;
    grid-row: 1;
}

.mcp-search-form {
    display: flex;
    align-items: center;
    background-color: #ffffff;
    border: 1px solid #eeeeee;
    border-radius: 50px;
    padding: 5px 15px;
    transition: all 0.3s ease-in-out;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
}

.mcp-search-input {
    flex: 1;
    border: none;
    background: transparent;
    font-family: "Open Sans", sans-serif;
    font-size: 14px;
    color: #333;
    padding: 10px;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none;
    outline: none;
}

.mcp-search-input::placeholder {
    color: #bbb;
    font-style: italic;
    font-size: 13px;
}

.mcp-search-submit {
    background: transparent;
    border: none;
    padding: 8px;
    display: flex;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.mcp-search-submit svg {
    fill: #999;
    transition: fill 0.2s ease;
}

.mcp-search-form:focus-within .mcp-search-submit svg {
    fill: #000;
}


/* --------------------------------------------------------------------------
   Menu de navigation (colonne 3, ligne 1)
   -------------------------------------------------------------------------- */

.mcp-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    position: relative;
}

.mcp-nav__toggle {
    display: none;
}

.mcp-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 8px;
    justify-content: flex-start;
}

.mcp-nav__item {
    position: relative;
    padding: 0;
    margin: 0;
}

.mcp-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 10px 8px 0px;
    font-family: "Open Sans", sans-serif;
    font-size: 18px;
    font-weight: 400;
    color: #111827;
    text-decoration: none;
    background: transparent;
    border: none;
    cursor: pointer;
    position: relative;
    transition: color 0.3s ease;
}

.mcp-nav__link:hover,
.mcp-nav__link:focus {
    color: #1c74f4;
}

/* Underline animé au hover (uniquement desktop) */
@media (min-width: 1025px) {
    .mcp-nav__link::after {
        content: '';
        position: absolute;
        bottom: -3px;
        left: 14px;
        right: 14px;
        height: 2px;
        background-color: #1c74f4;
        transform: scaleX(0);
        transform-origin: left;
        transition: transform 0.3s ease-in-out;
    }

    .mcp-nav__link:hover::after,
    .mcp-nav__link:focus::after,
    .mcp-nav__item--has-dropdown:hover .mcp-nav__link::after {
        transform: scaleX(1);
    }
}

.mcp-nav__icon {
    flex-shrink: 0;
}

.mcp-nav__chevron {
    fill: currentColor;
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.mcp-nav__item--has-dropdown:hover .mcp-nav__chevron {
    transform: rotate(180deg);
}


/* --------------------------------------------------------------------------
   Dropdowns desktop (hover)
   -------------------------------------------------------------------------- */

.mcp-nav__dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    background: #ffffff;
    border: 1px solid #eaeaea;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    padding: 20px;
    min-width: 280px;
    max-width: 600px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
    z-index: 100;
}

.mcp-nav__item--has-dropdown:hover .mcp-nav__dropdown,
.mcp-nav__item--has-dropdown:focus-within .mcp-nav__dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.mcp-nav__dropdown-title {
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 16px 0;
    padding: 0;
}

.mcp-nav__dropdown-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mcp-nav__dropdown-list li {
    margin: 0;
    padding: 0;
}

.mcp-nav__dropdown-list a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    font-family: "Open Sans", sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #334155;
    text-decoration: none;
    transition: color 0.2s ease;
}

.mcp-nav__dropdown-list a:hover {
    color: #1c74f4;
}

.mcp-nav__dropdown-icon {
    color: #16a34a;
    font-weight: 700;
    font-size: 16px;
    line-height: 1;
}

.mcp-nav__dropdown-empty {
    color: #94a3b8;
    font-style: italic;
    padding: 8px 0;
}


/* --------------------------------------------------------------------------
   Variante : dropdown Marques (grille 3 colonnes)
   -------------------------------------------------------------------------- */

.mcp-nav__dropdown--marques {
    min-width: 480px;
}

.mcp-nav__dropdown-list--grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0px 24px;
}

.mcp-nav__dropdown-list--grid a {
    padding: 6px 0;
}


/* --------------------------------------------------------------------------
   CTA en bas du dropdown
   -------------------------------------------------------------------------- */

.mcp-nav__dropdown-cta {
    margin: 16px 0 0 0;
    padding: 16px 0 0 0;
    border-top: 1px solid #eaeaea;
}

.mcp-nav__dropdown-cta a {
    font-family: "Open Sans", sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #1c74f4;
    text-decoration: none;
}

.mcp-nav__dropdown-cta a:hover {
    text-decoration: underline;
}


/* --------------------------------------------------------------------------
   Responsive : tablette/mobile (≤1024px)
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {

    .mcp-header__inner {
        grid-template-columns: 1fr auto;
        grid-template-rows: auto auto;
        gap: 12px;
        padding: 10px 20px;
    }

    .mcp-header__logo {
        grid-column: 1;
        grid-row: 1;
    }

    .mcp-nav {
        grid-column: 2;
        grid-row: 1;
    }

    .mcp-header__search {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    /* Hamburger toggle visible */
    .mcp-nav__toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        background-color: #f8f8f8;
        border: 1px solid #eeeeee;
        border-radius: 12px;
        padding: 0;
        cursor: pointer;
        box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
        transition: all 0.3s ease;
    }

    .mcp-nav__toggle:hover,
    .mcp-nav__toggle[aria-expanded="true"] {
        background-color: #ffffff;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
    }

    .mcp-nav__toggle svg {
        fill: #333;
    }

    .mcp-nav__toggle-icon--close {
        display: none;
    }

    .mcp-nav__toggle[aria-expanded="true"] .mcp-nav__toggle-icon--open {
        display: none;
    }

    .mcp-nav__toggle[aria-expanded="true"] .mcp-nav__toggle-icon--close {
        display: block;
    }

    /* Menu mobile : drawer plein écran (état fermé par défaut) */
    .mcp-nav__list {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: #ffffff;
        flex-direction: column;
        padding: 80px 24px 24px;
        margin: 0;
        overflow-y: auto;
        z-index: 99999;
    }

    /* Menu mobile : drawer ouvert — spécificité renforcée pour battre les règles desktop */
    ul.mcp-nav__list.is-open {
        display: flex !important;
    }

    .mcp-nav__item {
        width: 100%;
        border-bottom: 1px solid #f1f5f9;
    }

    .mcp-nav__link {
        width: 100%;
        padding: 16px 0;
        font-size: 16px;
        justify-content: space-between;
    }

    .mcp-nav__link::after {
        display: none;
    }

    /* Dropdown mobile : toujours en accordéon, pas en hover */
    .mcp-nav__dropdown {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: none;
        padding: 0 0 16px 0;
        min-width: 0;
        max-width: none;
        display: none;
    }

    .mcp-nav__item--has-dropdown.is-open .mcp-nav__dropdown {
        display: block;
    }

    .mcp-nav__item--has-dropdown.is-open .mcp-nav__chevron {
        transform: rotate(180deg);
    }

    .mcp-nav__dropdown-list--grid {
        grid-template-columns: 1fr 1fr;
    }

}


@media (max-width: 600px) {

    .mcp-header__logo img {
        max-width: 220px;
    }

    .mcp-nav__dropdown-list--grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   CORRECTIONS — Reset des styles boutons Astra/WordPress
   ========================================================================== */

/* Reset agressif des <button> du menu pour éviter le style "bouton" Astra */
.mcp-nav button,
.mcp-nav__dropdown-toggle,
.mcp-nav__toggle {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    color: inherit !important;
    font-family: inherit !important;
    font-weight: 400 !important;
    line-height: inherit !important;
    text-shadow: none !important;
    text-decoration: none !important;
    cursor: pointer;
    margin: 0;
}

.mcp-nav button:hover,
.mcp-nav button:focus,
.mcp-nav__dropdown-toggle:hover,
.mcp-nav__dropdown-toggle:focus {
    background: transparent !important;
    background-color: transparent !important;
    color: #1c74f4 !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Restaure le style du hamburger toggle uniquement sur mobile */
@media (max-width: 1024px) {
    .mcp-nav__toggle {
        background-color: #f8f8f8 !important;
        border: 1px solid #eeeeee !important;
        border-radius: 12px !important;
        box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05) !important;
    }

    .mcp-nav__toggle:hover,
    .mcp-nav__toggle[aria-expanded="true"] {
        background-color: #ffffff !important;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08) !important;
    }
}


/* ==========================================================================
   CORRECTIONS — Dropdowns : pas de retour à la ligne
   ========================================================================== */

/* Empêche le retour à la ligne dans les dropdowns */
.mcp-nav__dropdown-list a,
.mcp-nav__dropdown-list--grid a {
    white-space: nowrap;
}

/* Élargit le dropdown Guides pour accueillir les libellés longs */
.mcp-nav__dropdown--guides {
    min-width: 360px;
}

/* Élargit le dropdown Blog pour accueillir les titres d'articles longs */
.mcp-nav__dropdown--blog {
    min-width: 380px;
    max-width: 500px;
}

/* Le dropdown Marques s'élargit pour éviter le wrap sur "ALL-Accor Live Limitless" */
.mcp-nav__dropdown--marques {
    min-width: 560px;
}

/* ==========================================================================
   FIX MOBILE — Garder le header visible au-dessus du drawer
   ========================================================================== */

@media (max-width: 1024px) {

    /* Le header sticky reste au-dessus du drawer */
    .mcp-header {
        z-index: 100000 !important;
        position: sticky !important;
    }

    /* Le drawer prend toute la hauteur restante sous le header */
    ul.mcp-nav__list.is-open {
        top: 45px !important;
        height: calc(100vh - 45px) !important;
        max-height: calc(100vh - 45px) !important;
        padding: 20px 24px 40px !important;
        z-index: 99999 !important;
    }
}

/* Sur petit écran, le header est un peu plus compact */
@media (max-width: 600px) {
    ul.mcp-nav__list.is-open {
        top: 45px !important;
        height: calc(100vh - 140px) !important;
        max-height: calc(100vh - 140px) !important;
    }
}

/* ==========================================================================
   FIX MOBILE — Alignement icône + texte à gauche, chevron à droite
   ========================================================================== */

@media (max-width: 1024px) {

    /* Tous les liens/buttons : alignés à gauche */
    ul.mcp-nav__list.is-open .mcp-nav__link {
        justify-content: flex-start !important;
        gap: 12px !important;
    }

    /* Le chevron des dropdowns est poussé à l'extrême droite */
    ul.mcp-nav__list.is-open .mcp-nav__chevron {
        margin-left: auto !important;
    }
}

/* ==========================================================================
   FIX MOBILE — Wrap du texte dans les dropdowns (overrides le nowrap desktop)
   ========================================================================== */

@media (max-width: 1024px) {

    /* Texte des items dropdown : permettre le wrap sur mobile */
    ul.mcp-nav__list.is-open .mcp-nav__dropdown-list a,
    ul.mcp-nav__list.is-open .mcp-nav__dropdown-list--grid a {
        white-space: normal !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        align-items: flex-start !important;
    }

    /* L'icône chevron (›) reste alignée en haut quand le texte wrap */
    ul.mcp-nav__list.is-open .mcp-nav__dropdown-icon {
        flex-shrink: 0 !important;
        padding-top: 2px !important;
    }

    /* Le badge "Nouveau !" doit rester compact et ne pas casser le layout */
    ul.mcp-nav__list.is-open .badge-nouveau-guide {
        display: inline-block !important;
        flex-shrink: 0 !important;
        margin-left: 6px !important;
        white-space: nowrap !important;
    }

    /* Les items du dropdown : permettre au contenu de wrap */
    ul.mcp-nav__list.is-open .mcp-nav__dropdown-list li {
        width: 100% !important;
    }
}

/* ==========================================================================
   FIX MOBILE — Badge "Nouveau !" collé au texte
   ========================================================================== */

@media (max-width: 1024px) {

    /* Le badge "Nouveau !" suit le texte naturellement (inline) */
    ul.mcp-nav__list.is-open .mcp-nav__dropdown-list a {
        display: block !important;
        padding-left: 24px !important;
        position: relative !important;
    }

    /* L'icône chevron (›) est positionnée en absolute à gauche */
    ul.mcp-nav__list.is-open .mcp-nav__dropdown-list a .mcp-nav__dropdown-icon {
        position: absolute !important;
        left: 0 !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Le badge reste inline avec le texte */
    ul.mcp-nav__list.is-open .badge-nouveau-guide {
        display: inline-block !important;
        margin-left: 8px !important;
        white-space: nowrap !important;
        vertical-align: middle !important;
    }
}

/* ==========================================================================
   FIX FINAL — Drawer mobile plein écran (priorité maximale)
   ========================================================================== */

@media (max-width: 1024px) {

    body ul.mcp-nav__list.is-open {
        position: fixed !important;
        top: 45px !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        min-height: calc(100vh - 45px) !important;
        background: #ffffff !important;
        z-index: 99999 !important;
        overflow-y: auto !important;
    }
}

/* ==========================================================================
   FIX MOBILE — Reset des min-width des dropdowns
   (les min-width desktop sont trop larges pour mobile)
   ========================================================================== */

@media (max-width: 1024px) {

    /* Reset tous les min-width des dropdowns en mobile */
    body .mcp-nav__dropdown,
    body .mcp-nav__dropdown--marques,
    body .mcp-nav__dropdown--guides,
    body .mcp-nav__dropdown--blog {
        min-width: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    /* Reset également la grille marques pour ne pas déborder */
    body .mcp-nav__list.is-open .mcp-nav__dropdown-list--grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 4px 12px !important;
        min-width: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
    }
}

@media (max-width: 600px) {
    body .mcp-nav__list.is-open .mcp-nav__dropdown-list--grid {
        grid-template-columns: 1fr !important;
    }
}