/* ======================================================================
   KS MENU (HTML/CSS) — remplace displayMegamenu
====================================================================== */

/* Base UL */
.ks-menu__inner .ks-nav{
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
}

/* Items */
.ks-nav__item{
    position: relative;
}

/* Links (niveau 1) */
.ks-nav__link{
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 44px;
    padding: 0 10px;
    text-decoration: none;
    color: var(--ks-gold);
    font-weight: 800;
    letter-spacing: .2px;
    font-size: 13px;
    text-transform: none;
    border-radius: 10px;
    transition: background .12s ease, color .12s ease;
}

.ks-nav__link::after{
    content: "";
    position: absolute;
    left: 10px;                       /* aligné au padding */
    right: 10px;
    bottom: 8px;                      /* position du trait */
    height: 2px;
    background: var(--ks-gold);
    opacity: 0;
    transform: scaleX(.35);
    transform-origin: center;
    transition: opacity .12s ease, transform .12s ease;
    border-radius: 999px;
}

.ks-nav__link:hover{
    background: transparent !important;
}
.ks-nav__link:hover::after{
    opacity: 1;
    transform: scaleX(1);
}

/* Caret */
.ks-nav__caret{
    opacity: .75;
    font-size: 12px;
}

/* ======================================================================
   Dropdown simple (1 colonne)
====================================================================== */

.ks-dropdownmenu{
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 50%;
    transform: translateX(-50%);
    width: 260px;
    margin: 0;
    padding: 8px;
    list-style: none;
    background: var(--ks-dark-2);
    border: 1px solid rgba(216,177,90,.28);
    box-shadow: 0 18px 40px rgba(0,0,0,.45);
    z-index: 9999;
}

.ks-dropdownmenu__link{
    display: block;
    padding: 10px 10px;
    border-radius: 10px;
    text-decoration: none;
    color: var(--ks-gold);
    font-weight: 700;
    font-size: 13px;
}

.ks-dropdownmenu__link:hover{
    background: rgba(216,177,90,.10);
}

/* ouverture hover */
.ks-nav__item--hasdropdown:hover > .ks-dropdownmenu{
    display: block;
}

/* ======================================================================
   Mega menu (3 colonnes)
====================================================================== */

.ks-mega{
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 50%;
    transform: translateX(-50%);
    width: min(920px, calc(100vw - 32px));
    background: var(--ks-dark-2);
    border: 1px solid rgba(216,177,90,.28);
    box-shadow: 0 18px 40px rgba(0,0,0,.45);
    z-index: 9999;
    padding: 14px;
}

.ks-mega__grid{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.ks-mega__col{
    padding: 10px;
    border: 1px solid rgba(216,177,90,.12);
    background: rgba(255,255,255,.03);
}

.ks-mega__title{
    color: var(--ks-gold-2);
    font-weight: 900;
    font-size: 12px;
    letter-spacing: .25px;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.ks-mega__link{
    display: block;
    padding: 9px 10px;
    border-radius: 10px;
    text-decoration: none;
    color: var(--ks-gold);
    font-weight: 700;
    font-size: 13px;
}

.ks-mega__link:hover{
    background: rgba(216,177,90,.10);
}

/* CTA */
.ks-mega__cta{
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(216,177,90,.14);
}

.ks-mega__btn{
    display: inline-flex;
    justify-content: center;
    align-items: center;
    height: 40px;
    padding: 0 12px;
    text-decoration: none;
    font-weight: 900;
    font-size: 13px;

    background: rgba(216,177,90,.18);
    border: 1px solid rgba(216,177,90,.28);
    color: var(--ks-gold);
}

.ks-mega__btn:hover{
    background: rgba(216,177,90,.24);
}

/* ouverture hover */
.ks-nav__item--hasmegamenu:hover > .ks-mega{
    display: block;
}

.ks-nav__item--hasdropdown::after,
.ks-nav__item--hasmegamenu::after{
    content: "";
    position: absolute;
    left: -20px;
    right: -20px;
    top: 100%;
    height: 6px;
    background: transparent;
}

.ks-menu, .ks-menu__inner, .ks-nav, .ks-nav__item{
    overflow: visible !important;
}

.ks-dropdownmenu,
.ks-mega{
    z-index: 99999; /* monte plus haut que ton 9999 */
}

/* Mega menu (3 colonnes) */
.ks-nav__item--hasmegamenu{ position: relative; }

.ks-nav__item--hasmegamenu > .ks-mega{
    display: none;
    position: absolute;
    top: calc(100% + 4px);

    left: 50%;
    /* clamp via variable (JS la mettra) */
    transform: translateX(calc(-50% + var(--ksmm-shift-x, 0px)));

    width: min(920px, calc(100vw - 32px));
    max-width: calc(100vw - 32px);
    box-sizing: border-box;

    background: var(--ks-dark-2);
    border: 1px solid rgba(216,177,90,.28);
    box-shadow: 0 18px 40px rgba(0,0,0,.45);
    z-index: 99999;
    padding: 14px;
}

/* ouverture hover */
.ks-nav__item--hasmegamenu:hover > .ks-mega{
    display: block;
}

/* “hover bridge” plus grand pour ne pas perdre le hover */
.ks-nav__item--hasmegamenu::after{
    content:"";
    position:absolute;
    left:-24px;
    right:-24px;
    top:100%;
    height: 14px; /* <-- augmente (6px => 14px) */
    background:transparent;
}

/* ======================================================================
   KS MENU MOBILE (drawer) — premium list + full-row accordion
====================================================================== */

.ksm-menu{ width:100%; }

.ksm-menu__list{
    list-style:none;
    margin:0;
    padding:0;
    border-top: 1px solid rgba(216,177,90,.12);
}

.ksm-item{
    border-bottom: 1px solid rgba(216,177,90,.12);
}

.ksm-link,
.ksm-trigger{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;

    padding: 14px 10px;
    text-decoration:none;

    color: var(--ks-gold);
    font-weight: 900;
    font-size: 14px;
    letter-spacing: .2px;

    background: transparent;
    border: 0;
    border-radius: 12px;
    text-align: left;
}

.ksm-trigger{ cursor:pointer; }

.ksm-text{
    flex: 1 1 auto;
    min-width: 0;
}

.ksm-right{
    flex: 0 0 auto;
    opacity: .85;
}

.ksm-chevron{
    transition: transform .14s ease, opacity .14s ease;
    opacity: .85;
}

.ksm-chevron--link{
    opacity: .55;
}

.ksm-link:active,
.ksm-trigger:active{
    background: rgba(255,255,255,.03);
}

.ksm-link:focus-visible,
.ksm-trigger:focus-visible{
    outline: 2px solid rgba(216,177,90,.35);
    outline-offset: 2px;
}

/* panel */
.ksm-panel{
    padding: 2px 6px 12px 6px;
}

/* sub list – clean, not “pill buttons” */
.ksm-sub{
    list-style:none;
    margin:0;
    padding: 0 0 4px 0;
}

.ksm-sublink{
    display:block;
    padding: 10px 12px;
    margin: 6px 4px 0 4px;

    border-radius: 10px;
    text-decoration:none;

    color: rgba(255,255,255,.86);
    font-weight: 800;
    font-size: 13px;

    background: rgba(255,255,255,.02);
    border: 1px solid rgba(216,177,90,.10);
}

.ksm-sublink:hover{
    background: rgba(216,177,90,.08);
}

/* mega layout stacked, but lighter */
.ksm-mega{
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.ksm-mega__col{
    padding: 8px;
    border-radius: 14px;
    border: 1px solid rgba(216,177,90,.10);
    background: rgba(255,255,255,.02);
}

.ksm-mega__title{
    color: var(--ks-gold-2);
    font-weight: 900;
    font-size: 12px;
    letter-spacing: .25px;
    text-transform: uppercase;
    margin: 4px 6px 8px 6px;
    opacity: .95;
}

/* CTA stays more “button”, but cleaner */
.ksm-cta{
    display:block;
    text-align:center;
    padding: 11px 12px;
    margin: 6px 4px 0 4px;

    border-radius: 12px;
    text-decoration:none;
    font-weight: 900;
    font-size: 13px;

    background: rgba(216,177,90,.16);
    border: 1px solid rgba(216,177,90,.26);
    color: var(--ks-gold);
}

/* open state */
.ksm-item.is-open > .ksm-trigger .ksm-chevron{
    transform: rotate(180deg);
}

/* ======================================================================
   Accordion animation (mobile)
====================================================================== */

/* par défaut: fermé (même si hidden est géré en JS) */
.ksm-panel{
    overflow: clip;                   /* mieux que hidden, évite les scrollbars */
    max-height: 0;
    opacity: 0;
    transform: translateY(-4px);
    transition:
            max-height .22s ease,
            opacity .18s ease,
            transform .18s ease;
    will-change: max-height, opacity, transform;
}

/* ouvert */
.ksm-item.is-open > .ksm-panel{
    opacity: 1;
    transform: translateY(0);
}

/* réduit motion */
@media (prefers-reduced-motion: reduce){
    .ksm-panel{
        transition: none !important;
        transform: none !important;
    }
}


/* ======================================================================
   Responsive safety : si tu veux réduire le menu sur "petits desktops"
====================================================================== */
@media (max-width: 1199.98px){
    .ks-menu__inner .ks-nav{
        gap: 10px;
    }
    .ks-nav__link{
        padding: 0 8px;
        font-size: 12.5px;
    }
}