/**
 * Menu Hamburger Premium - Styles
 * Animation premium avec easing cubic-bezier et staggering
 */

/* =============================================
   RESET & BASE
   ============================================= */
.custom-hamburger-wrapper {
    position: relative;
}

.custom-hamburger-wrapper *,
.custom-hamburger-wrapper *::before,
.custom-hamburger-wrapper *::after {
    box-sizing: border-box;
}

/* =============================================
   TRIGGER (Bouton d'ouverture)
   ============================================= */
.hamburger-trigger {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: none !important;
    background-color: transparent !important;
    border: none;
    cursor: pointer;
    padding: 0;
    font-family: inherit;
    transition: color 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                background-color 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    position: relative;
    z-index: 10000;
    transform: translateZ(0);
    will-change: transform;
}

/* Trigger fixe au-dessus du panneau quand menu ouvert ou en fermeture */
.hamburger-trigger.is-active,
.hamburger-trigger.is-closing {
    position: fixed;
    z-index: 10001;
}

.hamburger-trigger:hover,
.hamburger-trigger:focus {
    background: none !important;
    background-color: transparent !important;
}

.hamburger-trigger.icon-right {
    flex-direction: row-reverse;
}

/* =============================================
   HOVER ANIMATIONS - Style Apple
   ============================================= */

/* Scale subtil - zoom élégant */
.hamburger-trigger.hover-scale:hover {
    transform: scale(1.05);
}
.hamburger-trigger.hover-scale:active {
    transform: scale(0.98);
}

/* Élévation - effet de flottement */
.hamburger-trigger.hover-lift {
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                box-shadow 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.hamburger-trigger.hover-lift:hover {
    transform: translateY(-3px);
}
.hamburger-trigger.hover-lift:active {
    transform: translateY(-1px);
}

/* Lueur - glow subtil */
.hamburger-trigger.hover-glow:hover {
    filter: drop-shadow(0 0 8px currentColor);
}
.hamburger-trigger.hover-glow:active {
    filter: drop-shadow(0 0 4px currentColor);
}

/* Glissement icône */
.hamburger-trigger.hover-slide-icon .hamburger-icon {
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.hamburger-trigger.hover-slide-icon:hover .hamburger-icon {
    transform: translateX(4px);
}
.hamburger-trigger.hover-slide-icon.icon-right:hover .hamburger-icon {
    transform: translateX(-4px);
}

/* Soulignement progressif */
.hamburger-trigger.hover-underline::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 0;
    height: 2px;
    background-color: currentColor;
    transition: width 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.hamburger-trigger.hover-underline:hover::after {
    width: 100%;
}

/* =============================================
   HAMBURGER BARS - Animation Apple Premium
   3 phases: Convergence → Rotation 90° → Croix
   ============================================= */
.hamburger-bars {
    --bar-spacing: 6px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 24px;
    height: calc(var(--bar-spacing) * 2 + 6px);
}

.hamburger-bars .bar {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: currentColor;
    border-radius: 1px;
    transform-origin: center center;
    transition: background-color 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Position initiale des barres (hamburger) */
.hamburger-bars .bar-top {
    top: 0;
}

.hamburger-bars .bar-mid {
    top: 50%;
    transform: translateY(-50%);
}

.hamburger-bars .bar-bot {
    bottom: 0;
}

/* =============================================
   KEYFRAMES - Animation Ouverture (Hamburger → Croix)
   Phase 1 (0-33%): Convergence des 3 barres vers le centre
   Phase 2 (33-66%): Rotation 90° (horizontal → vertical)
   Phase 3 (66-100%): Dédoublement en croix
   ============================================= */
@keyframes barTopToX {
    0% {
        top: 0;
        transform: translateY(0) rotate(0deg);
    }
    /* Phase 1: Convergence vers le centre */
    33% {
        top: 50%;
        transform: translateY(-50%) rotate(0deg);
    }
    /* Phase 2: Rotation 90° */
    66% {
        top: 50%;
        transform: translateY(-50%) rotate(90deg);
    }
    /* Phase 3: Formation de la croix */
    100% {
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
    }
}

@keyframes barMidToX {
    0% {
        opacity: 1;
        transform: translateY(-50%) scaleX(1);
    }
    /* Disparition pendant la convergence */
    33% {
        opacity: 0;
        transform: translateY(-50%) scaleX(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-50%) scaleX(0);
    }
}

@keyframes barBotToX {
    0% {
        bottom: 0;
        top: auto;
        transform: translateY(0) rotate(0deg);
    }
    /* Phase 1: Convergence vers le centre */
    33% {
        bottom: auto;
        top: 50%;
        transform: translateY(-50%) rotate(0deg);
    }
    /* Phase 2: Rotation 90° */
    66% {
        bottom: auto;
        top: 50%;
        transform: translateY(-50%) rotate(90deg);
    }
    /* Phase 3: Formation de la croix */
    100% {
        bottom: auto;
        top: 50%;
        transform: translateY(-50%) rotate(-45deg);
    }
}

/* =============================================
   KEYFRAMES - Animation Fermeture (Croix → Hamburger)
   ============================================= */
@keyframes barTopFromX {
    0% {
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
    }
    33% {
        top: 50%;
        transform: translateY(-50%) rotate(90deg);
    }
    66% {
        top: 50%;
        transform: translateY(-50%) rotate(0deg);
    }
    100% {
        top: 0;
        transform: translateY(0) rotate(0deg);
    }
}

@keyframes barMidFromX {
    0%, 66% {
        opacity: 0;
        transform: translateY(-50%) scaleX(0);
    }
    100% {
        opacity: 1;
        transform: translateY(-50%) scaleX(1);
    }
}

@keyframes barBotFromX {
    0% {
        top: 50%;
        bottom: auto;
        transform: translateY(-50%) rotate(-45deg);
    }
    33% {
        top: 50%;
        bottom: auto;
        transform: translateY(-50%) rotate(90deg);
    }
    66% {
        top: 50%;
        bottom: auto;
        transform: translateY(-50%) rotate(0deg);
    }
    100% {
        top: auto;
        bottom: 0;
        transform: translateY(0) rotate(0deg);
    }
}

/* =============================================
   ÉTAT ACTIF - Animation ouverture
   ============================================= */
.hamburger-trigger.is-active .hamburger-bars .bar-top {
    animation: barTopToX 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.hamburger-trigger.is-active .hamburger-bars .bar-mid {
    animation: barMidToX 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.hamburger-trigger.is-active .hamburger-bars .bar-bot {
    animation: barBotToX 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* =============================================
   ÉTAT FERMETURE - Animation fermeture
   ============================================= */
.hamburger-trigger.is-closing .hamburger-bars .bar-top {
    animation: barTopFromX 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.hamburger-trigger.is-closing .hamburger-bars .bar-mid {
    animation: barMidFromX 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.hamburger-trigger.is-closing .hamburger-bars .bar-bot {
    animation: barBotFromX 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* =============================================
   TRIGGER ACTIF - Couleurs inversées (blanc sur le panneau)
   ============================================= */
.hamburger-trigger.is-active .hamburger-bars .bar {
    background-color: #ffffff !important;
}

.hamburger-trigger.is-active .hamburger-label {
    color: #ffffff !important;
}

.hamburger-trigger.is-active:hover .hamburger-bars .bar {
    background-color: rgba(255, 255, 255, 0.7) !important;
}

.hamburger-trigger.is-active:hover .hamburger-label {
    color: rgba(255, 255, 255, 0.7) !important;
}

.hamburger-label {
    transition: color 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* =============================================
   OVERLAY
   ============================================= */
.hamburger-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    visibility: hidden;
    z-index: 9998;
    transition: opacity 0.4s ease, visibility 0.4s ease;
}

.hamburger-overlay.is-visible {
    opacity: 1;
    visibility: visible;
}

/* =============================================
   PANEL (Panneau du menu)
   ============================================= */
.hamburger-panel {
    position: fixed;
    top: 0;
    height: 100vh;
    height: 100dvh; /* Dynamic viewport height pour mobile */
    background-color: #253D53;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow-y: auto;
    overflow-x: hidden;
    padding-bottom: env(safe-area-inset-bottom, 0);
    /* Easing premium : rapide au début, freinage doux */
    transition: transform 0.6s cubic-bezier(0.77, 0, 0.175, 1),
                opacity 0.6s cubic-bezier(0.77, 0, 0.175, 1);
}

/* Slide depuis la droite */
.hamburger-panel.slide-right {
    right: 0;
    transform: translate3d(100%, 0, 0);
}

.hamburger-panel.slide-right.is-open {
    transform: translate3d(0, 0, 0);
}

/* Slide depuis la gauche */
.hamburger-panel.slide-left {
    left: 0;
    transform: translate3d(-100%, 0, 0);
}

.hamburger-panel.slide-left.is-open {
    transform: translate3d(0, 0, 0);
}

/* Plein écran */
.hamburger-panel.fullscreen {
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100vh;
    opacity: 0;
    transform: scale(0.95);
    pointer-events: none;
}

.hamburger-panel.fullscreen.is-open {
    opacity: 1;
    transform: scale(1);
    pointer-events: auto;
}

/* =============================================
   NAVIGATION
   ============================================= */
.panel-nav {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.panel-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-item {
    margin-bottom: 20px;
    /* Animation d'entrée staggerée */
    opacity: 0;
    transform: translateY(30px);
}

.nav-item.is-visible {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.5s cubic-bezier(0.77, 0, 0.175, 1),
                transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
}

.nav-item:last-child {
    margin-bottom: 0;
}

.nav-item a {
    position: relative;
    display: inline-block;
    color: #ffffff;
    text-decoration: none;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2rem;
    font-weight: 400;
    transition: color 0.3s ease;
}

/* Animation de soulignement "Touch Apple" */
.nav-item a::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -4px;
    width: 0;
    height: 2px;
    background-color: #ffffff;
    transition: width 0.3s cubic-bezier(0.77, 0, 0.175, 1);
}

.nav-item a:hover::after {
    width: 100%;
}

/* =============================================
   FOOTER (Contact)
   ============================================= */
.panel-footer {
    flex-shrink: 0;
    padding-top: 40px;
    /* Animation d'entrée */
    opacity: 0;
    transform: translateY(20px);
}

.panel-footer.is-visible {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.5s cubic-bezier(0.77, 0, 0.175, 1),
                transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
}

.contact-info {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.9rem;
    line-height: 1.6;
}

.contact-info p {
    margin: 0 0 5px 0;
    color: inherit;
}

.contact-info p:last-child {
    margin-bottom: 0;
}

/* =============================================
   FOCUS TRAP & ACCESSIBILITY
   ============================================= */
.hamburger-panel:focus {
    outline: none;
}

.hamburger-panel *:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.5);
    outline-offset: 4px;
}

/* =============================================
   RESPONSIVE
   ============================================= */
@media screen and (max-width: 1024px) {
    .hamburger-panel:not(.fullscreen) {
        width: 60% !important;
    }

    .nav-item a {
        font-size: 1.75rem;
    }
}

@media screen and (max-width: 768px) {
    .hamburger-panel:not(.fullscreen) {
        width: 100% !important;
    }

    .nav-item a {
        font-size: 1.5rem;
    }

    .panel-footer {
        padding-top: 30px;
        padding-bottom: 20px;
    }

    /* Centrer les liens du menu entre le bouton Fermer et le footer */
    .panel-nav ul {
        margin-top: 200px;
    }
}

/* =============================================
   BODY LOCK (empêcher le scroll)
   ============================================= */
body.mhp-menu-open {
    overflow: hidden;
}
