    :root {
        --plum: #38182A;
        --plum-2: #4E2339;
        --wine: #7A1F45;
        --rose: #D6567F;
        --rose-deep: #A5305A;
        --rose-soft: #F7C3D2;
        --apricot: #F0A868;
        --gold: #C08C4A;
        --sand: #F4E3D3;
        --sand-2: #EFD6C2;
        --cream: #FFF9F5;
        --blush: #FDF1ED;
        --ink: #2B1620;
        --ink-60: rgba(43, 22, 32, .62);
        --ink-40: rgba(43, 22, 32, .40);
        --line: rgba(56, 24, 42, .13);
        --wa: #1FA855;
        --f-display: "Fraunces", Georgia, serif;
        --f-body: "Jost", -apple-system, "Segoe UI", Roboto, sans-serif;
        --r-md: 16px;
        --r-lg: 26px;
        --r-pill: 999px;
        --sh-1: 0 2px 10px rgba(56, 24, 42, .06);
        --sh-2: 0 20px 50px -22px rgba(56, 24, 42, .38);
        --sh-3: 0 40px 90px -34px rgba(56, 24, 42, .6);
        --ease: cubic-bezier(.22, 1, .36, 1);
        --wrap: 1280px;
        --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
    }

    /* ---------- ortak yardımcılar (header'da yoksa diye) ---------- */
    .plp *,
    .plp *::before,
    .plp *::after {
        box-sizing: border-box
    }

    .plp {
        font-family: var(--f-body);
        color: var(--ink);
        font-weight: 300
    }

    .plp .wrap {
        max-width: var(--wrap);
        margin-inline: auto;
        padding-inline: 10px
    }

    .plp h1,
    .plp h2,
    .plp h3,
    .plp h4 {
        font-family: var(--f-display);
        font-weight: 400;
        margin: 0;
        line-height: 1.12;
        letter-spacing: -.01em
    }

    .plp .eyebrow {
        font-size: 11px;
        letter-spacing: .24em;
        text-transform: uppercase;
        font-weight: 500;
        color: var(--rose-deep);
        display: inline-flex;
        align-items: center;
        gap: 10px
    }

    .plp .eyebrow::before {
        content: "";
        width: 24px;
        height: 1px;
        background: currentColor;
        opacity: .55
    }

    .plp .btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        padding: 15px 30px;
        border-radius: var(--r-pill);
        font-size: 12.5px;
        letter-spacing: .13em;
        text-transform: uppercase;
        font-weight: 500;
        border: 0;
        cursor: pointer;
        transition: transform .5s var(--ease), background .35s, color .35s, border-color .35s
    }

    .plp .btn svg {
        width: 15px;
        height: 15px;
        transition: transform .5s var(--ease)
    }

    .plp .btn:hover svg {
        transform: translateX(4px)
    }

    .plp .btn--fill {
        background: var(--plum);
        color: var(--cream);
        box-shadow: var(--sh-2)
    }

    .plp .btn--fill:hover {
        background: var(--wine);
        transform: translateY(-2px)
    }

    .plp .btn--rose {
        background: linear-gradient(120deg, var(--rose), var(--rose-deep));
        color: #fff;
        box-shadow: 0 14px 30px -14px rgba(165, 48, 90, .7)
    }

    .plp .btn--rose:hover {
        transform: translateY(-2px)
    }

    .plp .btn--line {
        border: 1px solid var(--line);
        color: var(--ink);
        background: rgba(255, 255, 255, .6)
    }

    .plp .btn--line:hover {
        border-color: var(--plum);
        background: var(--plum);
        color: var(--cream)
    }

    .plp .btn--wa {
        background: var(--wa);
        color: #fff
    }

    .plp .btn--wa:hover {
        background: #188443;
        transform: translateY(-2px)
    }

    .plp .ph {
        position: relative;
        overflow: hidden;
        background: linear-gradient(150deg, var(--sand), var(--rose-soft));
        display: block
    }

    .plp .ph img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block
    }

    .plp .ph--fail::after {
        content: "Gamzee";
        position: absolute;
        inset: 0;
        display: grid;
        place-items: center;
        font-family: var(--f-display);
        letter-spacing: .3em;
        color: rgba(56, 24, 42, .35);
        font-size: 13px
    }

    /* ---------- sayfa başlığı ---------- */
    .plp-hero {
        position: relative;
        overflow: hidden;
        padding: 34px 0 54px;
        background:
            radial-gradient(760px 420px at 92% 0%, rgba(247, 195, 210, .6), transparent 62%),
            radial-gradient(620px 380px at 0% 100%, rgba(240, 168, 104, .28), transparent 62%),
            linear-gradient(175deg, var(--cream), var(--blush) 70%, #FBE6E0);
    }

    .plp-hero::after {
        content: "";
        position: absolute;
        inset: 0;
        background-image: var(--grain);
        opacity: .045;
        mix-blend-mode: multiply;
        pointer-events: none
    }

    .plp-hero .wrap {
        position: relative;
        z-index: 2
    }

    .plp-crumb {
        display: flex;
        align-items: center;
        gap: 9px;
        font-size: 12px;
        letter-spacing: .08em;
        color: var(--ink-40);
        margin-bottom: 30px;
        flex-wrap: wrap
    }

    .plp-crumb a {
        color: var(--ink-60);
        text-decoration: none;
        transition: color .3s
    }

    .plp-crumb a:hover {
        color: var(--wine)
    }

    .plp-crumb svg {
        width: 12px;
        height: 12px;
        stroke: currentColor;
        stroke-width: 1.6;
        fill: none
    }

    .plp-crumb b {
        font-weight: 400;
        color: var(--wine)
    }

    .plp-crumb .crumb-cat-box {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        color: var(--wine);
        font-weight: 500;
    }

    .plp-crumb .crumb-cat-box svg.cat-svg-icon {
        width: 18px;
        height: 18px;
        stroke: var(--wine);
        stroke-width: 2.2;
        fill: none;
    }

    .plp-crumb svg.crumb-sep-mini {
        width: 10px;
        height: 10px;
        opacity: .6;
    }

    .plp-crumb .crumb-subcat {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        color: var(--ink-60);
        font-weight: 500;
        padding: 4px 10px;
        border: 1px solid var(--line);
        border-radius: 999px;
        transition: color .3s, border-color .3s, background .3s;
    }

    .plp-crumb .crumb-subcat:hover {
        color: var(--wine);
        border-color: var(--wine);
        background: var(--sand);
    }

    .plp-crumb .crumb-subcat svg.cat-svg-icon--sm {
        width: 14px;
        height: 14px;
        stroke: currentColor;
        stroke-width: 2.4;
        fill: none;
    }

    .plp-hero h1 {
        font-size: clamp(2.2rem, 4.6vw, 3.6rem);
        margin: 14px 0 14px;
        font-variation-settings: "SOFT" 60, "WONK" 1
    }

    .plp-hero h1 em {
        font-style: italic;
        color: var(--rose-deep)
    }

    .plp-hero p {
        color: var(--ink-60);
        max-width: 56ch;
        font-size: 1.01rem
    }

    .plp-hero__top {
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
        gap: 34px;
        flex-wrap: wrap
    }

    .plp-stats {
        display: flex;
        gap: 30px;
        flex-wrap: wrap
    }

    .plp-stats div {
        text-align: right
    }

    .plp-stats b {
        font-family: var(--f-display);
        font-size: 1.7rem;
        display: block;
        line-height: 1;
        color: var(--wine)
    }

    .plp-stats span {
        font-size: 10.5px;
        letter-spacing: .16em;
        text-transform: uppercase;
        color: var(--ink-40)
    }

    /* ---------- hızlı kategori şeridi ---------- */
    .plp-chips {
        display: flex;
        gap: 9px;
        overflow-x: auto;
        margin-top: 34px;
        padding-bottom: 4px;
        scrollbar-width: none
    }

    .plp-chips::-webkit-scrollbar {
        display: none
    }

    .plp-chip {
        flex: none;
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 8px 16px 8px 8px;
        border-radius: var(--r-pill);
        border: 1px solid var(--line);
        background: rgba(255, 255, 255, .65);
        font-size: 13.5px;
        letter-spacing: .04em;
        cursor: pointer;
        transition: .4s var(--ease);
        color: inherit;
    }

    .plp-chip .ph {
        width: 34px;
        height: 34px;
        border-radius: 50%;
        flex: none
    }

    .plp-chip:hover {
        border-color: var(--rose);
        transform: translateY(-2px)
    }

    .plp-chip.on {
        background: var(--plum);
        color: var(--cream);
        border-color: var(--plum)
    }

    .plp-chip small {
        color: var(--ink-40);
        font-size: 11px
    }

    .plp-chip.on small {
        color: var(--rose-soft)
    }

    /* ---------- gövde ---------- */
    .plp-body {
        padding: 52px 0 100px;
        position: relative;
        overflow: hidden;
        background: linear-gradient(180deg, #FBE6E0 0%, var(--cream) 20%, #FCE7E2 100%);
    }

    .plp-body::after {
        content: "";
        position: absolute;
        inset: 0;
        background-image: var(--grain);
        opacity: .04;
        mix-blend-mode: multiply;
        pointer-events: none
    }

    .plp-body .wrap {
        position: relative;
        z-index: 2
    }

    .plp-layout {
        display: grid;
        grid-template-columns: 266px 1fr;
        gap: 34px;
        align-items: start
    }

    /* ---------- filtre paneli ---------- */
    .plp-side {
        position: sticky;
        top: 100px
    }

    .plp-fbox {
        background: #fff;
        border: 1px solid var(--line);
        border-radius: 10px;
        box-shadow: var(--sh-1);
        overflow: hidden
    }

    .plp-fhead {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 18px 20px;
        background: var(--plum);
        color: var(--cream)
    }

    .plp-fhead b {
        font-family: var(--f-display);
        font-weight: 400;
        font-size: 1.12rem
    }

    .plp-fhead button {
        background: none;
        border: 0;
        color: var(--rose-soft);
        font-size: 11.5px;
        letter-spacing: .1em;
        text-transform: uppercase;
        cursor: pointer;
        transition: color .3s
    }

    .plp-fhead button:hover {
        color: #fff
    }

    .plp-fgroup {
        padding: 20px;
        border-bottom: 1px solid var(--line)
    }

    .plp-fgroup:last-child {
        border-bottom: 0
    }

    .plp-ftitle {
        width: 100%;
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: none;
        border: 0;
        padding: 0 0 14px;
        cursor: pointer;
        font-size: 11px;
        letter-spacing: .19em;
        text-transform: uppercase;
        color: var(--ink-40);
        font-family: var(--f-body)
    }

    .plp-ftitle svg {
        width: 13px;
        height: 13px;
        stroke: currentColor;
        stroke-width: 1.8;
        fill: none;
        transition: transform .4s var(--ease)
    }

    .plp-fgroup.shut .plp-ftitle svg {
        transform: rotate(-90deg)
    }

    .plp-fgroup.shut .plp-fbody {
        display: none
    }

    .plp-check {
        display: flex;
        align-items: center;
        gap: 11px;
        padding: 7px 0;
        cursor: pointer;
        font-size: 14px
    }

    .plp-check input {
        position: absolute;
        opacity: 0;
        width: 0;
        height: 0
    }

    .plp-check i {
        width: 19px;
        height: 19px;
        border-radius: 6px;
        border: 1px solid var(--line);
        flex: none;
        display: grid;
        place-items: center;
        transition: .3s var(--ease);
        background: var(--blush)
    }

    .plp-check i::after {
        content: "";
        width: 9px;
        height: 5px;
        border-left: 1.8px solid var(--cream);
        border-bottom: 1.8px solid var(--cream);
        transform: rotate(-45deg) scale(0);
        transition: transform .3s var(--ease)
    }

    .plp-check input:checked+i {
        background: var(--plum);
        border-color: var(--plum)
    }

    .plp-check input:checked+i::after {
        transform: rotate(-45deg) scale(1)
    }

    .plp-check input:focus-visible+i {
        outline: 2px solid var(--rose);
        outline-offset: 2px
    }

    .plp-check span {
        flex: 1
    }

    .plp-check em {
        font-style: normal;
        color: var(--ink-40);
        font-size: 12px
    }

    .plp-range {
        padding-top: 6px
    }

    .plp-range__track {
        position: relative;
        height: 4px;
        border-radius: 4px;
        background: var(--sand-2);
        margin: 16px 0 20px
    }

    .plp-range__fill {
        position: absolute;
        height: 100%;
        border-radius: 4px;
        background: linear-gradient(90deg, var(--rose), var(--wine))
    }

    .plp-range input[type=range] {
        position: absolute;
        top: -8px;
        left: 0;
        width: 100%;
        height: 20px;
        background: none;
        pointer-events: none;
        -webkit-appearance: none;
        appearance: none;
        margin: 0
    }

    .plp-range input[type=range]::-webkit-slider-thumb {
        -webkit-appearance: none;
        pointer-events: auto;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: #fff;
        border: 2px solid var(--wine);
        cursor: grab;
        box-shadow: var(--sh-1)
    }

    .plp-range input[type=range]::-moz-range-thumb {
        pointer-events: auto;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: #fff;
        border: 2px solid var(--wine);
        cursor: grab
    }

    .plp-range__vals {
        display: flex;
        justify-content: space-between;
        font-size: 13px;
        color: var(--ink-60)
    }

    .plp-range__vals b {
        font-weight: 500;
        color: var(--ink)
    }

    .plp-sw {
        display: flex;
        flex-wrap: wrap;
        gap: 10px
    }

    .plp-sw button {
        width: 32px;
        height: 32px;
        border-radius: 50%;
        border: 0;
        cursor: pointer;
        position: relative;
        box-shadow: 0 0 0 1px rgba(56, 24, 42, .16);
        transition: .3s var(--ease)
    }

    .plp-sw button:hover {
        transform: scale(1.1)
    }

    /* renk adı tooltip (hover) */
    .plp-sw button::after {
        content: attr(data-name);
        position: absolute;
        bottom: calc(100% + 8px);
        left: 50%;
        transform: translateX(-50%) translateY(4px);
        background: var(--plum);
        color: var(--cream);
        font-size: 11px;
        letter-spacing: .02em;
        padding: 5px 9px;
        border-radius: 7px;
        white-space: nowrap;
        opacity: 0;
        pointer-events: none;
        transition: opacity .2s, transform .2s;
        z-index: 6;
        box-shadow: var(--sh-1)
    }

    .plp-sw button::before {
        content: "";
        position: absolute;
        bottom: calc(100% + 3px);
        left: 50%;
        transform: translateX(-50%);
        border: 5px solid transparent;
        border-top-color: var(--plum);
        opacity: 0;
        pointer-events: none;
        transition: opacity .2s;
        z-index: 6
    }

    .plp-sw button:hover::after {
        opacity: 1;
        transform: translateX(-50%) translateY(0)
    }

    .plp-sw button:hover::before {
        opacity: 1
    }

    .plp-sw button.on {
        box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--wine)
    }

    .plp-sizes {
        display: flex;
        flex-wrap: wrap;
        gap: 7px
    }

    .plp-sizes button {
        min-width: 44px;
        height: 40px;
        padding: 0 10px;
        border-radius: 11px;
        border: 1px solid var(--line);
        background: var(--blush);
        cursor: pointer;
        font-size: 13.5px;
        transition: .3s var(--ease);
        font-family: var(--f-body)
    }

    .plp-sizes button:hover {
        border-color: var(--rose)
    }

    .plp-sizes button.on {
        background: var(--plum);
        color: var(--cream);
        border-color: var(--plum)
    }

    /* ---------- araç çubuğu ---------- */
    .plp-bar {
        display: flex;
        align-items: center;
        gap: 14px;
        flex-wrap: wrap;
        background: rgba(255, 255, 255, .72);
        border: 1px solid var(--line);
        border-radius: var(--r-pill);
        padding: 10px 10px 10px 22px;
        margin-bottom: 20px;
        backdrop-filter: blur(8px);
    }

    .plp-bar__c {
        font-size: 13.5px;
        color: var(--ink-60)
    }

    .plp-bar__c b {
        font-weight: 500;
        color: var(--ink)
    }

    .plp-sort {
        margin-left: auto;
        position: relative;
        display: flex;
        align-items: center
    }

    .plp-sort select {
        appearance: none;
        background: var(--blush);
        border: 1px solid var(--line);
        border-radius: var(--r-pill);
        padding: 12px 42px 12px 18px;
        font-size: 13.5px;
        cursor: pointer;
        font-family: var(--f-body);
        color: var(--ink);
        transition: .3s;
    }

    .plp-sort select:hover {
        border-color: var(--rose)
    }

    .plp-sort svg {
        position: absolute;
        right: 16px;
        width: 13px;
        height: 13px;
        stroke: var(--ink-40);
        stroke-width: 1.8;
        fill: none;
        pointer-events: none
    }

    .plp-view {
        display: flex;
        gap: 4px;
        background: var(--blush);
        border: 1px solid var(--line);
        border-radius: var(--r-pill);
        padding: 4px
    }

    .plp-view button {
        width: 38px;
        height: 38px;
        border-radius: 50%;
        border: 0;
        background: none;
        cursor: pointer;
        display: grid;
        place-items: center;
        transition: .3s
    }

    .plp-view button svg {
        width: 16px;
        height: 16px;
        stroke: var(--ink-40);
        stroke-width: 1.7;
        fill: none
    }

    .plp-view button.on {
        background: var(--plum)
    }

    .plp-view button.on svg {
        stroke: var(--cream)
    }

    .plp-fbtn {
        display: none;
        align-items: center;
        gap: 9px;
        background: var(--plum);
        color: var(--cream);
        border: 0;
        border-radius: var(--r-pill);
        padding: 12px 20px;
        font-size: 12px;
        letter-spacing: .12em;
        text-transform: uppercase;
        cursor: pointer;
        font-family: var(--f-body)
    }

    .plp-fbtn svg {
        width: 15px;
        height: 15px;
        stroke: currentColor;
        stroke-width: 1.7;
        fill: none
    }

    .plp-fbtn i {
        background: var(--rose);
        border-radius: var(--r-pill);
        min-width: 18px;
        height: 18px;
        font-size: 10.5px;
        display: grid;
        place-items: center;
        font-style: normal
    }

    /* aktif filtre etiketleri */
    .plp-active {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
        margin-bottom: 24px
    }

    .plp-active:empty {
        display: none
    }

    .plp-atag {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        background: #fff;
        border: 1px solid var(--line);
        border-radius: var(--r-pill);
        padding: 7px 8px 7px 15px;
        font-size: 12.5px;
        cursor: pointer;
        transition: .3s;
        font-family: var(--f-body);
        color: inherit
    }

    .plp-atag:hover {
        border-color: var(--wine);
        color: var(--wine)
    }

    .plp-atag svg {
        width: 11px;
        height: 11px;
        stroke: currentColor;
        stroke-width: 2.2;
        fill: none
    }

    .plp-atag b {
        width: 22px;
        height: 22px;
        border-radius: 50%;
        background: var(--blush);
        display: grid;
        place-items: center
    }

    .plp-clear {
        background: none;
        border: 0;
        color: var(--rose-deep);
        font-size: 12.5px;
        cursor: pointer;
        border-bottom: 1px solid currentColor;
        padding: 0;
        align-self: center;
        font-family: var(--f-body)
    }

    /* ---------- ürün ızgarası ---------- */
    .plp-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 32px 22px
    }

    .plp-grid.list {
        grid-template-columns: 1fr;
        gap: 18px
    }

    .plp-card {
        position: relative;
        opacity: 0;
        transform: translateY(16px);
        animation: plpPop .55s var(--ease) forwards
    }

    @keyframes plpPop {
        to {
            opacity: 1;
            transform: none
        }
    }

    .plp-card__m {
        position: relative;
        aspect-ratio: 3/4;
        border-radius: var(--r-md);
        overflow: hidden;
        box-shadow: var(--sh-1)
    }

    .plp-card__m img {
        transition: transform .9s var(--ease)
    }

    .plp-card:hover .plp-card__m img {
        transform: scale(1.06)
    }

    .plp-badge {
        position: absolute;
        top: 12px;
        left: 12px;
        z-index: 3;
        background: var(--plum);
        color: var(--cream);
        font-size: 9px;
        font-weight: 500;
        letter-spacing: .14em;
        text-transform: uppercase;
        padding: 1px 11px;
        border-radius: var(--r-pill)
    }

    .plp-badge.sale {
        background: var(--rose)
    }

    .plp-badge.out, .card__badge.out, .card__badge--soldout {
        background: var(--ink-60);
    }

    .plp-badge.lowstock, .card__badge.low-stock, .card__badge--lowstock {
        background: var(--wine);
        color: #fff;
        border: 1px solid var(--rose);
        animation: lowstockPulse 2s infinite ease-in-out;
        box-shadow: 0 0 10px rgba(214, 86, 127, 0.4);
    }

    @keyframes lowstockPulse {
        0%, 100% { transform: scale(1); box-shadow: 0 0 8px rgba(214, 86, 127, 0.4); border-color: var(--rose); }
        50% { transform: scale(1.04); box-shadow: 0 0 16px rgba(214, 86, 127, 0.85); border-color: #ff9eba; }
    }

    .plp-fav {
        position: absolute;
        top: 10px;
        right: 10px;
        z-index: 3;
        width: 38px;
        height: 38px;
        border-radius: 50%;
        background: rgba(255, 249, 245, .9);
        border: 0;
        cursor: pointer;
        display: grid;
        place-items: center;
        transition: .35s
    }

    .plp-fav svg {
        width: 17px;
        height: 17px;
        stroke: var(--plum);
        stroke-width: 1.5;
        fill: none;
        transition: .3s
    }

    .plp-fav:hover {
        transform: scale(1.08)
    }

    .plp-fav.on svg {
        fill: var(--rose);
        stroke: var(--rose)
    }

    .plp-add {
        position: static;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        padding: 7px 14px;
        border-radius: 8px;
        border: 1px solid #e6b8c6;
        background: #fff9fa;
        color: #b33b62;
        font-size: 12.5px;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.3s var(--ease);
        white-space: nowrap;
        transform: none;
        opacity: 1;
        letter-spacing: normal;
        text-transform: none;
        font-family: var(--f-body);
    }

    .plp-add svg {
        width: 14px;
        height: 14px;
        stroke: currentColor;
        stroke-width: 1.8;
        fill: none;
        flex-shrink: 0;
    }

    .plp-card:hover .plp-add,
    .plp-add:focus-visible {
        transform: none;
        opacity: 1;
    }

    .plp-add:hover {
        background: var(--rose);
        color: #fff;
        border-color: var(--rose);
    }

    .plp-card__i {
        padding: 16px 8px 10px;
        display: flex;
        flex-direction: column;
        flex: 1;
        background: #ffffff;
    }

    .plp-card__cat {
        font-size: 10px;
        text-transform: uppercase;
        color: var(--ink-40);
        margin-bottom: 5px;
        display: block;
    }

    .plp-card__n {
        font-family: var(--f-body);
        font-size: 0.84rem;
        margin: 0 0 12px;
        line-height: 1.35;
        font-weight: 500;
        color: var(--ink);
        word-break: break-word;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .plp-card__r {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 18px;
        margin-top: auto;
        padding-top: 5px;
        border-top: 1px solid rgba(56, 24, 42, .06);
    }

    .plp-price {
        display: flex;
        align-items: baseline;
        gap: 7px;
    }

    .plp-price b {
        font-family: var(--f-display);
        font-weight: 600;
        font-size: 1.2rem;
        color: var(--ink);
    }

    @media (max-width: 768px) {
        .plp-card__n { font-size: 0.74rem !important; }
        .plp-price b { font-size: 0.9rem !important; }
    }

    .plp-price s {
        color: var(--ink-40);
        font-size: .75rem;
    }

    .plp-swatch {
        display: flex;
        gap: 6px;
        margin-bottom: 7px;
        align-items: center;
    }

    .plp-swatch i {
        width: 13px;
        height: 13px;
        border-radius: 50%;
        box-shadow: 0 0 0 1px rgba(56, 24, 42, .18);
        display: inline-block;
    }

    .plp-card__d {
        display: none;
    }

    /* liste görünümü */
    .plp-grid.list .plp-card {
        display: grid;
        grid-template-columns: 190px 1fr;
        gap: 22px;
        background: #fff;
        border: 1px solid var(--line);
        border-radius: var(--r-lg);
        padding: 14px;
        box-shadow: var(--sh-1)
    }

    .plp-grid.list .plp-card__m {
        aspect-ratio: 4/5;
        border-radius: 14px
    }

    .plp-grid.list .plp-add {
        position: static;
        transform: none;
        opacity: 1;
        margin-top: 16px;
        width: max-content;
        padding: 13px 26px
    }

    .plp-grid.list .plp-card__i {
        padding: 6px 6px 6px 0;
        display: flex;
        flex-direction: column;
        height: 100%
    }

    .plp-grid.list .plp-card__n {
        font-size: 1.42rem;
        margin-bottom: 10px
    }

    .plp-grid.list .plp-card__d {
        display: block;
        color: var(--ink-60);
        font-size: .92rem;
        margin: 2px 0 14px;
        max-width: 60ch
    }

    .plp-grid.list .plp-card__r {
        justify-content: flex-start;
        gap: 20px
    }

    /* boş durum */
    .plp-empty {
        display: none;
        text-align: center;
        padding: 80px 20px;
        background: #fff;
        border: 1px dashed var(--line);
        border-radius: var(--r-lg)
    }

    .plp-empty.on {
        display: block
    }

    .plp-empty svg {
        width: 52px;
        height: 52px;
        stroke: var(--rose-soft);
        stroke-width: 1.2;
        fill: none;
        margin: 0 auto 18px
    }

    .plp-empty h3 {
        font-size: 1.5rem;
        margin-bottom: 8px
    }

    .plp-empty p {
        color: var(--ink-60);
        margin: 0 0 22px
    }

    /* daha fazla + sayfalama */
    .plp-more {
        text-align: center;
        margin-top: 52px
    }

    .plp-more p {
        font-size: 12.5px;
        color: var(--ink-40);
        letter-spacing: .06em;
        margin: 0 0 16px
    }

    .plp-progress {
        width: 190px;
        height: 3px;
        border-radius: 3px;
        background: var(--sand-2);
        margin: 0 auto 22px;
        overflow: hidden
    }

    .plp-progress i {
        display: block;
        height: 100%;
        background: linear-gradient(90deg, var(--rose), var(--wine));
        border-radius: 3px;
        transition: width .6s var(--ease)
    }

    .plp-pages {
        display: flex;
        justify-content: center;
        gap: 7px;
        margin-top: 36px
    }

    .plp-pages button {
        min-width: 44px;
        height: 44px;
        border-radius: 50%;
        border: 1px solid var(--line);
        background: #fff;
        cursor: pointer;
        font-size: 14px;
        font-family: var(--f-body);
        transition: .35s var(--ease)
    }

    .plp-pages button:hover:not(:disabled) {
        border-color: var(--rose)
    }

    .plp-pages button.on {
        background: var(--plum);
        color: var(--cream);
        border-color: var(--plum)
    }

    .plp-pages button:disabled {
        opacity: .35;
        cursor: not-allowed
    }

    .plp-pages svg {
        width: 14px;
        height: 14px;
        stroke: currentColor;
        stroke-width: 1.8;
        fill: none;
        margin: 0 auto
    }

    /* ---------- modal (ana sayfayla aynı) ---------- */
    .plp-modal {
        position: fixed;
        inset: 0;
        z-index: 120;
        display: grid;
        place-items: center;
        padding: 18px;
        opacity: 0;
        visibility: hidden;
        transition: opacity .35s, visibility .35s
    }

    .plp-modal.on {
        opacity: 1;
        visibility: visible
    }

    .plp-modal__bg {
        position: absolute;
        inset: 0;
        background: rgba(43, 16, 30, .62);
        backdrop-filter: blur(5px)
    }

    .plp-modal__box {
        position: relative;
        width: min(1000px, 100%);
        max-height: 92vh;
        overflow: auto;
        background: var(--cream);
        border-radius: 24px;
        box-shadow: var(--sh-3);
        display: grid;
        grid-template-columns: .92fr 1.08fr;
        transform: translateY(22px) scale(.97);
        transition: transform .5s var(--ease)
    }

    .plp-modal.on .plp-modal__box {
        transform: none
    }

    .plp-x {
        position: absolute;
        top: 14px;
        right: 14px;
        z-index: 5;
        width: 40px;
        height: 40px;
        border-radius: 50%;
        background: rgba(255, 249, 245, .92);
        border: 0;
        cursor: pointer;
        display: grid;
        place-items: center;
        box-shadow: var(--sh-1);
        transition: .35s
    }

    .plp-x:hover {
        background: var(--plum)
    }

    .plp-x:hover svg {
        stroke: var(--cream)
    }

    .plp-x svg {
        width: 16px;
        height: 16px;
        stroke: var(--ink);
        stroke-width: 1.8;
        fill: none
    }

    .plp-mv {
        background: linear-gradient(160deg, var(--sand), #F6D3DC);
        padding: 16px;
        display: flex;
        flex-direction: column;
        gap: 10px
    }

    .plp-mv__main {
        border-radius: 16px;
        aspect-ratio: 4/5;
        flex: 1
    }

    .plp-mv__th {
        display: flex;
        gap: 8px
    }

    .plp-mv__th .ph {
        flex: 1;
        aspect-ratio: 1;
        border-radius: 10px;
        cursor: pointer;
        border: 2px solid transparent;
        transition: .3s
    }

    .plp-mv__th .ph.on {
        border-color: var(--wine)
    }

    .plp-mb {
        padding: 34px 34px 30px;
        display: flex;
        flex-direction: column
    }

    .plp-mb__cat {
        font-size: 10.5px;
        letter-spacing: .2em;
        text-transform: uppercase;
        color: var(--rose-deep)
    }

    .plp-mb h3 {
        font-size: 2rem;
        margin: 8px 0 10px
    }

    .plp-rate {
        display: flex;
        align-items: center;
        gap: 9px;
        font-size: 12.5px;
        color: var(--ink-60)
    }

    .plp-stars {
        display: flex;
        gap: 2px
    }

    .plp-stars svg {
        width: 15px;
        height: 15px;
        fill: var(--apricot)
    }

    .plp-stars svg.off {
        fill: rgba(56, 24, 42, .14)
    }

    .plp-mprice {
        display: flex;
        align-items: baseline;
        gap: 12px;
        margin: 18px 0 6px
    }

    .plp-mprice b {
        font-family: var(--f-display);
        font-size: 2rem;
        font-weight: 400
    }

    .plp-mprice s {
        color: var(--ink-40)
    }

    .plp-mprice em {
        font-style: normal;
        background: var(--rose-soft);
        color: var(--wine);
        font-size: 11px;
        letter-spacing: .1em;
        padding: 4px 9px;
        border-radius: var(--r-pill)
    }

    .plp-tax {
        font-size: 12px;
        color: var(--ink-40)
    }

    .plp-desc {
        color: var(--ink-60);
        font-size: .95rem;
        margin: 18px 0;
        padding-bottom: 18px;
        border-bottom: 1px solid var(--line)
    }

    .plp-opt {
        margin-bottom: 20px
    }

    .plp-opt__h {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 11px
    }

    .plp-opt__h span {
        font-size: 11px;
        letter-spacing: .17em;
        text-transform: uppercase;
        color: var(--ink-40)
    }

    .plp-opt__h b {
        font-size: 13px;
        font-weight: 500
    }

    .plp-opt__h a {
        font-size: 12px;
        color: var(--rose-deep);
        border-bottom: 1px solid currentColor;
        text-decoration: none
    }

    .plp-colors {
        display: flex;
        gap: 10px
    }

    .plp-colors button {
        width: 36px;
        height: 36px;
        border-radius: 50%;
        border: 0;
        cursor: pointer;
        box-shadow: 0 0 0 1px rgba(56, 24, 42, .16);
        transition: .3s var(--ease)
    }

    .plp-colors button:hover {
        transform: scale(1.08)
    }

    .plp-colors button.on {
        box-shadow: 0 0 0 2px var(--cream), 0 0 0 4px var(--wine)
    }

    .plp-msizes {
        display: flex;
        gap: 8px;
        flex-wrap: wrap
    }

    .plp-msizes button {
        min-width: 48px;
        height: 44px;
        padding: 0 12px;
        border-radius: 12px;
        border: 1px solid var(--line);
        background: #fff;
        cursor: pointer;
        font-size: 14px;
        font-family: var(--f-body);
        transition: .3s var(--ease)
    }

    .plp-msizes button:hover:not(:disabled) {
        border-color: var(--rose)
    }

    .plp-msizes button.on {
        background: var(--plum);
        color: var(--cream);
        border-color: var(--plum)
    }

    .plp-msizes button:disabled {
        opacity: .35;
        cursor: not-allowed;
        text-decoration: line-through
    }

    .plp-msizes.shake {
        animation: plpShake .4s
    }

    @keyframes plpShake {
        25% {
            transform: translateX(-6px)
        }

        75% {
            transform: translateX(6px)
        }
    }

    .plp-qty {
        display: inline-flex;
        align-items: center;
        border: 1px solid var(--line);
        border-radius: var(--r-pill);
        background: #fff;
        overflow: hidden
    }

    .plp-qty button {
        width: 44px;
        height: 44px;
        border: 0;
        background: none;
        cursor: pointer;
        font-size: 18px;
        transition: background .3s
    }

    .plp-qty button:hover {
        background: var(--blush)
    }

    .plp-qty b {
        width: 42px;
        text-align: center;
        font-weight: 500
    }

    .plp-macts {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        margin-top: 6px
    }

    .plp-macts .btn {
        padding: 16px 18px;
        font-size: 11.5px;
        text-decoration: none
    }

    .plp-macts .wide {
        grid-column: 1/-1
    }

    .plp-meta {
        display: flex;
        gap: 18px;
        flex-wrap: wrap;
        margin-top: 20px;
        padding-top: 18px;
        border-top: 1px solid var(--line);
        font-size: 12.5px;
        color: var(--ink-60)
    }

    .plp-meta div {
        display: flex;
        align-items: center;
        gap: 7px
    }

    .plp-meta svg {
        width: 15px;
        height: 15px;
        stroke: var(--rose-deep);
        stroke-width: 1.6;
        fill: none
    }

    /* toast */
    .plp-toast {
        position: fixed;
        left: 50%;
        bottom: 26px;
        transform: translate(-50%, 170%);
        z-index: 140;
        background: var(--plum);
        color: var(--cream);
        padding: 15px 26px;
        border-radius: var(--r-pill);
        box-shadow: var(--sh-3);
        font-size: 13.5px;
        transition: transform .55s var(--ease);
        display: flex;
        align-items: center;
        gap: 10px
    }

    .plp-toast.on {
        transform: translate(-50%, 0)
    }

    .plp-toast svg {
        width: 16px;
        height: 16px;
        stroke: var(--rose-soft);
        stroke-width: 2.2;
        fill: none
    }

    /* filtre backdrop (mobil) */
    .plp-back {
        position: fixed;
        inset: 0;
        background: rgba(43, 16, 30, .5);
        backdrop-filter: blur(3px);
        z-index: 9999 !important;
        opacity: 0;
        visibility: hidden;
        transition: .35s
    }

    .plp-back.on {
        opacity: 1;
        visibility: visible
    }

    /* ---------- responsive ---------- */
    @media(max-width:1180px) {
        .plp-layout {
            grid-template-columns: 236px 1fr;
            gap: 26px
        }

        .plp-grid {
            grid-template-columns: repeat(2, 1fr)
        }
    }

    @media(max-width:980px) {
        .plp-layout {
            grid-template-columns: 1fr
        }

        .plp-body, .plp-layout {
            z-index: auto !important;
            transform: none !important;
            filter: none !important;
        }

        .plp-side {
            position: fixed;
            top: 0;
            left: 0;
            bottom: 0;
            width: min(340px, 88vw);
            z-index: 10000 !important;
            transform: translateX(-100%);
            transition: transform .5s var(--ease);
            overflow: auto;
            padding: 16px;
            background: var(--blush);
        }

        .plp-side.open {
            transform: none
        }

        .plp-fbox {
            border-radius: var(--r-md)
        }

        .plp-fbtn {
            display: inline-flex
        }

        .plp-modal {
            padding: 14px;
            place-items: center;
        }

        .plp-modal__box {
            grid-template-columns: 1fr;
            width: 100%;
            max-height: 88vh;
            border-radius: 20px;
            box-shadow: 0 -8px 30px rgba(43, 16, 30, 0.35);
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            display: flex;
            flex-direction: column;
        }

        .plp-mv {
            padding: 12px 14px;
            display: flex;
            flex-direction: row;
            gap: 12px;
            align-items: center;
            background: #fff;
            border-bottom: 1px solid var(--line);
            flex-shrink: 0;
        }

        .plp-mv__main {
            width: 80px;
            height: 120px;
            flex: none;
            aspect-ratio: auto;
            border-radius: 10px;
            overflow: hidden;
        }

        .plp-mv__th {
            display: flex;
            flex-direction: row;
            gap: 6px;
            flex: 1;
            overflow-x: auto;
            max-height: 104px;
            align-items: center;
        }

        .plp-mv__th .ph {
            width: 40px;
            height: 60px;
            flex: none;
            border-radius: 8px;
        }

        .plp-mb {
            padding: 14px 16px 18px;
            display: flex;
            flex-direction: column;
            gap: 4px;
        }

        .plp-mb h3 {
            font-size: 1.2rem;
            line-height: 1.3;
            margin: 0 0 2px;
        }

        .plp-mprice {
            margin: 4px 0 8px;
            gap: 8px;
        }

        .plp-mprice b {
            font-size: 1.4rem;
        }

        .plp-desc, .plp-meta, .plp-tax {
            display: none !important;
        }

        .plp-opt {
            margin-bottom: 10px;
        }

        .plp-opt__h {
            margin-bottom: 4px;
        }

        .plp-colors button {
            width: 30px;
            height: 30px;
        }

        .plp-msizes button {
            min-width: 38px;
            height: 36px;
            font-size: 13px;
            padding: 0 8px;
            border-radius: 8px;
        }

        .plp-macts {
            margin-top: 8px;
            grid-template-columns: 1fr 1fr;
            gap: 8px;
        }

        .plp-macts .btn {
            padding: 12px 10px;
            font-size: 12px;
        }

        .plp-hero__top {
            align-items: flex-start
        }

        .plp-stats div {
            text-align: left
        }
    }

    @media(max-width:760px) {
        .plp-hero {
            padding: 24px 0 42px
        }

        .plp-grid {
            grid-template-columns: repeat(2, 1fr);
            gap: 24px 14px
        }

        .plp-add {
            position: static;
            transform: none;
            opacity: 1;
            margin-top: 3px;
            background: transparent;
            color: var(--plum);
            border: 1px solid var(--line);
            padding: 6px;
            width: 60%;
            font-size: 12px;
        }

        .plp-add:hover {
            background: var(--plum);
            color: var(--cream)
        }

        .plp-grid.list .plp-card {
            grid-template-columns: 1fr
        }

        .plp-grid.list .plp-add {
            width: 100%
        }

        .plp-view {
            display: none
        }

        .plp-bar {
            padding: 10px;
            border-radius: var(--r-lg);
            justify-content: space-between
        }

        .plp-bar__c {
            width: 100%;
            order: 3;
            text-align: center;
            padding-top: 4px
        }

        .plp-sort {
            margin-left: 0;
            flex: 1
        }

        .plp-sort select {
            width: 100%
        }

        .plp-macts {
            grid-template-columns: 1fr 1fr
        }

        .plp-stats {
            gap: 20px
        }

        .plp-stats b {
            font-size: 1.4rem
        }
    }

    @media(max-width:430px) {
        .plp-grid {
            grid-template-columns: repeat(2, 1fr);
            gap: 16px 10px;
        }

        .plp-card__i {
            padding: 10px 8px 12px;
        }

        .plp-card__n {
            font-size: 13px;
        }

        .plp-price b {
            font-size: 14px;
        }

        .plp-hero h1 {
            font-size: 2rem
        }
    }

    @media(prefers-reduced-motion:reduce) {

        .plp *,
        .plp *::before,
        .plp *::after {
            animation: none !important;
            transition-duration: .01ms !important
        }
    }
