/* ----------GLOBAL---------- */
@media (max-width: 1024px) {
    html {
        overflow-x: hidden;
    }
}

body {
    font-family: 'Open Sans', Arial, sans-serif;
    margin: 0;
    padding: 0;
    background: #FEFEFE;
    overflow-x: hidden;
}

html {
    scrollbar-gutter: stable;
}

body.welcome-newsletter-open {
    padding-right: calc(100vw - 100%);
}

@font-face {
    font-family: "Halo Handletter";
    src: url("fonts/HaloHandletter.otf") format("opentype");
    font-weight: 400;
    font-style: normal;
    font-display: block;
}

@font-face {
    font-family: "AmaticSC-Bold";
    src: url("fonts/AmaticSC-Bold.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: block;
}

/* ----------INSTANTS DU JARDIN---------- */

.instants-jardin {
    padding: 80px 0;
    background: #FEFEFE;
    position: relative;
}

.instants-container {
    max-width: 1400px;
    margin: auto;
    padding: 0 40px;
}

.instants-header {
    text-align: center;
    margin-bottom: 60px;
}

.instants-title {
    font-family: 'Halo Handletter', cursive;
    font-size: 42px;
    color: #2a2a2a;
    margin: 0 0 12px 0;
    font-weight: 400;
    letter-spacing: 0.02em;
}

.instants-subtitle {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 16px;
    color: #6f5338;
    margin: 0;
    font-weight: 400;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.instants-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 40px;
    margin-bottom: 60px;
}

.instant-card {
    position: relative;
    padding: 40px;
    background: #fafaf8;
    border: 1px solid #e8e4df;
    height: 280px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    transition: background 0.38s cubic-bezier(0.22, 1, 0.36, 1),
                border-color 0.38s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform, opacity;
}

.instant-card:hover {
    background: #f5f0eb;
    border-color: #ae7c3a;
    box-shadow: 0 14px 32px rgba(111, 83, 56, 0.13);
    transform: translateY(-6px);
}

.instant-card.is-reveal {
    opacity: 0;
    filter: blur(3px);
    transform: translate3d(var(--instant-offset-x, 0px), var(--instant-offset-y, 54px), 0)
               scale(0.965)
               rotate(var(--instant-rotate, 0deg));
    transition: transform 920ms cubic-bezier(0.18, 0.9, 0.23, 1),
                opacity 700ms ease,
                filter 700ms ease,
                background 0.38s cubic-bezier(0.22, 1, 0.36, 1),
                border-color 0.38s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.instant-card.is-reveal.is-visible {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0) scale(1) rotate(0deg);
    transition-delay: var(--instant-delay, 0ms), var(--instant-delay, 0ms), var(--instant-delay, 0ms), 0ms, 0ms, 0ms;
}

.instants-grid .instant-card:nth-child(1) {
    --instant-offset-x: -28px;
    --instant-offset-y: 58px;
    --instant-rotate: -2deg;
    --instant-delay: 40ms;
}

.instants-grid .instant-card:nth-child(2) {
    --instant-offset-x: 26px;
    --instant-offset-y: 66px;
    --instant-rotate: 1.8deg;
    --instant-delay: 110ms;
}

.instants-grid .instant-card:nth-child(3) {
    --instant-offset-x: -18px;
    --instant-offset-y: 62px;
    --instant-rotate: 1.1deg;
    --instant-delay: 180ms;
}

.instants-grid .instant-card:nth-child(4) {
    --instant-offset-x: 30px;
    --instant-offset-y: 68px;
    --instant-rotate: -1.7deg;
    --instant-delay: 250ms;
}

.instant-card h3 {
    font-family: 'Halo Handletter', cursive;
    font-size: 28px;
    color: #ae7c3a;
    margin: 0 0 12px 0;
    font-weight: 400;
}

.instant-card p {
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 14px;
    color: #5a5a5a;
    margin: 0;
    line-height: 1.6;
}

.instant-decoration {
    position: absolute;
    bottom: -20px;
    right: -20px;
    width: 100px;
    height: 100px;
    opacity: 0.08;
    pointer-events: none;
}

.instant-card-1 .instant-decoration {
    background: linear-gradient(135deg, #ae7c3a 25%, transparent 25%, transparent 75%, #ae7c3a 75%, #ae7c3a),
                linear-gradient(135deg, #ae7c3a 25%, transparent 25%, transparent 75%, #ae7c3a 75%, #ae7c3a);
    background-size: 20px 20px;
    background-position: 0 0, 10px 10px;
}

.instant-card-2 .instant-decoration {
    clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
    background: #6f5338;
}

.instant-card-3 .instant-decoration {
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    background: linear-gradient(45deg, #ae7c3a 25%, transparent 25%, transparent 75%, #ae7c3a 75%, #ae7c3a),
                linear-gradient(-45deg, #ae7c3a 25%, transparent 25%, transparent 75%, #ae7c3a 75%, #ae7c3a);
    background-size: 30px 30px;
}

.instant-card-4 .instant-decoration {
    border-radius: 50%;
    background: #ae7c3a;
}

.instants-divider {
    height: 1px;
    background: linear-gradient(to right, transparent, #d4c8c0, transparent);
    margin: 40px 0;
}

@media (prefers-reduced-motion: reduce) {
    .instant-card,
    .instant-card.is-reveal,
    .instant-card.is-reveal.is-visible {
        opacity: 1;
        filter: none;
        transform: none;
        transition: none;
    }
}

/* Responsive */
@media (max-width: 1024px) {
    .instants-jardin {
        padding: 60px 0;
    }

    .instants-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }

    .instant-card {
        height: 240px;
        padding: 30px;
    }

    .instants-title {
        font-size: 36px;
    }
}

@media (max-width: 640px) {
    .instants-jardin {
        padding: 40px 0;
    }

    .instants-container {
        padding: 0 20px;
    }

    .instants-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .instants-header {
        margin-bottom: 40px;
    }

    .instants-title {
        font-size: 28px;
    }

    .instants-subtitle {
        font-size: 13px;
    }

    .instant-card {
        height: auto;
        min-height: 200px;
    }
}

/* ----------PHILOSOPHIE---------- */

.gift-card-content .baner-deco {
    width: 25%;
    position: absolute;
    top: 25%;
    transform: translateY(-50%);
    opacity: 0.7;
    z-index: 0;
    pointer-events: none;
}

.gift-card-content .baner-deco img {
    width: 100%;
    height: auto;
    display: block;
}

.gift-card-content .baner-deco.left {
    left: 0;
    transform: translate(-61%, -50%);
}

.gift-card-content .baner-deco.right {
    right: 0;
    transform: translate(61%, -50%) scaleX(-1);
}

@media (max-width: 1024px) {
    .gift-card-content .baner-deco {
        width: 10%;
    }
}

@media (max-width: 768px) {
    .gift-card-content .baner-deco {
        display: none;
    }
}

.philosophie {
    --philosophie-bg-opacity: 0.7;
    background: #FEFEFE;
    padding: 88px 20px 19px;
    text-align: center;
    position: relative;
    overflow: visible;
    z-index: 1;
}

.philosophie::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    background-image: url('img/logo-berbere.webp');
    background-repeat: no-repeat;
    background-position: center;
    background-size: auto 100%;
    opacity: 0.06;
    z-index: 1;
    pointer-events: none;
}

.philosophie::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url('img/background-philosophie.png');
    background-repeat: no-repeat;
    background-position: center top 10px;
    background-size: 100% auto;
    opacity: 0;
    z-index: 0;
    pointer-events: none;
    transform: translateY(16px) scale(1.035);
    transform-origin: center top;
    will-change: transform, opacity;
    transition: opacity 1s ease, transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
}

body.philosophie-entered .philosophie::after {
    opacity: var(--philosophie-bg-opacity);
    transform: translateY(0) scale(1);
}

.philosophie.philosophie-entered::after {
    opacity: var(--philosophie-bg-opacity);
    transform: translateY(0) scale(1);
}

.philosophie.philosophie-entered h2,
.philosophie.philosophie-entered p {
    opacity: 1;
    transform: none;
    clip-path: inset(0 0 0 0);
    filter: blur(0);
}

.philosophie-container {
    position: relative;
    z-index: 2;
    max-width: 900px;
    margin: auto;
}

.philosophie h2 {
    font-family: "Open Sans", sans-serif;
    font-size: 48px;
    font-weight: 700;
    margin-top: -28px;
    margin-bottom: 40px;
    color: #454545;
    opacity: 0;
    transform: translateX(-26px);
    clip-path: inset(0 100% 0 0);
    filter: blur(3px);
    will-change: transform, opacity, clip-path, filter;
    transition: opacity 0.75s ease, transform 0.75s cubic-bezier(0.22, 1, 0.36, 1), clip-path 0.75s cubic-bezier(0.22, 1, 0.36, 1), filter 0.75s ease;
}

.philosophie p {
    font-family: "Open Sans", sans-serif;
    font-size: 18px;
    font-weight: 500;
    color: #000000;
    line-height: 1.6;
    margin-bottom: 15px;
    opacity: 0;
    transform: translateY(24px);
    clip-path: inset(0 0 100% 0);
    filter: blur(2px);
    will-change: transform, opacity, clip-path, filter;
    transition: opacity 0.65s ease, transform 0.65s cubic-bezier(0.22, 1, 0.36, 1), clip-path 0.65s cubic-bezier(0.22, 1, 0.36, 1), filter 0.65s ease;
}

body.philosophie-entered .philosophie h2 {
    opacity: 1;
    transform: translateX(0);
    clip-path: inset(0 0 0 0);
    filter: blur(0);
    transition-delay: 0.08s;
}

body.philosophie-entered .philosophie p {
    opacity: 1;
    transform: translateY(0);
    clip-path: inset(0 0 0 0);
    filter: blur(0);
}

@supports not (clip-path: inset(0 0 100% 0)) {
    .philosophie h2,
    .philosophie p {
        clip-path: none;
        filter: none;
        will-change: transform, opacity;
    }

    body.philosophie-entered .philosophie h2,
    body.philosophie-entered .philosophie p {
        clip-path: none;
        filter: none;
    }
}

body.philosophie-entered .philosophie p:nth-of-type(1) {
    transition-delay: 0.2s;
}

body.philosophie-entered .philosophie p:nth-of-type(2) {
    transition-delay: 0.33s;
}

body.philosophie-entered .philosophie p:nth-of-type(3) {
    transition-delay: 0.46s;
}

body.philosophie-entered .philosophie p:nth-of-type(4) {
    transition-delay: 0.59s;
}

body.philosophie-entered .philosophie p:nth-of-type(5) {
    transition-delay: 0.72s;
}

@media (prefers-reduced-motion: reduce) {
    .philosophie::after,
    body.philosophie-entered .philosophie::after {
        opacity: var(--philosophie-bg-opacity);
        transform: none;
        will-change: auto;
        transition: none;
    }

    .philosophie h2,
    .philosophie p,
    body.philosophie-entered .philosophie h2,
    body.philosophie-entered .philosophie p {
        opacity: 1;
        transform: none;
        clip-path: none;
        filter: none;
        will-change: auto;
        transition: none;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .philosophie h2 {
        font-size: 40px;
        margin-top: -18px;
        margin-bottom: 26px;
    }

    .philosophie p {
        font-size: 16px;
        line-height: 1.55;
        max-width: 72ch;
        margin-left: auto;
        margin-right: auto;
    }
}

/* ----------CAROUSEL PHILOSOPHIE SIDE IMAGES---------- */
.philosophie-side {
    position: absolute;
    top: 100%;
    transform: translateY(-120%);
    width: 260px;
    height: 400px;
    opacity: 0.9;
    z-index: 2;
}

.philosophie-side.left {
    left: calc(50% - 890px);
}

.philosophie-side.right {
    right: calc(50% - 890px);
}

.photo-stack {
    position: relative;
    width: 100%;
    height: 100%;
    animation: photoScroll 12s ease-in-out infinite;
}

.photo-card {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    background: none;
    border: 1px solid rgba(0, 0, 0, 0.6);
    border-radius: 16px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    cursor: pointer;
    pointer-events: auto;
    transition: transform 0.55s ease, box-shadow 0.55s ease, opacity 0.55s ease;
}

.photo-card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    filter: saturate(0.9) brightness(1.03);
}

.photo-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(rgba(255, 252, 248, 0.2), rgba(255, 252, 248, 0.14));
}

.photo-card-back {
    z-index: 0;
    opacity: 0.58;
}

.photo-card-middle {
    z-index: 1;
    opacity: 0.8;
}

.photo-slide {
    z-index: 2;
}

.photo-card:hover,
.photo-card:focus-visible {
    opacity: 1;
    box-shadow: 0 22px 55px rgba(0, 0, 0, 0.18);
}

.photo-card:focus-visible {
    outline: 2px solid rgba(0, 0, 0, 0.75);
    outline-offset: 4px;
}

.philosophie-side.left .photo-card-back {
    transform: translate(-66px, -60px) rotate(-12deg) scale(0.97);
}

.philosophie-side.left .photo-card-middle {
    transform: translate(60px, 52px) rotate(10deg) scale(0.985);
}

.philosophie-side.right .photo-card-back {
    transform: translate(66px, -60px) rotate(12deg) scale(0.97);
}

.philosophie-side.right .photo-card-middle {
    transform: translate(-60px, 52px) rotate(-10deg) scale(0.985);
}

.photo-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: none;
    border: none;
    padding: 0;
    opacity: 0;
    transform: scale(1.04);
    z-index: 2;
    border: 1px solid rgba(174, 123, 58, 0.42);
    border-radius: 10px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.26), 0 0 0 1px rgba(253, 254, 252, 0.65) inset;
    transition: opacity 1.25s ease, transform 5.6s ease;
    pointer-events: none;
    overflow: hidden;
}

.photo-slide img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.photo-slide.is-active {
    opacity: 1;
    transform: scale(1);
    pointer-events: auto;
    cursor: zoom-in;
}

@keyframes photoScroll {

    0% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-30px);
    }

    100% {
        transform: translateY(0);
    }

}

/* ----------CAROUSEL DES MARQUES---------- */
.brands-carousel-shell {
    --brands-motion-duration: 30s;
    position: relative;
    width: 48%;
    margin: 4em auto;
}

.brands-carousel-shell::before,
.brands-carousel-shell::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 44px;
    height: 44px;
    background: url('img/amazigh.png') center/contain no-repeat;
    transform: translateY(-50%);
    transform-origin: center;
    animation: spinAmazighUp var(--brands-motion-duration) linear infinite;
    opacity: 0.9;
    pointer-events: none;
}

@keyframes spinAmazighUp {
    from {
        transform: translateY(-50%) rotate(0deg);
    }

    to {
        transform: translateY(-50%) rotate(-360deg);
    }
}

.brands-carousel-shell::before {
    left: -56px;
}

.brands-carousel-shell::after {
    right: -56px;
    animation-direction: reverse;
}

.brands-carousel-vertical {
    --brands-point-size: 14px;
    --brands-border-color: rgba(191, 171, 152, 0.388);
    overflow: hidden;
    height: 3em;
    width: 100%;
    margin: 0;
    background: transparent;
    border-radius: 0;
    border: none;
    clip-path: polygon(var(--brands-point-size) 0,
            calc(100% - var(--brands-point-size)) 0,
            100% 50%,
            calc(100% - var(--brands-point-size)) 100%,
            var(--brands-point-size) 100%,
            0 50%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    cursor: pointer;
    transition: box-shadow 0.25s ease;
}

.brands-carousel-vertical::before,
.brands-carousel-vertical::after {
    content: "";
    position: absolute;
    pointer-events: none;
    clip-path: inherit;
}

.brands-carousel-vertical::before {
    inset: 0;
    background: var(--brands-border-color);
}

.brands-carousel-vertical::after {
    inset: 1px;
    background: #faf6f2;
}

.brands-carousel-vertical:hover {
    --brands-border-color: rgba(122, 92, 62, 0.55);
    box-shadow: 0 0 0 1px rgba(122, 92, 62, 0.28) inset;
}

.brands-carousel-vertical:hover::after {
    background: rgba(122, 92, 62, 0.14);
}

.brands-track-vertical {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    animation: scrollBrandsVertical var(--brands-motion-duration) linear infinite;
    font-family: 'Open Sans', Cali, sans-serif;
    font-size: 1.1em;
    color: #7a5c3e;
    align-items: center;
    gap: 0.5em;
    user-select: none;
}

@keyframes scrollBrandsVertical {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(-50%);
    }
}

.brands-track-vertical span {
    white-space: nowrap;
}

@media (max-width: 768px) {

    .brands-carousel-shell::before,
    .brands-carousel-shell::after {
        display: none;
    }
}

.brands-modal-overlay {
    position: fixed;
    inset: 0;
    background:
        radial-gradient(circle at 50% 48%, rgba(255, 250, 244, 0.14), rgba(255, 250, 244, 0) 34%),
        linear-gradient(rgba(18, 12, 8, 0.6), rgba(18, 12, 8, 0.64));
    display: grid;
    place-items: center;
    padding: 16px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.28s ease, visibility 0.28s ease;
    z-index: 5100;
    overflow: hidden;
    isolation: isolate;
    backdrop-filter: blur(7px);
}

.brands-modal-overlay::before,
.brands-modal-overlay::after {
    content: "";
    position: absolute;
    left: 50%;
    pointer-events: none;
}

.brands-modal-overlay::before {
    top: 50%;
    width: min(720px, calc(100vw - 56px));
    height: min(520px, calc(100vh - 64px));
    transform: translate(-50%, -50%) scale(0.92);
    background:
        linear-gradient(90deg, rgba(194, 167, 132, 0.09) 0 1px, transparent 1px),
        linear-gradient(rgba(194, 167, 132, 0.09) 0 1px, transparent 1px);
    background-size: 28px 28px;
    opacity: 0;
    transition: transform 0.45s ease, opacity 0.35s ease;
    z-index: -1;
}

.brands-modal-overlay::after {
    bottom: calc(50% - 180px);
    width: 2px;
    height: 160px;
    transform: translateX(-50%) scaleY(0);
    transform-origin: bottom;
    background: linear-gradient(180deg,
            rgba(194, 167, 132, 0),
            rgba(194, 167, 132, 0.8) 40%,
            rgba(194, 167, 132, 0));
    opacity: 0;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease;
    z-index: -1;
}

.brands-modal-overlay.is-open {
    opacity: 1;
    visibility: visible;
}

.brands-modal-overlay.is-open::before {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.5;
}

.brands-modal-overlay.is-open::after {
    transform: translateX(-50%) scaleY(1);
    opacity: 0.75;
}

.brands-modal {
    width: min(620px, 92vw);
    max-height: min(74vh, 760px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background:
        linear-gradient(180deg, rgba(255, 252, 247, 0.985), rgba(248, 241, 232, 0.97)),
        linear-gradient(90deg, rgba(122, 92, 62, 0.05) 0 1px, transparent 1px),
        linear-gradient(rgba(122, 92, 62, 0.05) 0 1px, transparent 1px),
        radial-gradient(circle at 50% 24%, rgba(255, 255, 255, 0.65), rgba(255, 255, 255, 0) 46%);
    background-size: auto, 22px 22px, 22px 22px, auto;
    border: 3px solid rgba(122, 92, 62, 0.2);
    border-radius: 0;
    box-shadow: 0 28px 80px rgba(14, 8, 4, 0.28);
    position: relative;
    padding: 20px 20px 18px;
    font-family: 'Open Sans', Arial, sans-serif;
    opacity: 0;
    transform: translateY(54px) scale(0.88);
    transform-origin: center bottom;
    transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease, box-shadow 0.35s ease;
    clip-path: polygon(18px 0,
            calc(100% - 18px) 0,
            100% 18px,
            100% calc(100% - 18px),
            calc(100% - 18px) 100%,
            18px 100%,
            0 calc(100% - 18px),
            0 18px);
    isolation: isolate;
}

.brands-modal::before,
.brands-modal::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.brands-modal::before {
    inset: 8px;
    border: 1px solid rgba(122, 92, 62, 0.16);
    clip-path: polygon(12px 0,
            calc(100% - 12px) 0,
            100% 12px,
            100% calc(100% - 12px),
            calc(100% - 12px) 100%,
            12px 100%,
            0 calc(100% - 12px),
            0 12px);
    z-index: -1;
}

.brands-modal::after {
    top: 16px;
    left: 50%;
    width: 236px;
    height: 20px;
    transform: translateX(-50%);
    background:
        url('img/amazigh.png'),
        url('img/amazigh.png'),
        linear-gradient(135deg, transparent 0 31%, rgba(122, 92, 62, 0.22) 31% 35%, transparent 35% 65%, rgba(122, 92, 62, 0.22) 65% 69%, transparent 69% 100%),
        linear-gradient(45deg, transparent 0 31%, rgba(122, 92, 62, 0.22) 31% 35%, transparent 35% 65%, rgba(122, 92, 62, 0.22) 65% 69%, transparent 69% 100%);
    background-position: left 10px center, right 10px center, center, center;
    background-size: 18px 18px, 18px 18px, 44px 18px, 44px 18px;
    background-repeat: no-repeat, no-repeat, repeat-x, repeat-x;
    opacity: 0.75;
}

.brands-modal-overlay.is-open .brands-modal {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* Corps scrollable de la modale — scrollbar cachée */
.brands-modal-body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    scrollbar-width: none;
}

.brands-modal-body::-webkit-scrollbar {
    display: none;
}

/* Boutons de scroll flèches */
.brands-modal-scroll-controls {
    position: absolute;
    right: 18px;
    bottom: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    z-index: 10;
}

.brands-modal-scroll-btn {
    width: 40px;
    height: 40px;
    background: rgba(255, 252, 247, 0.88);
    border: 1px solid rgba(122, 92, 62, 0.24);
    cursor: pointer;
    color: #6f5338;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    user-select: none;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
    clip-path: polygon(7px 0, calc(100% - 7px) 0, 100% 7px, 100% calc(100% - 7px), calc(100% - 7px) 100%, 7px 100%, 0 calc(100% - 7px), 0 7px);
    backdrop-filter: blur(4px);
}

.brands-modal-scroll-btn:hover {
    background: rgba(207, 175, 138, 0.9);
    color: #3f2f20;
    border-color: rgba(111, 83, 56, 0.62);
}

.brands-modal-scroll-btn:active {
    background: rgba(161, 128, 92, 0.94);
    color: #fff7ed;
    border-color: rgba(90, 64, 40, 0.75);
}

.brands-modal-scroll-btn.is-hidden {
    opacity: 0;
    pointer-events: none;
}

.brands-modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 42px;
    height: 42px;
    background: rgba(255, 252, 247, 0.72);
    border: 1px solid rgba(122, 92, 62, 0.16);
    cursor: pointer;
    color: #3A3A3A;
    padding: 8px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    transition: color 0.2s ease, transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
    box-sizing: border-box;
    clip-path: polygon(10px 0,
            calc(100% - 10px) 0,
            100% 10px,
            100% calc(100% - 10px),
            calc(100% - 10px) 100%,
            10px 100%,
            0 calc(100% - 10px),
            0 10px);
}

.brands-modal-close:hover {
    color: #AE7B3A;
    background: rgba(255, 248, 239, 0.92);
    border-color: rgba(174, 123, 58, 0.32);
    transform: rotate(90deg);
}

.brands-modal-head {
    text-align: center;
    margin: 0 0 16px;
    padding: 12px 38px 10px;
}

.brands-modal-head h2 {
    margin: 0;
    font-family: 'Open Sans', Arial, sans-serif;
    font-size: clamp(1.1rem, 2vw, 1.38rem);
    font-weight: 700;
    color: #392b1d;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.brands-modal-head p {
    margin: 6px 0 0;
    font-size: 0.76rem;
    color: #776757;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.brands-modal-grid {
    list-style: none;
    margin: 0;
    padding: 1px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: rgba(122, 92, 62, 0.14);
    clip-path: polygon(14px 0,
            calc(100% - 14px) 0,
            100% 14px,
            100% calc(100% - 14px),
            calc(100% - 14px) 100%,
            14px 100%,
            0 calc(100% - 14px),
            0 14px);
}

.brands-modal-item {
    background: rgba(255, 252, 247, 0.96);
    border: 0;
    padding: 12px 10px;
    min-height: 48px;
    text-align: center;
    font-weight: 700;
    font-size: 0.84rem;
    color: #4a3c2f;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    display: grid;
    place-items: center;
    user-select: none;
    transition: background 0.22s ease, color 0.22s ease, transform 0.22s ease;
}

.brands-modal-item:hover {
    background: rgba(243, 234, 224, 0.98);
    color: #2f261d;
    transform: translateY(-1px);
}

@media (max-width: 820px) {
    .brands-modal {
        width: min(540px, 92vw);
        padding: 18px 16px 16px;
    }
}

@media (max-width: 520px) {
    .brands-modal {
        padding: 16px 12px 12px;
    }

    .brands-modal::after {
        width: 180px;
        background-position: left 8px center, right 8px center, center, center;
        background-size: 14px 14px, 14px 14px, 30px 18px, 30px 18px;
    }

    .brands-modal-head {
        padding: 14px 34px 10px;
    }

    .brands-modal-head h2 {
        font-size: 1rem;
        letter-spacing: 0.14em;
    }

    .brands-modal-head p {
        font-size: 0.72rem;
    }

    .brands-modal-grid {
        grid-template-columns: 1fr;
    }
}

/* ----------CATEGORIES---------- */
/* ----------PRODUITS À LA UNE---------- */
.produits-une {
    position: relative;
    padding: clamp(20px, 3vw, 36px) 20px clamp(24px, 3.5vw, 40px);
    background-color: #1F3A5F;
    background-image:
        repeating-linear-gradient(45deg, rgba(174, 123, 58, 0.04) 0px, rgba(174, 123, 58, 0.04) 1px, transparent 1px, transparent 18px),
        repeating-linear-gradient(-45deg, rgba(174, 123, 58, 0.04) 0px, rgba(174, 123, 58, 0.04) 1px, transparent 1px, transparent 18px);
    overflow: hidden;
}
/* Séparateur berbère haut */
.produits-une::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 22px;
    transform: translateY(-50%);
    background:
        linear-gradient(180deg, rgba(255, 244, 223, 0.42), rgba(154, 107, 49, 0.32)),
        repeating-linear-gradient(90deg,
            rgba(18, 42, 67, 0.96) 0 54px,
            rgba(24, 53, 82, 0.96) 54px 108px),
        repeating-linear-gradient(45deg,
            transparent 0 17px,
            rgba(245, 227, 193, 0.86) 17px 19px,
            transparent 19px 36px),
        repeating-linear-gradient(-45deg,
            transparent 0 17px,
            rgba(245, 227, 193, 0.86) 17px 19px,
            transparent 19px 36px),
        repeating-linear-gradient(90deg,
            transparent 0 24px,
            rgba(232, 196, 134, 0.92) 24px 28px,
            transparent 28px 54px);
    background-blend-mode: screen, normal, normal, normal, normal;
    border-top: 1px solid rgba(255, 241, 214, 0.48);
    box-shadow: 0 4px 10px rgba(15, 29, 44, 0.14);
    pointer-events: none;
    z-index: 2;
}

/* Séparateur berbère bas (couleur alternative) */
.produits-une::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 22px;
    transform: translateY(50%);
    background-image:
        linear-gradient(180deg, rgba(255, 244, 223, 0.42), rgba(154, 107, 49, 0.32)),
        repeating-linear-gradient(90deg,
            rgba(18, 42, 67, 0.96) 0 54px,
            rgba(24, 53, 82, 0.96) 54px 108px),
        repeating-linear-gradient(45deg,
            transparent 0 17px,
            rgba(245, 227, 193, 0.86) 17px 19px,
            transparent 19px 36px),
        repeating-linear-gradient(-45deg,
            transparent 0 17px,
            rgba(245, 227, 193, 0.86) 17px 19px,
            transparent 19px 36px),
        repeating-linear-gradient(90deg,
            transparent 0 24px,
            rgba(232, 196, 134, 0.92) 24px 28px,
            transparent 28px 54px);
    background-blend-mode: screen, normal, normal, normal, normal;
    border-bottom: 1px solid rgba(245, 227, 193, 0.42);
    box-shadow: 0 -4px 10px rgba(15, 29, 44, 0.14);
    pointer-events: none;
    z-index: 2;
}

.produits-une-container {
    position: relative;
    max-width: 1600px;
    margin: 0 auto;
    z-index: 1;
}

/* EN-TÊTE */
.produits-une-header {
    text-align: center;
    margin-bottom: clamp(14px, 2vw, 24px);
}

.produits-une-kicker {
    display: block;
    font-family: 'Open Sans', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #AE7B3A;
    margin-bottom: 10px;
}

.produits-une-title {
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    font-size: clamp(20px, 2.8vw, 30px);
    font-weight: 600;
    color: #f5efe6;
    margin: 0 0 6px;
    letter-spacing: 0.04em;
}

/* liseré doré sous le titre */
.produits-une-title::after {
    content: "";
    display: block;
    width: 44px;
    height: 2px;
    background: #AE7B3A;
    margin: 12px auto 0;
}

.produits-une-intro {
    font-family: 'Open Sans', sans-serif;
    font-size: 11.5px;
    color: rgba(245, 239, 230, 0.55);
    margin: 0;
    letter-spacing: 0.02em;
}

.produits-une-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-bottom: 10px;
}

.produits-une-nav-indicator {
    font-family: 'Open Sans', sans-serif;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(245, 239, 230, 0.68);
    min-width: 120px;
    text-align: center;
}

.produits-une-nav-btn {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid rgba(174, 123, 58, 0.5);
    background: rgba(14, 14, 14, 0.5);
    color: #f5efe6;
    cursor: pointer;
    font-size: 11px;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.produits-une-nav-btn:hover:not(:disabled) {
    background: #AE7B3A;
    border-color: #AE7B3A;
    color: #fff;
}

.produits-une-nav-btn:disabled {
    opacity: 0.38;
    cursor: default;
}

/* GRILLE 6 COLONNES */
.produits-une-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 28px;
    overflow: hidden;
}

/* CARTE PRODUIT */
.produit-card {
    position: relative;
    background: #161616;
    border: 1px solid rgba(174, 123, 58, 0.14);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.produit-card:hover {
    border-color: rgba(174, 123, 58, 0.55);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
}

/* IMAGE WRAP */
.produit-card-img-link {
    display: block;
    text-decoration: none;
}

.produit-card-img-wrap {
    position: relative;
    overflow: hidden;
    width: 94%;
    margin: 0 auto;
    aspect-ratio: 9 / 13;
    background: #111;
}

.produit-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.produit-card:hover .produit-card-img {
    transform: scale(1);
}

/* OVERLAY HOVER */
.produit-card-overlay {
    position: absolute;
    inset: 0;
    background: rgba(14, 14, 14, 0.52);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 20px;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.produit-card:hover .produit-card-overlay {
    opacity: 1;
}

.produit-card-overlay span {
    font-family: 'Open Sans', sans-serif;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #f5efe6;
    border: 1px solid rgba(245, 239, 230, 0.7);
    padding: 8px 18px;
    border-radius: 0 2px 2px 0;
    background: rgba(14, 14, 14, 0.4);
    backdrop-filter: blur(4px);
    transform: translateY(6px);
    transition: transform 0.3s ease;
}

.produit-card:hover .produit-card-overlay span {
    transform: translateY(0);
}

/* BADGE */
.produit-card-badge {
    position: absolute;
    top: 12px;
    left: 0px;
    display: inline-flex;
    align-items: center;
    font-family: 'Open Sans', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: #AE7B3A;
    color: #fff;
    padding: 4px 7px;
    line-height: 1;
    white-space: nowrap;
    border-radius: 0 2px 2px 0;
    z-index: 2;
    backface-visibility: hidden;
    transform: translateZ(0);
}

.produit-card-badge--promo {
    background: #c0392b;
}

.produit-card-badge--luxe {
    background: #1f4568;
}

/* BOUTON FAVORI */
.produit-card-fav {
    position: absolute;
    top: 0px;
    right: 9px;
    z-index: 3;
    width: 38px;
    height: 38px;
    border-radius: 0 0 0 3px;
    border: none;
    background: #fff;
    color: #111;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
    backdrop-filter: blur(4px);
}

.produit-card-fav svg {
    display: block;
    width: 21px;
    height: 21px;
}

.produit-card-fav .radial-icon-outline {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.22s ease;
}

.produit-card-fav .radial-icon-fill {
    fill: currentColor;
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(0);
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.produit-card-fav:focus-visible .radial-icon-fill,
.produit-card-fav.is-active .radial-icon-fill {
    transform: scale(1);
}

@media (hover: hover) and (pointer: fine) {
    .produit-card-fav:hover {
        background: #fff;
        color: #AE7B3A;
    }

    .produit-card-fav:hover .radial-icon-fill {
        transform: scale(1);
    }

    /* Hover suppression — uniquement si pas juste ajouté */
    .produit-card-fav.is-active:not(.is-just-added):hover {
        background: #fff;
        color: #AE7B3A;
    }

    .produit-card-fav.is-active:not(.is-just-added):hover .fav-heart-icon {
        opacity: 0;
        transform: scale(0.5) rotate(45deg);
    }

    .produit-card-fav.is-active:not(.is-just-added):hover .fav-close-icon {
        opacity: 1;
        transform: scale(1) rotate(0deg);
        color: #c0392b;
    }
}

.produit-card-fav.is-active {
    background: #fff;
    color: #AE7B3A;
}

/* Transition cœur → croix */
.produit-card-fav .fav-heart-icon,
.produit-card-fav .fav-close-icon {
    position: absolute;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.produit-card-fav .fav-heart-icon {
    opacity: 1;
    transform: scale(1) rotate(0deg);
}

.produit-card-fav .fav-close-icon {
    opacity: 0;
    transform: scale(0.5) rotate(-45deg);
}

/* Bouton ajout rapide panier sur la carte */
.produit-card-cart {
    position: absolute;
    bottom: 10px;
    right: 9px;
    z-index: 3;
    width: 38px;
    height: 38px;
    border-radius: 2px;
    border: 1px solid rgba(245, 239, 230, 0.25);
    background: rgba(14, 14, 14, 0.55);
    color: rgba(245, 239, 230, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    backdrop-filter: blur(4px);
    opacity: 0;
    transform: translateY(4px);
    transition: opacity 0.2s ease, transform 0.2s ease, background 0.22s ease, color 0.22s ease, border-color 0.22s ease;
}

.product-card:hover .produit-card-cart {
    opacity: 1;
    transform: translateY(0);
}

/* SVG coche (état ajouté - visible par défaut) */
.cart-icon-added,
.cart-icon-remove {
    position: absolute;
    top: 50%;
    left: 50%;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.cart-icon-added {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1) rotate(0deg);
}

/* Croix de suppression (cachée par défaut) */
.cart-icon-remove {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.5) rotate(-45deg);
}

.produit-card-cart .radial-icon-outline {
    fill: none;
    stroke: currentColor !important;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.22s ease;
}

.produit-card-cart .radial-icon-fill {
    fill: currentColor !important;
    transform-box: fill-box;
    transform-origin: center bottom;
    transform: scaleY(0);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Badge + à droite du panier */
.cart-add-hint {
    position: absolute;
    right: 4px;
    bottom: 4px;
    width: 14px;
    height: 14px;
    background: #fff;
    color: #111;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    opacity: 0;
    transform: scale(0.4);
    transition: opacity 0.2s ease 0.08s, transform 0.25s cubic-bezier(0.22, 1, 0.36, 1) 0.08s;
    pointer-events: none;
}

.produit-card-cart:hover {
    background: #27ae60;
    border-color: #27ae60;
    color: #fff;
}

.produit-card-cart:disabled,
.produit-card-cart.is-disabled {
    background: rgba(70, 70, 70, 0.72);
    border-color: rgba(220, 220, 220, 0.25);
    color: rgba(245, 239, 230, 0.45);
    cursor: not-allowed;
}

.produit-card-cart:disabled:hover,
.produit-card-cart.is-disabled:hover {
    background: rgba(70, 70, 70, 0.72);
    border-color: rgba(220, 220, 220, 0.25);
    color: rgba(245, 239, 230, 0.45);
}

.produit-card-cart:disabled .cart-add-hint,
.produit-card-cart.is-disabled .cart-add-hint {
    opacity: 0;
    transform: scale(0.4);
}

.produit-card-cart:hover .radial-icon-fill {
    transform: scaleY(1);
}

.produit-card-cart:hover .radial-icon-fill-handle {
    transform: scale(0);
}

.produit-card-cart:hover .cart-add-hint {
    opacity: 1;
    transform: scale(1);
}

.produit-card-cart.is-added .cart-add-hint,
.produit-card-cart.is-added:hover .cart-add-hint {
    display: none;
}

/* État : produit dans le panier */
.produit-card-cart.is-added {
    background: #27ae60;
    border-color: #27ae60;
    color: #fff;
    opacity: 1;
    transform: translateY(0);
}

.produit-card-cart.is-added:not(.is-just-added):hover {
    background: #c0392b;
    border-color: #c0392b;
    color: #fff;
}

.produit-card-cart.is-added:not(.is-just-added):hover .cart-icon-added {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.5) rotate(45deg);
}

.produit-card-cart.is-added:not(.is-just-added):hover .cart-icon-remove {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1) rotate(0deg);
}

/* Toast "Ajouté au panier" */
@keyframes cart-toast-ghost {
    0%   { opacity: 0; transform: translateY(0px); }
    18%  { opacity: 1; transform: translateY(-12px); }
    80%  { opacity: 1; transform: translateY(-18px); }
    100% { opacity: 0; transform: translateY(-22px); }
}

.cart-toast {
    position: absolute;
    bottom: 52px;
    right: 6px;
    color: rgba(245, 239, 230, 0.95);
    font-family: 'Open Sans', sans-serif;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 4px 8px;
    border-radius: 20px;
    white-space: nowrap;
    pointer-events: none;
    animation: cart-toast-ghost 1.2s cubic-bezier(0.2, 0.5, 0.4, 1) forwards;
    z-index: 10;
}

.icon-wrapper[data-panel-trigger="panel-favoris"] .radial-icon {
    width: 126px !important;
    height: 26px !important;
}

/* CORPS TEXTE */
.produit-card-body {
    padding: 7px 9px 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
}

.produit-card-cat {
    font-family: 'Open Sans', sans-serif;
    font-size: 7.5px;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #AE7B3A;
}

.produit-card-name {
    font-family: 'Cormorant Garamond', serif;
    font-size: 11.5px;
    font-weight: 600;
    color: #f5efe6;
    text-decoration: none;
    line-height: 1.25;
    transition: color 0.2s ease;
    margin-top: 1px;
}

.produit-card-name:hover {
    color: #AE7B3A;
}

.produit-card-price {
    font-family: 'Open Sans', sans-serif;
    font-size: 10px;
    font-weight: 700;
    color: rgba(245, 239, 230, 0.9);
    margin-top: 3px;
}

/* PIED DE SECTION — CTA */
.produits-une-footer {
    text-align: center;
    margin-top: clamp(16px, 2vw, 26px);
}

.produits-une-cta {
    display: inline-block;
    font-family: 'Open Sans', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #f5efe6;
    text-decoration: none;
    border: 1px solid rgba(174, 123, 58, 0.6);
    padding: 13px 36px;
    border-radius: 2px;
    transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
    position: relative;
    overflow: hidden;
}

.produits-une-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #AE7B3A;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: -1;
}

.produits-une-cta:hover::before {
    transform: scaleX(1);
}

.produits-une-cta:hover {
    color: #fff;
    border-color: #AE7B3A;
}

/* RESPONSIVE */
@media (max-width: 1024px) {
    .produits-une-nav {
        justify-content: center;
    }

    .produits-une-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
}

@media (max-width: 540px) {
    .produits-une::before {
        height: 16px;
        background-image:
            linear-gradient(180deg, rgba(247, 229, 198, 0.54), rgba(167, 73, 45, 0.48)),
            repeating-linear-gradient(90deg,
                rgba(20, 43, 68, 0.98) 0 38px,
                rgba(26, 56, 84, 0.98) 38px 76px),
            repeating-linear-gradient(90deg,
                transparent 0 12px,
                rgba(234, 183, 104, 0.93) 12px 14px,
                transparent 14px 24px,
                rgba(234, 183, 104, 0.93) 24px 26px,
                transparent 26px 38px),
            repeating-linear-gradient(45deg,
                transparent 0 7px,
                rgba(249, 236, 214, 0.86) 7px 9px,
                transparent 9px 19px),
            repeating-linear-gradient(-45deg,
                transparent 0 7px,
                rgba(249, 236, 214, 0.86) 7px 9px,
                transparent 9px 19px),
            repeating-linear-gradient(90deg,
                transparent 0 34px,
                rgba(182, 78, 47, 0.82) 34px 38px,
                transparent 38px 72px);
    }

    .produits-une::after {
        height: 16px;
        background-image:
            linear-gradient(180deg, rgba(255, 241, 214, 0.52), rgba(154, 107, 49, 0.42)),
            repeating-linear-gradient(90deg,
                rgba(15, 35, 58, 0.98) 0 38px,
                rgba(25, 53, 84, 0.98) 38px 76px),
            repeating-linear-gradient(90deg,
                transparent 0 12px,
                rgba(232, 196, 134, 0.94) 12px 14px,
                transparent 14px 24px,
                rgba(232, 196, 134, 0.94) 24px 26px,
                transparent 26px 38px),
            repeating-linear-gradient(45deg,
                transparent 0 7px,
                rgba(247, 229, 194, 0.88) 7px 9px,
                transparent 9px 19px),
            repeating-linear-gradient(-45deg,
                transparent 0 7px,
                rgba(247, 229, 194, 0.88) 7px 9px,
                transparent 9px 19px),
            repeating-linear-gradient(90deg,
                transparent 0 34px,
                rgba(171, 120, 59, 0.82) 34px 38px,
                transparent 38px 72px);
    }

    .produits-une-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .produit-card-body {
        padding: 10px 12px 14px;
    }

    .produit-card-name {
        font-size: 14px;
    }

    .produit-card-price {
        font-size: 13px;
    }

    .produits-une-cta {
        width: 100%;
        text-align: center;
    }
}

/* ----------CATEGORIES---------- */
.categories {
    padding: 20px 20px;
}

.grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
}

.card {
    background: white;
    border-radius: 8px;
    text-align: center;
    text-decoration: none;
    color: #333;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
}

.card img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.card h2 {
    padding: 15px;
}

.card:hover {
    transform: scale(1.03);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
    color: #AE7B3A;
    background-color: #191919;
    font-weight: bolder;
}

.card:hover img {
    transform: scale(1.05);
}

.gift-card-section {
    margin-top: 34px;
    padding: clamp(22px, 3vw, 36px);
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    overflow: visible;
    border-radius: 14px;
    background: linear-gradient(140deg, #f7f2ea 0%, #efe2d0 100%);
    border: 1px solid rgba(111, 83, 56, 0.2);
}

.gift-card-content {
    max-width: 760px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    text-align: center;
    color: #3a3a3a;
}

.gift-card-kicker {
    margin: 0 0 8px;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 12px;
    font-weight: 700;
    color: #6f5338;
}

.gift-card-content h3 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 0;
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    font-size: clamp(30px, 4vw, 44px);
    font-weight: 600;
    line-height: 1.1;
}

.gift-doodle {
    position: relative;
    width: 18px;
    height: 14px;
    border: 2px solid rgba(111, 83, 56, 0.85);
    border-radius: 2px;
    flex: 0 0 auto;
}

.gift-doodle::before,
.gift-doodle::after {
    content: "";
    position: absolute;
    background: rgba(111, 83, 56, 0.85);
}

.gift-doodle::before {
    width: 2px;
    height: 100%;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
}

.gift-doodle::after {
    width: 10px;
    height: 2px;
    left: 50%;
    top: -6px;
    transform: translateX(-50%);
    box-shadow: -4px 0 0 0 rgba(111, 83, 56, 0.85), 4px 0 0 0 rgba(111, 83, 56, 0.85);
}

.gift-card-content p {
    margin: 12px auto 0;
    max-width: 620px;
    font-size: 16px;
    line-height: 1.5;
}

.gift-card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 18px;
    padding: 12px 26px;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #fefefe;
    background: #6f5338;
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.16);
    transition: transform 0.25s ease, background 0.25s ease;
}

.gift-card-btn:hover {
    transform: translateY(-2px);
    background: #ae7b3a;
}

@media (max-width: 640px) {
    .gift-card-section {
        margin-top: 26px;
        padding: 20px 16px;
    }

    .gift-card-content h3 {
        gap: 10px;
    }

    .gift-doodle {
        width: 14px;
        height: 11px;
    }

    .gift-card-btn {
        width: 100%;
    }
}

/* ----------WIDGET CONTACT VERTICAL---------- */
.contact-widget {
    position: fixed;
    left: 0;
    top: 54%;
    transform: translateY(-50%);
    z-index: 95;
    user-select: none;
    -webkit-user-select: none;
}

.contact-widget * {
    user-select: none;
    -webkit-user-select: none;
}

.contact-widget-toggle {
    writing-mode: vertical-lr;
    text-orientation: mixed;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #3A3A3A;
    border-left: 0;
    border-radius: 0 5px 5px 0;
    background: #F5E9DA;
    color: #3A3A3A;
    padding: 8px 0;
    cursor: pointer;
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease;
}

.contact-widget-toggle:hover,
.contact-widget.is-open .contact-widget-toggle {
    color: #FEFEFE;
    background: #AE7B3A;
    border-color: #AE7B3A;
}

.contact-widget-panel {
    position: absolute;
    left: 100%;
    top: 50%;
    transform: translateY(-50%) translateX(-8px);
    opacity: 0;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin-left: 8px;
    padding: 8px 7px;
    background: #FEFEFE;
    border: 1px solid rgba(58, 58, 58, 0.22);
    border-radius: 10px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.contact-widget.is-open .contact-widget-panel {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%) translateX(0);
}

.contact-widget-icon {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1.5px solid rgba(58, 58, 58, 0.858);
    color: #3A3A3A;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    background: #FEFEFE;
    transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.contact-widget-icon img {
    width: 18px;
    height: 18px;
    -webkit-user-drag: none;
}

.contact-widget-icon svg,
.contact-widget-icon svg * {
    fill: none !important;
}

.contact-widget-icon:hover {
    color: #FFFFFF;
    border-color: #AE7B3A;
    background: #AE7B3A;
}

.contact-widget-icon:focus-visible,
.contact-widget-toggle:focus-visible {
    outline: 2px solid #AE7B3A;
    outline-offset: 2px;
}

@media (max-width: 700px) {
    .contact-widget {
        left: 0;
        top: auto;
        bottom: 18px;
        transform: none;
        display: flex;
        align-items: center;
    }

    .contact-widget-toggle {
        writing-mode: vertical-lr;
        text-orientation: mixed;
        border-left: 0;
        border-radius: 0 5px 5px 0;
        padding: 7px 0;
        font-size: 10px;
        letter-spacing: 0.12em;
        min-height: 58px;
    }

    .contact-widget-panel {
        left: 100%;
        top: 0;
        bottom: auto;
        transform: translateX(-6px);
        margin-left: 6px;
        padding: 6px 10px;
        gap: 10px;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        height: 58px;
        min-width: 156px;
        box-sizing: border-box;
    }

    .contact-widget.is-open .contact-widget-panel {
        transform: translateX(0);
    }

    .contact-widget-icon {
        width: 32px;
        height: 32px;
    }

    .contact-widget-icon img {
        width: 18px;
        height: 18px;
    }
}

.contact-widget-label {
    display: inline-block;
    transform: rotate(180deg);
    white-space: nowrap;
}

@media (max-width: 700px) {
    .contact-widget-label {
        transform: rotate(180deg);
    }
}

/* ----------SECTION CONFIANCE / ICI RADIO---------- */
.zohra-radio {
    position: relative;
    padding: 72px 20px;
    background:
        radial-gradient(circle at 14% 18%, rgba(174, 123, 58, 0.12), transparent 38%),
        radial-gradient(circle at 86% 80%, rgba(122, 92, 62, 0.08), transparent 44%),
        linear-gradient(160deg, #fffdf9, #f8f2ea 56%, #fcf8f2);
}

.zohra-radio-container {
    max-width: 1320px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(290px, 420px) minmax(320px, 1fr);
    gap: 34px;
    align-items: center;
}

.zohra-radio-media {
    margin: 0;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(111, 83, 56, 0.32);
    box-shadow: 0 16px 30px rgba(61, 43, 27, 0.18);
    background: #f3ece4;
}

.zohra-radio-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.zohra-radio-content {
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(111, 83, 56, 0.28);
    border-radius: 18px;
    box-shadow: 0 14px 28px rgba(61, 43, 27, 0.1);
    padding: 30px 30px 28px;
}

.zohra-radio-kicker {
    margin: 0 0 10px;
    font-family: 'Source Sans 3', sans-serif;
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #7b5d40;
}

.zohra-radio-content h2 {
    margin: 0 0 14px;
    color: #2f2924;
    font-size: clamp(30px, 4.8vw, 45px);
    line-height: 1.05;
}

.zohra-radio-content p {
    margin: 0;
    color: #564739;
    font-size: 16px;
    line-height: 1.68;
}

.zohra-radio-content p + p {
    margin-top: 12px;
}

.zohra-radio-points {
    margin: 16px 0 0;
    padding-left: 18px;
    display: grid;
    gap: 8px;
    color: #46382c;
    font-size: 15px;
    line-height: 1.55;
}

@media (max-width: 1024px) {
    .zohra-radio {
        padding: 58px 16px;
    }

    .zohra-radio-container {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .zohra-radio-media {
        max-width: 620px;
        justify-self: center;
    }

    .zohra-radio-content {
        padding: 24px 22px;
    }
}

@media (max-width: 640px) {
    .zohra-radio {
        padding: 48px 14px;
    }

    .zohra-radio-content h2 {
        font-size: clamp(28px, 8.6vw, 38px);
    }

    .zohra-radio-content p {
        font-size: 15px;
    }

    .zohra-radio-points {
        font-size: 14px;
    }
}

/* ----------GOOGLE REVIEWS---------- */
.shopping-express {
    --sx-accent: #ae7b3a;
    --sx-ink: #2f2924;
    --sx-soft: #f8f3ec;
    --sx-line: rgba(111, 83, 56, 0.28);
    position: relative;
    padding: 84px 20px;
    background:
        radial-gradient(circle at 12% 20%, rgba(174, 123, 58, 0.13), transparent 38%),
        radial-gradient(circle at 88% 78%, rgba(122, 92, 62, 0.1), transparent 42%),
        linear-gradient(160deg, #fffdfa, #faf4ee 58%, #fdf9f5);
}

.shopping-express::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        repeating-linear-gradient(45deg, rgba(174, 123, 58, 0.05) 0 1px, transparent 1px 22px),
        repeating-linear-gradient(-45deg, rgba(174, 123, 58, 0.04) 0 1px, transparent 1px 26px);
}

.shopping-express-container {
    position: relative;
    z-index: 1;
    max-width: 1320px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(320px, 1.05fr) minmax(320px, 1fr);
    gap: 36px;
    align-items: center;
}

.shopping-express-copy {
    background: rgba(255, 255, 255, 0.84);
    border: 1px solid var(--sx-line);
    border-radius: 18px;
    box-shadow: 0 16px 30px rgba(59, 43, 27, 0.1);
    padding: 34px 30px;
    font-family: 'Open Sans', Arial, sans-serif;
}

.shopping-express-kicker {
    margin: 0 0 10px;
    font-family: 'Source Sans 3', sans-serif;
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #7b5d40;
}

.shopping-express-copy h2 {
    margin: 0;
    color: var(--sx-ink);
    font-size: clamp(32px, 5vw, 48px);
    line-height: 1.03;
}

.shopping-express-intro {
    margin: 14px 0 18px;
    color: #564739;
    font-size: 16px;
    line-height: 1.65;
}

.shopping-express-points {
    margin: 0;
    padding-left: 18px;
    color: #4c3f32;
    display: grid;
    gap: 8px;
    font-size: 15px;
    line-height: 1.55;
}

.shopping-next-date {
    margin-top: 18px;
    padding: 16px 16px 14px;
    border: 1px solid rgba(111, 83, 56, 0.28);
    background: linear-gradient(135deg, rgba(255,255,255,0.92), rgba(248,240,230,0.9));
    border-radius: 12px;
    box-shadow: 0 10px 18px rgba(61,43,27,0.1);
}

.shopping-next-date-kicker {
    margin: 0;
    font-family: 'Source Sans 3', sans-serif;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 700;
    color: #7b5d40;
}

.shopping-next-date-title {
    margin: 8px 0 6px;
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(22px, 3vw, 28px);
    line-height: 1.15;
    color: #2f2924;
}

.shopping-next-date-text {
    margin: 0;
    color: #564739;
    font-size: 14px;
    line-height: 1.5;
}

.shopping-next-date-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid #8f6a45;
    background: #fff;
    color: #433124;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.shopping-next-date-link:hover {
    transform: translateY(-1px);
    background: #433124;
    color: #fff;
}

.shopping-express-cta {
    display: inline-flex;
    margin-top: 22px;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 22px;
    border-radius: 999px;
    border: 1px solid #8f6a45;
    background: #433124;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 0.04em;
    transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.shopping-express-cta:hover {
    transform: translateY(-2px);
    background: #5a4130;
    box-shadow: 0 10px 18px rgba(61, 42, 25, 0.22);
}

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

.shopping-thumb {
    display: block;
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(111, 83, 56, 0.3);
    background: var(--sx-soft);
    aspect-ratio: 1 / 1;
    box-shadow: 0 8px 18px rgba(61, 43, 27, 0.13);
    transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.shopping-thumb::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(26, 18, 11, 0.28), rgba(26, 18, 11, 0));
    opacity: 0.7;
    transition: opacity 0.24s ease;
}

.shopping-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.01);
    transition: transform 0.28s ease;
}

.shopping-thumb:hover {
    transform: translateY(-4px);
    border-color: rgba(174, 123, 58, 0.72);
    box-shadow: 0 12px 22px rgba(61, 43, 27, 0.2);
}

.shopping-thumb:hover img {
    transform: scale(1.06);
}

.shopping-thumb:hover::after {
    opacity: 0.3;
}

@media (max-width: 1024px) {
    .shopping-express {
        padding: 68px 16px;
    }

    .shopping-express-container {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .shopping-express-copy {
        padding: 28px 22px;
    }
}

@media (max-width: 640px) {
    .shopping-express {
        padding: 54px 14px;
    }

    .shopping-express-copy h2 {
        font-size: clamp(30px, 9vw, 40px);
    }

    .shopping-express-intro {
        font-size: 15px;
    }

    .shopping-express-points {
        font-size: 14px;
    }

    .shopping-express-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shopping-next-date {
        padding: 14px 12px;
    }

    .shopping-next-date-title {
        font-size: clamp(20px, 7vw, 24px);
    }

    .shopping-next-date-text {
        font-size: 13px;
    }
}

.google-reviews {
    --gr-accent: #5f7b73;
    --gr-text: #2d3a38;
    --gr-soft: #eef4f2;
    --gr-line: rgba(64, 96, 88, 0.28);
    position: relative;
    padding: 78px 20px;
    background:
        radial-gradient(circle at 12% 18%, rgba(95, 123, 115, 0.17), transparent 42%),
        radial-gradient(circle at 88% 82%, rgba(95, 123, 115, 0.13), transparent 40%),
        linear-gradient(145deg, #fbfdfc, #f1f6f4 62%, #f8fbfa);
    overflow: hidden;
}

.google-reviews::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        repeating-linear-gradient(45deg, rgba(95, 123, 115, 0.08) 0 1px, transparent 1px 21px),
        repeating-linear-gradient(-45deg, rgba(95, 123, 115, 0.06) 0 1px, transparent 1px 23px);
    opacity: 0.38;
    pointer-events: none;
}

.google-reviews-container {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
}

.google-reviews-head {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 30px;
}

.google-reviews-kicker {
    display: inline-block;
    margin: 0 0 12px;
    padding: 7px 14px;
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--gr-accent);
    border: 1px solid var(--gr-line);
    background: rgba(255, 252, 247, 0.82);
}

.google-reviews-head h2 {
    margin: 0;
    font-family: "Cormorant Garamond", serif;
    color: var(--gr-text);
    font-size: clamp(34px, 4.2vw, 52px);
    line-height: 1.06;
}

.google-reviews-intro {
    margin: 14px auto 0;
    color: #5b4c3b;
    font-size: 17px;
    line-height: 1.6;
    max-width: 650px;
}

.google-rating-strip {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px 18px;
    margin: 0 auto 34px;
    padding: 16px 22px;
    max-width: 820px;
    border: 1px solid rgba(122, 92, 62, 0.3);
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.72), rgba(255, 249, 241, 0.86));
    box-shadow: 0 14px 30px rgba(41, 25, 8, 0.09);
}

.google-rating-score {
    font-family: "Source Sans 3", "Open Sans", sans-serif;
    font-size: 34px;
    font-weight: 800;
    line-height: 1;
    color: #292929;
}

.google-rating-stars {
    color: #e8a63d;
    letter-spacing: 0.18em;
    font-size: 17px;
    text-shadow: 0 3px 8px rgba(232, 166, 61, 0.22);
}

.google-rating-count {
    color: #5f5243;
    font-size: 14px;
    letter-spacing: 0.03em;
}

.google-rating-link {
    text-decoration: none;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 10px 16px;
    background: linear-gradient(120deg, #3a3a3a, #1f1f1f);
    border: 1px solid #1f1f1f;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.google-rating-link:hover {
    background: linear-gradient(120deg, #ae7b3a, #906432);
    border-color: #906432;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(122, 92, 62, 0.28);
}

.google-reviews-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.google-review-card {
    position: relative;
    padding: 22px 20px 20px;
    background: rgba(255, 255, 255, 0.84);
    border: 1px solid rgba(122, 92, 62, 0.26);
    box-shadow: 0 12px 26px rgba(58, 36, 12, 0.09);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.google-review-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, transparent, rgba(174, 123, 58, 0.78), transparent);
}

.google-review-card:hover {
    transform: translateY(-6px);
    border-color: rgba(122, 92, 62, 0.42);
    box-shadow: 0 18px 32px rgba(58, 36, 12, 0.16);
}

.google-review-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 12px;
}

.google-review-card-head strong {
    color: var(--gr-text);
    font-size: 15px;
    letter-spacing: 0.02em;
}

.google-review-card-head span {
    color: #e8a63d;
    font-size: 12px;
    letter-spacing: 0.13em;
    text-shadow: 0 2px 6px rgba(232, 166, 61, 0.25);
}

.google-review-card p {
    margin: 0;
    color: #4a3f31;
    font-size: 15px;
    line-height: 1.65;
}

.google-review-meta {
    display: inline-block;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed rgba(122, 92, 62, 0.3);
    color: #7a5c3e;
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

@media (max-width: 960px) {
    .google-reviews {
        padding: 64px 18px;
    }

    .google-reviews-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 640px) {
    .google-reviews {
        padding: 52px 14px;
    }

    .google-reviews-head h2 {
        font-size: clamp(29px, 8vw, 38px);
    }

    .google-reviews-intro {
        font-size: 15px;
    }

    .google-rating-strip {
        gap: 10px;
        padding: 14px;
    }

    .google-rating-score {
        font-size: 30px;
    }

    .google-rating-stars {
        font-size: 15px;
        letter-spacing: 0.12em;
    }

    .google-reviews-grid {
        grid-template-columns: 1fr;
    }

    .google-rating-link {
        width: 100%;
        text-align: center;
    }
}

/* ----------NEWSLETTER---------- */

.newsletter {
    background: #FEFEFE;
    padding: 90px 20px;
    display: flex;
    justify-content: center;
}

.newsletter-container {
    max-width: 800px;
    width: 100%;
    text-align: center;
}

.newsletter h2 {
    color: #3A3A3A;
    font-size: 24px;
    margin-bottom: 30px;
    font-weight: 200;
}

.newsletter-box {
    display: flex;
    align-items: center;
    background: #FEFEFE;
    height: 44px;
    border-radius: 4px;
    max-width: 480px;
    margin: auto;
    overflow: hidden;
    box-shadow: 0 5px 25px rgba(0, 0, 0, 0.4);
}

.newsletter-box input {
    flex: 1;
    border: none;
    padding: 0px 14px;
    font-size: 15px;
    background: transparent;
    color: rgb(0, 0, 0);
    outline: none;
    height: 100%;
    line-height: 46px;
    box-sizing: border-box
}

.newsletter-box input:focus {
    background: rgba(174, 123, 58, 0.05);
    /* couleur de focus légère, toute la hauteur */
    outline: none;
    /* supprime le contour bleu par défaut */
}

.newsletter-box input::placeholder {
    color: #888888ba;
    padding-left: 8px;
}

/* effet focus */
.newsletter-box:focus-within {
    box-shadow:
        0 0 0 1px #3A3A3A,
        0 10px 30px rgba(0, 0, 0, 0.5);
}

/* BOUTON */
.newsletter-btn {
    width: 48px;
    height: 58px;
    border: none;
    background: #3A3A3A;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.25s ease;
}

/* flèche */
.newsletter-arrow {
    width: 24px;
    height: 24px;
    transition: transform 0.25s ease;
}

.newsletter-btn:hover {
    background: #3a3a3adb;
    transform: translateX(3px);
}

.newsletter-btn:hover .newsletter-arrow {
    transform: translateX(0px);
}

/* message succès */
.newsletter-success {
    display: none;
    margin-top: 50px;
    color: #4CAF50;
    font-size: 20px;
    font-weight: 600;
    animation: successPop 0.6s ease;
}

@keyframes successPop {

    0% {
        transform: scale(0.8);
        opacity: 0;
    }

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

/* CONTENEUR CONFETTIS */

.newsletter-container {
    position: relative;
}

/* zone des fleurs limitée à la box */

.flower-confetti {
    position: absolute;
    top: 135%;
    left: 50%;
    transform: translateX(-50%);
    width: 480px;
    height: 120px;
    pointer-events: none;
    overflow: visible;

}

/* fleurs */

.petal {

    position: absolute;

    pointer-events: none;

    animation: petalFall ease-out forwards;

}

/* chute naturelle */

@keyframes petalFall {

    0% {
        transform: translateY(0) rotate(0deg);
        opacity: 1;
    }

    50% {
        opacity: 1;
    }

    100% {
        transform: translateY(160px) rotate(360deg);
        opacity: 0;
    }

}

.flower-icon {
    position: absolute;
    width: 22px;
    height: 22px;
    opacity: 0;
    transform: scale(0) rotate(0deg);
    transition: all .5s ease;
}

.arrow-up {
    position: absolute;
    width: 22px;
    height: 22px;
    transition: all .4s ease;
}

/* transformation fleur */

#scrollTopBtn.flower-active .arrow-up {
    opacity: 0;
    transform: scale(0);
}

#scrollTopBtn.flower-active .flower-icon {
    opacity: 1;
    transform: scale(1) rotate(360deg);
}

/* INFO CAROUSEL */
.info-carousel {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #faf6f2;

    padding: 6px 0;
    margin: 0;
    position: relative;
}

.info-carousel::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(to right, transparent, #7a5c3e, transparent);
    opacity: 0.5;
}

.info-carousel-track-wrapper {
    overflow: hidden;
    width: 100%;
    max-width: 500px;
    text-align: center;
}

.info-carousel-track span {
    display: inline-block;
    min-width: 100%;
    font-size: 1rem;
    color: #7a5c3e;
    opacity: 1;
    transition: opacity 0.15s ease;
}

.info-carousel-track.fade-out span {
    opacity: 0;
    transition: opacity 0.15s ease;
}

.info-carousel-track.fade-in span {
    opacity: 1;
    transition: opacity 0.15s ease;
}

.info-carousel-prev,
.info-carousel-next {
    background: none;
    border: none;
    font-size: 1.5rem;
    color: #888;
    cursor: pointer;
    padding: 0 15px;
    transition: color 0.2s;
}

.info-carousel-prev:hover,
.info-carousel-next:hover {
    color: #222;
}


/* BOUTON RETOUR EN HAUT */
#scrollTopBtn {
    position: fixed;
    bottom: 200px;
    right: 25px;
    width: 60px;
    height: 60px;
    border: none;
    background: #AE7B3A;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transform: translateY(30px) scale(.9);
    transition: all .35s cubic-bezier(.25, .8, .25, 1);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.25),
        0 0 0 4px rgba(255, 255, 255, 0.05);
    z-index: 1000;
}

#scrollTopBtn.show {
    opacity: 0.9;
    transform: translateY(0) scale(1);
}

#scrollTopBtn:hover {
    background: #C48A43;
    transform: translateY(-3px) scale(1.05);
}

.arrow-up {
    position: absolute;
    width: 22px;
    height: 22px;
}

.progress-ring {
    position: absolute;
    transform: rotate(-90deg);
}

.progress-ring-bg {
    fill: none;
    stroke: rgba(255, 255, 255, 0.25);
    stroke-width: 3;
}

.progress-ring-circle {
    fill: none;
    stroke: white;
    stroke-width: 3;
    stroke-dasharray: 163;
    stroke-dashoffset: 163;
}

/* ============= RESPONSIVE ============ */
@media (max-width:768px) {
    .philosophie {
        --philosophie-bg-opacity: 0.2;
        padding-top: 72px;
    }

    .philosophie::after {
        background-size: 230% auto;
    }

    .carousel {
        height: 50vh;
    }

    .header-container {
        flex-direction: row;
    }

    .menu {
        gap: 20px;
        flex-wrap: wrap;
        justify-content: center;
    }

    .search-container {
        flex-direction: column;
    }

    #search-input,
    #search-button {
        width: 100%;
        padding: 12px;
    }
}

@media (min-width: 1025px) and (max-height: 1080px) {
    .carousel {
        height: 60vh;
    }
}

@media (max-width: 1200px) {
    .philosophie-side {
        display: none;
    }
}

/* CATALOG PAGE */
.catalog-page {
    max-width: 1400px;
    margin: 26px auto 48px;
    padding: 0 20px;
    display: grid;
    grid-template-columns: 320px 1fr;
    row-gap: 20px;
    column-gap: 56px;
}

.catalog-header {
    --catalog-banner-duration: 150s;
    --catalog-hero-height: 182px;
    grid-column: 1 / -1;
    margin: -8px -20px -8px -20px;
    padding: 10px 20px 35px;
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
    justify-content: flex-start;
    background: transparent;
}

.catalog-title-wrapper {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    height: var(--catalog-hero-height);
    padding: 0 68px;
    flex-shrink: 0;
    border-radius: 12px 0 0 12px;
}

.catalog-title-wrapper::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.18);
    z-index: 1;
    pointer-events: none;
}

.catalog-banner-track {
    position: absolute;
    top: 0;
    left: 0;
    width: 400%;
    height: 100%;
    display: flex;
    animation: catalog-banner-loop var(--catalog-banner-duration) linear infinite;
    will-change: transform;
    z-index: 0;
}

.catalog-banner-track img {
    flex: 0 0 55%;
    width: 25%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    opacity: 1;
    filter: 
        brightness(0.95)
        contrast(0.95)
        saturate(0.68);
}

@keyframes catalog-banner-loop {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}

.catalog-title-wrapper h1 {
    margin: 0;
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    font-size: 3.5rem;
    font-weight: 500;
    line-height: 1;
    color: #ffffff;
    -webkit-text-stroke: none;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
    position: relative;
    z-index: 2;
}

.catalog-title-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: inherit;
    position: relative;
    z-index: 2;
}

.catalog-title-link:hover,
.catalog-title-link:focus,
.catalog-title-link:active,
.catalog-title-link:visited {
    text-decoration: none;
    color: inherit;
}

.catalog-title-link:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.92);
    outline-offset: 6px;
    border-radius: 6px;
}

.catalog-content {
    grid-column: 2;
    grid-row: 3;
    align-self: start;
}

.catalog-content h1 {
    display: none;
}

.mode-femme-banner-scroll {
    width: 702px;
    overflow: hidden;
    flex-shrink: 0;
    align-self: stretch;
    margin-left: auto;
    border-radius: 0 8px 8px 0;
    -webkit-mask-image: linear-gradient(to right, #000 0%, #000 88%, transparent 100%);
    mask-image: linear-gradient(to right, #000 0%, #000 88%, transparent 100%);
}

.mode-femme-page .mode-femme-banner-scroll,
.decoration-page .mode-femme-banner-scroll,
.soins-bien-etre-page .mode-femme-banner-scroll {
    height: var(--catalog-hero-height);
    width: auto;
    margin-left: 0;
    max-width: none;
    min-width: 0;
    flex: 1 1 0;
}

.decoration-page .mode-femme-banner-scroll {
    margin-left: 0;
    max-width: none;
    flex: 1 1 0;
}

.mode-femme-banner-track {
    display: flex;
    height: 100%;
    animation: banner-scroll 120s linear infinite;
    will-change: transform;
}

.mode-femme-banner-track img {
    flex: 0 0 auto;
    width: auto;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: 
        brightness(1.05)
        contrast(1.08)
        saturate(1.05)
        warmth(0.02);
}

.mode-femme-collection-subtitle,
.title-collection-subtitle {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: -4px 0 -10px;
    text-align: center;
    font-family: 'Halo Handletter', cursive;
    font-size: clamp(1.35rem, 1rem + 1.2vw, 2rem);
    line-height: 1.1;
    letter-spacing: 0.02em;
    color: #2b1b10;
}

.catalog-page .catalog-active-filters-row {
    grid-row: 3;
}

.catalog-page .catalog-content,
.catalog-page .catalog-filters {
    grid-row: 4;
}

@keyframes banner-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-100%);
    }
}

.catalog-grid {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 48px;
}

.catalog-pro-section {
    max-width: 1400px;
        margin: 26px auto 72px;
    padding: 0 20px;
}

.catalog-pro-shell {
        --catalog-pro-accent: #ae7b3a;
        --catalog-pro-deep: #2a1b0b;
        --catalog-pro-soft: #fbf6ef;
    position: relative;
    overflow: hidden;
    display: grid;
        grid-template-columns: minmax(290px, 380px) minmax(0, 1fr);
        gap: 0;
        border: 1px solid rgba(30, 25, 20, 0.16);
        box-shadow: 0 28px 68px rgba(31, 19, 8, 0.14);
    background:
                radial-gradient(140% 130% at 96% 0%, rgba(255, 255, 255, 0.74) 0%, rgba(255, 255, 255, 0) 56%),
                linear-gradient(130deg, #f7efe5 0%, #ede0cf 54%, #dfccb2 100%);
}

.catalog-pro-shell::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
            repeating-linear-gradient(135deg, rgba(72, 50, 28, 0.045) 0 1px, transparent 1px 14px);
    mix-blend-mode: multiply;
        opacity: 0.44;
}

.catalog-pro-editorial {
    position: relative;
    z-index: 1;
        padding: 32px 26px;
    border-right: 1px solid rgba(30, 25, 20, 0.12);
        background:
            radial-gradient(120% 120% at 110% -5%, rgba(255, 220, 165, 0.2), rgba(255, 220, 165, 0)),
            linear-gradient(165deg, rgba(37, 27, 17, 0.97), rgba(66, 46, 24, 0.95));
        color: #fbf4ea;
}

.catalog-pro-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    font-size: 0.71rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: rgba(255, 237, 210, 0.95);
}

.catalog-pro-kicker::before {
    content: "";
    width: 16px;
    height: 1px;
    background: currentColor;
}

.catalog-pro-title {
    margin: 14px 0 0;
    font-family: 'Manrope', 'Open Sans', sans-serif;
    font-size: clamp(1.4rem, 1.12rem + 0.74vw, 1.92rem);
    line-height: 1.14;
    letter-spacing: -0.01em;
    max-width: 20ch;
}

.catalog-pro-description {
    margin: 15px 0 0;
    font-size: 0.92rem;
    line-height: 1.66;
    color: rgba(248, 241, 230, 0.9);
    max-width: 32ch;
}

.catalog-pro-cta {
    margin-top: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 17px;
    border: 1px solid rgba(255, 214, 157, 0.55);
    background: linear-gradient(145deg, #f7ddb4, #dcae73);
    color: #2b1808;
    text-decoration: none;
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    transition: transform 0.24s ease, box-shadow 0.24s ease, filter 0.24s ease;
}

.catalog-pro-cta:hover,
.catalog-pro-cta:focus-visible {
    transform: translateY(-2px) scale(1.01);
    box-shadow: 0 14px 26px rgba(20, 12, 4, 0.28);
    filter: saturate(1.06);
}

.catalog-pro-pills {
    margin-top: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.catalog-pro-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 0 11px;
    border: 1px solid rgba(255, 229, 191, 0.32);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.7rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: rgba(255, 237, 212, 0.92);
}

.catalog-pro-pill::before {
    content: "";
    width: 6px;
    height: 6px;
    background: rgba(255, 214, 157, 0.95);
    border-radius: 999px;
}

.catalog-pro-content {
    position: relative;
    z-index: 1;
    padding: 28px 26px;
    display: grid;
    gap: 14px;
}

.catalog-pro-content-head {
    display: flex;
    align-items: center;
    gap: 12px;
}

.catalog-pro-content-kicker {
    margin: 0;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 800;
    color: #5d4023;
}

.catalog-pro-content-line {
    height: 1px;
    flex: 1;
    background: linear-gradient(to right, rgba(93, 64, 35, 0.38), rgba(93, 64, 35, 0));
}

.catalog-pro-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.catalog-pro-card {
    position: relative;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(62, 41, 20, 0.15);
    padding: 14px 14px 14px;
    transition: transform 0.24s ease, box-shadow 0.24s ease, background 0.24s ease;
}

.catalog-pro-card:hover {
    transform: translateY(-3px);
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 12px 20px rgba(51, 31, 11, 0.11);
}

.catalog-pro-card-index {
    display: inline-block;
    margin-bottom: 8px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: rgba(78, 54, 30, 0.78);
}

.catalog-pro-card h3 {
    margin: 0;
    font-size: 0.91rem;
    line-height: 1.3;
    color: #271808;
}

.catalog-pro-card p {
    margin: 8px 0 0;
    font-size: 0.82rem;
    line-height: 1.56;
    color: #563d22;
}

.catalog-pro-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.catalog-pro-metric {
    display: grid;
    gap: 3px;
    padding: 11px 12px;
    border: 1px solid rgba(50, 31, 13, 0.14);
    background: rgba(255, 255, 255, 0.78);
}

.catalog-pro-metric strong {
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    font-size: 1.06rem;
    line-height: 1;
    color: #2a1907;
}

.catalog-pro-metric span {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: #70502f;
}

.catalog-pro-section--deco .catalog-pro-shell {
    background:
      radial-gradient(140% 110% at 95% 0%, rgba(255, 255, 255, 0.66) 0%, rgba(255, 255, 255, 0) 56%),
      linear-gradient(128deg, #f4f2ea 0%, #e8e1d2 56%, #ddd1b7 100%);
}

.catalog-pro-section--deco .catalog-pro-editorial {
    background:
    radial-gradient(120% 120% at 110% -5%, rgba(129, 186, 219, 0.2), rgba(129, 186, 219, 0)),
    linear-gradient(165deg, rgba(1, 47, 76, 0.98), rgba(17, 67, 106, 0.95));
}

.catalog-pro-section--soins .catalog-pro-shell {
    background:
      radial-gradient(140% 120% at 95% 0%, rgba(255, 255, 255, 0.68) 0%, rgba(255, 255, 255, 0) 56%),
      linear-gradient(128deg, #f3f4ee 0%, #e2e7d8 53%, #d6dfcb 100%);
}

.catalog-pro-section--soins .catalog-pro-editorial {
    background:
      radial-gradient(120% 120% at 110% -5%, rgba(120, 158, 88, 0.18), rgba(120, 158, 88, 0)),
      linear-gradient(160deg, rgba(1, 46, 22, 0.98), rgba(18, 86, 46, 0.92));
}

.catalog-pro-section--soins .catalog-pro-kicker,
.catalog-pro-section--soins .catalog-pro-description,
.catalog-pro-section--soins .catalog-pro-pill {
    color: rgba(232, 246, 233, 0.92);
}

.product-card {
    position: relative;
    min-height: 160px;
    border: none;
    padding: 0;
    background: #fff;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    cursor: pointer;
}

.product-card:focus-visible {
    outline: 2px solid #ae7b3a;
    outline-offset: 3px;
}

.product-card-fav {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    background: #fff;
    border: none;
    border-radius: 50%;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
    backdrop-filter: blur(4px);
}

.product-card-fav svg path {
    stroke: #111;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
    transition: fill 0.2s ease, stroke 0.2s ease;
}

.product-card-fav:hover {
    background: #fff;
    transform: scale(1.12);
}

.product-card-fav:hover svg path,
.product-card-fav.is-active svg path {
    fill: #AE7B3A;
    stroke: #AE7B3A;
}

.product-card-img-wrap {
    position: relative;
    display: grid;
    width: 94%;
    margin: 0 auto;
    aspect-ratio: 9 / 13;
    overflow: hidden;
    background: #f5f0ea;
}

@media (max-width: 640px) {
    .produit-card-img-wrap,
    .product-card-img-wrap {
        width: 100%;
    }
}

.product-card-img {
    grid-area: 1 / 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: opacity 0.1s ease, transform 2.4s ease;
}

.product-card-img-hover {
    opacity: 0;
    transform: scale(1);
}

@media (hover: hover) and (pointer: fine) {
    .product-card-img-wrap:hover:not(:has(.produit-card-fav:hover)) .product-card-img:not(.product-card-img-hover) {
        opacity: 0;
        transform: scale(1);
    }

    .product-card-img-wrap:hover:not(:has(.produit-card-fav:hover)) .product-card-img-hover {
        opacity: 1;
        transform: scale(1);
    }
}

@media (max-width: 1024px) {
    .product-card-img-hover {
        opacity: 0 !important;
    }

    .product-card-img-wrap:hover .product-card-img:not(.product-card-img-hover) {
        opacity: 1 !important;
    }

    .product-card-img-wrap:hover .product-card-img-hover {
        opacity: 0 !important;
    }

    .produit-card-cart {
        opacity: 1;
        transform: translateY(0);
    }
}

.product-card-info {
    display: grid;
    gap: 4px;
    padding: 10px 12px 14px;
    text-align: left;
    justify-items: start;
}

.product-card-brand {
    display: block;
    margin: 0;
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-transform: capitalize;
    color: #000000;
}

.product-card-name {
    margin: 0;
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    line-height: 1.28;
    font-weight: 500;
    color: #1f1f1f;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.product-card-desc {
    margin: 0;
    font-family: 'Open Sans', sans-serif;
    font-size: 12px;
    line-height: 1.3;
    color: #666;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.product-card-price {
    margin: 2px 0 0;
    font-family: 'Open Sans', sans-serif;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 700;
    color: #111;
}

.product-card-price-row {
    margin: 2px 0 0;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.product-card-price-old {
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 600;
    color: #7a7a7a;
    text-decoration: line-through;
}

.product-card-price-discount {
    font-family: 'Open Sans', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #c0392b;
    line-height: 1.2;
}

@media (max-width: 640px) {
    .product-card-info {
        gap: 3px;
        padding: 9px 10px 12px;
    }

    .product-card-brand {
        font-size: 10px;
    }

    .product-card-name {
        font-size: 13px;
    }

    .product-card-desc {
        font-size: 11.5px;
    }

    .product-card-price {
        font-size: 16px;
    }

    .product-card-price-row {
        gap: 6px;
    }

    .product-card-price-old {
        font-size: 13px;
    }
}

.product-modal {
    position: fixed;
    inset: 0;
    z-index: 900;
    display: grid;
    place-items: center;
    padding: 14px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

.product-modal.is-open {
    opacity: 1;
    pointer-events: auto;
}

.product-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(20, 20, 20, 0.22);
}

.product-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(1220px, 100%);
    background: #ffffff;
    border: 1px solid #d8d8d8;
    box-shadow: 0 16px 44px rgba(0, 0, 0, 0.14);
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    max-height: calc(100vh - 28px);
    overflow: auto;
}

.product-modal-close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 36px;
    height: 36px;
    background: rgba(255, 252, 247, 0.72);
    border: 1px solid rgba(122, 92, 62, 0.16);
    cursor: pointer;
    color: #3A3A3A;
    padding: 4px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    transition: color 0.2s ease, transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.product-modal-close:hover {
    color: #AE7B3A;
    background: rgba(255, 248, 239, 0.92);
    border-color: rgba(174, 123, 58, 0.32);
    transform: rotate(90deg);
}

.product-modal-media {
    background: #f3f3f3;
    min-height: 720px;
    padding: 18px;
}

.product-modal-media-layout {
    display: grid;
    grid-template-columns: 74px 1fr;
    gap: 14px;
    height: 100%;
}

.product-modal-thumbs {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.product-modal-thumb {
    width: 74px;
    height: 90px;
    border: 1px solid #f3f3f3;
    background: #fff;
    padding: 0;
    cursor: pointer;
    overflow: hidden;
    transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.product-modal-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.product-modal-thumb.is-active {
    border-width: 2px;
    border-color: #212121;
}

.product-modal-thumb:hover {
    border-color: #4d4d4d;
}

.product-modal-main-image-wrap {
    background: #fff;
    border: 1px solid #d0d0d0;
    min-height: 580px;
    overflow: hidden;
    cursor: zoom-in;
}

.product-modal-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.product-modal-main-image-wrap.is-zooming {
    cursor: zoom-in;
}

.product-modal-content {
    padding: 30px 28px 28px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.product-modal-headline-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.product-modal-kicker {
    margin: 0;
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #2c2c2c;
    background: #dddddd;
    padding: 6px 10px;
    font-weight: 700;
}

.product-modal-stock {
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #2c2c2c;
    background: #00cd26;
    padding: 6px 10px;
    font-weight: 700;
    margin-right: auto;
}

/* ETAT STOCK DU PRODUIT */
.product-modal-content h2 {
    margin: 0;
    font-size: 2.05rem;
    line-height: 1.05;
}

.product-modal-price {
    margin: 2px 0 0;
    color: #1f1f1f;
    font-weight: 700;
    font-size: 1.25rem;
}

.product-modal-meta {
    margin: 0;
    color: #666;
    font-size: 0.94rem;
}

.product-modal-sku {
    margin: -4px 0 0;
    color: #7a7a7a;
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.product-modal-description {
    margin: 2px 0 0;
    color: #2c2c2c;
    line-height: 1.5;
}

.product-modal-highlights {
    margin: 0;
    padding: 0 0 0 18px;
    color: #303030;
    display: grid;
    gap: 5px;
}

.product-modal-extra {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.product-modal-info-box {
    border: 1px solid #dcdcdc;
    background: #fff;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.product-modal-info-box strong {
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #242424;
}

.product-modal-info-box span {
    color: #555;
    font-size: 0.88rem;
}

.product-modal-actions {
    margin-top: 12px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.product-modal-qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid #cfcfcf;
    height: 44px;
}

.product-modal-qty button {
    width: 42px;
    height: 100%;
    border: 0;
    background: #f4f4f4;
    color: #2b2b2b;
    font-size: 1.2rem;
    cursor: pointer;
}

.product-modal-qty input {
    width: 56px;
    height: 100%;
    border: 0;
    text-align: center;
    font-weight: 700;
    color: #202020;
    background: #fff;
}

.product-modal-add {
    border: 0;
    background: #222;
    color: #fff;
    height: 44px;
    min-width: 315px;
    padding: 0 28px;
    font-weight: 700;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: background 0.2s ease;
}

.product-modal-add:hover,
.product-modal-add:focus-visible {
    background: #AE7B3A;
}

.product-modal-add.is-added {
    background: #4a4a4a;
}

.product-modal-fav {
    width: 44px;
    height: 44px;
    border: 1px solid #cfcfcf;
    background: #fff;
    color: #3a3a3a;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.product-modal-fav svg {
    width: 30px;
    height: 30px;
}

.product-modal-fav:hover,
.product-modal-fav[aria-pressed="true"] {
    background: #fff6ee;
    border-color: #c4a882;
    color: #b38349;
}

html.product-modal-open,
body.product-modal-open {
    overscroll-behavior: none;
}

.product-lightbox {
    position: fixed;
    inset: 0;
    z-index: 1400;
    display: grid;
    place-items: center;
    padding: 0;
    background: #fff;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
}

.product-lightbox.is-open {
    opacity: 1;
    pointer-events: auto;
}

.product-lightbox-overlay {
    position: absolute;
    inset: 0;
    background: #fff;
}

.product-lightbox-dialog {
    position: relative;
    z-index: 1;
    width: 100vw;
    height: 100vh;
    max-height: none;
    display: grid;
    grid-template-columns: 124px minmax(0, 1fr);
    gap: 20px;
    background: #fff;
    border: 0;
    padding: 24px;
    box-sizing: border-box;
}

.product-lightbox-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 36px;
    height: 36px;
    background: rgba(255, 252, 247, 0.72);
    border: 1px solid rgba(122, 92, 62, 0.16);
    cursor: pointer;
    color: #3A3A3A;
    padding: 4px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    transition: color 0.2s ease, transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
    z-index: 2;
}

.product-lightbox-close:hover {
    color: #ea8500;
    background: rgba(255, 248, 239, 0.92);
    border-color: rgba(174, 123, 58, 0.32);
    transform: rotate(90deg);
}

.product-lightbox-thumbs {
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow-y: auto;
    padding-right: 6px;
}

.product-lightbox-thumb {
    width: 110px;
    height: 138px;
    border: 2px solid #ffffff;
    background: #fff;
    padding: 0;
    cursor: pointer;
}

.product-lightbox-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.product-lightbox-thumb.is-active {
    border-color: #212121;
}

.product-lightbox-main {
    min-height: 100%;
    background: #fff;
    overflow: hidden;
    cursor: zoom-in;
    display: flex;
    align-items: center;
    justify-content: center;
}

.product-lightbox-main img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: calc(100vh - 48px);
    object-fit: contain;
    display: block;
    transform: scale(1);
    transform-origin: 50% 50%;
    transition: transform 0.18s ease;
    user-select: none;
}

.product-lightbox-main.is-zooming {
    cursor: zoom-out;
}

@media (max-width: 760px) {
    .product-lightbox-dialog {
        grid-template-columns: 1fr;
        height: 100vh;
        padding: 64px 16px 16px;
    }

    .product-lightbox-thumbs {
        flex-direction: row;
        overflow-x: auto;
        overflow-y: hidden;
        order: 2;
        padding-right: 0;
    }

    .product-lightbox-thumb {
        width: 84px;
        height: 108px;
        flex: 0 0 auto;
    }

    .product-lightbox-main {
        min-height: 58vh;
    }
}

@media (max-width: 860px) {
    .product-modal-dialog {
        grid-template-columns: 1fr;
    }

    .product-modal-media {
        min-height: 340px;
    }

    ²product-modal-media-layout {
        grid-template-columns: 1fr;
    }

    .product-modal-thumbs {
        flex-direction: row;
        overflow-x: auto;
        order: 2;
    }

    .product-modal-thumb {
        width: 66px;
        height: 84px;
        flex: 0 0 auto;
    }

    .product-modal-main-image-wrap {
        min-height: 320px;
    }

    .product-modal-content h2 {
        font-size: 1.5rem;
    }

    .product-modal-extra {
        grid-template-columns: 1fr;
    }
}

.catalog-filters {
    grid-column: 1;
    grid-row: 3;
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
    border: none;
    border-radius: 0;
    padding: 0 12px 12px;
    background: #ffffff;
    box-shadow: none;
}

.catalog-filters.is-empty {
    display: none !important;
}

.catalog-results {
    margin: 2px 0 10px;
    font-size: 0.9rem;
    color: #6f6f6f;
}

.catalog-top-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0;
    margin: 0;
    padding: 0;
    border: none;
    background: #fff;
    flex: 1 1 auto;
}

.catalog-top-filters-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 12px;
}

.catalog-page-reset-wrap {
    display: flex;
    align-items: flex-start;
}

.catalog-top-submenu {
    position: relative;
    margin-right: 8px;
}

.catalog-top-filter-wrap {
    position: relative;
    display: inline-block;
}

.catalog-top-filter-wrap::after {
    content: attr(data-tooltip);
    position: absolute;
    left: 0;
    bottom: calc(100% + 8px);
    background: #3A3A3A;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 6px 9px;
    max-width: 280px;
    white-space: normal;
    line-height: 1.35;
    border-radius: 3px;
    opacity: 0;
    transform: translateY(4px);
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 10;
}

.catalog-top-filter-wrap::before {
    content: "";
    position: absolute;
    left: 14px;
    bottom: calc(100% + 2px);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid #3A3A3A;
    opacity: 0;
    transform: translateY(4px);
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 10;
}

.catalog-top-filter-wrap:hover::after {
    opacity: 1;
    transform: translateY(0);
}

.catalog-top-filter-wrap:hover::before {
    opacity: 1;
    transform: translateY(0);
}

.catalog-top-clear-all-wrap {
    position: relative;
    display: inline-flex;
    margin-left: auto;
}

.catalog-top-clear-all-wrap::after {
    content: attr(data-tooltip);
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    background: #3A3A3A;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 6px 9px;
    white-space: nowrap;
    border-radius: 3px;
    opacity: 0;
    transform: translateY(-4px);
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 10;
}

.catalog-top-clear-all-wrap::before {
    content: "";
    position: absolute;
    right: 14px;
    top: calc(100% + 2px);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid #3A3A3A;
    opacity: 0;
    transform: translateY(-4px);
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 10;
}

.catalog-top-clear-all-wrap:hover::after {
    opacity: 1;
    transform: translateY(0);
}

.catalog-top-clear-all-wrap:hover::before {
    opacity: 1;
    transform: translateY(0);
}

.catalog-top-clear-all-btn {
    margin-left: auto;
    min-width: 42px;
    min-height: 42px;
    border: 1.5px solid #3A3A3A;
    background: #fff;
    color: #3A3A3A;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}

.catalog-top-clear-all-btn:hover:not(:disabled) {
    border-color: #5b432e;
    color: #5b432e;
    background: #f1e2cf;
}

.catalog-top-clear-all-btn:disabled {
    opacity: 0.45;
    cursor: default;
}

.catalog-top-clear-all-icon {
    width: 24px;
    height: 24px;
    transition: transform 0.2s ease;
}

.catalog-top-clear-all-btn:hover:not(:disabled) .catalog-top-clear-all-icon:not(.is-rotating) {
    transform: scale(1.05);
}

.catalog-top-clear-all-icon.is-rotating {
    animation: catalog-clear-all-rotate 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes catalog-clear-all-rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.catalog-top-clear-all-icon path {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.catalog-top-submenu-trigger {
    min-height: 42px;
    border: 1.5px solid #111;
    background: #fff;
    color: #131313;
    font-size: 0.9rem;
    font-weight: 500;
    padding: 7px 12px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    position: relative;
    transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.catalog-top-submenu-trigger:hover {
    border-color: #2f241a;
    color: #2f241a;
    background: #f1e2cf;
}

.catalog-top-submenu-trigger:hover .catalog-top-submenu-count {
    background: #2f241a;
    border-color: #2f241a;
}

.catalog-top-submenu-trigger:hover .catalog-top-submenu-icon {
    color: #2f241a;
}

.catalog-top-submenu-count {
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 999px;
    border: 1px solid #3A3A3A;
    background: #3A3A3A;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.catalog-top-submenu.is-open .catalog-top-submenu-trigger {
    position: relative;
    z-index: 7;
    color: #131313;
    background: #fff;
    border-color: #111;
    border-bottom-color: #111;
}

.catalog-top-submenu.is-open .catalog-top-submenu-trigger:hover {
    border-color: #2f241a;
    color: #2f241a;
    background: #f1e2cf;
}

.catalog-top-submenu.is-open .catalog-top-submenu-trigger:hover .catalog-top-submenu-count {
    background: #2f241a;
    border-color: #2f241a;
}

.catalog-top-submenu.is-open .catalog-top-submenu-trigger:hover .catalog-top-submenu-icon {
    color: #2f241a;
}

.catalog-top-submenu.is-open .catalog-top-submenu-trigger:hover::after {
    background: #F1E2CF;
}

.catalog-top-submenu.is-open .catalog-top-submenu-trigger::after {
    content: "";
    position: absolute;
    left: 0px;
    right: 0px;
    bottom: -2px;
    height: 2px;
    background: #ffffff;
    transition: background 0.2s ease;
    pointer-events: none;
}

.catalog-top-submenu-icon {
    display: inline-block;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1;
    transform: rotate(180deg);
    transition: transform 0.05s ease;
}

.catalog-top-submenu-icon.is-open {
    transform: rotate(0deg);
}

.catalog-top-submenu-panel {
    --submenu-option-row-height: 60px;
    --submenu-visible-options: 5.88;
    position: absolute;
    top: calc(100% - 1px);
    margin-top: 0;
    left: 0;
    min-width: 300px;
    max-width: 340px;
    background: #fff;
    border: 1.5px solid #111;
    border-top: 1.5px solid #111;
    padding: 0 12px 6px;
    display: grid;
    gap: 0;
    z-index: 6;
}

.catalog-top-submenu-panel--price {
    min-width: 300px;
    max-width: 340px;
    padding-top: 14px;
    min-height: 200px;
    display: flex;
    flex-direction: column;
}

.catalog-top-submenu-panel--price .catalog-top-price-inputs {
    margin-top: 6px;
}

.catalog-top-submenu-panel--price .catalog-top-price-range-wrap {
    margin: 18px 0 4px;
}

.catalog-top-submenu-panel--price .catalog-top-submenu-actions {
    margin: auto -12px -6px;
}
    
.catalog-top-submenu-panel--brand {
    min-width: 320px;
    max-width: 360px;
    padding-top: 10px;
}

.catalog-top-brand-search-wrap {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 29.5px;
    padding: 0;
    margin-bottom: 8px;
}

.catalog-top-brand-search-icon {
    position: absolute;
    left: 9px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    opacity: 0.85;
    pointer-events: none;
}

.catalog-top-brand-search {
    width: 100%;
    padding: 7px 34px 7px 32px;
    border: 1.5px solid #3A3A3A;
    font-size: 0.77rem;
    color: #333;
    background: #fff;
    outline: none;
    box-sizing: border-box;
    box-shadow: none;
    display: block;
}

.catalog-top-brand-search:focus {
    border-color: #3A3A3A;
    background: #fff;
    box-shadow: inset 0 0 0 0.5px #3A3A3A;
}

.catalog-top-brand-search-clear {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    border: 1.5px solid #3A3A3A;
    border-radius: 50%;
    background: transparent;
    color: #3A3A3A;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.catalog-top-brand-search-clear:hover {
    background: #AE7B3A;
    color: #fff;
    border-color: #3A3A3A;
}

.catalog-top-brand-list {
    max-height: calc((var(--submenu-visible-options) * var(--submenu-option-row-height)) + ((var(--submenu-visible-options) - 1) * 1.5px));
    overflow-y: auto;
    margin: 0 -12px;
    border-top: 1.5px solid #dcdcdc;
    scrollbar-width: auto;
    scrollbar-color: rgba(58, 58, 58, 0.45) transparent;
}

.catalog-top-brand-list::-webkit-scrollbar {
    width: 12px;
}

.catalog-top-brand-list::-webkit-scrollbar-track {
    background: transparent;
}

.catalog-top-brand-list::-webkit-scrollbar-thumb {
    background: rgba(58, 58, 58, 0.45);
    border-radius: 999px;
}

.catalog-top-brand-list .catalog-top-option-btn {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    min-height: var(--submenu-option-row-height);
}

.catalog-top-brand-list .catalog-top-option-btn + .catalog-top-option-btn {
    border-top: 1.5px solid #dcdcdc;
}

.catalog-top-option-btn {
    display: block;
    width: calc(100% + 24px);
    margin-left: -12px;
    margin-right: -12px;
    box-sizing: border-box;
    border: 0;
    background: transparent;
    color: #3A3A3A;
    padding: 0 34px 0 22px;
    min-height: 49px;
    line-height: 1.35;
    font-size: 0.9rem;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
    position: relative;
}

.catalog-top-option-btn:hover {
    background: #f1e2cf;
    color: #2f241a;
}

.catalog-top-option-btn.is-active {
    background: transparent;
    color: #AE7B3A;
    font-weight: 700;
}

.catalog-top-option-btn.is-active:hover {
    background: #f1e2cf;
    color: #2f241a;
}

.catalog-top-option-btn.is-active::after {
    content: "";
    position: absolute;
    right: 16px;
    top: 50%;
    display: block;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #AE7B3A;
}

.catalog-top-option-btn.is-active::before {
    content: "";
    position: absolute;
    right: 23px;
    top: calc(50% - 1px);
    width: 6px;
    height: 11px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: translateY(-50%) rotate(45deg);
    transform-origin: center;
    z-index: 1;
}

.catalog-top-option-btn.is-active:hover::after {
    background: #2f241a;
}

.catalog-top-submenu-panel .catalog-top-option-btn+.catalog-top-option-btn {
    border-top: 1.5px solid #dcdcdc;
}

.catalog-top-submenu-panel .catalog-top-option-btn:first-of-type {
    border-top: 0;
}

.catalog-top-submenu-panel .catalog-top-option-btn:last-of-type {
    border-bottom: 0;
}

.catalog-top-color-swatches {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
}

.catalog-top-color-swatch {
    display: inline-block;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 1.5px solid #2b2b2b;
    cursor: pointer;
    padding: 0;
}

.catalog-top-color-swatch.is-active {
    box-shadow: 0 0 0 3px #fff, 0 0 0 5px #AE7B3A;
}

.catalog-top-option-btn.catalog-top-color-option-btn {
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    width: calc(100% + 24px);
    margin-left: -12px;
    margin-right: -12px;
    box-sizing: border-box;
    min-height: 49px;
}

.catalog-top-color-option-label {
    display: block;
    align-self: center;
    line-height: 1.2;
    padding-top: 1px;
}

.catalog-top-price-sort-options {
    display: grid;
    gap: 0;
    max-height: calc((var(--submenu-visible-options) * var(--submenu-option-row-height)) + ((var(--submenu-visible-options) - 1) * 1.5px));
    overflow-y: auto;
    margin: 0 -12px;
    scrollbar-width: auto;
    scrollbar-color: rgba(58, 58, 58, 0.45) transparent;
}

.catalog-top-price-sort-options::-webkit-scrollbar {
    width: 12px;
}

.catalog-top-price-sort-options::-webkit-scrollbar-track {
    background: transparent;
}

.catalog-top-price-sort-options::-webkit-scrollbar-thumb {
    background: rgba(58, 58, 58, 0.45);
    border-radius: 999px;
}

.catalog-top-filter-label {
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #111;
}

.catalog-top-price-inputs {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
}

.catalog-top-price-input-field {
    min-width: 0;
    display: grid;
    gap: 0;
}

.catalog-top-price-input-title {
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    align-self: start;
    align-items: center;
    min-height: 24px;
    padding: 3px 8px;
    border: 1px solid rgb(0, 0, 0);
    background: #fff;
    color: #3A3A3A;
    font-size: 0.60rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1.2;
    box-sizing: border-box;
    border-bottom: 0;
    white-space: nowrap;

}

.catalog-top-price-input-wrap {
    position: relative;
}

.catalog-top-price-input-field input {
    width: 100%;
    min-height: 48px;
    border: 1.5px solid #3A3A3A;
    background: #fff;
    color: #222;
    font-size: 0.86rem;
    font-weight: 600;
    padding: 11px 34px 11px 10px;
    box-sizing: border-box;
}

.catalog-top-price-input-field input::-webkit-outer-spin-button,
.catalog-top-price-input-field input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.catalog-top-price-input-field input[type="number"] {
    appearance: textfield;
    -moz-appearance: textfield;
}

.catalog-top-price-input-field input:focus {
    outline: none;
    border-color: #3a3a3ab6;
    box-shadow: inset 0 0 0 0.5px #3A3A3A;
}

.catalog-top-price-input-field input:focus {
    border-color: #3A3A3A;
    background: #fff;
    color: #222;
}

.catalog-top-price-input-field:has(input:focus) .catalog-top-price-input-title {
    background: #3A3A3A;
    border-color: #3A3A3A;
    color: #fff;
}

.catalog-top-price-input-currency {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #1f1f1f;
    font-family: "Open Sans", Arial, sans-serif;
    font-style: normal;
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.01em;
    text-shadow: 0 0 0.01px currentColor;
    pointer-events: none;
}

.catalog-top-price-input-separator {
    position: relative;
    width: 12px;
    height: auto;
    color: transparent;
    font-size: 0;
    line-height: 0;
    align-self: stretch;
}

.catalog-top-price-input-separator::before {
    content: "";
    position: absolute;
    left: 0;
    top: calc(50% + 13px);
    width: 100%;
    height: 1px;
    border-radius: 999px;
    background: #2f2f2f;
    transform: translateY(-50%);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.catalog-top-price-range {
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: 22px;
    transform: translateY(-50%);
    margin: 0;
    background: transparent;
    appearance: none;
    -webkit-appearance: none;
    pointer-events: none;
}

.catalog-top-price-range-wrap {
    position: relative;
    height: 22px;
    margin: 2px 0 4px;
    cursor: pointer;
}

.catalog-top-price-range-track,
.catalog-top-price-range-track-active {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    height: 5px;
    border-radius: 999px;
}

.catalog-top-price-range-track {
    left: 0;
    right: 0;
    background: #d7d7d7;
}

.catalog-top-price-range-track-active {
    background: #AE7B3A;
}

.catalog-top-price-range::-webkit-slider-runnable-track {
    height: 5px;
    background: transparent;
    border: 0;
}

.catalog-top-price-range::-moz-range-track {
    height: 5px;
    background: transparent;
    border: 0;
}

.catalog-top-price-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid #3A3A3A;
    background: #fff;
    box-shadow: 0 0 0 1px #fff;
    cursor: pointer;
    margin-top: -8px;
    pointer-events: auto;
}

.catalog-top-price-range::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid #3A3A3A;
    background: #fff;
    box-shadow: 0 0 0 1px #fff;
    cursor: pointer;
    pointer-events: auto;
}

.catalog-top-price-range--min {
    z-index: 2;
}

.catalog-top-price-range--max {
    z-index: 3;
}

.catalog-top-submenu-actions {
    width: calc(100% + 24px);
    margin: 0 -12px -6px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border-top: 0;
}

.catalog-top-submenu-action-btn {
    min-height: 46px;
    border: 0;
    background: #e8e8e8;
    color: #3A3A3A;
    font-size: 0.9rem;
    font-weight: 700;
    padding: 9px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px #3A3A3A;
}

.catalog-top-submenu-action-btn:not(:disabled) {
    box-shadow: inset 0 0 0 2px #3A3A3A;
}

.catalog-top-submenu-action-btn.is-primary:not(:disabled) {
    box-shadow: inset 0 0 0 2px #3A3A3A;
}

.catalog-top-submenu-action-btn + .catalog-top-submenu-action-btn {
    border-left: 0;
}

.catalog-top-submenu-action-btn + .catalog-top-submenu-action-btn:hover,
.catalog-top-submenu-action-btn + .catalog-top-submenu-action-btn.is-primary:hover {
    border-left-color: #3A3A3A;
}

.catalog-top-submenu-action-btn.is-primary {
    background: #3A3A3A;
    color: #fff;
}

.catalog-top-submenu-action-btn:hover {
    background: #ead8c3;
    color: #2f241a;
    border-color: #2f241a;
}

.catalog-top-submenu-action-btn.is-primary:hover {
    background: #9a6d33;
    border-color: #9a6d33;
    color: #fff;
}

.catalog-top-submenu-action-btn:disabled {
    box-shadow: inset 0 0 0 1px #3A3A3A;
    opacity: 0.45;
    cursor: default;
}

.catalog-top-submenu-action-btn:disabled:hover {
    background: #e8e8e8;
    color: #3A3A3A;
    border-color: transparent;
}

.catalog-top-submenu-action-btn.is-primary:disabled,
.catalog-top-submenu-action-btn.is-primary:disabled:hover {
    background: #3A3A3A;
    color: #fff;
    border-color: transparent;
    opacity: 0.45;
    cursor: default;
    pointer-events: none;
}



.catalog-reset {
    width: 100%;
    margin-bottom: 10px;
    border: 1px solid #d9d9d9;
    background: #fff;
    color: #111;
    padding: 8px 10px;
    border-radius: 0;
    font-weight: 600;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.catalog-reset:hover {
    background: #f7f7f7;
    border-color: #bdbdbd;
}

.catalog-active-filters-row {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 10px 0 6px;
    min-height: 38px;
    padding-left: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.catalog-active-filters-row.is-empty {
    visibility: visible;
    margin: 6px 0 2px;
    padding: 8px 16px;
}

.catalog-active-filters {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin: 0;
    min-width: 0;
}

.catalog-active-filters-list {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: #c4c4c4 #f3f3f3;
}

.catalog-active-filters-list::-webkit-scrollbar {
    height: 6px;
}

.catalog-active-filters-list::-webkit-scrollbar-track {
    background: #f3f3f3;
}

.catalog-active-filters-list::-webkit-scrollbar-thumb {
    background: #c4c4c4;
    border-radius: 999px;
}

.catalog-active-filter-chip {
    border: 1px solid rgba(37, 37, 37, 0.22);
    background: rgba(174, 123, 58, 0.03);
    color: #5b4630;
    border-radius: 999px;
    padding: 7px 10px 7px 12px;
    font-size: 0.82rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    flex: 0 0 auto;
    white-space: nowrap;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.catalog-active-filter-chip:hover {
    background: rgba(174, 123, 58, 0.18);
    border-color: rgba(174, 123, 58, 0.7);
}

.catalog-active-filter-chip-close {
    font-size: 0.92rem;
    line-height: 1;
    color: #8b673d;
}

.catalog-clear-criteria-wrap {
    position: relative;
    display: inline-flex;
    margin-left: 10px;
    flex: 0 0 auto;
}

.catalog-clear-criteria-wrap::after {
    content: attr(data-tooltip);
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    background: #3A3A3A;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 0 9px;
    white-space: nowrap;
    border-radius: 3px;
    opacity: 0;
    transform: translateY(-4px);
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 10;
}

.catalog-clear-criteria-wrap:hover::after {
    opacity: 1;
    transform: translateY(0);
}

.catalog-clear-criteria {
    flex: 0 0 auto;
    border: 1px solid rgba(37, 37, 37, 0.22);
    background: rgba(174, 123, 58, 0.03);
    color: #5b4630;
    border-radius: 999px;
    padding: 5px 8px;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.catalog-clear-criteria:hover {
    background: rgba(174, 123, 58, 0.18);
    border-color: rgba(174, 123, 58, 0.7);
}

.catalog-clear-criteria-icon {
    width: 20px;
    height: 20px;
    display: block;
    transition: transform 0.2s ease;
}

.catalog-clear-criteria:hover .catalog-clear-criteria-icon {
    transform: scale(1.05);
}

.catalog-clear-criteria-icon path {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.catalog-selected-collection {
    margin-bottom: 8px;
    padding: 0 0 10px;
    background: transparent;
    display: grid;
    gap: 2px;
    text-align: left;
}

.catalog-filters-separator {
    display: block;
    width: 50%;
    max-width: 50%;
    height: auto;
    margin: -2px;
    opacity: 0.85;
    flex: 0 0 50%;
}

.catalog-filters-separator-marquee {
    width: 100%;
    overflow: hidden;
    margin: 6px 0 14px;
}

.catalog-filters-separator-track {
    display: flex;
    width: 200%;
    animation: catalogSeparatorScroll 50s linear infinite;
    will-change: transform;
}

@keyframes catalogSeparatorScroll {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

.catalog-selected-collection-submenu {
    width: 100%;
    margin-right: 0;
    z-index: 8;
}

.catalog-selected-collection-submenu.is-open .catalog-top-submenu-trigger {
    z-index: 10;
}

.catalog-selected-collection-submenu.is-open .catalog-top-submenu-trigger::after {
    z-index: 11;
}

.catalog-selected-collection-submenu .catalog-top-submenu-trigger {
    width: 100%;
    justify-content: space-between;
    min-height: 42px;
    font-size: 0.9rem;
    padding: 7px 12px;
}

.catalog-selected-collection-submenu .catalog-top-submenu-trigger:hover {
    border-color: #2f241a;
    color: #2f241a;
    background: #f1e2cf;
}

.catalog-selected-collection-submenu .catalog-top-submenu-trigger:hover .catalog-top-submenu-icon {
    color: #2f241a;
}

.catalog-selected-collection-submenu.is-open .catalog-top-submenu-trigger:hover::after {
    background: #F1E2CF;
}

.catalog-selected-collection-submenu .catalog-top-submenu-trigger.has-selection {
    background: #3f3124;
    border-color: #3f3124;
    color: #fff;
}

.catalog-selected-collection-submenu .catalog-top-submenu-trigger.has-selection .catalog-top-submenu-icon {
    color: #fff;
}

.catalog-selected-collection-submenu .catalog-top-submenu-trigger.has-selection:hover {
    background: #3f3124;
    border-color: #3f3124;
    color: #fff;
}

.catalog-selected-collection-submenu .catalog-top-submenu-trigger.has-selection:hover .catalog-top-submenu-icon {
    color: #fff;
}

.catalog-selected-collection-label {
    display: inline-block;
    flex: 1;
    min-width: 0;
}

.catalog-selected-collection-submenu .catalog-top-submenu-trigger.has-selection .catalog-selected-collection-label {
    color: #fff;
    font-weight: 600;
}

.catalog-selected-collection-panel {
    position: absolute;
    top: calc(100% - 1px);
    left: 0;
    min-width: 0;
    max-width: none;
    width: 100%;
    margin-top: 0;
    z-index: 9;
    max-height: none;
    overflow-y: visible;
    padding-bottom: 0;
}

.catalog-selected-collection-panel .catalog-top-option-btn {
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.06em;
    font-size: 0.75rem;
    width: calc(100% + 24px);
    min-height: 54px;
}

.catalog-selected-collection-panel::-webkit-scrollbar {
    width: 12px;
}

.catalog-selected-collection-panel::-webkit-scrollbar-track {
    background: transparent;
}

.catalog-selected-collection-panel::-webkit-scrollbar-thumb {
    background: rgba(58, 58, 58, 0.45);
    border-radius: 999px;
}

.catalog-selected-collection span {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #7a6754;
}

.catalog-selected-collection strong {
    font-size: 0.9rem;
    font-weight: 700;
    color: #2f2419;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.catalog-selected-collection-control {
    position: relative;
}

.catalog-selected-collection-control::after {
    content: "▾";
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #3f3124;
    pointer-events: none;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1;
    transition: transform 0.12s ease, color 0.12s ease;
}

.catalog-selected-collection-select {
    width: 100%;
    border: 1px solid #d9d9d9;
    background: #fff;
    color: #3f3124;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    min-height: 40px;
    padding: 10px 34px 10px 12px;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.catalog-selected-collection .catalog-top-submenu-icon {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
    color: inherit;
}
.catalog-selected-collection-select:hover {
    border-color: #bdbdbd;
}

.catalog-selected-collection-select:focus {
    outline: none;
    border-color: #333;
}

.filter-option {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 8px;
    padding: 1px 1px;
    border-radius: 0;
    color: #171717;
    font-size: 0.76rem;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.filter-option:hover {
    background: #fafafa;
    color: #000;
}

.filter-option-separator {
    grid-column: 1 / -1;
    height: 1px;
    margin: 6px 0 4px;
    background: #ece7df;
}

.filter-option input {
    -webkit-appearance: none;
    appearance: none;
    width: 13px;
    height: 13px;
    border: 1px solid #8f8f8f;
    border-radius: 2px;
    margin: 0;
    background: #fff;
    display: grid;
    place-content: center;
    cursor: pointer;
}

.filter-option input::before {
    content: "";
    width: 8px;
    height: 8px;
    transform: scale(0);
    transition: transform 0.12s ease;
    background:
        linear-gradient(45deg, transparent 42%, #fff 42%, #fff 58%, transparent 58%),
        linear-gradient(-45deg, transparent 42%, #fff 42%, #fff 58%, transparent 58%);
}

.filter-option input:checked {
    border-color: #AE7B3A;
    background: #AE7B3A;
}

.filter-option:has(input:checked) {
    color: #AE7B3A;
    font-weight: 700;
    font-size: 0.80rem;
}

.filter-option input:checked::before {
    transform: scale(1);
}

.filter-option span {
    color: #787878;
    font-size: 0.82em;
}

.filter-option [data-filter-count],
.filter-option [data-category-count] {
    justify-self: end;
    color: #7a7a7a;
    font-size: 0.84em;
}

.filter-option.is-zero {
    display: none !important;
}

.product-card[hidden] {
    display: none;
}

.catalog-empty {
    margin-top: 14px;
    padding: 14px;
    border: 1px dashed #cfcfcf;
    border-radius: 2px;
    color: #444;
    background: #fafafa;
}

@keyframes catalog-spin {
    to { transform: rotate(360deg); }
}

.catalog-spinner {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 60px 0;
    grid-column: 1 / -1;
}

.catalog-spinner span {
    display: block;
    width: 44px;
    height: 44px;
    border: 3px solid rgba(174, 123, 58, 0.18);
    border-top-color: #AE7B3A;
    border-radius: 50%;
    animation: catalog-spin 0.75s linear infinite;
}

.catalog-filters h2 {
    margin: 0 0 8px;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #3f3124;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(122, 78, 34, 0.4);
}

.catalog-filters-toggle {
    background: none;
    border: none;
    font-size: 0.8rem;
    cursor: pointer;
    color: #333;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
}

.filter-group {
    margin-bottom: 12px;
    padding-bottom: 7px;
    border-bottom: 1px solid rgba(122, 78, 34, 0.22);
}

.filter-group-toggle {
    background: none;
    border: none;
    padding: 0 0 8px 0;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    gap: 6px;
    text-align: left;
}

.filter-group-toggle h3 {
    margin: 0;
    font-size: 0.81rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #3f3124;
    flex: 1;
    text-align: left;
}

.filter-group-icon {
    font-size: 0.9rem;
    color: #333;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 1.2em;
}

.filter-group-icon-inner {
    display: inline-block;
    font-size: 1.5rem;
    line-height: 1;
    color: #555;
    font-weight: 700;
    transform: rotate(0deg);
    transition: transform 0.12s ease, color 0.12s ease;
}

.filter-group-icon-inner.expanded {
    transform: rotate(90deg);
}

.filter-group-toggle:hover .filter-group-icon-inner {
    color: #3f3124;
}

.filter-options {
    display: grid;
    gap: 2px;
    overflow-y: visible;
    padding-right: 4px;
    scrollbar-width: none;
}

.filter-group a {
    display: block;
    padding: 7px 4px;
    text-decoration: none;
    color: #171717;
    border-radius: 0;
    line-height: 1.2;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.filter-group a:hover {
    text-decoration: none;
    background: #fafafa;
    color: #000;
    transform: translateX(2px);
}

/* Filter Panel Mobile */
.catalog-filters-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 999;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.catalog-filters-overlay.is-open {
    opacity: 1;
    pointer-events: auto;
}

.catalog-filters-toggle-btn {
    background: #111;
    border: 1.5px solid #111;
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 7px 12px;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    min-height: 42px;
    position: relative;
    transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.catalog-filters-toggle-btn:hover {
    border-color: #2f241a;
    color: #f1e2cf;
    background: #2f241a;
}

.catalog-filters-panel {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    width: min(90vw, 100%);
    background: #fff;
    z-index: 1000;
    transform: translateX(-100%);
    transition: transform 0.35s cubic-bezier(0.23, 1, 0.320, 1);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    padding: 0;
    box-shadow: 2px 0 16px rgba(0, 0, 0, 0.12);
}

.catalog-filters-panel.is-open {
    transform: translateX(0);
}

.catalog-filters-panel-header {
    padding: 20px 18px;
    border-bottom: 1px solid rgba(122, 78, 34, 0.15);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    gap: 12px;
}

.catalog-filters-panel-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #3f3124;
    margin: 0;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.catalog-filters-panel-close {
    width: 36px;
    height: 36px;
    background: rgba(255, 252, 247, 0.92);
    border: 1.5px solid rgba(122, 92, 62, 0.34);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.10);
    cursor: pointer;
    color: #3A3A3A;
    padding: 4px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    transition: color 0.2s ease, transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
    flex-shrink: 0;
}

.catalog-filters-panel-close:hover {
    color: #AE7B3A;
    background: rgba(255, 248, 239, 0.98);
    border-color: rgba(174, 123, 58, 0.5);
    transform: rotate(90deg);
}

.catalog-filters-panel-content {
    flex: 1;
    overflow-y: auto;
    padding: 0;
    display: flex;
    flex-direction: column;
    scrollbar-width: thin;
    scrollbar-color: rgba(122, 78, 34, 0.2) transparent;
}

.catalog-filters-panel-content::-webkit-scrollbar {
    width: 6px;
}

.catalog-filters-panel-content::-webkit-scrollbar-track {
    background: transparent;
}

.catalog-filters-panel-content::-webkit-scrollbar-thumb {
    background: rgba(122, 78, 34, 0.2);
    border-radius: 3px;
}

.catalog-filters-panel-content::-webkit-scrollbar-thumb:hover {
    background: rgba(122, 78, 34, 0.4);
}

.catalog-filters-panel-wrapper {
    padding: 16px 18px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-content: start;
}

.catalog-filters-panel-footer {
    padding: 16px 18px;
    border-top: 1px solid rgba(122, 78, 34, 0.15);
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.catalog-filters-panel-btn {
    flex: 1;
    padding: 12px 16px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.catalog-filters-panel-btn-cancel {
    background: #f5f5f5;
    color: #333;
}

.catalog-filters-panel-btn-cancel:active {
    background: #efefef;
    transform: scale(0.98);
}

.catalog-filters-panel-btn-apply {
    background: linear-gradient(135deg, #8f5f24 0%, #a0693c 100%);
    color: #fff;
}

.catalog-filters-panel-btn-apply:active {
    background: linear-gradient(135deg, #7a4f1b 0%, #8f5930 100%);
    transform: scale(0.98);
}

.filter-group-panel {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.filter-group-toggle-panel {
    background: none;
    border: none;
    padding: 10px 0 8px 0;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    gap: 6px;
    text-align: left;
    border-bottom: 1px solid rgba(122, 78, 34, 0.12);
}

.filter-group-toggle-panel h4 {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #3f3124;
    flex: 1;
    text-align: left;
}

.filter-options-panel {
    display: grid;
    gap: 2px;
    overflow-y: visible;
    padding: 8px 0;
    scrollbar-width: none;
}

.filter-option-panel {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 0;
    font-size: 0.85rem;
    color: #333;
}

.filter-option-panel input {
    cursor: pointer;
    width: 16px;
    height: 16px;
    accent-color: #8f5f24;
}

.filter-option-panel label {
    cursor: pointer;
    flex: 1;
}

@media (max-width: 1024px) {
    .catalog-page {
        grid-template-columns: minmax(250px, 280px) minmax(0, 1fr);
        column-gap: 28px;
    }

    .catalog-pro-shell {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .catalog-pro-editorial {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    }

    .catalog-pro-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .catalog-pro-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .catalog-content {
        grid-column: 2;
        grid-row: 3;
    }

    .catalog-filters {
        grid-column: 1;
        grid-row: 3;
        position: sticky;
        top: 16px;
        max-height: calc(100vh - 32px);
    }

    .catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }
}

@media (min-width: 980px) and (max-width: 1024px) {
    .catalog-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
    }
}

@media (max-width: 900px) {
    .catalog-page {
        grid-template-columns: 1fr;
        column-gap: 0;
        row-gap: 14px;
        margin: 18px auto 34px;
        padding: 0 12px;
    }

    .catalog-header {
        --catalog-hero-height: 124px;
        margin: -4px -12px 0;
        padding: 8px 12px 14px;
    }

    .catalog-title-wrapper {
        width: 100%;
        min-width: 0;
        padding: 0 16px;
        border-radius: 10px;
    }

    .catalog-title-wrapper h1 {
        font-size: clamp(1.7rem, 7.2vw, 2.45rem);
    }

    .mode-femme-banner-scroll {
        display: none;
    }

    .catalog-content {
        grid-column: 1;
        grid-row: auto;
    }

    .catalog-filters {
        display: none;
    }

    .catalog-filters-toggle-btn {
        display: flex;
        flex: 0 0 auto;
    }

    .catalog-top-filters-row {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        gap: 8px;
    }

    .catalog-top-filters {
        min-width: 0;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: visible;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding: 0;
        gap: 8px;
    }

    .catalog-top-filters::-webkit-scrollbar {
        display: none;
    }

    .catalog-top-submenu {
        flex: 0 0 auto;
        width: auto;
        margin-right: 0;
    }

    .catalog-top-submenu-trigger {
        width: auto;
        white-space: nowrap;
    }

    .catalog-page-reset-wrap {
        flex: 0 0 auto;
        align-items: center;
    }

    .catalog-top-clear-all-wrap {
        margin-left: 0;
    }

    .catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .product-card-img-wrap {
        width: 100%;
    }
}

@media (max-width: 640px) {
    .mode-femme-collection-subtitle,
    .title-collection-subtitle {
        margin: 2px 0 14px;
    }

    .catalog-active-filters {
        align-items: center;
        flex-direction: row;
    }

    .catalog-clear-criteria {
        margin-left: auto;
    }

    .catalog-top-filters {
        padding: 0;
        gap: 8px;
    }

    .catalog-top-submenu {
        width: auto;
    }

    .catalog-top-clear-all-btn {
        margin-left: auto;
    }

    .catalog-top-submenu-trigger {
        width: auto;
        justify-content: space-between;
    }

    .catalog-top-submenu-panel {
        position: static;
        width: 100%;
        max-width: none;
        box-shadow: none;
    }

    .catalog-selected-collection-panel {
        position: absolute;
        top: calc(100% - 1px);
        left: 0;
        z-index: 9;
    }

    .catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .catalog-pro-section {
        margin-top: 14px;
        margin-bottom: 44px;
    }

    .catalog-pro-editorial,
    .catalog-pro-content {
        padding: 20px 16px;
    }

    .catalog-pro-content-head {
        gap: 8px;
    }

    .catalog-pro-pills {
        gap: 6px;
    }

    .catalog-pro-pill {
        min-height: 28px;
        font-size: 0.66rem;
    }

    .catalog-pro-cards,
    .catalog-pro-metrics {
        grid-template-columns: 1fr;
    }

    .catalog-pro-title {
        font-size: 1.24rem;
    }

    .filter-option-panel label {
        cursor: pointer;
        flex: 1;
    }
}

/* EVENTS PAGE */
.events-page {
    --events-bg-top: #fffaf3;
    --events-bg-bottom: #efe2d1;
    --events-accent: #ae7b3a;
    --events-accent-strong: #8f5f24;
    --events-accent-soft: rgba(174, 123, 58, 0.16);
    --events-dark: #241a10;
    --events-card-border: rgba(106, 76, 42, 0.24);
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    max-width: 1400px;
    width: min(100%, 1400px);
    margin: 0 auto 132px;
    padding: 28px 20px 56px;
    box-sizing: border-box;
    display: grid;
    gap: 24px;
    position: relative;
    background: #f8f4ef;
    border: 1px solid rgba(122, 92, 62, 0.12);
    box-shadow: 0 8px 16px rgba(43, 26, 10, 0.05);
}

.events-page--focus {
    min-height: calc(100vh - 96px);
}

.events-page--focus .events-hero {
    min-height: clamp(560px, 78vh, 920px);
    display: flex;
    flex-direction: column;
}

.events-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(28px, 3.4vw, 42px);
    background: #fff;
    border: 1px solid rgba(122, 92, 62, 0.16);
    border-radius: 16px;
    box-shadow: 0 8px 18px rgba(44, 27, 10, 0.06);
    text-align: center;
}

.events-hero::before,
.events-hero::after {
    content: none;
    position: absolute;
    width: 140px;
    height: 140px;
    background: url('img/amazigh.png') center/contain no-repeat;
    opacity: 0.06;
    pointer-events: none;
}

.events-hero::before {
    top: -28px;
    right: -22px;
}

.events-hero::after {
    bottom: -32px;
    left: -24px;
}

.events-kicker {
    margin: 0;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 700;
    color: #7a5c3e;
}

.events-hero h1 {
    margin: 12px 0 0;
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    font-size: clamp(1.9rem, 4.4vw, 2.5rem);
    line-height: 1.08;
    letter-spacing: 0;
    color: var(--events-dark);
}

.events-intro {
    margin: 14px auto 0;
    max-width: 860px;
    text-align: center;
    font-size: 16px;
    line-height: 1.7;
    color: #4a3a29;
}

.events-tags {
    margin-top: 18px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
}

.events-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 6px 12px;
    border: 1px solid rgba(122, 92, 62, 0.24);
    background: #fff;
    color: #4a341d;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-weight: 700;
    border-radius: 999px;
    cursor: pointer;
    transition: border-color 0.24s ease, box-shadow 0.24s ease, background 0.24s ease, color 0.24s ease, transform 0.24s ease;
}

.events-tab:hover {
    border-color: rgba(143, 95, 36, 0.34);
    background: #f7ead7;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(95, 63, 29, 0.06);
}

.events-tab.is-active {
    background: linear-gradient(120deg, #f4e5d1, #ecd7bc);
    border-color: rgba(143, 95, 36, 0.46);
    color: #2d2014;
    box-shadow: 0 4px 10px rgba(58, 36, 12, 0.08);
}

.events-tab:focus-visible {
    outline: 2px solid rgba(174, 123, 58, 0.6);
    outline-offset: 2px;
}

.events-expanded {
    margin-top: 14px;
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    transform: translateY(-12px);
    pointer-events: none;
    will-change: grid-template-rows, transform, opacity;
    transition:
        grid-template-rows 0.48s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.48s cubic-bezier(0.22, 1, 0.36, 1);
}

.events-expanded.is-open {
    grid-template-rows: 1fr;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.events-page--focus .events-expanded {
    margin-top: 20px;
    flex: 1;
}

.events-page--focus .events-expanded.is-open {
    grid-template-rows: 1fr;
}

.events-expanded-clip {
    overflow: hidden;
}

.events-page--focus .events-expanded-clip {
    height: 100%;
}

.events-expanded-card {
    margin: 0;
    min-height: 0;
    padding: clamp(20px, 2.4vw, 30px);
    border-radius: 16px;
    border-color: rgba(122, 92, 62, 0.34);
    box-shadow: 0 10px 22px rgba(48, 29, 11, 0.1);
    opacity: 0;
    transform: translateY(-14px) scale(0.985);
    transform-origin: top center;
    will-change: transform, opacity;
    transition:
        opacity 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.34s ease;
}

.events-expanded.is-open .events-expanded-card {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.events-page--focus .events-expanded-card {
    height: 100%;
    min-height: clamp(500px, 68vh, 820px);
}

.events-expanded-card h2 {
    font-size: clamp(1.55rem, 2.5vw, 2.05rem);
    margin-top: 10px;
}

.events-expanded-card p {
    font-size: 15px;
}

.events-expanded-card ul {
    gap: 8px;
}

.events-expanded-card .event-samakeup-logo {
    width: clamp(96px, 12vw, 150px);
}

.event-samakeup-layout--expanded {
    gap: clamp(16px, 2vw, 24px);
}

.events-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.events-grid .event-card {
    cursor: pointer;
    display: flex;
    flex-direction: column;
}

.events-grid .event-card .event-dates-badge {
    margin-top: auto;
    padding-top: 8px;
    align-self: flex-end;
}

.events-grid .event-card:focus-visible {
    outline: 2px solid rgba(174, 123, 58, 0.62);
    outline-offset: 2px;
}

.event-card {
    position: relative;
    overflow: hidden;
    min-height: 220px;
    padding: 20px 18px;
    background: #fff;
    border: 1px solid var(--events-card-border);
    box-shadow: 0 6px 14px rgba(58, 36, 12, 0.05);
    border-radius: 14px;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.event-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(174, 123, 58, 0.75), transparent);
}

.event-card::after {
    content: none;
}

.event-card:hover {
    transform: translateY(-1px);
    border-color: rgba(122, 92, 62, 0.3);
    box-shadow: 0 8px 16px rgba(58, 36, 12, 0.08);
}

.event-card.is-linked-active {
    border-color: rgba(143, 95, 36, 0.44);
    box-shadow: 0 9px 18px rgba(58, 36, 12, 0.1);
}

.event-meta {
    margin: 0;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #7c6248;
    font-weight: 700;
}

.event-card h2 {
    margin: 10px 0 10px;
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    font-size: 1.28rem;
    line-height: 1.2;
    color: #2c1f13;
}

.event-card p {
    margin: 0;
    color: #4e3d2d;
    line-height: 1.65;
    font-size: 14px;
}

.event-card ul {
    margin: 12px 0 0;
    padding-left: 0;
    color: #5a4531;
    display: grid;
    gap: 6px;
    font-size: 14px;
    list-style: none;
}

.event-card ul li {
    position: relative;
    padding-left: 16px;
}

.event-card ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.75em;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: linear-gradient(120deg, var(--events-accent), var(--events-accent-strong));
}

.event-card-featured {
    grid-column: span 1;
    background: #fff;
}

.event-card-featured ul {
    width: fit-content;
    margin: 12px auto 0;
    text-align: left;
}

.event-card-samakeup {
    grid-column: span 1;
    border-left: 3px solid rgba(174, 123, 58, 0.46);
    background:
        linear-gradient(rgba(255, 255, 255, 0.87), rgba(255, 255, 255, 0.87)),
        url('/img/samakeupBG.png') center / cover no-repeat;
}

.event-card-outline {
    background: #fff;
    border-style: dashed;
}

.event-samakeup-layout {
    display: flex;
    align-items: center;
    gap: 14px;
}

.event-card-samakeup .event-samakeup-layout {
    justify-content: center;
    align-items: center;
    gap: clamp(14px, 2vw, 22px);
    margin-top: 14px;
}

.event-card-samakeup .event-samakeup-copy {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 540px;
    margin: 0 auto;
}

.event-card-samakeup .event-samakeup-copy h2,
.event-card-samakeup .event-samakeup-copy p {
    text-align: center;
}

.event-samakeup-logo {
    width: 152px;
    height: auto;
    flex-shrink: 0;
    border-radius: 14px;
}

.events-cta {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 16px;
    padding: 20px;
    border: 1px solid rgba(122, 92, 62, 0.2);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 14px rgba(41, 24, 8, 0.05);
}

.events-cta h2 {
    margin: 0;
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    font-size: 1.7rem;
    color: #322416;
}

.events-cta p {
    margin: 8px 0 0;
    color: #4f3c2a;
    font-size: 14px;
}

.events-cta-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.events-cta-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 130px;
    min-height: 44px;
    padding: 0 16px;
    text-decoration: none;
    color: #2a1c0f;
    background: #f4e5d1;
    border: 1px solid rgba(122, 92, 62, 0.26);
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 700;
    border-radius: 999px;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.events-cta-actions a:hover {
    background: #ecd3ae;
    border-color: rgba(143, 95, 36, 0.4);
    color: #2a1c0f;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(58, 36, 12, 0.1);
}

/* ── Badge dates sur les blocs ── */
.event-dates-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    padding: 5px 11px;
    background: #f4e5d1;
    border: 1px solid rgba(122, 92, 62, 0.25);
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #7a5c2f;
    pointer-events: none;
}

.event-dates-list {
    list-style: none;
    margin: 14px 0 0;
    padding: 10px 14px;
    background: rgba(244, 229, 209, 0.35);
    border-left: 3px solid #c8a46a;
    border-radius: 0 8px 8px 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.event-dates-list li {
    font-size: 13px;
    font-weight: 600;
    color: #4f3c2a;
}

.event-dates-empty {
    margin: 12px 0 0;
    font-size: 12px;
    color: #7a6a58;
    font-style: italic;
}

/* ── Image dans un bloc événement ── */
.event-card-img {
    width: 100%;
    max-height: 180px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 10px;
}

/* ── CTA amélioré ── */
.events-cta-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 20px;
    width: 100%;
}

.events-cta-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 14px;
    background: #f4e5d1;
    color: #7a5c2f;
    flex-shrink: 0;
}

.events-cta-text {
    flex: 1;
    min-width: 0;
}

.events-cta-text h2 {
    margin: 0;
    font-family: 'Manrope', 'Open Sans', Arial, sans-serif;
    font-size: 1.4rem;
    color: #322416;
}

.events-cta-text p {
    margin: 5px 0 0;
    color: #4f3c2a;
    font-size: 13.5px;
    line-height: 1.55;
}

.events-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 130px;
    min-height: 44px;
    padding: 0 18px;
    text-decoration: none;
    font-size: 12.5px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-weight: 700;
    border-radius: 999px;
    border: 1px solid transparent;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.events-cta-btn--instagram {
    background: linear-gradient(135deg, #f7e3cb 0%, #f4d0c4 100%);
    color: #8b3a2b;
    border-color: rgba(185, 80, 50, 0.2);
}

.events-cta-btn--instagram:hover {
    background: linear-gradient(135deg, #f2d0b0 0%, #eebbaa 100%);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(140, 60, 40, 0.15);
}

.events-cta-btn--facebook {
    background: linear-gradient(135deg, #dce9f8 0%, #ccddf5 100%);
    color: #1a4a8c;
    border-color: rgba(30, 80, 160, 0.2);
}

.events-cta-btn--facebook:hover {
    background: linear-gradient(135deg, #c8daf4 0%, #b8cef0 100%);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(30, 80, 160, 0.13);
}

@media (max-width: 1024px) {
    .events-grid {
        grid-template-columns: 1fr 1fr;
    }

    .event-card-featured {
        grid-column: span 1;
    }

    .events-cta {
        grid-template-columns: 1fr;
        text-align: center;
        justify-items: center;
    }

    .events-cta-inner {
        grid-template-columns: 1fr;
        text-align: center;
        justify-items: center;
        gap: 14px;
    }

    .events-cta-icon { display: none; }

    .events-hero {
        border-radius: 14px;
    }
}

@media (max-width: 680px) {
    .events-page {
        margin-bottom: 96px;
        padding: 18px 12px 42px;
    }

    .events-intro {
        font-size: 15px;
    }

    .events-tags {
        gap: 8px;
    }

    .events-tab {
        min-height: 32px;
        font-size: 11px;
        letter-spacing: 0.04em;
    }

    .events-expanded {
        margin-top: 10px;
    }

    .events-expanded-card {
        border-radius: 12px;
        padding: 18px 14px;
    }

    .events-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .event-card,
    .event-card-featured {
        grid-column: auto;
        border-radius: 12px;
    }

    .event-samakeup-layout {
        flex-direction: column;
    }

    .event-samakeup-logo {
        width: 64px;
    }

    .events-cta h2 {
        font-size: 1.6rem;
    }

    .events-cta-actions {
        width: 100%;
        justify-content: center;
    }

    .events-cta-btn { flex: 1; min-width: 0; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
    .event-card,
    .events-tab,
    .events-expanded,
    .events-expanded-card,
    .events-cta-actions a {
        animation: none;
        transition: none;
    }
}

body.photo-lightbox-open {
    overflow: hidden;
}

.photo-lightbox-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.72);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    backdrop-filter: blur(0px);
    transition: opacity 0.3s ease, visibility 0.3s ease, backdrop-filter 0.3s ease;
    z-index: 5000;
    overflow: hidden;
    isolation: isolate;
}

.photo-lightbox-overlay.is-open {
    opacity: 1;
    visibility: visible;
    backdrop-filter: blur(4px);
}

.photo-lightbox-overlay.image-focus {
    backdrop-filter: blur(8px);
}

.photo-lightbox-dialog {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.photo-lightbox-media {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.photo-lightbox-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border: none;
    background: transparent;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    z-index: 8;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.8);
    transition: transform 0.18s ease, color 0.18s ease;
}

.photo-lightbox-close:hover {
    color: #f4d1a2;
    transform: scale(1.15);
}

.photo-lightbox-close:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.82);
    outline-offset: 4px;
}

.photo-lightbox-image {
    position: relative;
    z-index: 1;
    width: auto;
    max-width: min(92vw, 1200px);
    max-height: 88vh;
    object-fit: contain;

    border-radius: 8px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
    transform: scale(0.96);
    transition: transform 0.3s ease;
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.photo-lightbox-image.is-dragging {
    cursor: grabbing;
}

.photo-lightbox-image:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.78);
    outline-offset: 6px;
}

.photo-lightbox-image.is-slide-next {
    animation: lightboxSlideFromRight 0.3s ease;
}

.photo-lightbox-image.is-slide-prev {
    animation: lightboxSlideFromLeft 0.3s ease;
}

@keyframes lightboxSlideFromRight {
    from {
        transform: translateX(34px) scale(0.97);
        opacity: 0.5;
    }

    to {
        transform: translateX(0) scale(1);
        opacity: 1;
    }
}

@keyframes lightboxSlideFromLeft {
    from {
        transform: translateX(-34px) scale(0.97);
        opacity: 0.5;
    }

    to {
        transform: translateX(0) scale(1);
        opacity: 1;
    }
}

.photo-lightbox-overlay.is-open .photo-lightbox-image {
    transform: scale(1);
}

.photo-lightbox-nav {
    border: 1px solid rgba(255, 255, 255, 0.32);
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    width: 60px;
    height: 60px;
    border-radius: 50%;
    border: none;
    font-size: 24px;
    color: #bbb;
    background: rgba(18, 18, 18, 0.82);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 7;
}

.photo-lightbox-nav.prev {
    left: 82px;
}

.photo-lightbox-nav.next {
    right: 82px;
}

.photo-lightbox-dots {
    position: absolute;
    left: 50%;
    bottom: 12px;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    z-index: 6;
    padding: 6px 10px;
    border-radius: 999px;
    background: none;
    backdrop-filter: none;
    pointer-events: auto;
}

.photo-lightbox-dot {
    width: 7px;
    height: 7px;
    border: 0;
    border-radius: 50%;
    padding: 0;
    background: rgba(255, 255, 255, 0.45);
    cursor: pointer;
    transition: transform 0.2s ease, background 0.2s ease;
}

.photo-lightbox-dot:hover {
    background: rgba(255, 255, 255, 0.72);
}

.photo-lightbox-dot.is-active {
    background: #fefcfd;
    transform: scale(1.25);
}

.photo-lightbox-nav:hover {
    background: #ae7c3a88;
    transform: translateY(-50%) scale(1.1);
}

@media (max-width: 768px) {
    .photo-lightbox-close {
        top: 14px;
        right: 14px;
        width: 38px;
        height: 38px;
        font-size: 24px;
    }

    .photo-lightbox-nav {
        width: 24px;
        height: 24px;
        font-size: 12px;
    }

    .photo-lightbox-nav.prev {
        left: 2px;
    }

    .photo-lightbox-nav.next {
        right: 2px;
    }
}
/* Supprime le scroll horizontal dans les listes de filtres top-bar */
.catalog-top-brand-list,
.catalog-top-price-sort-options {
    overflow-x: hidden;
}

.catalog-top-brand-list::-webkit-scrollbar:horizontal,
.catalog-top-price-sort-options::-webkit-scrollbar:horizontal {
    height: 0;
}

.catalog-top-price-sort-options .catalog-top-option-btn {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    min-height: var(--submenu-option-row-height);
}

/* Supprime les scrollbars horizontales dans les zones de filtres */
.catalog-active-filters-list {
    flex-wrap: wrap;
    overflow-x: hidden;
    scrollbar-width: none;
}

.catalog-active-filters-list::-webkit-scrollbar {
    height: 0;
}
