.topbar{
    background:#03112f;
    color:#fff;
    font-size:14px;
    font-weight:800;
    font-size:12px;
}

.topbar__inner{
    max-width:1500px;
    height:32px;
    margin:auto;
    padding:0 32px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.topbar__actions{
    display:flex;
    gap:10px;
}

.topbar__login,
.topbar__register{
    padding:8px 16px;
    border-radius:8px;
    font-weight:900;
}

.topbar__login{
    background:#006BFF;
    color:#fff;
}

.topbar__register{
    background:#fff;
    color:#06123a;
}

.site-header{
    background:#fff;
    border-bottom:1px solid #e8eef8;
}

.site-header__inner{
    max-width:1500px;
    height: 44px;
    margin:auto;
    padding:0 32px;
    display:flex;
    align-items:center;
    gap:34px;
}

.site-logo{
    display:flex;
    align-items:center;
    min-width:auto;
    flex:0 0 auto;
}

.site-search{
    flex:1;
    min-width:0;
}

.site-logo img{
    height: 42px;
    width:auto;
    object-fit:contain;
}


.site-search{
    flex:1;
    height:42px;
    display:flex;
    background:#fff;
    border:1px solid #dce6f7;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 4px 14px rgba(6,27,70,.04);
}

.site-search input{
    flex:1;
    border:0;
    outline:none;
    padding:0 14px;
    font-size:13px;
}

.site-search select{
    width:82px;
    border:0;
    border-left:1px solid #e5ecf6;
    outline:none;
    padding:0 8px;
    font-size:13px;
    font-weight:700;
    color:#06123a;
    background:#fff;
}

.site-search button{
    width:46px;
    border:0;
    background:#006BFF;
    color:#fff;
    font-size:16px;
    cursor:pointer;
}

.site-header__links{
    display:flex;
    align-items:center;
    gap:22px;
    min-width:190px;
    justify-content:flex-end;
}

.header-link{
    position:relative;
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:800;
    color:#06123a;
}

.header-link strong{
    position:absolute;
    top:-12px;
    right:-12px;
    background:#ef233c;
    color:#fff;
    font-size:11px;
    min-width:20px;
    height:20px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
}

.main-nav{
    background:#fff;
    border-bottom:1px solid #e8eef8;
}

.main-nav__inner{
    max-width:1500px;
    height:46px;
    margin:auto;
    padding:0 32px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:58px;
}

.main-nav a{
    font-weight:900;
    text-transform:uppercase;
    font-size:12px;
    color:#06123a;
    position:relative;
}

.main-nav a:hover{
    color:#006BFF;
}

.main-nav span{
    background:#ff1b6b;
    color:#fff;
    font-size:10px;
    padding:3px 7px;
    border-radius:999px;
    margin-left:6px;
}

main{
    max-width:1500px;
    margin:auto;
    padding:0 32px 30px;
}


/* Correctif header desktop */
@media(min-width:769px){

    .site-header{
        display:block !important;
        background:#fff;
        border-bottom:1px solid #e8eef8;
    }

    .site-header__inner{
        max-width:1500px;
        min-height:64px;
        height:64px;
        margin:0 auto;
        padding:0 32px;
        display:flex;
        align-items:center;
        gap:22px;
    }

    .site-logo{
        width:180px;
        min-width:180px;
        max-width:180px;
        display:flex;
        align-items:center;
        justify-content:flex-start;
        overflow:visible;
    }

    .site-logo img{
        height:42px;
        width:auto;
        max-width:180px;
        display:block;
        object-fit:contain;
    }

    .site-search{
        flex:1;
        min-width:0;
        max-width:none;
        height:42px;
        display:flex;
    }

    .site-header__links{
        width:auto;
        min-width:160px;
        flex:0 0 auto;
    }
}


/* Home : pas de header blanc */
@media(min-width:769px){
    body.home-page .site-header{
        display:none !important;
    }
}

@media(max-width:1000px){
    .topbar__inner{
        height:auto;
        padding:10px 20px;
        flex-direction:column;
    }

    .site-header__inner{
        height:auto;
        padding:18px 20px;
        flex-direction:column;
        align-items:stretch;
    }

    .site-logo{
        min-width:0;
        align-items:center;
    }

    .site-header__links{
        justify-content:center;
        width:100%;
    }

    .main-nav__inner{
        overflow-x:auto;
        justify-content:flex-start;
        gap:28px;
    }
}

.topbar{
    top:0;
}


a{
    text-decoration:none;
    color:inherit;
}

.main-nav a,
.site-header a,
.topbar a{
    text-decoration:none;
}

.site-footer{
    margin-top:30px;
    background:#03112f;
    color:#fff;
}

.footer-partners{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:34px;
    padding:24px 20px;
    background:#fff;
    color:#06123a;
    font-size:32px;
    font-weight:900;
    text-transform:uppercase;
}

.footer-values{
    max-width:1500px;
    margin:auto;
    padding:26px 32px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
}

.footer-value{
    display:flex;
    gap:14px;
    align-items:flex-start;
}

.footer-value__icon{
    width:52px;
    height:52px;
    border:1px solid rgba(255,255,255,.15);
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    flex-shrink:0;
}

.footer-value strong{
    display:block;
    margin-bottom:6px;
    font-size:15px;
}

.footer-value p{
    color:#d0dbef;
    line-height:1.45;
    font-size:13px;
}

.footer-bottom{
    border-top:1px solid rgba(255,255,255,.08);
    max-width:1500px;
    margin:auto;
    padding:18px 32px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:13px;
}

.footer-bottom nav{
    display:flex;
    gap:18px;
}

.footer-bottom a{
    color:#dce9ff;
}

body:has(link[href*="accueil.css"]) .site-header__inner{
    height:54px;
}

.home-page .site-header__inner{
    height:54px;
}

.home-page .site-logo{
    min-width:auto;
}

.home-page .site-header{
    min-height:auto;
}

.topbar__branding{
    display:flex;
    align-items:center;
    gap:12px;
}

.topbar__logo{
    display:flex;
    align-items:center;
}

.topbar__logo img{
    height:26px;
    width:auto;
    display:block;
}




@media(max-width:800px){

    .topbar{
        display:none;
    }

    .site-header{
        position:relative;
    }

    .site-header__inner{
        height:auto;
        padding:14px 16px;
        flex-direction:column;
        gap:12px;
    }

    .site-logo{
        min-width:0;
        align-items:center;
    }

    .site-logo img{
        height:42px;
    }

    .site-search{
        width:100%;
        height:42px;
    }

    .site-header__links{
        width:100%;
        justify-content:center;
        gap:24px;
    }

    .main-nav{
        position:relative;
    }

    .main-nav__inner{
        height:44px;
        padding:0 16px;
        justify-content:flex-start;
        gap:24px;
        overflow-x:auto;
        white-space:nowrap;
    }

    main{
        padding:0 14px 24px;
    }

    .footer-values{
    grid-template-columns:1fr;
    }

    .footer-bottom{
    flex-direction:column;
    gap:12px;
    text-align:center;
    }

    .footer-bottom nav{
    flex-wrap:wrap;
    justify-content:center;
    }
}

@media(max-width:768px){

    body{
        overflow-x:hidden;
    }

    .topbar{
        display:none;
    }

    .site-header{
        position:relative !important;
        top:auto !important;
        z-index:10;
    }

    .main-nav{
        position:relative !important;
        top:auto !important;
        z-index:9;
        width:100%;
        overflow:hidden;
        background:#fff;
    }

    .main-nav__inner{
        height:auto !important;
        min-height:42px;
        padding:8px 14px 10px !important;

        display:flex !important;
        flex-wrap:nowrap !important;
        justify-content:flex-start !important;
        align-items:center !important;

        gap:10px !important;

        overflow-x:auto !important;
        overflow-y:hidden !important;

        white-space:nowrap !important;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }

    .main-nav__inner::-webkit-scrollbar{
        display:none;
    }

    .main-nav a{
        flex:0 0 auto;
        display:inline-flex;
        align-items:center;
        justify-content:center;

        height:34px;
        padding:0 12px;

        font-size:12px;
        line-height:1;
        white-space:nowrap;

        border-radius:999px;
        background:#f1f6ff;
        color:#06123a;
    }

    .main-nav span{
        font-size:9px;
        padding:2px 6px;
        margin-left:5px;
    }

    main{
        padding-top:12px;
    }

    .home-hero{
        margin-top:0 !important;
    }
}
.mobile-auth{
    display:none;
}

.site-header__links:empty{
    display:none;
}



@media(max-width:768px){

    .site-header__inner{
        padding:12px 14px;
        gap:10px;
    }

    .site-search{
        height:46px;
        border-radius:999px;
        background:#f8fbff;
        border:1px solid #dbe8ff;
        box-shadow:0 6px 18px rgba(0,107,255,.08);
    }

    .site-search input{
        font-size:14px;
        padding-left:16px;
    }

    .site-search select{
        display:none;
    }

    .site-search button{
        width:48px;
        border-radius:50%;
        margin:3px;
        height:40px;
    }

    .site-header__links{
        display:flex;
        justify-content:center;
        gap:10px;
        margin-top:2px;
    }

    .header-link{
        height:34px;
        padding:0 12px;
        border-radius:999px;
        background:#eef4ff;
        color:#006BFF;
        font-size:12px;
        font-weight:900;
    }

    .header-link strong{
        top:-6px;
        right:-6px;
    }
}


@media(max-width:768px){

    .site-header__inner{
        align-items:center !important;
    }

    .site-logo{
        justify-content:center;
        width:100%;
    }

    .mobile-auth{
        display:flex;
        justify-content:center;
        align-items:center;
        gap:10px;
        width:100%;
        margin-top:-2px;
    }

    .mobile-auth a{
        height:34px;
        padding:0 14px;
        border-radius:999px;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        font-size:12px;
        font-weight:900;
    }

    .mobile-auth__login{
        background:#006BFF;
        color:#fff;
    }

    .mobile-auth__register{
        background:#eef4ff;
        color:#06123a;
    }
}

@media(max-width:768px){

    .home-hero{
        padding:0 !important;
        background:none !important;
        box-shadow:none !important;
        min-height:auto !important;
    }

    .home-hero__center,
    .home-hero__features,
    .home-hero__mascot,
    .home-hero__search,
    .home-hero__popular{
        display:none !important;
    }

    .home-hero__deal{
        width:100% !important;
        max-width:100% !important;
        margin:0 0 14px !important;
        border-radius:22px;
        overflow:hidden;
        box-shadow:0 8px 24px rgba(0,0,0,.08);
    }

    .home-hero__deal-body{
        padding:14px;
    }

    .home-hero__deal h2{
        font-size:20px;
        line-height:1.2;
    }
}

@media(max-width:768px){

    .home-hero__deal-badge{
        position:relative !important;
        top:auto !important;
        left:auto !important;

        display:inline-flex;
        align-items:center;

        margin:14px 14px 0;

        border-radius:999px;
        padding:8px 14px;

        z-index:5;
    }

    .home-hero__deal{
        overflow:visible !important;
    }
}

/* HEADER HOME CLEAN */
.topbar__branding{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}

.topbar__logo{
    display:flex;
    align-items:center;
    flex:0 0 auto;
}

.topbar__logo img{
    height:24px;
    width:auto;
    display:block;
}

.home-page .site-header{
    display:none;
}

.home-page .main-nav{
    position:sticky;
    top:32px;
    z-index:999;
}

@media(max-width:768px){

    .topbar{
        display:block !important;
        position:relative !important;
        top:auto !important;
    }

    .topbar__inner{
        height:auto !important;
        min-height:52px;
        padding:8px 12px !important;
        display:grid !important;
        grid-template-columns:auto 1fr auto;
        gap:10px;
    }

    .topbar__branding{
        grid-column:1 / 3;
        gap:8px;
    }

    .topbar__branding span{
        font-size:11px;
        line-height:1.25;
    }

    .topbar__reward{
        display:none;
    }

    .topbar__actions{
        grid-column:3;
        display:flex;
        gap:6px;
        justify-content:flex-end;
        align-items:center;
    }

    .topbar__login,
    .topbar__register{
        padding:7px 9px;
        font-size:11px;
        border-radius:999px;
        white-space:nowrap;
    }

    .topbar__logo img{
        height:26px;
    }

    .home-page .main-nav{
        top:auto !important;
        position:relative !important;
    }
}

body.home-page .site-header{
    display:none !important;
}

body.home-page .main-nav{
    position:relative !important;
    top:auto !important;
    z-index:20;
}

body.home-page main{
    padding-top:0 !important;
}

.topbar,
.site-header,
.main-nav{
    position:relative !important;
    top:auto !important;
}

/* Reset sticky global */
.topbar,
.main-nav{
    position:relative !important;
    top:auto !important;
}

/* Header sticky uniquement hors accueil */
.site-header{
    position:sticky !important;
    top:0;
    z-index:1000;
    background:#fff;
}

/* Sur la home : pas de sticky */
body.home-page .site-header{
    position:relative !important;
}

body:not(.home-page) .site-header{
    display:block !important;
    position:sticky !important;
    top:0 !important;
    z-index:5000 !important;
    background:#fff !important;
}

body:not(.home-page) .main-nav{
    position:relative !important;
    top:auto !important;
    z-index:1 !important;
}

body:not(.home-page) .topbar{
    position:relative !important;
    top:auto !important;
}

/* Sticky search uniquement hors accueil */
body:not(.home-page) .site-header{
    position:sticky;
    top:0;
    z-index:5000;
    background:#fff;
    border-bottom:1px solid #e8eef8;
}

/* menu normal */
.main-nav{
    position:relative;
    top:auto;
    z-index:1;
}

/* topbar normale */
.topbar{
    position:relative;
    top:auto;
    z-index:1;
}

/* accueil sans sticky */
body.home-page .site-header{
    position:relative;
}

.auth-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    inset: 0;
}

.auth-modal.is-open {
    display: block;
}

.auth-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.6);
}

.auth-modal__box {
    position: relative;
    z-index: 2;
    width: 420px;
    max-width: calc(100% - 30px);
    margin: 8vh auto;
    padding: 28px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 25px 70px rgba(0,0,0,0.25);
}

.auth-modal__close {
    position: absolute;
    top: 14px;
    right: 16px;
    border: 0;
    background: none;
    font-size: 28px;
    cursor: pointer;
}

.auth-modal__intro {
    color: #666;
    margin-bottom: 20px;
}

.auth-modal__google {
    display: block;
    text-align: center;
    padding: 13px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #ddd;
    font-weight: 700;
    color: #222;
    text-decoration: none;
}

.auth-modal__separator {
    text-align: center;
    margin: 18px 0;
    color: #888;
}

.auth-modal__form input {
    width: 100%;
    padding: 13px;
    margin-bottom: 12px;
    border: 1px solid #ddd;
    border-radius: 10px;
}

.auth-modal__form button {
    width: 100%;
    padding: 14px;
    border: 0;
    border-radius: 12px;
    background: #1769ff;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.header-notification-link{
    position:relative;
}

.header-notification-link span{
    font-size:13px;
    font-weight:800;
}

.header-notification-link.has-deal{
    color:#ffb100;
    animation:bellPulse 1.8s infinite;
}

@keyframes bellPulse{

    0%{
        transform:scale(1);
    }

    50%{
        transform:scale(1.08);
    }

    100%{
        transform:scale(1);
    }
}

/* ============================= */
/* MOTEUR DE RECHERCHE PREMIUM */
/* ============================= */

.premium-search{
    position:relative;
    width:100%;
    z-index:10000;
}

/* Version accueil dans le hero */
.premium-search--hero{
    max-width:720px;
    margin:22px auto 0;
}

/* Version header hors accueil */
.premium-search--header{
    flex:1;
    max-width:560px;
    margin:0 auto;
}

/* On garde le style compact du header */
.premium-search__form{
    width:100%;
    height:42px;
    display:flex;
    align-items:center;
    background:#fff;
    border:1px solid #dce6f7;
    border-radius:14px;
    overflow:visible;
    box-shadow:0 4px 14px rgba(6,27,70,.04);
}

/* Hero plus premium mais pas énorme */
.premium-search--hero .premium-search__form{
    height:54px;
    border-radius:999px;
    padding:4px;
    box-shadow:0 14px 34px rgba(6,18,58,.14);
}

/* Input */
.premium-search__form input{
    flex:1;
    min-width:0;
    height:100%;
    border:0;
    outline:none;
    background:transparent;
    padding:0 16px;
    font-size:13px;
    color:#06123a;
}

/* Input hero */
.premium-search--hero .premium-search__form input{
    font-size:15px;
    padding:0 20px;
}

/* Bouton */
.premium-search__form button{
    width:48px;
    height:100%;
    border:0;
    background:#006BFF;
    color:#fff;
    font-size:15px;
    font-weight:900;
    cursor:pointer;
    border-radius:0 13px 13px 0;
    flex-shrink:0;
}

/* Bouton hero */
.premium-search--hero .premium-search__form button{
    width:auto;
    height:46px;
    padding:0 22px;
    border-radius:999px;
}

/* Dropdown */
.premium-search__results{
    display:none;
    position:absolute;
    top:50px;
    left:0;
    right:0;
    background:#fff;
    border:1px solid #e5ecf6;
    border-radius:20px;
    box-shadow:0 22px 55px rgba(6,18,58,.18);
    overflow:hidden;
    z-index:99999;
}

/* Dropdown hero */
.premium-search--hero .premium-search__results{
    top:64px;
}

/* Liste */
.search-result-item{
    display:grid;
    grid-template-columns:58px 1fr auto;
    align-items:center;
    gap:14px;
    padding:13px 15px;
    color:#06123a;
    text-decoration:none;
    border-bottom:1px solid #edf2fb;
    background:#fff;
}

.search-result-item:last-child{
    border-bottom:0;
}

.search-result-item:hover{
    background:#f7faff;
}

/* Image */
.search-result-thumb{
    width:58px;
    height:58px;
    border-radius:14px;
    overflow:hidden;
    background:#eef4ff;
}

.search-result-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
}

/* Texte */
.search-result-content{
    min-width:0;
}

.search-result-content strong{
    display:block;
    font-size:14px;
    font-weight:900;
    color:#06123a;
    line-height:1.25;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.search-result-content span{
    display:block;
    margin-top:5px;
    font-size:12px;
    font-weight:800;
    color:#667085;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

/* Prix */
.search-result-price{
    text-align:right;
    font-size:13px;
    font-weight:900;
    color:#006BFF;
    white-space:nowrap;
}

.search-result-price small{
    display:block;
    margin-top:3px;
    font-size:11px;
    color:#667085;
    font-weight:700;
}

/* Anti coupure hero/header */
.home-hero,
.home-hero__center,
.site-header,
.site-header__inner{
    overflow:visible !important;
}

/* Header propre */
body:not(.home-page) .site-header__inner{
    height:64px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:24px;
}

body:not(.home-page) .site-header__links{
    margin-left:auto;
    flex:0 0 auto;
}

/* Mobile */
@media(max-width:768px){

    .premium-search--header,
    .premium-search--hero{
        max-width:100%;
        margin:0;
    }

    .premium-search__form,
    .premium-search--hero .premium-search__form{
        height:46px;
        border-radius:999px;
    }

    .premium-search__form button,
    .premium-search--hero .premium-search__form button{
        width:48px;
        height:40px;
        margin-right:3px;
        padding:0;
        border-radius:999px;
    }

    .premium-search__results,
    .premium-search--hero .premium-search__results{
        top:54px;
        border-radius:18px;
    }

    .search-result-item{
        grid-template-columns:52px 1fr;
    }

    .search-result-price{
        grid-column:2;
        text-align:left;
        margin-top:-6px;
    }
}
/* La modale d'authentification doit toujours passer au-dessus du moteur */
.auth-modal{
    z-index:2000000 !important;
}

.auth-modal__overlay{
    z-index:2000001 !important;
}

.auth-modal__box{
    z-index:2000002 !important;
}

/* ============================= */
/* PRIORITÉ ABSOLUE MODALE AUTH */
/* ============================= */

.auth-modal{
    position:fixed !important;
    inset:0 !important;
    z-index:2147483647 !important;
    isolation:isolate !important;
}

.auth-modal.is-open{
    display:block !important;
}

.auth-modal__overlay{
    position:absolute !important;
    inset:0 !important;
    z-index:1 !important;
    background:rgba(0,0,0,.65) !important;
}

.auth-modal__box{
    position:relative !important;
    z-index:2 !important;
}

/* Quand la popup est ouverte, on rabaisse tout le hero */
body:has(.auth-modal.is-open) .home-hero,
body:has(.auth-modal.is-open) .home-hero__center,
body:has(.auth-modal.is-open) .premium-search,
body:has(.auth-modal.is-open) .premium-search__results{
    z-index:1 !important;
}