/* Style global */
:root {
    --main-color: #007BFF;
    /* Bleu vif tech – couleur principale */
    --main-selected-color: #339CFF;
    /* Bleu plus clair pour le hover/actif */
    --shadow-color: rgba(0, 123, 255, 0.3);
    /* Ombre douce bleutée */
    --selected-color: rgb(245, 250, 255);
    /* Blanc bleuté très léger */
    /* --main-color: #ff7200;
    --main-selected-color: #ff7d13;
    --shadow-color: rgba(255, 166, 0, 0.705);
    --selected-color: rgb(255, 252, 246); */
    --reduct-price: rgb(175, 175, 175);
}

html,
body {
    font-family: "Poppins", "Odoo Unicode Support Noto", sans-serif;
    margin: 0;
    padding: 0;
    width: 100%;
    overflow-x: hidden;
    /* coupe tout ce qui dépasse horizontalement */
    background: #fff;
}


/* Header */
header {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px 20px;
    background: #fff;
}

.header-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 15px 0 15px 0;
    max-width: 1050px;
}

.gradient-border {
    width: 100%;
    height: 5px;
    background-image: linear-gradient(to right, #bae4ff, #7bfc6a, #0099ff);
    /* background-image: linear-gradient(to right, #ffaa5b,#e63bbb,#0099ff); */
}

.logo {
    font-size: 24px;
    font-weight: bold;
}

.logo span {
    color: var(--main-color);
}

nav ul {
    list-style: none;
    display: flex;
    gap: 50px;
    padding: 0;
    margin: 0;
}

nav ul li {
    display: inline;
}

nav ul li a {
    text-decoration: none;
    color: rgb(119, 119, 119);
}

/* Dropdown */
.dropdown {
    position: relative;
}

.dropdown-content {
    display: none;
    position: absolute;
    background: white;
    border: 1px solid var(--main-selected-color);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    border-radius: 10px;
    list-style: none;
    padding: 0;
    margin: 0;
    min-width: 160px;
    z-index: 10;
}

.dropdown-content li a {
    display: block;
    padding: 10px;
    color: rgb(119, 119, 119);
    text-decoration: none;
}

.dropdown-content li:last-child a {
    display: block;
    padding: 10px;
    color: rgb(119, 119, 119);
    text-decoration: none;
    border-radius: 0px 0px 10px 10px;
}

.dropdown-content li:first-child a {
    display: block;
    padding: 10px;
    color: rgb(119, 119, 119);
    text-decoration: none;
    border-radius: 10px 10px 0px 0px;
}

.dropdown-content div {
    min-width: 160px;
    min-height: 2px;
    background: #ffffff;
    background: linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(32, 55, 230, 0.54) 50%, rgba(255, 255, 255, 1) 100%);
}

.dropdown-content li a:hover {
    background: #f2f2f2;
}

.dropdown:hover .dropdown-content {
    display: block;
}

/* Section Meilleures Ventes */
.best-sellers {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 40px 20px 0px 20px;
}

.section-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 1050px;

    h2 {
        text-transform: uppercase;
    }
}

.section-title h2 {
    font-size: 24px;
    font-weight: bold;
}

.section-title-2 h2 {
    font-size: 20px;
    font-weight: bold;
    margin: 0;
}

.section-title h2 span {
    color: var(--main-color);
}

.section-title-2 h2 span {
    color: var(--main-color);
}

.products {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 1050px;
}

.three-product {
    display: flex;
    justify-content: space-between;
    flex-direction: row;
    width: 100%;
    padding-bottom: 40px;
}

.product {
    /* border: 1px solid #ddd; */
    border-radius: 10px;
    padding: 10px;
    text-align: center;
    width: 300px;
}

.product-img {
    width: 100%;
    max-width: 100%;
    height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.product .product-img img {
    max-height: 260px;
    border-radius: 10px;
}

.pc-components {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding-left: 20px;
}

.pc-components p {
    margin: 0px;
    color: #7c7c7c;
    font-size: 15px;
}

.product-price {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    align-items: center;
    padding-left: 20px;
    padding-right: 20px;
}

.price {
    font-size: 20px;
    font-weight: bold;
    color: var(--main-color);
}

.reduce-price {
    font-size: 20px;
    font-weight: lighter;
    text-decoration: line-through;
    color: var(--reduct-price);
}

.button {
    background: var(--main-color);
    color: white;
    border: none;
    padding: 10px;
    /* margin: 10px 20px 0px 20px; */
    cursor: pointer;
    border-radius: 5px;
    width: 260px;
    margin-bottom: 20px;
}

.button:hover {
    background: var(--main-selected-color);
}

.product:hover {
    h3 {
        color: var(--main-color);
    }

    /* box-shadow: 1px 2px 5px var(--shadow-color); */
    border: 1px solid var(--shadow-color);
    /* background-color:#fafafa; */
    /* background-color:var(--selected-color); */
    background: linear-gradient(#ffffff, var(--selected-color));
}

.product {
    h3 {
        transition: color 0.2s ease;
    }

    transition: box-shadow 0.2s ease;
    transition: border 0.2s ease;
    transition: background-color 0.2s ease;
    border: 1px solid #ddd;
}

.budget {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.budget-selection {
    border: 1px solid var(--shadow-color);
    border-radius: 10px;
    padding: 10px;
    width: 100%;
    max-width: 1030px;
    display: flex;
    gap: 10px;
    flex-direction: column;
    /* justify-content: space-between; */
}

.budget-selection {
    .bso1 {
        border: 1px solid #ddd;
    }

    .bso2 {
        border: 1px solid #ddd;
    }

    .bso3 {
        border: 1px solid #ddd;
    }

    .bso4 {
        border: 1px solid #ddd;
    }

    .bso5 {
        border: 1px solid #ddd;
    }

    .bso6 {
        border: 1px solid #ddd;
    }

    .bso7 {
        border: 1px solid #ddd;
    }

    .bso8 {
        border: 1px solid #ddd;
    }

    .bso1:hover {
        border: 1px solid #FF0000;
        background-color: #ffe6e6;
    }

    .bso2:hover {
        border: 1px solid #FF3300;
        background-color: #ffe7e1;
    }

    .bso3:hover {
        border: 1px solid #FF6600;
        background-color: #ffe9da;
    }

    .bso4:hover {
        border: 1px solid #FF9900;
        background-color: #ffebce;
    }

    .bso5:hover {
        border: 1px solid #FFCC00;
        background-color: #fff7d5;
    }

    .bso6:hover {
        border: 1px solid #CCFF00;
        background-color: #f7ffd6;
    }

    .bso7:hover {
        border: 1px solid #66FF00;
        background-color: #e7ffd7;
    }

    .bso8:hover {
        border: 1px solid #00FF00;
        background-color: #d8ffd8;
    }
}

.budget-selection-separator {
    display: flex;
    flex-direction: row;
    gap: 10px;
    width: 100%;
    justify-content: space-between;
}

.budget-selection-option {
    border-radius: 5px;
    /* background-color: var(--shadow-color); */
    /* max-width: 150px;
    min-width: 150px; */
    width: 100%;
    padding: 5px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 60px;
    transition: background-color 0.5s ease;
}

.budget-selection-option h4 {
    text-transform: uppercase;
    margin: 0;
}

.budget-selection-option p {
    text-transform: uppercase;
    margin: 0;
    color: #3b3b3b;
}

.list-budgets {
    /* background-color: #0099ff; */
    width: 100%;
    max-width: 1050px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.list-budgets-group {
    display: flex;
    flex-direction: row;
    width: 100%;
    justify-content: space-between;
    gap: 10px;
}

.list-budgets-budget {
    position: relative;
    overflow: hidden;
    min-width: 350px;
    width: 100%;
    height: 120px;
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    /* justify-content: space-between; */
    gap: 15px;

    &::before {
        content: "";
        position: absolute;
        inset: 0;
        background-color: var(--selected-color);
        opacity: 0;
        transition: opacity 0.5s ease;
        z-index: 1;
    }

    h3 {
        margin: 0;
        opacity: 0;
        padding: 0 0 0 5px;
        transition: all 0.5s ease;
        font-size: 25px;

        span {
            color: var(--main-color);
        }
    }

    p {
        margin: 0;
        opacity: 0;
        padding: 0 0 0 5px;
        color: #494949;
        transition: all 0.5s ease;
    }

    h5 {
        margin: 0;
        opacity: 0;
        padding: 0 0 0 5px;
        font-weight: 100;
        color: #494949;
        transition: all 0.5s ease;
    }

    transition: all 0.5s ease;

    h3,
    h5,
    p {
        position: relative;
        z-index: 2;
    }

    &:hover::before {
        opacity: 1;
    }

    &:hover h3,
    &:hover h5,
    &:hover p {
        opacity: 1;
    }
}

.budget1 {
    background-image: url("images/petit-budget.png");
    background-size: cover;
}

.budget2 {
    background-image: url("images/budget-moyen.png");
    background-size: cover;
}

.budget3 {
    background-image: url("images/gros-budget.png");
    background-size: cover;
}

.budget4 {
    background-image: url("images/illimite.png");
    background-size: cover;
}

.list-budgets-budget:hover {
    border: 1px solid var(--shadow-color);
    cursor: pointer;

    h3 {
        margin: 0;
        opacity: 100;
        padding: 5px 0 0 5px;
    }

    h5 {
        margin: 0;
        opacity: 100;
        padding: 0 0 5px 5px;
    }

    p {
        margin: 0;
        opacity: 100;
        /* padding: 0 0 5px 5px; */
    }
}

.three-screen {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: 100%;
    padding-top: 40px;
}

.showmore-a {
    padding: 10px;
    text-decoration: none;
    color: black;
    background-color: var(--selected-color);
    border: 1px solid var(--shadow-color);
    border-radius: 5px;
    font-size: 15px;
    transition: all 0.2s ease;
    height: 15px;
    display: flex;
    align-items: center;
    justify-content: center;

}

.showmore-a:hover {
    padding: 10px;
    text-decoration: none;
    color: white;
    background-color: var(--main-color);
    border: 1px solid var(--shadow-color);
    border-radius: 5px;
    font-size: 15px;
}

.section-extra-product {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.section-extra-product-bonus {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.extra-product {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 1050px;
    justify-content: center;
    align-items: center;
}

.extra-product-bonus {
    display: flex;
    flex-direction: row;
    width: 100%;
    max-width: 1050px;
    justify-content: center;
    align-items: center;
    gap: 40px;
}

@media (max-width: 600px) {
    .extra-product-bonus {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 1050px;
    justify-content: center;
    align-items: center;
    gap: 40px;
}
   .extra-product-bonus .product{
    min-width: 357px;
    margin: 0px;
   }
}

:root {
    --footer-bg: linear-gradient(135deg, #001a38, #0077ff);
    /* dégradé bleu */
    --footer-text: #ffffff;
    --footer-link-hover: #00bfff;
}

.site-footer {
    background-image: var(--footer-bg);
    padding: 20px 40px;
    color: var(--footer-text);
    margin-top: 50px;
    /* border-top: 1px solid black; */
}

.mini-footer {
    margin-top: 460px;
}

.footer-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
}

.footer-logo img {
    height: 40px;
}

.footer-links a {
    color: var(--footer-text);
    margin-left: 20px;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-links a:hover {
    color: var(--footer-link-hover);
}

@media (max-width: 600px) {
    .footer-content {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .footer-links {
        margin-top: 15px;
    }

    .footer-links a {
        margin: 10px;
    }

    .mini-footer {
        margin-top: 250px;
    }
    .extra h2{
        margin-left: 20px;
    }
}

@media (max-width: 400px) {
    .showmore-a {
        font-size: 15px;
    }

    .section-title {
        margin: 0;
        width: 100%;
    }

    .products {
        overflow-x: hidden;
        width: 100%;
    }

    .three-product {
        display: flex;
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        width: 100%;
    }

    .product {
        flex: 0 0 100%;
        /* prend 100% de l’écran */
        scroll-snap-align: start;
        margin-right: 20px;
        /* espace entre les produits */
        box-sizing: border-box;
        border-radius: 8px;
    }

    body {
        overflow-x: hidden;
    }
}

/* MOBILE UNIQUEMENT pour la page catégorie (ex: "Tous les claviers") */
@media (max-width: 768px) {
    .category-mobile .three-product {
        /* on annule le slider horizontal et on empile */
        overflow-x: hidden;
        flex-wrap: wrap;
        scroll-snap-type: none;
        justify-content: flex-start;
        /* au lieu de space-between sur une colonne */
        gap: 16px;
        /* optionnel : espace propre entre cartes */
    }

    .category-mobile .product {
        /* une carte par ligne (colonne) sur mobile */
        flex: 0 0 100%;
        width: 100%;
        /* écrase le width:300px desktop */
        margin-right: 0;
        scroll-snap-align: unset;
        /* au cas où tu avais du snap sur mobile */
    }

    /* Optionnel : réduire un peu la hauteur image sur mobile si besoin */
    /* .category-mobile .product-img { height: 220px; } */
}

/* (Optionnel) Tablette: 2 par ligne si tu veux */
@media (min-width: 769px) and (max-width: 1024px) {
    .category-mobile .three-product {
        flex-wrap: wrap;
        gap: 16px;
    }

    .category-mobile .product {
        flex: 0 0 calc(50% - 8px);
        width: auto;
    }
}


@media (max-width: 400px) {
    body.all-config-page .three-product {
        display: block;
        overflow-x: visible;
    }

    body.all-config-page .product {
        flex: none;
        width: 100%;
        margin-bottom: 20px;
    }
}

@media (max-width: 400px) {
    .slider-dots {
        display: flex;
        justify-content: center;
        gap: 8px;
        margin-top: 10px;
    }

    .slider-dots .dot {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: #ccc;
        transition: background 0.3s;
    }

    .slider-dots .dot.active {
        background: #333;
    }
}

@media screen and (max-width: 400px) {

    .list-budgets .list-budgets-group .list-budgets-budget,
    .list-budgets::before .list-budgets-group::before .list-budgets-budget::before,
    .list-budgets::after .list-budgets-group::after .list-budgets-budget::after {
        box-sizing: border-box;
    }

    .budget-title {
        margin-left: 20px;
        max-width: 380px;
    }

    .list-budgets {
        display: flex;
        flex-direction: column;
        gap: 10px;
        /* padding: 0 10px;  marge intérieure pour éviter de toucher les bords */
        /* width: 100%; */
        max-width: 380px;
        box-sizing: border-box;
    }

    .list-budgets-group {
        display: flex;
        flex-direction: column;
        max-width: 100%;
        gap: 10px;
        box-sizing: border-box;
        padding: 0 10px;
    }

    .list-budgets-budget {
        width: 100%;
        /* prend toute la largeur disponible */
        /*aspect-ratio: 1032 / 280;  conserve le ratio de l’image */
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        border-radius: 10px;
        box-sizing: border-box;
        overflow: hidden;
        /* Empêche débordements internes éventuels */
    }

    .list-budgets-budget h3,
    .list-budgets-budget p,
    .list-budgets-budget h5 {
        opacity: 0;
    }

    .list-budgets-budget::before {
        display: none;
    }
}

.hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    z-index: 1001;
}

.hamburger span {
    width: 25px;
    height: 3px;
    background: #000;
    border-radius: 2px;
    transition: all 0.3s ease;
}

/* Responsive */
@media screen and (max-width: 768px) {
    .hamburger {
        display: flex;
    }

    nav {
        position: absolute;
        top: 100px;
        left: 0;
        right: 0;
        background: #fff;
        padding: 20px;
        display: none;
        flex-direction: column;
        align-items: center;
    }

    nav ul {
        flex-direction: column;
        gap: 20px;
    }

    nav.active {
        display: flex;
        border: 1px solid #ddd;
        border-radius: 5px;
        /* width: 100%; */
        margin: 10px;
        max-width: 100vw;
        /* max-width: 340px; */
        z-index: 10;
    }

    nav ul li {
        position: relative;
        display: flex;
        align-items: center;
        width: 100%;
        justify-content: center;
    }

    nav ul li::before {
        content: "";
        position: absolute;
        top: 50%;
        width: 80px;
        /* très long pour couvrir tout l'espace */
        height: 2px;
        background-image: linear-gradient(to left, #97fffa, #486aff);
        /* transform: translateY(-50%); */
    }

    nav ul li::after {
        content: "";
        position: absolute;
        top: 50%;
        width: 80px;
        /* très long pour couvrir tout l'espace */
        height: 2px;
        background-image: linear-gradient(to right, #97fffa, #486aff);
        /* transform: translateY(-50%); */
    }

    nav ul li::before {
        right: 110%;
        /* commence avant le li */
        margin-right: 10px;
    }

    nav ul li::after {
        left: 110%;
        /* commence après le li */
        margin-left: 10px;
    }


}

.soutiens-li {
    font-weight: bold;
    background: linear-gradient(90deg, #00a2ff, #2bff00);
    -webkit-background-clip: text;
    /* Nécessaire pour Safari/Chrome */
    -webkit-text-fill-color: transparent;
    /* Rend le texte transparent pour voir le dégradé */
    background-clip: text;
    /* Standard */
    color: transparent;
}

.soutenez-nous {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;

    p {
        color: #868686;
        margin: 0;
        margin-top: 20px;
        margin-bottom: 20px;
    }

    h2 {
        margin: 0;
        margin-top: 20px;
    }
}

.gen-afiliate-link h2 {
    padding-bottom: 20px;
}

.gen-afiliate-link-btn {
    padding: 10px;
    padding: 12px 24px;
    background-color: #007bff;
    color: white;
    border: none;
    border-radius: 6px;
    font-size: 12px;
    cursor: pointer;
    transition: background-color 0.2s;
    width: 100%;
}

.gen-afiliate-link-btn:hover {
    background-color: #0056b3;
}

.gen-afiliate-link-link {
    width: 100%;
    padding: 0.5rem;
    margin: 0 !important;
}

.gen-afiliate-link-result {
    width: 100%;
    padding: 0.5rem;
    background-color: #f0f0f0;
    margin: 0 !important;
}

.gen-afiliate-link-div {
    display: flex;
    flex-direction: column;
    width: 480px;
    align-items: center;
    gap: 20px;
}

.gen-afiliate-link-link,
.gen-afiliate-link-result {
    width: 100%;
    padding: 10px 14px;
    margin-bottom: 18px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 15px;
    transition: border-color 0.2s;
    flex-shrink: 0;
}

.btn-amzn-link {
    display: flex;
    width: 450px;
    justify-content: space-between;
    gap: 10px;
}

#sort-select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;

    background: #fff;
    color: #111;
    border: 1px solid #d9d9d9;
    border-radius: 12px;

    font: 14px/1.2 system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    padding: 10px 42px 10px 14px;
    min-width: 220px;
    cursor: pointer;
    background-clip: padding-box;

    background-image:
        url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 10l5 5 5-5' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 14px;
}

#sort-select:hover {
    border-color: #c9c9c9;
}

#sort-select:focus-visible {
    outline: 1px solid #bebebe;
}

#sort-select:disabled {
    opacity: .6;
    cursor: not-allowed;
}

#sort-select option {
    color: #111;
    background: #fff;
}

@media screen and (max-width: 768px) {
    #sort-select {
        padding: 10px 42px 10px 14px;
        min-width: 140px;

    }
}

@media screen and (max-width: 768px) {
    .soutenez-nous {
        p {
            font-size: 13px;
            padding: 0px 10px 0px 10px;
        }

        h2 {
            margin: 0;
            margin-top: 20px;
        }
    }

    .gen-afiliate-link-div {
        max-width: 300px;
    }

    .gen-afiliate-link-link,
    .gen-afiliate-link-result {
        width: 250px;
        padding: 10px 14px;
        margin-bottom: 18px;
        font-size: 15px;
    }

    .btn-amzn-link {
        width: 300px;
    }

    .gen-afiliate-link-btn {
        padding: 10px;
        padding: 8px 16px;
        font-size: 12px;
        width: 100px;
    }

    .screen-img-extra {
        max-width: 350px;
    }

    .extra-product-carte {
        margin: 0;
    }
}

.discount-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    background: red;
    color: white;
    font-size: 14px;
    font-weight: bold;
    padding: 5px 8px;
    border-radius: 50px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.product-img {
    position: relative;
    /* Nécessaire pour placer le badge dans le coin */
}