/* ============================================
   PLAN & VASQUE - Global Design System
   Palette sombre / or
   ============================================ */

:root {
    --pv-bg-primary: #0d0d0d;
    --pv-bg-secondary: #1a1a1a;
    --pv-bg-card: #1e1e1e;
    --pv-gold: #FFE1B8;
    --pv-gold-hover: #ffd699;
    --pv-white: #FFFFFF;
    --pv-text-primary: #FFFFFF;
    --pv-text-secondary: rgba(255, 255, 255, 0.7);
    --pv-border: rgba(255, 255, 255, 0.15);
    --pv-font-logo: 'Cormorant Garamond', serif;
    --pv-font-body: 'Montserrat', sans-serif;
}

/* === FONTS === */

@font-face {
    font-family: 'Futura Std';
    src: url(../fonts/futura-std/FuturaStdMedium.otf);
}

@font-face {
    font-family: 'Futura Hv BT';
    src: url(../fonts/futura-std/FuturaStdHeavy.otf);
}

body {
    font-family: 'Montserrat', 'Futura Std', sans-serif;
    background-color: var(--pv-bg-primary);
    color: var(--pv-text-primary);
}

/* Marbre en haut avec gradient fondu vers noir */
#main-page-content::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 250px;
    background: url('../img/marble-bg.jpg') center top / cover no-repeat;
    -webkit-mask-image: linear-gradient(to bottom, black, transparent);
    mask-image: linear-gradient(to bottom, black, transparent);
    z-index: 1;
    pointer-events: none;
}

/* Marbre en bas avec gradient fondu depuis noir */
#wrapper::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 350px;
    background: url('../img/marble-bg.jpg') center bottom / cover no-repeat;
    -webkit-mask-image: linear-gradient(to top, black, transparent);
    mask-image: linear-gradient(to top, black, transparent);
    /* z-index: 3; */
    pointer-events: none;
}

.page #wrapper::after {
    z-index: -1;
}

/* .page-cms #wrapper::after {
    z-index: 3;
} */

#wrapper {
    flex-grow: 1;
    position: relative;
}

.mobile-menu__content {
    height: 100%;
}

#main-page-content {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.title-section, h2 {
    font-family: 'Futura Hv BT';
}

/* === LOGO === */

.pv-logo {
    display: flex;
    align-items: center;
    gap: 4px;
    text-decoration: none;
}

.pv-logo:hover {
    text-decoration: none;
}

.pv-logo-plan, .pv-logo-vasque {
    font-family: var(--pv-font-logo);
    font-size: 24px;
    font-weight: 400;
    color: var(--pv-white);
    letter-spacing: 2px;
}

.pv-logo-amp {
    font-family: var(--pv-font-logo);
    font-size: 44px;
    font-weight: 300;
    color: var(--pv-gold);
    line-height: 1;
}

/* === HEADER LAYOUT === */

.pv-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 64px;
}

.pv-header-left,
.pv-header-right {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    min-width: 100px;
}

.pv-header-right {
    justify-content: flex-end;
    gap: 24px;
}

/* Uniformiser taille icônes header (29x29) */
.pv-header-right svg {
    width: 29px !important;
    height: 29px !important;
}

.pv-header-right .header-btn {
    display: flex;
    align-items: center;
}

.pv-header-right .header-btn-w {
    padding: 0 !important;
}

.pv-header-right #ps-shoppingcart-wrapper {
    padding: 0 !important;
}

/* Cacher les labels texte des icônes */
.pv-header-right .header-btn .title,
.pv-header-right .header-btn .info-wrapper {
    display: none;
}

.pv-header-center {
    flex: 1;
    display: flex;
    justify-content: center;
}

.pv-menu-btn {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.pv-menu-btn img {
    width: 29px;
    height: 29px;
}

/* Hide default warehouse header elements we don't need */
.pv-header .header-custom-html,
.pv-header #_desktop_iqitmegamenu {
    display: none;
}

/* Cart icon in header */
.pv-header #ps-shoppingcart-wrapper .shopping-cart-icon,
.pv-header #ps-shoppingcart-wrapper i {
    color: var(--pv-white);
    font-size: 24px;
}

.pv-header #ps-shoppingcart-wrapper .cart-products-count-btn {
    background: var(--pv-gold);
    color: var(--pv-bg-primary);
}

@media (max-width: 991px) {
    .pv-header-inner {
        padding: 12px 32px;
    }

    .pv-header-right {
        gap: 16px !important;
    }

    .pv-header-right svg {
        width: 24px !important;
        height: 24px !important;
    }

    .pv-logo-plan, .pv-logo-vasque {
        font-size: 18px !important;
        letter-spacing: 1px !important;
    }

    .pv-logo-amp {
        font-size: 32px !important;
    }
}

@media (max-width: 575px) {
    .pv-header-inner {
        padding: 10px 16px;
    }

    .pv-header-right {
        gap: 12px !important;
    }

    .pv-header-right svg {
        width: 22px !important;
        height: 22px !important;
    }

    .pv-menu-btn img {
        width: 24px !important;
        height: 24px !important;
    }

    .pv-logo-plan, .pv-logo-vasque {
        font-size: 14px !important;
        letter-spacing: 0.5px !important;
    }

    .pv-logo-amp {
        font-size: 24px !important;
    }

    .pv-header-right .pv-header-icon:not(.ps-shoppingcart) {
        display: none;
    }
}

/* === HOMEPAGE SLIDER === */

.homepage-slider .swiper-wrapper {
    height: 830px;
}

.homepage-slider .swiper-slide-inner {
    height: 100%;
}

.homepage-slider img {
    height: 100%;
    object-fit: cover;
}

.title-slider .elementor-row {
    flex-direction: column;
}

.title-slider .elementor-column {
    width: 100% !important;
}

/* === BUTTONS === */

.button-red a {
    border: 1px solid var(--pv-gold);
    background-color: var(--pv-gold);
    color: var(--pv-bg-primary);
    font-size: 1rem !important;
    font-weight: 400;
    line-height: 1.5rem;
}

.button-white a {
    border: 1px solid var(--pv-white);
    background-color: transparent;
    color: var(--pv-white);
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
}

.button-white-2 a {
    border: 1px solid var(--pv-white);
    background-color: var(--pv-white);
    color: var(--pv-bg-primary);
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
}

.button-white-3 a {
    border: none;
    background-color: transparent;
    color: var(--pv-white);
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
}

.button-white-3 a:active, .button-white-3 a:focus, .button-white-3 a:active span {
    background: none !important;
    color: var(--pv-gold) !important;
}

.button-white-4 a {
    border: none;
    background-color: transparent;
    color: var(--pv-white);
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
}

.button-white-3 a::after {
    content: '\203A';
    font-size: 24px;
    vertical-align: bottom;
    margin-left: 10px;
}

.download-button a::after {
    content: url('../../img/download.svg');
    font-size: 24px;
    vertical-align: bottom;
    margin-left: 10px;
}

.button-arrow-red a::after {
    color: var(--pv-gold);
}

#header-user-btn, #ps-shoppingcart-wrapper, #header-search-btn {
    display: flex;
    align-items: center;
}

.button-red-2 {
    border: 1px solid var(--pv-gold);
    text-align: center;
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 8px;
    padding-bottom: 8px;
}

.button-red-2 a {
    background-color: transparent;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    color: var(--pv-gold) !important;
}

.button-red a:hover, .button-white a:hover, .button-white-2 a:hover {
    border-color: var(--pv-gold);
    background-color: transparent;
    color: var(--pv-gold);
}

.button-red-2:hover {
    border-color: var(--pv-gold);
    background-color: var(--pv-gold);
}

.button-red-2:hover a {
    color: var(--pv-bg-primary) !important;
}

.button-white-3 a:hover {
    color: var(--pv-gold);
    background: transparent;
}

/* === LAYOUT === */

.absolute-container {
    position: absolute;
    width: 100%;
    z-index: 2;
    height: 100%;
    display: flex;
    align-items: center;
}

.button-slider-container .elementor-widget-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

/* === SECTIONS === */

.title-section, .title-section h2 {
    font-weight: 400;
    color: var(--pv-text-primary);
    font-size: 48px;
    line-height: 57.6px;
}

.text-section {
    color: var(--pv-text-secondary);
    font-size: 18px;
    line-height: 27px;
    font-weight: 400;
}

.display-row .elementor-widget-wrap {
    display: flex;
    gap: 15px;
}

/* === FAQ / TOGGLE === */

.homepage-faq .elementor-toggle-title {
    border-bottom: 1px solid rgba(255, 225, 184, 0.3);
}

.homepage-faq .elementor-toggle-title::after {
    content: url('../../img/arrow.svg');
    vertical-align: middle;
    float: inline-end;
}

.homepage-faq .elementor-toggle {
    border-top: 1px solid rgba(255, 225, 184, 0.3);
}

.homepage-faq .elementor-toggle-icon {
    display: none !important;
}

.image-100 img {
    width: 100%;
}

/* === FOOTER === */

#footer {
    background-color: var(--pv-bg-primary);
}

#footer-container-main {
    padding: 80px 15px 48px;
    /* background-color: var(--pv-bg-primary); */
    color: var(--pv-text-secondary);
    border-top: 1px solid var(--pv-border);
}

#footer-container-main > .container > .row:nth-child(2) {
    gap: 64px;
}

/* --- Contact block --- */

.block-iqitcontactpage .logo {
    margin-bottom: 40px;
}

.block-iqitcontactpage .logo svg {
    opacity: 0.9;
    transition: opacity 0.3s ease;
}

.block-iqitcontactpage .logo:hover svg {
    opacity: 1;
}

.footer-container .title-part {
    font-family: 'Futura Hv BT', 'Montserrat', sans-serif;
    font-weight: 650;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--pv-gold);
    margin-bottom: 8px;
}

.footer-container .contact-rich .part {
    margin-bottom: 24px;
}

.footer-container .contact-rich .part .data {
    font-size: 14px;
    line-height: 22px;
    color: var(--pv-text-secondary) !important;
}

.footer-container .contact-rich .part .data a {
    text-decoration: none;
    color: var(--pv-text-secondary) !important;
    transition: color 0.2s ease;
}

.footer-container .contact-rich .part .data a:hover {
    color: var(--pv-gold);
}

/* --- Social links --- */

.block-social-links .block-content {
    margin-top: 8px;
}

.social-links._footer {
    display: flex;
    gap: 12px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.social-links._footer li {
    padding: 0;
}

.social-links._footer li a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--pv-border);
    border-radius: 50%;
    color: var(--pv-gold) !important;
    font-size: 15px;
    transition: all 0.3s ease;
}

.social-links._footer li a i {
    color: var(--pv-gold) !important;
}

.social-links._footer li a:hover {
    border-color: var(--pv-gold);
    color: var(--pv-gold);
    background-color: rgba(255, 225, 184, 0.08);
}

.social-links._footer li.tiktok a svg {
    width: 15px;
    height: 15px;
    fill: var(--pv-gold);
}

/* --- Link columns --- */

#footer-container-main .d-flex.flex-row {
    gap: 48px;
}

.block-links ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.block-links ul > li {
    margin-bottom: 10px;
}

.block-links ul > li a:before {
    display: none;
}

.block-links ul > li a {
    color: var(--pv-text-secondary);
    font-size: 14px;
    line-height: 22px;
    text-decoration: none;
    transition: color 0.2s ease;
    position: relative;
}

.block-links ul > li a:hover {
    color: var(--pv-gold);
}

.block-links .block-title span {
    font-family: 'Futura Hv BT', 'Montserrat', sans-serif;
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--pv-gold);
    font-weight: 650;
}

/* === CONTACT FORM === */

.contact-form label {
    color: var(--pv-text-primary);
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 16px;
    line-height: 24px;
}

.contact-form .form-control {
    background-color: #141413 !important;
    border: 1px solid #242424 !important;
    border-radius: 8px !important;
    padding: 12px 16px !important;
    color: var(--pv-text-primary) !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 300 !important;
    font-size: 16px !important;
    height: auto !important;
    box-shadow: none !important;
    outline: none !important;
}

.contact-form .form-control::placeholder {
    color: #3b3b3b !important;
}

.contact-form .form-control:focus {
    border-color: var(--pv-gold) !important;
    box-shadow: none !important;
}

.contact-form textarea {
    min-height: 160px;
}

.required-star {
    color: var(--pv-gold);
    margin-left: 2px;
}

.contact-form input.btn-elementor-send {
    background-color: var(--pv-gold) !important;
    border: none !important;
    border-radius: 8px !important;
    color: var(--pv-bg-primary) !important;
    width: 100%;
    padding: 20px 24px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    box-shadow: 0 0 45px rgba(0, 0, 0, 0.5);
    cursor: pointer;
}

.contact-form input.btn-elementor-send:hover {
    background-color: var(--pv-gold-hover) !important;
    color: var(--pv-bg-primary) !important;
}

/* Contact mobile */
@media (max-width: 767px) {
    .contact-form textarea {
        border: 1px solid #242424 !important;
        border-radius: 8px !important;
        padding: 12px 16px !important;
        min-height: 140px;
    }

    .contact-form label {
        font-size: 14px !important;
        margin-bottom: 0 !important;
    }

    .contact-form .form-group {
        margin-bottom: 8px !important;
    }
}

/* === CONFIGURATEUR === */

.page-home .configurateur-section {
    display: flex;
    flex-direction: row;
}

#swiper-configurateur .btn-link {
    color: var(--pv-gold);
    font-size: 18px;
    line-height: 27px;
    font-weight: 400;
    border-top: 2px solid var(--pv-gold);
    margin-left: 5px;
    margin-right: 5px;
    opacity: 0.3;
}

#swiper-configurateur .btn-link.active {
    opacity: 1;
}

#swiper-configurateur .btn-link:focus, #swiper-configurateur .btn-link:hover {
    text-decoration: none;
}

#swiper-configurateur .btn-link:hover {
    opacity: 1;
}

/* === FOOTER COPYRIGHTS === */

#footer-copyrights a {
    text-decoration: none;
    color: var(--pv-text-secondary);
    font-size: 13px;
    transition: color 0.2s ease;
}

#footer-copyrights a:hover {
    color: var(--pv-gold);
}

#footer-copyrights .container {
    border-top: 1px solid var(--pv-border);
    padding-top: 24px;
}

#footer-copyrights {
    padding-top: 0;
    padding-bottom: 32px;
    color: var(--pv-text-secondary);
    font-size: 13px;
}

/* === ABSOLUTE BACKGROUND === */

.absolute-background {
    background: var(--pv-gold);
    height: 100%;
    position: absolute;
    width: 100%;
    top: 20px;
    z-index: 0;
    left: -20px;
}

#swiper-configurateur {
    overflow: hidden;
}

/* === AVIS CLIENT === */

.avis-client .swiper-slide-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: var(--pv-text-primary);
}

.avis-client .slide-text {
    margin-left: 30%;
    margin-right: 30%;
    font-size: 24px;
    line-height: 34px;
    text-align: center;
    margin-top: 32px;
    margin-bottom: 32px;
}

.avis-client .slide-img {
    margin-bottom: 16px;
}

.avis-client .nom {
    font-weight: 650;
    font-size: 16px;
    line-height: 24px;
}

.avis-client .company {
    font-size: 16px;
    line-height: 24px;
}

.avis-client .swiper-button-next, .avis-client .swiper-button-prev {
    background-color: transparent;
    border-radius: 50%;
    border: 1px solid var(--pv-gold);
    color: var(--pv-gold);
    height: 48px;
    width: 48px;
    opacity: 1;
}

.avis-client .swiper-pagination-bullet-active {
    background: var(--pv-gold);
}

.avis-client .swiper-pagination-bullets {
    margin-top: 48px;
}

.avis-client .swiper-button-next::after {
    content: url('../../img/arrow-right.svg');
}

.avis-client .swiper-button-prev::after {
    content: url('../../img/arrow-left.svg');
}

/* === HEADER === */

/* Utiliser le mobile-header comme header unique (desktop + mobile) */
#mobile-header {
    display: block !important;
    border-bottom: none;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
}

/* Compenser le header absolute sur toutes les pages */
#header + #wrapper,
#header + .checkout-header + #wrapper {
    padding-top: 80px !important;
}

#desktop-header {
    display: none !important;
}

.header-nav {
    background-color: var(--pv-bg-secondary) !important;
    color: var(--pv-text-secondary);
}

.header-nav a {
    color: var(--pv-text-secondary) !important;
}

.header-nav a:hover {
    color: var(--pv-gold) !important;
}

/* Header layout — même structure que l'ancien desktop header */
.pv-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 64px;
}

.pv-header-left {
    display: flex;
    align-items: center;
    flex: 0 0 25%;
    position: static;
}

.pv-header-center {
    flex-grow: 1;
    display: flex;
    justify-content: center;
}

.pv-header-right {
    display: flex;
    align-items: center;
    flex: 0 0 25% !important;
    justify-content: flex-end;
    gap: 24px;
    flex: 0 0 auto;
}

/* Hamburger button */
.pv-menu-btn {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.pv-menu-btn img {
    width: 29px;
    height: 29px;
}

/* Uniformiser taille icônes header (29px) */
.pv-header-right svg {
    width: 29px !important;
    height: 29px !important;
}

.pv-header-right .header-btn {
    display: flex;
    align-items: center;
}

.pv-header-right .header-btn-w {
    padding: 0 !important;
}

.pv-header-icon {
    position: static;
}

/* Cacher les labels texte des icônes */
.pv-header-right .header-btn .title,
.pv-header-right .header-btn .info-wrapper,
.pv-header-right .m-nav-btn > span:not(.cart-products-count-btn) {
    display: none;
}

/* Panier */
.pv-header-right #mobile-cart-toogle {
    position: relative;
    display: flex;
    align-items: center;
}

#mobile-header .header-cart-btn-w .m-nav-btn > span {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: var(--pv-gold) !important;
    color: var(--pv-bg-primary) !important;
    position: absolute;
    top: -5px;
    right: 0px;
    font-size: 10px;
    min-width: 16px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    border-radius: 50%;
    padding: 0 4px;
    font-weight: 700;
}



/* Cacher le desktop menu horizontal */
#mobile-header #iqitmegamenu-wrapper,
#mobile-header .iqitmegamenu-wrapper,
#mobile-header .iqitmegamenu {
    display: none !important;
}

/* Drawer push : appliquer les mêmes styles au #_desktop_iqitmegamenu-mobile */
.col-mobile-menu-push #_desktop_iqitmegamenu-mobile,
.col-mobile-menu-side #_desktop_iqitmegamenu-mobile {
    display: block !important;
    height: 100vh;
    position: fixed;
    z-index: 5005;
    top: 0;
    left: 0;
    width: 352px;
    -webkit-transform: translate3d(-115%, 0, 0);
    transform: translate3d(-115%, 0, 0);
    transition: transform 0.4s;
    background: transparent !important;
    overflow-y: auto;
}

.col-mobile-menu-push.show #_desktop_iqitmegamenu-mobile,
.col-mobile-menu-side.show #_desktop_iqitmegamenu-mobile {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

/* En mobile, cacher le #_desktop_ et laisser responsive.js gérer via #_mobile_ */
@media (max-width: 991px) {
    .col-mobile-menu-push #_desktop_iqitmegamenu-mobile,
    .col-mobile-menu-side #_desktop_iqitmegamenu-mobile {
        display: none !important;
    }
}

/* Overlay quand le drawer desktop est ouvert */
.col-mobile-menu-push.show #mobile_menu_click_overlay,
.col-mobile-menu-side.show #mobile_menu_click_overlay {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 5004;
    background: rgba(0, 0, 0, 0.5);
}

@media (max-width: 767px) {
    .pv-header-inner {
        padding: 12px 20px;
    }
}

/* === BREADCRUMB === */

.breadcrumb {
    padding: 12px 15px !important;
    margin-bottom: 0px !important;
    margin-top: 0px !important;
    background: transparent !important;
    font-family: var(--pv-font-body);
    font-size: 13px;
    position: relative;
    z-index: 1;
}

.breadcrumb ol {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
}

.breadcrumb ol li {
    color: var(--pv-text-secondary) !important;
    font-weight: 400;
}

.breadcrumb ol li:last-child {
    font-weight: 800;
    color: var(--pv-text-primary) !important;
}

.breadcrumb ol li a,
.breadcrumb a {
    color: var(--pv-text-secondary) !important;
    text-decoration: none;
}

.breadcrumb ol li a:hover {
    color: var(--pv-gold) !important;
}

#wrapper .breadcrumb li::after {
    content: '›';
    margin: 0 8px;
    color: var(--pv-gold);
    font-size: 20px;
    vertical-align: middle;
    bottom: 2px;
    position: relative;
    font-weight: 900;
}

#wrapper .breadcrumb li:last-child::after {
    display: none;
}

/* === ICONS === */

.icone-mail p::before {
    content: url('../../img/mail.svg');
    vertical-align: top;
    margin-right: 16px;
}

.icone-maps p::before {
    content: url('../../img/maps.svg');
    vertical-align: top;
    margin-left: -40px;
    padding-right: 10px;
}

.icone-tel-2 p::before {
    content: url('../../img/tel-2.svg');
    vertical-align: top;
    margin-left: -40px;
    padding-right: 10px;
}

.icone-mag p::before {
    content: url('../../img/mag.svg');
    vertical-align: top;
    margin-left: -40px;
    padding-right: 10px;
}

.icone-tel p::before {
    content: url('../../img/tel.svg');
    vertical-align: top;
    margin-right: 16px;
}

/* === WRAPPER === */

#wrapper {
    padding-bottom: 0px !important;
    padding-top: 0px !important;
    border-bottom: 1px solid var(--pv-border);
    background-color: var(--pv-bg-primary);
}

#index #wrapper {
    padding-top: 0px !important;
}

#main .page-content {
    margin-bottom: 0px;
}

#content:has(.login-form), #content:has(.register-form) {
    margin-bottom: 1.5625rem;
}

/* === GRID / DISPLAY === */

.display-grid .elementor-row:not(.elementor-row .elementor-row) {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 1fr;
    gap: 24px;
}

.display-grid .elementor-row .elementor-column {
    width: 100%;
}

.display-grid .elementor-column .elementor-widget-wrap:not(.elementor-widget-wrap .elementor-widget-wrap),
.display-grid .elementor-column .elementor-section:first-of-type,
.display-grid .elementor-column .elementor-container {
    height: 100%;
}

.row-2-right {
    grid-row: 1 / 3;
    grid-column: 2;
}

.row-2-right .elementor-widget-wrap {
    display: flex;
    flex-direction: column;
}

.row-2-right .elementor-widget-image {
    flex-grow: 1;
}

.row-2-right .elementor-widget-image div {
    height: 100%;
}

.row-2-right img {
    height: 100%;
    object-fit: cover;
}

.row-2-left {
    grid-row: 1 / 3;
    grid-column: 1;
}

.image-cover div {
    height: 100%;
}

.image-cover img {
    object-fit: cover;
    height: 100%;
}

.col_2 {
    grid-column: 1 / 3;
}

/* === SERVICE PAGE GRID === */

.grid-service-page {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    color: var(--pv-text-primary);
    font-size: 16px;
    line-height: 24px;
}

.grid-service-page span {
    padding-top: 12px;
    padding-bottom: 12px;
    padding-left: 24px;
    padding-right: 24px;
    background-color: var(--pv-bg-card);
}

.grid-service-page span:nth-child(4n - 2), .grid-service-page span:nth-child(4n - 3) {
    background: var(--pv-bg-secondary);
}

.grid-service-page .title {
    font-weight: 600;
}

.icone-horloge p::before {
    content: url('../../img/horloge.svg');
    vertical-align: middle;
    margin-right: 8px;
}

.height-fit-content {
    height: fit-content;
}

.link-configurateur-header {
    margin-right: 32px;
}

.icone-arrow .elementor-button-content-wrapper::after {
    content: url('../../img/arrow-right-2.svg');
    top: 3px;
    position: relative;
}

.icone-arrow a:hover .elementor-button-content-wrapper::after {
    content: url('../../img/arrow-right-2-red.svg');
}

.icone-arrow .elementor-button-content-wrapper {
    display: flex;
    align-items: center;
}

.disabled {
    opacity: 0.3;
}

.disabled a {
    cursor: auto !important;
}

.mobile {
    display: none;
}

.block-links ul>li {
    margin-bottom: 1.4rem;
}

.contact-form-group-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.contact-form-group-container .form-group {
    flex: 1 0 calc(50% - 20px);
}

.psgdpr_consent_message {
    display: flex !important;
    align-items: center;
    gap: 16px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 16px;
    color: var(--pv-text-primary);
}

.psgdpr_consent_message span[style*="underline"] {
    color: var(--pv-gold) !important;
    font-weight: 500;
}

.link-service {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0px;
}

.link-service a {
    background: none;
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0px;
    left: 0px;
}

.link-service a:hover, .link-service a:active, .link-service a:focus {
    background: none !important;
}

.grid-service-page .red {
    padding: 0;
    color: var(--pv-gold);
    font-weight: 600;
    background: none !important;
}

.grid-service-page .note {
    display: flex;
    padding: 0;
}

.grid-service-page .note span {
    flex: 1 0 50%;
    background: inherit;
    border-color: var(--pv-border) !important;
}

.grid-service-page .note span:last-child {
    background: var(--pv-bg-card) !important;
    text-align: center;
}

.col-header-right .row {
    flex-wrap: nowrap;
}

/* === FIRST RESPONSIVE BREAKPOINT === */

@media (max-width: 767px) {
    .link-configurateur-header {
        margin-right: 15px;
    }

    .homepage-slider-container, .homepage-slider-container div {
        max-height: 638px;
    }

    .title-slider h2 {
        margin-bottom: 18px !important;
    }

    .grid-service-page .note span:last-child {
        display: none;
    }

    #swiper-configurateur .navigations > div {
        width: 100% !important;
    }

    #swiper-configurateur .swiper-slide {
        flex-wrap: wrap;
    }

    #swiper-configurateur .container {
        width: 100% !important;
        margin-bottom: 20px;
    }

    #swiper-configurateur .title-section, #swiper-configurateur .text-section, #swiper-configurateur .button-red {
        text-align: center;
    }

    .title-section, .title-section h2 {
        font-size: 36px;
        line-height: 44px;
    }

    .text-section {
        font-size: 14px;
        line-height: 21px;
    }

    .display-row .elementor-widget-wrap {
        justify-content: center;
    }

    .avis-client .swiper-button {
        display: none;
    }

    .avis-client .slide-text {
        margin-right: 0px;
        margin-left: 0px;
    }

    .image-full img {
        max-height: 387px;
        width: 100%;
        object-fit: cover;
    }

    .text-center-mobile p {
        text-align: center;
    }

    .absolute-background {
        display: none;
    }

    ._footer-copyrights-1 .row {
        flex-wrap: wrap;
        gap: 10px;
    }

    ._footer-copyrights-1 .row .w-50 {
        width: 100% !important;
        text-align: center !important;
    }

    #footer {
        margin-left: 24px;
        margin-right: 24px;
    }

    #footer-container-main {
        padding-top: 56px;
        padding-bottom: 32px;
    }

    #footer-container-main > .container > .row:nth-child(2) {
        flex-direction: column;
        gap: 40px;
    }

    #footer-container-main .d-flex.flex-row {
        flex-direction: column !important;
        gap: 32px;
    }

    .block-iqitcontactpage .logo {
        margin-bottom: 24px;
    }

    .social-links._footer {
        justify-content: center;
    }

    .mobile {
        display: block;
    }

    .desktop {
        display: none;
    }

    #footer .block-toggle > .block-content {
        display: block;
    }

    .icone svg {
        height: 24px;
    }

    .display-grid .elementor-row:not(.elementor-row .elementor-row) {
        grid-template-columns: repeat(1, auto);
        grid-template-rows: repeat(5, auto);
    }

    .col_2 {
        grid-column: auto;
    }

    .row-2-right {
        grid-column: auto;
        grid-row: auto;
    }

    .display-grid .column-grid .elementor-column {
        width: 50%;
    }

    .button-white-3 a {
        font-size: 12px !important;
        line-height: 18px;
    }

    .display-grid .column-grid {
        min-height: 280px;
        max-height: fit-content;
    }

    .button-white a {
        font-size: 12px;
        line-height: 18px;
    }

    .image-header-border img {
        border-radius: 0px 0px 8px 8px !important;
    }

    .grid-service-page {
        font-size: 12px;
        line-height: 18px;
    }

    .contact-form-group-container {
        gap: 0px;
    }

    .contact-form-group-container .form-group {
        flex: 1 0 100%;
    }

    .service-column .elementor-widget-wrap {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
    }

    .image-cover img {
        border-radius: 0px 0px 8px 8px !important;
    }

    .top img {
        border-radius: 8px 8px 0px 0px !important;
        max-height: 300px;
    }

    .products-grid .img-fluid {
        height: 200px !important;
    }

    .products-grid {
        margin-left: 25px !important;
        margin-right: 25px !important;
        gap: 25px;
    }

    #left-column {
        margin-left: 25px !important;
        margin-right: 25px !important;
        flex: 1;
    }

    .product-top-list-container {
        margin-bottom: 25px !important;
    }

    .thumbnail-container {
        max-height: 200px !important;
        height: 200px !important;
    }

    .product-quantity .qty .input-group {
        height: auto;
    }
}

/* === SIDEBAR / CATEGORY === */

#wrapper .block-title {
    font-size: 18px;
    border-bottom: solid 1px rgba(255, 225, 184, 0.3);
    color: var(--pv-text-primary);
}

.category-sub-menu a, .category-sub-link a {
    color: var(--pv-text-primary) !important;
    font-size: 16px;
}

.category-sub-menu a {
    padding-left: 0px !important;
}

.category-sub-menu .collapse, .category-sub-menu .collapsing {
    margin-top: 12px;
}

.category-sub-menu .collapse-icons i, .facet-dropdown i {
    color: var(--pv-gold);
    font-weight: 700;
    font-size: 18px;
}

.facet-dropdown .form-control {
    border-color: var(--pv-border);
    background-color: var(--pv-bg-secondary);
    color: var(--pv-text-primary);
}

#search_filters a, #search_filters p {
    color: var(--pv-text-primary);
    font-size: 16px !important;
}

.custom-checkbox .ps-shown-by-js, .custom-radio {
    margin-bottom: 4px;
}

.custom-radio {
    border-color: #565658;
    background: #141413;
    width: 18px;
    height: 18px;
}

.custom-checkbox input[type=checkbox] + span:not(.color) {
    background: #141413;
    border: 1px solid #565658;
    border-radius: 4px;
    width: 18px;
    height: 18px;
    min-width: 18px;
    flex-shrink: 0;
}

.custom-radio input[type=radio]:checked+span {
    background-image: url('../../img/check.svg');
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--pv-gold);
    width: 100%;
    height: 100%;
}

.custom-checkbox input[type=checkbox]:checked+span .checkbox-checked {
    background-image: url('../../img/check.svg');
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--pv-gold);
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    border-radius: 4px;
}

.custom-checkbox input[type=checkbox]:checked+span .checkbox-checked::before {
    content: "";
}

#active-search-filters {
    margin-top: 0px;
}

#js-product-list-top {
    margin-top: 0px;
    margin-bottom: 0px;
    border-top: none;
    border-bottom: none;
    padding-top: 0px;
    padding-bottom: 0px;
}

.product-top-list-container {
    color: var(--pv-text-primary);
    font-size: 16px;
}

.product-top-list-container .dropdown .form-control {
    border-color: var(--pv-border);
    background-color: var(--pv-bg-secondary);
    color: var(--pv-text-primary);
}

/* === PRODUCT MINIATURE CARD === */

.product-miniature {
    background-color: var(--pv-bg-card);
    border: none;
    transition: box-shadow 0.3s ease;
}

.product-miniature:hover {
    box-shadow: none !important;
}

.product-miniature:hover .thumbnail-container,
.product-miniature:hover .product-description,
.product-miniature:hover .product-functional-buttons,
.product-miniature:hover .product-add-cart {
    background-color: transparent !important;
    box-shadow: none !important;
    border-color: transparent !important;
}

.product-miniature:hover .h3.product-title a {
    color: var(--pv-gold) !important;
}

.product-miniature:hover .pv-btn-view-product {
    background-color: #5a4a38 !important;
}

.product-miniature:hover .thumbnail-container img {
    transform: scale(1.03);
    transition: transform 0.3s ease;
}

.thumbnail-container img {
    transition: transform 0.3s ease;
}

.products-grid .img-fluid {
    width: 100%;
    height: 280px;
    object-fit: contain;
}

.product-miniature-default .product-thumbnail img {
    margin: 0px;
    object-fit: contain;
}

.thumbnail-container {
    max-height: 280px;
    height: 280px;
    overflow: hidden;
    border-radius: 12px;
    background: #141413;
}

.thumbnail-container img {
    border: 1px solid #867762;
}

.product-miniature .product-description {
    padding: 20px 0 0 0;
}

.product-miniature .product-category-name {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--pv-text-secondary) !important;
    margin-bottom: 8px;
}

.product-flag.new {
    display: none;
}

#js-product-list {
    margin-bottom: 40px;
}

.pagination .page-list li:hover {
    border-color: var(--pv-gold);
}

.pagination .page-list li a:hover {
    color: var(--pv-gold);
}

.pagination .current a {
    opacity: 1;
    color: var(--pv-gold);
}

.h3.product-title {
    margin-bottom: 8px;
}

.h3.product-title a {
    color: var(--pv-text-primary) !important;
    font-size: 16px;
    font-weight: 650;
    line-height: 24px;
}

.h3.product-title a:hover {
    color: var(--pv-gold) !important;
}

.product-miniature-grid .product-price-and-shipping {
    margin-bottom: 16px;
}

.product-miniature-grid .product-price {
    color: var(--pv-gold);
    font-size: 18px;
    font-weight: 650;
    line-height: 27px;
}

.product-miniature .product-description-short {
    display: none;
}

.product-miniature .input-qty {
    display: none;
}

.product-miniature .btn-product-list.add-to-cart {
    width: 100%;
    font-size: 14px;
    font-weight: 600;
    color: var(--pv-gold) !important;
    background-color: transparent;
    border: 1px solid var(--pv-gold) !important;
    text-align: center;
    display: block;
    padding: 10px 16px;
    transition: all 0.2s ease;
    letter-spacing: 0.5px;
}

.product-miniature .btn-product-list.add-to-cart:hover {
    background-color: var(--pv-gold);
    color: var(--pv-bg-primary) !important;
}

.quick-view-custom {
    font-size: 14px;
    color: var(--pv-text-secondary) !important;
    border: none !important;
    border-top: 1px solid var(--pv-border) !important;
    text-align: center;
    display: block;
    margin-top: 8px;
    padding: 10px 16px;
    background-color: transparent;
    transition: all 0.2s ease;
}

.quick-view-custom:hover {
    color: var(--pv-gold) !important;
    background-color: transparent;
}

/* === ADD TO CART (PRODUCT PAGE) === */

.add-to-cart {
    font-size: 16px;
    color: var(--pv-bg-primary) !important;
    background-color: var(--pv-gold);
    border: 1px solid var(--pv-gold) !important;
    text-align: center;
    display: block;
    padding: 8px;
}

.add-to-cart:hover:not(.ws-dynamicprice-btn) {
    background-color: transparent;
    color: var(--pv-gold) !important;
}

/* === PRODUCT PAGE === */

#content-wrapper .product_header_container .page-title {
    font-family: 'Futura Hv BT';
    color: var(--pv-text-primary);
    font-size: 40px;
    line-height: 48px;
    font-weight: 400;
}

.product_header_container .product-price, .product_header_container .tax-shipping-delivery-label {
    color: var(--pv-gold);
    font-size: 24px;
    line-height: 33px;
    font-weight: 650;
}

.product-prices {
    display: flex;
    align-items: center;
    gap: 15px;
}

.product_header_container {
    border-bottom: none;
}

.product-information .product-description {
    color: var(--pv-text-secondary);
    font-size: 16px;
    line-height: 24px;
}

.product-quantity {
    display: flex;
    flex-direction: column;
}

.product-quantity .add-to-cart {
    width: 100%;
}

.product-quantity .label {
    color: var(--pv-text-primary);
    font-size: 16px;
}

.product-quantity .qty {
    padding-top: 5px;
}

.product-actions .iqit-accordion .title {
    border-bottom: none;
    border-top: 1px solid rgba(255, 225, 184, 0.3);
    font-size: 18px;
    font-weight: 650;
    padding-top: 15px;
    padding-bottom: 15px;
}

.product-actions .iqit-accordion .title a {
    color: var(--pv-text-primary);
}

.product-actions .iqit-accordion .content {
    border-bottom: none;
    color: var(--pv-text-secondary);
    font-size: 16px;
}

#productdaas-accordion i {
    color: var(--pv-gold);
}

/* === FOOTER CUSTOM BANNERS === */

.block-iqithtmlandbanners-html .block-title {
    display: none;
}

.block-iqithtmlandbanners-html .footer-custom {
    background-color: var(--pv-bg-secondary);
}

.block-iqithtmlandbanners-html .footer-custom .section {
    max-width: 1270px;
    margin: auto;
    padding-top: 112px;
    padding-bottom: 112px;
}

.block-iqithtmlandbanners-html .footer-custom .section .title {
    text-align: center;
    color: var(--pv-text-primary);
    font-size: 48px;
    font-weight: 400;
    font-family: 'Futura Hv BT';
    margin-bottom: 80px;
}

.block-iqithtmlandbanners-html .footer-custom .section .grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.block-iqithtmlandbanners-html .footer-custom .card {
    border: none;
    display: flex;
    align-items: center;
    flex-direction: column;
}

.block-iqithtmlandbanners-html .footer-custom .img {
    background-color: var(--pv-bg-card);
    height: 240px;
    width: 100%;
}

.block-iqithtmlandbanners-html .footer-custom .legend {
    margin-top: 32px;
    color: var(--pv-text-primary);
    font-size: 32px;
    font-weight: 650;
}

/* === CART / CHECKOUT === */

.cart-content-btn a, .cart-summary a, .cart-buttons a:first-child, #payment-confirmation button, #submit-login, #customer-form button[type=submit] {
    border: 1px solid var(--pv-gold);
    background-color: var(--pv-gold);
    color: var(--pv-bg-primary);
}

.cart-summary-products a {
    background-color: transparent;
    border: none;
}

.cart-content-btn a:hover, .cart-summary a:hover, .cart-buttons a:first-child:hover, #payment-confirmation button:hover, #submit-login:hover, #customer-form button[type=submit]:hover {
    background-color: transparent;
    color: var(--pv-gold);
    border-color: var(--pv-gold);
}

.cart-products-count-btn {
    background: var(--pv-gold);
    color: var(--pv-bg-primary);
}

.cart-summary-line {
    color: var(--pv-text-primary);
}

.cart-overview a {
    color: var(--pv-text-primary) !important;
}

.cart-overview .unit-price {
    color: var(--pv-text-secondary);
}

.cart-overview .product-price {
    color: var(--pv-gold);
}

.js-cart-line-product-quantity {
    color: var(--pv-text-primary);
}

.cart-summary-products {
    color: var(--pv-text-primary);
}

button.continue {
    background-color: var(--pv-gold);
    border: 1px solid var(--pv-gold);
    color: var(--pv-bg-primary);
}

button.continue:hover {
    background-color: transparent;
    border-color: var(--pv-gold);
    color: var(--pv-gold);
}

.h1.page-title {
    margin-top: 20px;
    color: var(--pv-text-primary);
}

.my-account-page-content-wrapper {
    margin-bottom: 60px !important;
}

/* === SECOND RESPONSIVE BREAKPOINT === */

@media (max-width: 767px) {
    .category-header .page-title {
        font-size: 43px;
        text-align: center;
    }

    .block-iqithtmlandbanners-html .footer-custom .section {
        padding-top: 80px;
        padding-bottom: 80px;
        padding-left: 25px;
        padding-right: 24px;
    }

    .block-iqithtmlandbanners-html .footer-custom .section .title {
        font-size: 40px;
    }

    .block-iqithtmlandbanners-html .footer-custom .section .grid {
        grid-template-columns: repeat(1, 1fr);
        gap: 50px;
    }

    .block-iqithtmlandbanners-html .footer-custom .legend {
        font-size: 25px;
    }

    #mobile-cart-toogle {
        position: relative;
    }

    .products.swiper-container, .swiper-default-carousel {
        overflow: hidden;
    }

    #content-wrapper .product_header_container .page-title {
        font-size: 35px;
    }

    .product_header_container .product-price {
        font-size: 20px;
    }

    .product_header_container .tax-shipping-delivery-label {
        font-size: 20px;
    }

    .category-header {
        margin-bottom: 60px;
    }
}

/* === MENU DRAWER === */

.pv-menu-drawer {
    background: #0d0d0d url('../img/marble-bg.jpg') left center / 100% 100% no-repeat !important;
    color: var(--pv-white);
    position: relative;
}

.pv-menu-drawer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to right, rgba(13, 13, 13, 0.3), #0d0d0d 60%);
    z-index: 0;
    pointer-events: none;
}

.pv-menu-drawer > * {
    position: relative;
    z-index: 1;
}

/* Header: logo + close */
.pv-menu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 28px 24px 28px 32px;
}

.pv-menu-header .pv-logo-plan,
.pv-menu-header .pv-logo-vasque {
    font-size: 20px;
}

.pv-menu-header .pv-logo-amp {
    font-size: 36px;
}

.pv-menu-close {
    background: none !important;
    border: none !important;
    padding: 0;
    cursor: pointer;
}

.pv-menu-close img {
    width: 29px;
    height: 29px;
}

/* Bloc connexion */
.pv-menu-login {
    padding: 0 27px;
    margin-bottom: 24px;
}

.pv-menu-login-link {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 16px;
    border: 1px solid #242424;
    border-radius: 8px;
    background: var(--pv-bg-primary);
    color: var(--pv-white) !important;
    text-decoration: none !important;
    font-family: var(--pv-font-body);
    font-weight: 300;
    font-size: 18px;
}

.pv-menu-login-link:hover {
    border-color: var(--pv-gold);
}

.pv-menu-login-link svg {
    flex-shrink: 0;
    width: 29px;
    height: 29px;
}

.pv-menu-login-link span {
    flex: 1;
}

.pv-menu-login-link .pv-menu-arrow {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
}

/* Liste du menu */
.pv-menu-list {
    padding: 0 43px !important;
    list-style: none;
}

/* Section label (ex: CONFIGURATION) */
.pv-menu-section-label {
    font-family: var(--pv-font-body) !important;
    font-weight: 300 !important;
    font-size: 14px !important;
    color: #d0d0d0 !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 0 0 24px 0;
    list-style: none;
}

/* Items du menu */
.pv-menu-item {
    margin-bottom: 0;
    padding: 0;
    list-style: none;
}

.pv-menu-link {
    font-family: var(--pv-font-body) !important;
    font-weight: 300 !important;
    font-size: 1.125rem !important;
    color: var(--pv-white) !important;
    text-decoration: none !important;
    padding: 12px 0 !important;
    display: block;
}

.pv-menu-link:hover {
    color: var(--pv-gold) !important;
}

/* Flèche des items */
.pv-menu-arrow-wrap {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.pv-menu-arrow-wrap img {
    width: 24px;
    height: 24px;
}

/* Séparateur doré */
.pv-menu-separator {
    list-style: none;
    padding: 20px 0;
}

.pv-menu-separator span {
    display: block;
    width: 30px;
    height: 1px;
    background-color: #3B3B3B;
}

/* CTA bottom */
.pv-menu-cta {
    padding: 0 24px 40px;
    flex-grow: 1;
}

.pv-menu-cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 20px 24px;
    background-color: var(--pv-gold) !important;
    color: var(--pv-bg-primary) !important;
    font-family: var(--pv-font-body);
    font-weight: 500;
    font-size: 1rem;
    border-radius: 40px;
    text-decoration: none !important;
    box-shadow: 0 0 45px rgba(0, 0, 0, 0.5);
    text-align: center;
}

.pv-menu-cta-btn:hover {
    opacity: 0.9;
    color: var(--pv-bg-primary) !important;
    text-decoration: none !important;
}

/* Cacher les éléments natifs qu'on remplace */
.pv-menu-drawer .mm-panel__header {
    display: none !important;
}

.pv-menu-drawer .mobile-menu__footer {
    display: none !important;
}

/* Submenu panel styling */
.pv-menu-drawer .mobile-menu__submenu--panel {
    background: var(--pv-bg-primary) !important;
}

.pv-menu-drawer .mobile-menu__submenu .mobile-menu__link {
    font-family: var(--pv-font-body) !important;
    font-weight: 300 !important;
    font-size: 16px !important;
    color: var(--pv-white) !important;
}

.pv-menu-drawer .mobile-menu__back-btn {
    color: var(--pv-white) !important;
}

/* === PAGE SDB (Plan vasque salle de bain) === */

.pv-sdb-subtitle .elementor-heading-title {
    font-family: 'Montserrat', sans-serif !important;
    font-style: italic !important;
    font-weight: 400 !important;
    font-size: 18px !important;
    color: var(--pv-white) !important;
    max-width: 304px;
    margin: 0 auto;
}

/* Titre de section vasque — espace avant le carousel */
.pv-sdb-section-title {
    margin-bottom: 48px !important;
}

/* Vasque carousel */
.pv-vasque-carousel {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.pv-vasque-carousel .swiper-container {
    width: 500px;
    overflow: hidden;
}

.pv-vasque-carousel .swiper-slide {
    display: flex;
    justify-content: center;
}

.pv-vasque-img {
    width: 500px !important;
    height: auto !important;
    display: block;
}

/* Selector: arrows + name + dots */
.pv-sdb-selector {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    width: 252px;
}

.pv-sdb-material {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 48px;
    width: 100%;
}

.pv-sdb-material-name {
    font-family: var(--pv-font-body);
    font-weight: 300;
    font-size: 16px;
    color: rgba(255, 255, 255, 0.8);
    text-align: center;
    width: 108px;
}

.pv-sdb-arrow {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
}

/* Flèche gauche retournée */
.pv-sdb-arrow-flip {
    transform: rotate(180deg);
}

.pv-sdb-arrow:hover svg path {
    fill: #FFFFFF;
}

/* Swiper pagination dots */
.pv-vasque-carousel .swiper-pagination {
    position: static !important;
    margin-top: 0;
}

/* Dots inactifs : cercle vide avec bordure grise */
.pv-vasque-carousel .swiper-pagination-bullet {
    width: 7px;
    height: 7px;
    background: transparent;
    border: 1px solid #565658;
    opacity: 1;
    border-radius: 50%;
    margin: 0 4px !important;
}

/* Dot actif : cercle plein blanc 80% */
.pv-vasque-carousel .swiper-pagination-bullet-active {
    background: rgba(255, 255, 255, 0.8);
    border-color: transparent;
}

/* CTA section */
.pv-sdb-cta-wrap {
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 4;
}

.pv-sdb-cta-wrap .pv-menu-cta-btn {
    width: fit-content;
}

@media (max-width: 767px) {
    .pv-vasque-carousel .swiper-container,
    .pv-vasque-img {
        width: 100% !important;
    }

    .pv-sdb-selector {
        width: 100%;
    }

    .pv-sdb-material {
        gap: 24px;
    }
}

.contact-form,
.page-cart #inner-wrapper,
.page-order #inner-wrapper,
.page-module-iqitsearch-searchiqit #inner-wrapper,
.page-order-confirmation #inner-wrapper,
.page-customer-account #inner-wrapper,
.page-cms #inner-wrapper {
    position: relative;
    z-index: 1;
}

/* === PAGES CATÉGORIE / BOUTIQUE === */

/* --- Category hero (BOUTIQUE + sous-titre + séparateur) --- */
.pv-category-hero {
    text-align: center;
    padding: 80px 0 80px;
}



.pv-category-hero-subtitle {
    font-family: var(--pv-font-body);
    font-size: 18px;
    font-weight: 400;
    font-style: italic;
    color: var(--pv-white);
    margin: 0 auto;
    max-width: 304px;
}

.pv-category-hero-separator {
    display: block;
    width: 65px;
    height: 1px;
    background-color: var(--pv-gold);
    margin: 16px auto 0;
}

/* --- Category header --- */
.category-header .page-title {
    font-family: var(--pv-font-body) !important;
    font-weight: 500 !important;
    font-size: 48px !important;
    color: var(--pv-white) !important;
    line-height: 1.2 !important;
}

.category-header {
    margin-bottom: 80px;
}

.page-category #inner-wrapper {
    position: relative;
    z-index: 4;
    margin-bottom: 40px;
}

.page-order h1.page-title,
.page-cart h1.page-title {
    color: white !important;
}

/* --- Titre section + recherche --- */
.product-top-list-container {
    color: var(--pv-text-primary) !important;
}

/* --- Sidebar filtres --- */
#left-column {
    color: var(--pv-text-primary);
}

#left-column .block-title {
    font-family: var(--pv-font-body) !important;
    font-weight: 600 !important;
    font-size: 24px !important;
    color: var(--pv-white) !important;
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

/* Lien effacer filtres */
#active-search-filters .js-search-filters-clear-all,
.facet-title .clear-all-filters {
    color: var(--pv-gold) !important;
    font-weight: 400;
}

/* Catégories dans sidebar */
.category-sub-menu a,
.category-sub-link a {
    color: var(--pv-text-primary) !important;
    font-family: var(--pv-font-body) !important;
    font-size: 16px !important;
}

.category-sub-menu .current a {
    color: var(--pv-gold) !important;
    font-weight: 600 !important;
}

/* Filtres - titres */
#search_filters .facet .facet-title,
#search_filters .facet .block-title {
    font-family: var(--pv-font-body) !important;
    font-weight: 600 !important;
    font-size: 18px !important;
    color: var(--pv-white) !important;
    border-top: 1px solid #242424 !important;
    border-bottom: none !important;
    padding: 20px 0 !important;
}

/* Filtres - chevron */
#search_filters .collapse-icons i,
#search_filters .facet-dropdown i {
    color: var(--pv-white) !important;
}

/* Filtres - checkboxes */
#search_filters .custom-checkbox input[type=checkbox] + span:not(.color) {
    background-color: #141413 !important;
    border-color: #565658 !important;
    border-radius: 4px !important;
    width: 18px !important;
    height: 18px !important;
}

#search_filters .custom-checkbox input[type=checkbox]:checked + span .checkbox-checked {
    background-color: var(--pv-gold) !important;
}

/* Filtres - radios */
#search_filters .custom-radio {
    background-color: #141413 !important;
    border-color: #565658 !important;
    width: 18px !important;
    height: 18px !important;
}

#search_filters .custom-radio input[type=radio]:checked + span {
    background-color: var(--pv-gold) !important;
}

/* Filtres - labels texte */
#search_filters a,
#search_filters p,
#search_filters label {
    color: var(--pv-white) !important;
    font-family: var(--pv-font-body) !important;
    font-size: 16px !important;
}

/* Filtres - dropdown */
#search_filters .facet-dropdown .form-control,
#search_filters select {
    background-color: #141413 !important;
    border-color: #242424 !important;
    color: var(--pv-white) !important;
    border-radius: 8px !important;
    padding: 16px !important;
}

/* --- Grille produits --- */

/* Forcer 3 colonnes au lieu de 4 */
.products-grid .js-product-miniature-wrapper:not(.product-carousel) {
    flex: 0 0 calc(33.333% - 32px) !important;
    max-width: calc(33.333% - 32px) !important;
    padding: 0 !important;
    margin-bottom: 48px !important;
    display: flex !important;
}

.products-grid .js-product-miniature-wrapper.product-carousel {
    flex: none !important;
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
}

.products-grid .product-miniature {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
}

.products-grid .product-miniature .product-description {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

.products-grid .product-miniature .product-add-cart {
    margin-top: auto !important;
}

.products-grid {
    gap: 0 48px !important;
}

/* Carte produit */
.product-miniature {
    background-color: transparent !important;
    border: none !important;
}

/* Image produit */
.thumbnail-container {
    border-radius: 8px !important;
    overflow: hidden !important;
    height: 218px !important;
    max-height: 218px !important;
    border-bottom: none !important;
}

.thumbnail-container img,
.products-grid .img-fluid {
    height: 218px !important;
    object-fit: cover !important;
    border-radius: 8px !important;
}

/* Description produit — titre + prix sur la même ligne */
.product-miniature .product-description {
    padding: 16px 0 0 0 !important;
}

/* Titre + prix côte à côte */
.product-miniature .product-description {
    padding: 16px 0 0 0 !important;
}

.product-miniature .product-category-name {
    display: none !important;
}

.product-miniature .h3.product-title {
    margin-bottom: 2px !important;
    flex-grow: 1;
}

.product-miniature .h3.product-title a {
    font-family: var(--pv-font-body) !important;
    font-weight: 600 !important;
    font-size: 18px !important;
    color: var(--pv-white) !important;
    line-height: 1.5 !important;
}

.product-miniature .h3.product-title a:hover {
    color: var(--pv-gold) !important;
}

/* Prix — une seule ligne à droite */
.product-miniature .product-price-and-shipping {
    margin-bottom: 16px !important;
    text-align: right;
}

.product-miniature .product-price-and-shipping a {
    color: var(--pv-gold) !important;
    text-decoration: none !important;
}

.product-miniature-grid .product-price,
.product-miniature .product-price {
    font-family: var(--pv-font-body) !important;
    font-weight: 500 !important;
    font-size: 20px !important;
    color: var(--pv-gold) !important;
    display: inline !important;
}

/* "À partir de" — petit, inline avant le prix */
.ws-dynamicprice-starting-label {
    font-size: 11px !important;
    color: #d0d0d0 !important;
    display: block !important;
    font-weight: 300 !important;
}

/* Valeur du prix — gold, gros */
.ws-dynamicprice-starting-value {
    font-family: var(--pv-font-body) !important;
    font-weight: 500 !important;
    font-size: 20px !important;
    color: var(--pv-gold) !important;
}

/* "TTC" — petit, discret */
.ws-dynamicprice-starting-tax {
    font-size: 11px !important;
    color: #d0d0d0 !important;
    font-weight: 300 !important;
}

/* Forcer l'affichage du bouton produit */
.products-grid .product-miniature .product-add-cart {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    background: transparent !important;
}

/* Bouton "Voir le produit" */
.pv-btn-view-product {
    background-color: #443626 !important;
    border: 1px solid #867762 !important;
    border-radius: 8px !important;
    color: var(--pv-white) !important;
    font-family: var(--pv-font-body) !important;
    font-weight: 400 !important;
    font-size: 16px !important;
    padding: 8px 20px !important;
    text-align: center !important;
    width: 100% !important;
    display: block !important;
    text-decoration: none !important;
}

.pv-btn-view-product:hover {
    background-color: #5a4a38 !important;
    color: var(--pv-white) !important;
    text-decoration: none !important;
}

/* Cacher description courte et quick view */
.product-miniature .product-description-short {
    display: none !important;
}

.quick-view-custom {
    display: none !important;
}

/* Tags filtres actifs */
.active-filter-title {
    color: var(--pv-white) !important;
}

.filter-block .btn {
    background-color: #443626 !important;
    border: none !important;
    color: var(--pv-white) !important;
    border-radius: 8px !important;
    font-family: var(--pv-font-body) !important;
    padding: 8px 16px !important;
}

.filter-block .btn .close {
    color: var(--pv-white) !important;
}

.filter-block .js-search-link {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Cacher le sélecteur nb par page */
.products-nb-per-page {
    display: none !important;
}

/* Tri — style "Trier par" sans bordure */
.products-sort-order .select-title,
.products-sort-order .form-control {
    color: var(--pv-white) !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    font-family: var(--pv-font-body) !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    display: flex;
    align-items: center;
    gap: 8px;
}

.products-sort-order .select-title i,
.products-sort-order .select-title .fa,
.products-sort-order .select-title .fa-angle-down,
.products-selection .products-sort-order i {
    color: var(--pv-gold) !important;
}

/* Cacher le nom de l'option sélectionnée, afficher "Trier par" */
.products-sort-order .select-title-name {
    display: none;
}

.products-sort-order .select-title::before {
    content: 'Trier par';
    color: var(--pv-white);
    font-family: var(--pv-font-body);
    font-size: 16px;
    font-weight: 400;
}

.products-sort-order .dropdown-menu,
.products-sort-nb-dropdown .dropdown-menu {
    background-color: #141413 !important;
    border: 1px solid #242424 !important;
    border-radius: 8px !important;
    padding: 8px 0 !important;
    min-width: 220px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4) !important;
}

.products-sort-order .dropdown-item,
.products-sort-nb-dropdown .dropdown-item {
    color: var(--pv-text-secondary) !important;
    font-family: var(--pv-font-body) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    padding: 10px 20px !important;
    transition: all 0.2s ease;
    background-color: transparent !important;
    border-bottom: none;
}

.products-sort-order .dropdown-item:hover,
.products-sort-nb-dropdown .dropdown-item:hover {
    color: var(--pv-white) !important;
    background-color: rgba(255, 255, 255, 0.05) !important;
}

.products-sort-order .dropdown-item.current,
.products-sort-nb-dropdown .dropdown-item.current {
    color: var(--pv-gold) !important;
    background-color: rgba(255, 225, 184, 0.08) !important;
}

/* Nombre d'articles */
.showing {
    color: var(--pv-text-secondary) !important;
    font-family: var(--pv-font-body) !important;
    font-size: 14px !important;
}

/* Quick view */
.quick-view-custom {
    border-top-color: var(--pv-border) !important;
}

/* Pagination */
.pagination a,
.pagination span {
    color: var(--pv-text-secondary) !important;
}

.pagination .current a {
    color: var(--pv-gold) !important;
}

.pagination .page-list li:hover {
    border-color: var(--pv-gold) !important;
}

/* Responsive grille catégorie */
@media (max-width: 991px) {
    .products-grid .js-product-miniature-wrapper:not(.product-carousel) {
        flex: 0 0 calc(50% - 24px) !important;
        max-width: calc(50% - 24px) !important;
    }
}

@media (max-width: 575px) {
    .products-grid .js-product-miniature-wrapper:not(.product-carousel) {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    .products-grid {
        gap: 0 0 !important;
    }
}

/* === PAGES AUTH (connexion / inscription) === */

.login-form,
.register-form {
    max-width: 600px;
    margin: 0 auto;
}

/* Titre page */
#authentication .page-title,
#identity .page-title {
    font-family: var(--pv-font-body) !important;
    font-weight: 600 !important;
    font-size: 32px !important;
    color: var(--pv-white) !important;
    text-align: center;
    margin-bottom: 40px !important;
}

/* Labels */
.login-form label,
.register-form label,
#authentication label {
    font-family: var(--pv-font-body) !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    color: rgba(255, 255, 255, 0.7) !important;
}

/* Inputs */
.login-form .form-control,
.register-form .form-control,
#authentication .form-control {
    background: #141413 !important;
    border: 1px solid #242424 !important;
    border-radius: 8px !important;
    color: var(--pv-white) !important;
    font-family: var(--pv-font-body) !important;
    font-size: 16px !important;
    padding: 12px 16px !important;
    height: auto !important;
}

.login-form .form-control:focus,
.register-form .form-control:focus,
#authentication .form-control:focus {
    border-color: var(--pv-gold) !important;
    box-shadow: none !important;
    outline: none !important;
}

.login-form .form-control::placeholder,
.register-form .form-control::placeholder {
    color: #3b3b3b;
}

/* Bouton voir mot de passe */
.login-form .input-group-append .btn,
#authentication .input-group-append .btn {
    background: #141413 !important;
    border: 1px solid #242424 !important;
    border-left: none !important;
    border-radius: 0 8px 8px 0 !important;
    color: rgba(255, 255, 255, 0.5) !important;
}

.login-form .input-group .form-control {
    border-radius: 8px 0 0 8px !important;
}

/* Mot de passe oublié */
.forgot-password a {
    color: var(--pv-gold) !important;
    font-family: var(--pv-font-body);
    font-size: 14px;
    text-decoration: none;
}

.forgot-password a:hover {
    color: var(--pv-white) !important;
}

/* Bouton connexion */
#submit-login,
#authentication .form-control-submit {
    background: var(--pv-gold) !important;
    border: 1px solid var(--pv-gold) !important;
    color: var(--pv-bg-primary) !important;
    font-family: var(--pv-font-body) !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    padding: 12px 24px !important;
    border-radius: 8px !important;
    width: 100%;
    transition: opacity 0.2s ease;
}

#submit-login:hover,
#authentication .form-control-submit:hover {
    opacity: 0.9;
}

/* Séparateur */
.login-form + hr,
#content hr {
    border-color: #242424 !important;
}

/* Lien "Pas de compte" */
.no-account a {
    color: var(--pv-gold) !important;
    font-family: var(--pv-font-body);
    font-size: 16px;
    text-decoration: none;
}

.no-account a:hover {
    color: var(--pv-white) !important;
}

.no-account {
    text-align: center;
    margin-top: 24px;
}

/* Commentaire champ (optionnel) */
.form-control-comment {
    color: rgba(255, 255, 255, 0.5) !important;
    font-size: 12px !important;
}

/* === MISC === */

.facebook i {
    background: none;
}

.gdpr_button .gdpr_btn_accept:hover {
    background-color: transparent !important;
    color: var(--pv-gold) !important;
}

.gdpr_button .gdpr_btn_decline:hover {
    background-color: transparent !important;
    border-color: var(--pv-gold) !important;
    color: var(--pv-gold) !important;
}

.counter_terre, .counter_foot, .counter_sandwich {
    text-align: center;
}

.counter_terre::after {
    content: ' %';
}

.image-configurateur img {
    max-height: 300px;
    object-fit: cover;
}

/* === GLOBAL DARK THEME OVERRIDES === */

/* Forms */
input, select, textarea {
    background-color: var(--pv-bg-secondary);
    color: var(--pv-text-primary);
    border-color: var(--pv-border);
}

/* Links */
a {
    color: var(--pv-text-primary);
}

a:hover {
    color: var(--pv-gold);
}

/* Tables */
table {
    color: var(--pv-text-primary);
}

/* Left column / sidebar */
#left-column {
    color: var(--pv-text-primary);
}

/* Category header */
.category-header .page-title {
    color: var(--pv-text-primary);
}

.category-header .category-description {
    color: var(--pv-text-secondary);
}

/* Checkout steps */
.checkout-step {
    color: var(--pv-text-primary);
}

.checkout-step .step-title {
    color: var(--pv-text-primary);
}

/* Alerts */
.alert-info {
    background-color: var(--pv-bg-secondary);
    color: var(--pv-text-primary);
    border-color: var(--pv-border);
}

.mobile-menu__tab {
    border-bottom: none;
}

@media (max-width: 991px) {
    .pv-menu-cta {
        flex-grow: inherit;
    }

    #footer-container-main a {
        justify-content: center;
    }

    #content > .elementor {
        margin-top: 50px;
    }

    .pv-category-hero {
        padding: 50px 0 50px;
    }

    #js-product-list {
        margin-bottom: 0px;
    }

    .pv-menu-login-link .pv-menu-arrow,
    .pv-menu-arrow-wrap img {
        width: 20px;
        height: 20px;
    }
}

/* Bouton s PDF */
.btn-devis-pdf {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid #FFE1B8;
    color: #FFE1B8 !important;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 400;
    padding: 8px 16px;
    border-radius: 8px;
    text-decoration: none !important;
    transition: all 0.2s ease;
    width: 100%;
    text-align: center;
    margin-top: 8px;
}

.btn-devis-pdf:hover {
    background: #FFE1B8;
    color: #0d0d0d !important;
    text-decoration: none !important;
}

/* --- Lightbox galerie CMS page 21 --- */
body.cms-id-21 .pv-gallery-grid img {
    cursor: zoom-in;
}

/* --- Carousels vasque cliquables (CMS page 22) --- */
body.cms-id-22 .pv-vasque-carousel .swiper-slide[data-url] {
    cursor: pointer;
}

/* --- reCAPTCHA v3 : masquer le badge sur les pages sans formulaire --- */

.grecaptcha-badge {
    visibility: hidden !important;
}

/* Page de contact (CMS ID 6 — /fr/content/6-contact) */
body.cms-id-6 .grecaptcha-badge,
/* Connexion / Inscription */
body.page-authentication .grecaptcha-badge,
/* Tunnel de commande */
body.page-order .grecaptcha-badge,
body.page-order-opc .grecaptcha-badge,
/* Réinitialisation mot de passe */
body.page-password .grecaptcha-badge,
/* Modification du compte */
body.page-identity .grecaptcha-badge,
/* Suivi commande invité */
body.page-guest-tracking .grecaptcha-badge {
    visibility: visible !important;
}
