﻿/* =========== Marvellous Design ============ */
body {
    font-family: 'Inter', sans-serif;
}

/* ---------- Custom range slider (price filter) ---------- */
input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    height: 4px;
    background: #E1D2B4;
    border-radius: 9999px;
    outline: none;
}

    input[type="range"]::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        width: 16px;
        height: 16px;
        border-radius: 9999px;
        background: #8B6F47;
        border: 3px solid #fff;
        box-shadow: 0 0 0 1px #8B6F47;
        cursor: pointer;
    }

    input[type="range"]::-moz-range-thumb {
        width: 16px;
        height: 16px;
        border-radius: 9999px;
        background: #8B6F47;
        border: 3px solid #fff;
        box-shadow: 0 0 0 1px #8B6F47;
        cursor: pointer;
    }

/* ---------- Hide scrollbars on horizontally-scrolling strips ---------- */
.scrollbar-none::-webkit-scrollbar {
    display: none;
}

.scrollbar-none {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* ---------- Material swatches ---------- */
.swatch {
    transition: transform .15s ease;
}

    .swatch:hover {
        transform: translateY(-2px);
    }

    .swatch[data-active="true"] .swatch-dot {
        box-shadow: 0 0 0 2px #fff, 0 0 0 4px #8B6F47;
    }

/* ---------- Product card hover choreography ---------- */
.card-img {
    transition: transform .6s cubic-bezier(.2,.8,.2,1);
}

.card:hover .card-img {
    transform: scale(1.06);
}

.card-alt {
    opacity: 0;
    transition: opacity .4s ease;
}

.card:hover .card-alt {
    opacity: 1;
}

.quick-add {
    transform: translateY(8px);
    opacity: 0;
    transition: all .25s ease;
}

.card:hover .quick-add {
    transform: translateY(0);
    opacity: 1;
}

/* ---------- Entrance animation ---------- */
.anim-in {
    animation: fadeUp .5s ease both;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---------- Hero slider ---------- */
.hero-slide {
    opacity: 0;
    visibility: hidden;
    transition: opacity .7s ease;
    position: absolute;
    inset: 0;
    height: 100%;
}

    .hero-slide.is-active {
        opacity: 1;
        visibility: visible;
        position: relative;
    }

.hero-dot {
    width: 12px;
    height: 12px;
    border-radius: 9999px;
    background: rgba(255,255,255,.45);
    transition: all .25s ease;
}

    .hero-dot.is-active {
        background: #fff;
    }

/* ---------- Category tab filtering ---------- */
[data-cat-card] {
    transition: opacity .3s ease, transform .3s ease;
}

    [data-cat-card].is-hidden {
        opacity: 0;
        transform: scale(.96);
        position: absolute;
        pointer-events: none;
        display: none;
    }

/* ---------- Featured product carousel (home) ---------- */
.carousel-track {
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
}

    .carousel-track > * {
        scroll-snap-align: start;
    }

/* ---------- Wishlist heart fill ---------- */
.wish-btn svg {
    transition: all .2s ease;
}

.wish-btn[data-active="true"] svg {
    fill: #8B6F47;
    stroke: #8B6F47;
}

/* ---------- Quick add success state ---------- */
.quick-add-btn[data-added="true"] {
    background: #241F1A !important;
    color: #fff !important;
}

/* ---------- Mobile filter drawer ---------- */
#mobileFilters {
    transition: transform .3s ease;
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    .hero-slide, .hero-dot, .card-img, .card-alt, .quick-add, .anim-in, [data-cat-card] {
        animation: none !important;
        transition: none !important;
    }
}

.hero-listing {
    &:before {
        position: absolute;
        content: '';
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,.5);
        z-index: 3;
    }
}

.logo-head img {
    max-height: 60px;
}

.category-card h3 {
    background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0) 1%,rgba(0,0,0,0.65) 100%);
}

.zoom-loop {
    animation: slowZoom 10s ease-in-out infinite;
}

@keyframes slowZoom {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.08);
    }

    100% {
        transform: scale(1);
    }
}

.container {
    width: 100%;
    margin-inline: auto;
    padding-inline: 16px;
}


/* ===== Detail Page ===== */
.thumb {
    transition: all .2s ease;
    opacity: .6;
}

    .thumb:hover {
        opacity: 1;
    }

    .thumb[data-active="true"] {
        opacity: 1;
        box-shadow: 0 0 0 2px #8B6F47;
    }

.gallery-main-img {
    transition: opacity .35s ease;
}

.gallery-zoom {
    cursor: zoom-in;
}

    .gallery-zoom:hover .zoom-hint {
        opacity: 1;
    }

.zoom-hint {
    transition: opacity .2s ease;
}

/* ---------- Swatches ---------- */
.pdp-swatch {
    transition: transform .15s ease;
}

    .pdp-swatch:hover {
        transform: translateY(-2px);
    }

    .pdp-swatch[data-active="true"] .pdp-swatch-dot {
        box-shadow: 0 0 0 2px #fff, 0 0 0 4px #8B6F47;
    }

/* ---------- Size / variant pills ---------- */
.pdp-pill[data-active="true"] {
    background: #241F1A;
    color: #fff;
    border-color: #241F1A;
}

/* ---------- Quantity stepper ---------- */
.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.qty-input {
    -moz-appearance: textfield;
}

/* ---------- Accordion ---------- */
.accordion-panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
}

.accordion-item[data-open="true"] .accordion-panel {
    max-height: 600px;
}

.accordion-icon {
    transition: transform .3s ease;
}

.accordion-item[data-open="true"] .accordion-icon {
    transform: rotate(45deg);
}

/* ---------- Tabs ---------- */
.pdp-tab-panel {
    display: none;
}

    .pdp-tab-panel.is-active {
        display: block;
        animation: fadeUp .4s ease both;
    }

.pdp-tab[data-active="true"] {
    color: #241F1A;
    border-color: #241F1A;
}

/* ---------- Wishlist heart ---------- */
.wish-btn svg {
    transition: all .2s ease;
}

.wish-btn[data-active="true"] svg {
    fill: #8B6F47;
    stroke: #8B6F47;
}

/* ---------- Rating bars ---------- */
.rating-bar-fill {
    transition: width 1s ease;
    width: 0%;
}

/* ---------- Related product card hover ---------- */
.card-img {
    transition: transform .6s cubic-bezier(.2,.8,.2,1);
}

.card:hover .card-img {
    transform: scale(1.06);
}

.card-alt {
    opacity: 0;
    transition: opacity .4s ease;
}

.card:hover .card-alt {
    opacity: 1;
}

.quick-add {
    transform: translateY(8px);
    opacity: 0;
    transition: all .25s ease;
}

.card:hover .quick-add {
    transform: translateY(0);
    opacity: 1;
}

.scrollbar-none::-webkit-scrollbar {
    display: none;
}

.scrollbar-none {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* ---------- Entrance animation ---------- */
.anim-in {
    animation: fadeUp .5s ease both;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---------- Sticky mobile add-to-cart bar ---------- */
#stickyBar {
    transform: translateY(100%);
    transition: transform .3s ease;
}

    #stickyBar.is-visible {
        transform: translateY(0);
    }

/* ---------- Reviews progress ---------- */
.review-track {
    background: #F0E9DC;
}

@media (prefers-reduced-motion: reduce) {
    .thumb, .gallery-main-img, .pdp-swatch, .accordion-panel, .accordion-icon,
    .pdp-tab-panel, .wish-btn svg, .rating-bar-fill, .card-img, .card-alt,
    .quick-add, .anim-in, #stickyBar {
        transition: none !important;
        animation: none !important;
    }
}


/* ===== Detail-2 ===== */
/* ---------- Editorial hairline grid ---------- */
.hairline {
    background: rgba(34,30,26,0.1);
}

/* ---------- Gallery ---------- */
.gallery-hero {
    cursor: zoom-in;
    overflow: hidden;
}

.mini-thumb {
    position: relative;
    opacity: .55;
    transition: opacity .25s ease;
}

    .mini-thumb:hover {
        opacity: .85;
    }

    .mini-thumb[data-active="true"] {
        opacity: 1;
    }

        .mini-thumb[data-active="true"]::after {
            content: "";
            position: absolute;
            left: 0;
            right: 0;
            bottom: -9px;
            height: 2px;
            background: #221E1A;
        }

.gallery-main-img {
    display: block;
    width: 100%;
    height: auto;
    transition: opacity .4s ease, transform .15s ease-out;
    transform-origin: center center;
    will-change: transform;
}

.gallery-hero.is-zoomed {
    cursor: zoom-out;
}

    .gallery-hero.is-zoomed .gallery-main-img {
        transform: scale(2);
    }

/* ---------- Fabric swatches (rectangular, tactile) ---------- */
.fabric-swatch {
    position: relative;
    transition: transform .18s ease;
}

    .fabric-swatch:hover {
        transform: translateY(-2px);
    }

.fabric-swatch-chip {
    width: 46px;
    height: 46px;
    border-radius: 3px;
    outline: 1px solid rgba(34,30,26,0.12);
    outline-offset: 2px;
    transition: outline .2s ease;
}

.fabric-swatch[data-active="true"] .fabric-swatch-chip {
    outline: 2px solid #221E1A;
    outline-offset: 3px;
}

/* ---------- Underline-style option selector (config / legs) ---------- */
.opt-row {
    display: flex;
    flex-wrap: wrap;
    column-gap: 22px;
    row-gap: 10px;
}

.config-opt {
    font-size: 14px;
    padding-bottom: 2px;
    border-bottom: 1px solid transparent;
    color: rgba(34,30,26,0.75);
    transition: color .2s ease, border-color .2s ease;
}

    .config-opt[data-active="true"] {
        color: #221E1A;
        border-bottom-color: #221E1A;
        font-weight: 600;
    }

    .config-opt:hover {
        color: #221E1A;
    }

/* ---------- Quantity stepper ---------- */
.qty-input::-webkit-outer-spin-button, .qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.qty-input {
    -moz-appearance: textfield;
}

/* ---------- Accordion, numbered / hairline ---------- */
.accordion-panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height .4s ease;
}

.accordion-item[data-open="true"] .accordion-panel {
    max-height: 640px;
}

.accordion-cross {
    position: relative;
    width: 12px;
    height: 12px;
    transition: transform .3s ease;
}

    .accordion-cross::before, .accordion-cross::after {
        content: "";
        position: absolute;
        background: #221E1A;
    }

    .accordion-cross::before {
        left: 0;
        top: 5px;
        width: 12px;
        height: 1.4px;
    }

    .accordion-cross::after {
        top: 0;
        left: 5px;
        width: 1.4px;
        height: 12px;
    }

.accordion-item[data-open="true"] .accordion-cross {
    transform: rotate(45deg);
}

/* ---------- Tabs ---------- */
.pdp-tab-panel {
    display: none;
}

    .pdp-tab-panel.is-active {
        display: block;
        animation: fadeUp .5s ease both;
    }

.pdp-tab {
    color: rgba(17, 16, 15, 0.6);
    border-bottom: 1px solid transparent;
}

    .pdp-tab[data-active="true"] {
        color: #221E1A;
        border-bottom-color: #221E1A;
    }

/* ---------- Wishlist heart ---------- */
.wish-btn svg {
    transition: all .2s ease;
}

.wish-btn[data-active="true"] svg {
    fill: #8B6F47;
    stroke: #8B6F47;
}

/* ---------- Rating bars ---------- */
.rating-bar-fill {
    transition: width 1.1s cubic-bezier(.2,.7,.2,1);
    width: 0%;
}

/* ---------- Related product cards: sharp, editorial ---------- */
.rp-card-img {
    transition: transform .7s cubic-bezier(.2,.8,.2,1);
}

.rp-card:hover .rp-card-img {
    transform: scale(1.05);
}

.rp-plus {
    transition: all .25s ease;
    opacity: 0;
    transform: scale(.7) rotate(-20deg);
}

.rp-card:hover .rp-plus {
    opacity: 1;
    transform: scale(1) rotate(0);
}

.scrollbar-none::-webkit-scrollbar {
    display: none;
}

.scrollbar-none {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* ---------- Entrance ---------- */
.anim-in {
    animation: fadeUp .6s ease both;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(12px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ---------- Sticky mobile bar ---------- */
#stickyBar {
    transform: translateY(100%);
    transition: transform .3s ease;
}

    #stickyBar.is-visible {
        transform: translateY(0);
    }

@media (prefers-reduced-motion: reduce) {
    .mini-thumb, .gallery-main-img, .fabric-swatch, .config-opt, .accordion-panel,
    .accordion-cross, .pdp-tab-panel, .wish-btn svg, .rating-bar-fill, .rp-card-img,
    .rp-plus, .anim-in, #stickyBar {
        transition: none !important;
        animation: none !important;
    }
}

[data-thumb-prev][disabled], [data-thumb-next][disabled] {
    opacity: .25;
    pointer-events: none;
}

@media (min-width: 1400px) {
    .container {
        max-width: 1200px !important;
    }
}

.read-more-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.read-more[data-expanded="true"] .read-more-text {
    -webkit-line-clamp: unset;
    display: block;
    overflow: visible;
}

.logo-footer img {
    filter: brightness(100);
}

@media (max-width: 767px) {
    .cols-footer {
        > div:first-child {
            grid-column: span 2;
        }
    }
}

.logo-footer img {
    max-width: 250px;
}

.payment-cards {
    img {
        width: 250px;
    }
}
