:root{
    --ink:#12131a;
    --muted:#6d6673;
    --line:rgba(17,17,17,.08);
    --shadow-soft:0 18px 42px rgba(17,17,17,.10);
    --shadow-card:0 24px 60px rgba(196,84,135,.10);
    --radius-xl:28px;
    --radius-lg:20px;
    --radius-md:14px;
    --max:1180px;
    --green:#2bb673;
    --red:#d63a3a;
    --pink:#c45487;
    --pink-soft:#fff0f6;
    --navy:#1b275c;
    --fluid-gutter: clamp(12px, 4vw, 28px);
    --fluid-content: min(var(--max), calc(100vw - (var(--fluid-gutter) * 2)));
}

*{ box-sizing:border-box; }

.pd{
    padding: clamp(22px, 5vw, 36px) var(--fluid-gutter) clamp(56px, 8vw, 84px);
}

.pd__container{
    width:var(--fluid-content);
    max-width:100%;
    margin:0 auto;
}

.pd__crumbs{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin: 4px 0 22px;
    font-size:14px;
}

.pd__crumb{
    color:rgba(17,17,17,.58);
    text-decoration:none;
    transition:color .16s ease;
}

.pd__crumb:hover{
    color:var(--pink);
}

.pd__sep{
    color:rgba(17,17,17,.25);
}

.pd__crumb--current{
    color:var(--ink);
    font-weight:900;
}

.pd__grid{
    display:grid;
    grid-template-columns:minmax(0, 1.08fr) minmax(clamp(280px, 30vw, 360px), .78fr);
    gap:clamp(22px, 4vw, 34px);
    align-items:start;
}

.pd__grid--product{
    align-items:start;
}

.pd__right{
    min-width:0;
}

.pd__right--summary{
    min-width:0;
}

.pd__galleryCard,
.pd__panel{
    background:rgba(255,255,255,.76);
    border:1px solid rgba(17,17,17,.07);
    border-radius:var(--radius-xl);
    box-shadow:var(--shadow-card);
}

.pd__galleryCard{
    padding:18px;
}

.pd__gallery{
    position:relative;
    border-radius:22px;
    overflow:hidden;
    background:linear-gradient(145deg, rgba(255,255,255,.98), rgba(247,242,245,.96));
    border:1px solid rgba(17,17,17,.06);
}

.pd__main{
    width:100%;
    height:clamp(360px, 62vh, 620px);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:22px;
    background:
        radial-gradient(circle at 18% 20%, rgba(229,22,117,.08), transparent 34%),
        radial-gradient(circle at 85% 82%, rgba(17,24,39,.05), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(249,243,246,.96));
}

.pd__main img{
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    display:block;
    border-radius:18px;
    box-shadow:0 14px 34px rgba(17,17,17,.10);
}

.pd__nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:48px;
    height:48px;
    border-radius:999px;
    border:1px solid rgba(17,17,17,.12);
    background:rgba(255,255,255,.92);
    box-shadow:0 12px 24px rgba(17,17,17,.10);
    display:grid;
    place-items:center;
    cursor:pointer;
    z-index:2;
    color:var(--ink);
    transition:transform .15s ease, border-color .15s ease;
}

.pd__nav svg{
    width:18px;
    height:18px;
}

.pd__nav:hover{
    transform:translateY(-50%) scale(1.04);
    border-color:rgba(229,22,117,.35);
}

.pd__nav--left{ left:16px; }
.pd__nav--right{ right:16px; }

.pd__thumbs{
    display:flex;
    gap:12px;
    margin-top:16px;
    overflow:auto;
    padding:2px 2px 6px;
}

.pd__thumb{
    width:76px;
    height:76px;
    border-radius:18px;
    border:1px solid rgba(17,17,17,.12);
    background:#fff;
    overflow:hidden;
    cursor:pointer;
    flex:0 0 auto;
    transition:transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}

.pd__thumb:hover{
    transform:translateY(-2px);
}

.pd__thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.pd__thumb.is-active{
    border-color:rgba(229,22,117,.34);
    box-shadow:none;
}

.pd__panel{
    padding:30px 28px;
    position:sticky;
    top:104px;
    min-width:0;
}

.pd__title{
    margin:0;
    font-size:clamp(34px, 3vw, 52px);
    line-height:.98;
    font-weight:1000;
    letter-spacing:-.04em;
    color:var(--ink);
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:break-word;
}

.pd__priceRow{
    margin-top:16px;
    display:grid;
    gap:14px;
    padding:22px 0;
    border-top:none;
    border-bottom:1px solid var(--line);
}

.pd__price{
    display:flex;
    align-items:flex-end;
    gap:10px;
    font-weight:1000;
}

.pd__priceVal{
    font-size:46px;
    line-height:1;
    color:var(--ink);
}

.pd__priceCur{
    font-size:20px;
    color:rgba(17,17,17,.58);
    font-weight:900;
    padding-bottom:5px;
}

.pd__desc{
    color:rgba(17,17,17,.64);
    line-height:1.75;
    font-size:15px;
    max-width:48ch;
    overflow-wrap:anywhere;
}

.pd__actionsCard{
    margin-top:30px;
    display:grid;
    grid-template-columns:140px minmax(0,1fr);
    gap:20px;
    align-items:end;
}

.pd__qtyWrap{
    display:grid;
    gap:8px;
}

.pd__qtyLabel{
    font-size:11px;
    font-weight:900;
    color:rgba(17,17,17,.54);
    letter-spacing:.16em;
    text-transform:uppercase;
}

.pd__qty{
    width:100%;
    min-width:0;
    height:54px;
    display:grid;
    grid-template-columns:46px minmax(0, 1fr) 46px;
    align-items:center;
    border-radius:16px;
    border:1px solid rgba(17,17,17,.14);
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,244,248,.96));
    overflow:hidden;
    box-shadow:0 10px 24px rgba(17,17,17,.06);
    transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.pd__qtyBtn{
    height:100%;
    border:0;
    background:transparent;
    color:var(--pink);
    font-weight:900;
    font-size:24px;
    line-height:1;
    cursor:pointer;
    display:grid;
    place-items:center;
    transition:background-color .18s ease, color .18s ease, transform .18s ease;
}

.pd__qtyBtn:first-child{
    border-right:1px solid rgba(229,22,117,.14);
}

.pd__qtyBtn:last-child{
    border-left:1px solid rgba(229,22,117,.14);
}

.pd__qtyBtn:hover{
    background:rgba(229,22,117,.08);
}

.pd__qtyBtn:active{
    transform:scale(.96);
}

.pd__qtyInput{
    width:100%;
    min-width:0;
    height:100%;
    border:0;
    background:transparent;
    color:var(--ink);
    text-align:center;
    font-weight:1000;
    font-size:20px;
    letter-spacing:.02em;
    padding:0 10px;
    outline:none;
}

.pd__qtyInput::placeholder{
    color:rgba(17,17,17,.36);
}

.pd__qty:hover{
    border-color:rgba(229,22,117,.28);
    box-shadow:0 14px 28px rgba(229,22,117,.08);
}

.pd__qty:focus-within{
    border-color:rgba(229,22,117,.36);
    box-shadow:0 0 0 4px rgba(229,22,117,.10), 0 14px 28px rgba(229,22,117,.10);
}

.pd__add,
.pd__fav{
    height:54px;
    border-radius:16px;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    transition:transform .12s ease, opacity .12s ease, border-color .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.pd__add svg,
.pd__fav svg{
    width:18px;
    height:18px;
    flex:0 0 18px;
}

.pd__add{
    border:1px solid #0f172a;
    background:linear-gradient(180deg, #182338, #0f172a);
    color:#fff;
}

.pd__add:hover,
.pd__fav:hover{
    transform:translateY(-1px);
}

.pd__fav{
    width:100%;
    margin-top:18px;
    border:1px solid rgba(229,22,117,.18);
    background:rgba(255,255,255,.85);
    color:#7d3959;
}

.pd__opinionsBtn{
    width:100%;
    margin-top:20px;
    height:54px;
    border-radius:16px;
    border:1px solid rgba(229,22,117,.18);
    background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,240,246,.96));
    color:#b74e84;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    cursor:pointer;
    box-shadow:0 12px 28px rgba(229,22,117,.08);
    transition:transform .12s ease, border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.pd__opinionsBtn svg{
    width:18px;
    height:18px;
    flex:0 0 18px;
}

.pd__opinionsBtn:hover{
    transform:translateY(-1px);
    border-color:rgba(229,22,117,.28);
    box-shadow:0 16px 32px rgba(229,22,117,.12);
}

.pd__fav.is-active{
    background:var(--pink-soft);
    border-color:rgba(229,22,117,.34);
    color:var(--pink);
    box-shadow:0 14px 30px rgba(229,22,117,.12);
}

.pd__msg{
    margin:14px 0 0;
    font-size:13px;
    min-height:18px;
    font-weight:700;
}

.pd__msg.is-ok{ color:#1f6d4b; }
.pd__msg.is-bad{ color:var(--red); }

.pd__customFee{
    width:100%;
    text-align:right;
    color:#be4f83;
    font-size:13px;
    font-weight:900;
}

.pd__customizeBtn{
    position:relative;
    overflow:hidden;
    width:100%;
    min-height:50px;
    margin-top:10px;
    border:1px solid rgba(137,0,71,.35);
    border-radius:999px;
    background:
        radial-gradient(circle at 18% 20%, rgba(255,255,255,.58), rgba(255,255,255,0) 34%),
        linear-gradient(180deg, #f062aa 0%, #bc005d 45%, #890047 100%);
    color:#fff;
    box-shadow:
        inset 0 2px 0 rgba(255,255,255,.34),
        inset 0 -6px 16px rgba(75,0,35,.20),
        0 14px 28px rgba(188,0,93,.24);
    cursor:pointer;
    display:grid;
    gap:3px;
    place-items:center;
    padding:8px 18px;
    text-shadow:0 1px 8px rgba(0,0,0,.22);
    transition:transform .16s ease, box-shadow .16s ease;
}

.pd__customizeBtn::before{
    content:"";
    position:absolute;
    left:18px;
    right:18px;
    top:5px;
    height:42%;
    border-radius:999px;
    background:linear-gradient(180deg, rgba(255,255,255,.42), rgba(255,255,255,0));
    pointer-events:none;
}

.pd__customizeBtn:hover,
.pd__customizeBtn:focus-visible{
    background:
        radial-gradient(circle at 18% 20%, rgba(255,255,255,.64), rgba(255,255,255,0) 34%),
        linear-gradient(180deg, #f56eb4 0%, #ca0969 45%, #940052 100%);
    color:#fff;
    transform:translateY(-1px);
    box-shadow:
        inset 0 2px 0 rgba(255,255,255,.36),
        inset 0 -6px 16px rgba(75,0,35,.22),
        0 16px 32px rgba(188,0,93,.28);
}

.pd__customizeBtn span{
    position:relative;
    z-index:1;
    font-family:inherit;
    font-size:14px;
    font-weight:1000;
    line-height:1.1;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.pd__customizeBtn small{
    position:relative;
    z-index:1;
    max-width:100%;
    color:rgba(255,255,255,.86);
    font-weight:800;
    overflow-wrap:anywhere;
}

body.pd-custom-open{
    overflow:hidden;
}

.pd-custom[hidden]{
    display:none !important;
}

.pd-custom{
    position:fixed;
    inset:0;
    z-index:2700;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:var(--fluid-gutter);
}

.pd-custom__backdrop{
    position:absolute;
    inset:0;
    border:0;
    background:rgba(18,19,26,.38);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.pd-custom__card{
    position:relative;
    z-index:1;
    width:min(920px, calc(100vw - (var(--fluid-gutter) * 2)));
    max-height:calc(100dvh - 28px);
    overflow:auto;
    border-radius:28px;
    border:1px solid rgba(17,17,17,.08);
    background:rgba(255,255,255,.96);
    box-shadow:0 28px 80px rgba(17,17,17,.18);
    padding:24px;
    display:grid;
    gap:18px;
}

.pd-custom__close{
    position:absolute;
    top:14px;
    right:14px;
    width:42px;
    height:42px;
    border-radius:999px;
    border:1px solid rgba(17,17,17,.10);
    background:#fff;
    display:grid;
    place-items:center;
    cursor:pointer;
}

.pd-custom__close svg{
    width:18px;
    height:18px;
}

.pd-custom__head{
    padding-right:48px;
}

.pd-custom__eyebrow,
.pd-custom__adminTitle{
    color:#be4f83;
    font-size:11px;
    font-weight:1000;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.pd-custom__title{
    margin:8px 0 0;
    color:#be4f83;
    font-size:clamp(28px, 4vw, 40px);
    line-height:1.04;
}

.pd-custom__sub{
    margin:8px 0 0;
    color:rgba(17,17,17,.62);
    line-height:1.55;
}

.pd-custom__parts{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:14px;
}

.pd-custom__part,
.pd-custom__admin{
    border-radius:20px;
    border:1px solid rgba(196,84,135,.14);
    background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,244,248,.92));
    padding:16px;
}

.pd-custom__previewBtn{
    width:100%;
    aspect-ratio:1 / .72;
    margin:0 0 12px;
    border:1px solid rgba(196,84,135,.16);
    border-radius:16px;
    background:#fff;
    box-shadow:0 12px 26px rgba(196,84,135,.10);
    cursor:zoom-in;
    display:block;
    overflow:hidden;
    padding:0;
}

.pd-custom__previewBtn img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
    transition:transform .18s ease;
}

.pd-custom__previewBtn:hover img,
.pd-custom__previewBtn:focus-visible img{
    transform:scale(1.025);
}

.pd-custom__partHead{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:12px;
}

.pd-custom__partHead strong{
    color:#12131a;
}

.pd-custom__partHead button{
    border:0;
    background:transparent;
    color:#be4f83;
    font-weight:900;
    cursor:pointer;
}

.pd-custom__swatches{
    display:grid;
    gap:8px;
}

.pd-custom__swatches:has(.pd-custom__deleteColor){
    grid-template-columns:minmax(0, 1fr) 42px;
    align-items:center;
}

.pd-custom__swatch{
    min-width:0;
    min-height:44px;
    border-radius:14px;
    border:1px solid rgba(17,17,17,.10);
    background:#fff;
    display:flex;
    align-items:center;
    gap:10px;
    padding:8px 10px;
    color:#12131a;
    cursor:pointer;
    text-align:left;
}

.pd-custom__swatch.is-active{
    border-color:rgba(196,84,135,.55);
    box-shadow:0 0 0 3px rgba(196,84,135,.12);
}

.pd-custom__swatch span{
    width:24px;
    height:24px;
    flex:0 0 24px;
    border-radius:999px;
    border:1px solid rgba(17,17,17,.16);
}

.pd-custom__swatch b{
    min-width:0;
    overflow-wrap:anywhere;
}

.pd-custom__deleteColor{
    width:38px;
    min-height:38px;
    border:1px solid rgba(220,38,38,.18);
    border-radius:12px;
    background:rgba(255,255,255,.92);
    color:#dc2626;
    font-size:20px;
    font-weight:1000;
    cursor:pointer;
    line-height:1;
}

.pd-custom__deleteColor:hover{
    border-color:rgba(220,38,38,.38);
    background:rgba(255,235,235,.95);
}

.pd-custom__deleteColor:disabled{
    opacity:.55;
    cursor:wait;
}

.pd-custom__admin{
    display:grid;
    grid-template-columns:1fr 150px auto;
    align-items:end;
    gap:12px;
}

.pd-custom__adminTitle{
    grid-column:1 / -1;
}

.pd-custom__admin label{
    display:grid;
    gap:6px;
    color:rgba(17,17,17,.58);
    font-size:12px;
    font-weight:900;
}

.pd-custom__admin input{
    width:100%;
    min-height:44px;
    border-radius:12px;
    border:1px solid rgba(17,17,17,.12);
    padding:0 12px;
    font:inherit;
}

.pd-custom__admin button,
.pd-custom__apply{
    min-height:44px;
    border:0;
    border-radius:14px;
    background:linear-gradient(180deg, #f3a1c0, #ef8a74);
    color:#fff;
    font-weight:1000;
    cursor:pointer;
    padding:0 18px;
}

.pd-custom__admin p{
    grid-column:1 / -1;
    margin:0;
    min-height:18px;
    color:#be4f83;
    font-size:13px;
    font-weight:800;
}

.pd-custom__foot{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:14px;
}

.pd-custom__total{
    color:#12131a;
    font-size:22px;
    font-weight:1000;
}

.pd-custom-preview[hidden]{
    display:none !important;
}

.pd-custom-preview{
    position:fixed;
    inset:0;
    z-index:2750;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:var(--fluid-gutter);
}

.pd-custom-preview__backdrop{
    position:absolute;
    inset:0;
    border:0;
    background:rgba(18,19,26,.48);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.pd-custom-preview__card{
    position:relative;
    z-index:1;
    width:min(760px, calc(100vw - (var(--fluid-gutter) * 2)));
    max-height:calc(100dvh - 28px);
    border-radius:24px;
    border:1px solid rgba(255,255,255,.44);
    background:#fff;
    box-shadow:0 28px 90px rgba(17,17,17,.24);
    overflow:hidden;
}

.pd-custom-preview__card img{
    width:100%;
    max-height:calc(100dvh - 28px);
    display:block;
    object-fit:contain;
    background:#fff;
}

.pd-custom-preview__close{
    position:absolute;
    top:12px;
    right:12px;
    z-index:2;
    width:42px;
    height:42px;
    border-radius:999px;
    border:1px solid rgba(17,17,17,.10);
    background:rgba(255,255,255,.94);
    color:#12131a;
    display:grid;
    place-items:center;
    cursor:pointer;
    box-shadow:0 10px 24px rgba(17,17,17,.12);
}

.pd-custom-preview__close svg{
    width:18px;
    height:18px;
}

@media (max-width: 820px){
    .pd-custom__parts,
    .pd-custom__admin{
        grid-template-columns:1fr;
    }

    .pd-custom__foot{
        display:grid;
        justify-items:stretch;
    }

    .pd-custom__total{
        text-align:right;
    }
}

@media (max-width: 980px){
    .pd__grid{
        grid-template-columns:1fr;
        gap:20px;
    }

    .pd__panel{
        position:static;
    }

    .pd__main{
        height:clamp(320px, 56vh, 440px);
    }
}

@media (max-width: 640px){
    .pd{
        padding:18px var(--fluid-gutter) 54px;
    }

    .pd__galleryCard,
    .pd__panel{
        padding:16px;
    }

    .pd__main{
        height:clamp(280px, 52vh, 360px);
        padding:16px;
    }

    .pd__title{
        font-size:32px;
    }

    .pd__priceVal{
        font-size:38px;
    }

    .pd__actionsCard{
        grid-template-columns:1fr;
    }

}

@media (min-width: 641px) and (max-width: 980px){
    .pd__galleryCard .pd__main{
        height:500px;
        min-height:500px;
        max-height:500px;
    }
}

/* =========================
   VISUAL POLISH OVERRIDES
   ========================= */

.pd{
    padding: clamp(22px, 5vw, 36px) var(--fluid-gutter) clamp(56px, 8vw, 84px);
}

.pd__crumbs{
    margin-bottom: 26px;
}

.pd__galleryCard,
.pd__panel{
    background: rgba(255,255,255,.88);
    box-shadow: 0 24px 60px rgba(17,17,17,.08);
}

.pd__galleryCard{
    padding: clamp(18px, 3vw, 22px);
}

.pd__panel{
    padding: clamp(22px, 4vw, 34px) clamp(18px, 3.6vw, 30px);
}

.pd__title{
    font-size: clamp(38px, 3.6vw, 56px);
}

.pd__desc{
    font-size: 16px;
}

.pd__actionsCard{
    margin-top: 32px;
    gap: 22px;
}

.pd__qty,
.pd__add,
.pd__fav{
    height: 56px;
    border-radius: 18px;
}

@media (max-width: 640px){
    .pd{
        padding: 22px var(--fluid-gutter) 56px;
    }

    .pd__title{
        font-size:clamp(25px, 8vw, 34px);
        line-height:1.04;
        letter-spacing:-.02em;
    }

    .pd__panel,
    .pd__galleryCard{
        padding: 18px;
    }
}

@media (max-width: 760px){
    .pd__crumbs{
        gap: 8px;
        font-size: 13px;
    }

    .pd__priceRow{
        padding: 18px 0 20px;
    }

    .pd__qty,
    .pd__add,
    .pd__fav{
        height: 52px;
    }
}

@media (max-width: 480px){
    .pd__title{
        font-size:clamp(22px, 7.2vw, 30px);
    }

    .pd__main{
        height: clamp(260px, 48vh, 300px);
    }

    .pd__nav{
        width:42px;
        height:42px;
    }

    .pd__thumb{
        width:64px;
        height:64px;
    }

    .pd__price{
        flex-wrap:wrap;
    }

    .pd__priceVal{
        font-size:34px;
    }

    .pd__desc{
        font-size:15px;
    }
}

/* Pink Pact product details refresh */

body{
    background:linear-gradient(135deg, #ffd6e5 0%, #ffedf4 50%, #ffd6e5 100%) fixed;
    background-size:cover;
}

.pd{
    background:transparent;
}

.pd__crumb,
.pd__crumb--current,
.pd__sep{
    color:#c45487;
}

.pd__title{
    color:#c45487;
}

.pd__priceVal{
    color:#64abd9;
}

.pd__priceCur{
    color:rgba(100,171,217,.82);
}

.pd__panel,
.pd__galleryCard{
    background:rgba(255,255,255,.92);
}

.pd__add,
.pd__fav,
.pd__opinionsBtn{
    border:0;
    background:linear-gradient(180deg, #f3a1c0, #ef8a74);
    color:#fff;
    box-shadow:0 16px 30px rgba(215,112,150,.22);
}

.pd__qtyBtn{
    color:#ef8a74;
}

/* Match the summary card height to the main gallery card on desktop */
.pd__panel{
    display:flex;
    flex-direction:column;
    min-height:calc(clamp(360px, 62vh, 620px) + (clamp(18px, 3vw, 22px) * 2));
}

@media (max-width: 980px){
    .pd__panel{
        min-height:0;
    }
}

body.pd-opinions-open{
    overflow:hidden;
}

body.pd-opinions-open .topbar{
    opacity:0;
    transform:translateY(calc(-100% - 12px));
    pointer-events:none;
}

.pd-opinions{
    position:fixed;
    inset:0;
    z-index:2600;
    display:none;
    align-items:center;
    justify-content:center;
    padding:var(--fluid-gutter);
    overflow:hidden;
}

.pd-opinions.is-open{
    display:flex;
}

.pd-opinions__backdrop{
    position:absolute;
    inset:0;
    background:rgba(18,19,26,.38);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.pd-opinions__card{
    position:relative;
    z-index:1;
    width:min(860px, calc(100vw - (var(--fluid-gutter) * 2)));
    max-width:100%;
    max-height:min(88vh, 920px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border-radius:32px;
    border:1px solid rgba(17,17,17,.08);
    background:rgba(255,255,255,.96);
    box-shadow:0 28px 80px rgba(17,17,17,.18);
    padding:24px;
}

.pd-opinions__close{
    position:absolute;
    top:16px;
    right:16px;
    width:42px;
    height:42px;
    border-radius:999px;
    border:1px solid rgba(17,17,17,.10);
    background:#fff;
    display:grid;
    place-items:center;
    cursor:pointer;
    color:#12131a;
    box-shadow:0 10px 22px rgba(17,17,17,.08);
}

.pd-opinions__close svg{
    width:18px;
    height:18px;
}

.pd-opinions__head{
    padding-right:56px;
}

.pd-opinions__eyebrow{
    font-size:11px;
    font-weight:900;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:#c45487;
}

.pd-opinions__title{
    margin:10px 0 0;
    font-size:clamp(28px, 4vw, 38px);
    line-height:1.02;
    color:#c45487;
}

.pd-opinions__sub{
    margin:10px 0 0;
    color:rgba(17,17,17,.62);
    line-height:1.65;
}

.pd-opinions__product{
    display:block;
    margin-top:8px;
    color:#12131a;
}

.pd-opinions__layout{
    margin-top:22px;
    display:grid;
    grid-template-columns:minmax(0, .92fr) minmax(0, 1.08fr);
    gap:18px;
}

.pd-opinions__form,
.pd-opinions__feed{
    border-radius:24px;
    border:1px solid rgba(17,17,17,.08);
    background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,242,247,.94));
    padding:18px;
}

.pd-opinions__form{
    display:grid;
    gap:14px;
    align-content:start;
    min-height:0;
    overflow:auto;
    overscroll-behavior:contain;
}

.pd-opinions__field{
    display:grid;
    gap:8px;
}

.pd-opinions__label,
.pd-opinions__feedTitle{
    font-size:11px;
    font-weight:900;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:rgba(17,17,17,.54);
}

.pd-opinions__input,
.pd-opinions__textarea{
    width:100%;
    border-radius:16px;
    border:1px solid rgba(17,17,17,.12);
    background:rgba(255,255,255,.98);
    color:#12131a;
    font:inherit;
    padding:14px 16px;
    outline:none;
    transition:border-color .18s ease, box-shadow .18s ease;
}

.pd-opinions__textarea{
    min-height:144px;
    resize:vertical;
}

.pd-opinions__input:focus,
.pd-opinions__textarea:focus{
    border-color:rgba(229,22,117,.30);
    box-shadow:0 0 0 4px rgba(229,22,117,.10);
}

.pd-opinions__submit{
    min-height:54px;
    border:0;
    border-radius:16px;
    background:linear-gradient(180deg, #f3a1c0, #ef8a74);
    color:#fff;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
    box-shadow:0 16px 30px rgba(215,112,150,.22);
}

.pd-opinions__submit:disabled{
    opacity:.7;
    cursor:wait;
}

.pd-opinions__formMsg{
    margin:0;
    min-height:18px;
    font-size:13px;
    font-weight:700;
}

.pd-opinions__formMsg.is-ok{
    color:#1f6d4b;
}

.pd-opinions__formMsg.is-bad{
    color:var(--red);
}

.pd-opinions__feed{
    display:grid;
    gap:14px;
    align-content:start;
}

.pd-opinions__empty{
    margin:0;
    color:rgba(17,17,17,.56);
    line-height:1.7;
}

.pd-opinions__list{
    display:grid;
    gap:12px;
}

.pd-opinions__item{
    border-radius:18px;
    border:1px solid rgba(17,17,17,.08);
    background:rgba(255,255,255,.92);
    padding:14px 16px;
}

.pd-opinions__itemHead{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.pd-opinions__author{
    color:#c45487;
    font-size:15px;
}

.pd-opinions__date{
    color:rgba(17,17,17,.46);
    font-size:12px;
    text-align:right;
}

.pd-opinions__text{
    margin:10px 0 0;
    color:rgba(17,17,17,.70);
    line-height:1.7;
    white-space:pre-line;
    overflow-wrap:anywhere;
}

@media (max-width: 760px){
    .pd-opinions{
        padding:18px;
    }

    .pd-opinions__card{
        padding:20px 18px 18px;
        border-radius:26px;
    }

    .pd-opinions__layout{
        grid-template-columns:1fr;
    }
}

@media (max-width: 480px){
    .pd-opinions__close{
        top:12px;
        right:12px;
        width:38px;
        height:38px;
    }

    .pd-opinions__head{
        padding-right:44px;
    }
}

/* Inline product reviews feed */
.pd-reviews[hidden]{
    display:none !important;
}

.pd-reviews{
    margin-top:24px;
    padding-top:22px;
    border-top:1px solid rgba(196,84,135,.12);
    display:grid;
    gap:18px;
}

.pd-reviews__top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
}

.pd-reviews__topCopy{
    min-width:0;
}

.pd-reviews__eyebrow{
    font-size:11px;
    font-weight:900;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:#c45487;
}

.pd-reviews__title{
    margin:8px 0 0;
    font-size:clamp(24px, 3vw, 32px);
    line-height:1.04;
    color:#c45487;
}

.pd-reviews__composeBtn{
    min-height:48px;
    padding:0 20px;
    border-radius:999px;
    border:0;
    background:linear-gradient(180deg, #f3a1c0, #ef8a74);
    color:#fff;
    font-weight:1000;
    letter-spacing:.06em;
    text-transform:uppercase;
    cursor:pointer;
    box-shadow:0 16px 30px rgba(215,112,150,.18);
    transition:transform .12s ease, box-shadow .18s ease, opacity .18s ease;
}

.pd-reviews__composeBtn:hover,
.pd-reviews__submit:hover{
    transform:translateY(-1px);
}

.pd-reviews__composer{
    display:grid;
    gap:14px;
    padding:18px;
    border-radius:24px;
    border:1px solid rgba(196,84,135,.12);
    background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,241,246,.95));
    box-shadow:0 16px 34px rgba(215,112,150,.08);
}

.pd-reviews__authorRow{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
}

.pd-reviews__authorLabel,
.pd-reviews__label{
    font-size:11px;
    font-weight:900;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:rgba(17,17,17,.54);
}

.pd-reviews__authorValue{
    display:inline-flex;
    align-items:center;
    min-height:40px;
    padding:0 14px;
    border-radius:999px;
    background:rgba(196,84,135,.08);
    color:#c45487;
    font-size:14px;
}

.pd-reviews__field{
    display:grid;
    gap:8px;
}

.pd-reviews__input,
.pd-reviews__textarea{
    width:100%;
    border-radius:18px;
    border:1px solid rgba(17,17,17,.12);
    background:#fff;
    color:#12131a;
    font:inherit;
    padding:14px 16px;
    outline:none;
    transition:border-color .18s ease, box-shadow .18s ease;
}

.pd-reviews__textarea{
    min-height:132px;
    resize:vertical;
}

.pd-reviews__input:focus,
.pd-reviews__textarea:focus{
    border-color:rgba(196,84,135,.30);
    box-shadow:0 0 0 4px rgba(196,84,135,.10);
}

.pd-reviews__composerActions{
    display:flex;
    justify-content:flex-end;
}

.pd-reviews__submit{
    min-height:52px;
    padding:0 22px;
    border-radius:18px;
    border:0;
    background:linear-gradient(180deg, #f3a1c0, #ef8a74);
    color:#fff;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
    box-shadow:0 16px 30px rgba(215,112,150,.18);
}

.pd-reviews__submit:disabled{
    opacity:.7;
    cursor:wait;
}

.pd-reviews__formMsg{
    margin:0;
    min-height:18px;
    font-size:13px;
    font-weight:700;
}

.pd-reviews__formMsg.is-ok{
    color:#1f6d4b;
}

.pd-reviews__formMsg.is-bad{
    color:var(--red);
}

.pd-reviews__feed{
    display:grid;
}

.pd-reviews__empty{
    margin:0;
    padding:18px 0;
    color:rgba(17,17,17,.56);
    line-height:1.7;
}

.pd-reviews__list{
    display:grid;
}

.pd-reviews__item{
    display:grid;
    grid-template-columns:minmax(110px, 150px) minmax(0, 1fr) minmax(170px, 210px);
    gap:18px;
    padding:22px 0;
    border-top:1px solid rgba(17,17,17,.08);
}

.pd-reviews__item:first-child{
    border-top:0;
}

.pd-reviews__meta{
    display:grid;
    align-content:start;
    gap:10px;
}

.pd-reviews__metaKicker{
    color:#c45487;
    font-size:13px;
    font-weight:900;
}

.pd-reviews__date{
    color:rgba(17,17,17,.52);
    font-size:14px;
}

.pd-reviews__content{
    min-width:0;
}

.pd-reviews__itemTitle{
    margin:0;
    font-size:24px;
    line-height:1.1;
    color:#12131a;
}

.pd-reviews__text{
    margin:10px 0 0;
    color:rgba(17,17,17,.74);
    line-height:1.75;
    white-space:pre-line;
    overflow-wrap:anywhere;
}

.pd-reviews__actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:16px;
}

.pd-reviews__actionForm{
    margin:0;
}

.pd-reviews__actionBtn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:0 16px;
    border-radius:999px;
    border:1px solid rgba(196,84,135,.18);
    background:rgba(255,255,255,.94);
    color:#c45487;
    font-weight:900;
    text-decoration:none;
    cursor:pointer;
    box-shadow:0 10px 22px rgba(196,84,135,.08);
    transition:transform .12s ease, box-shadow .18s ease, border-color .18s ease;
}

.pd-reviews__actionBtn:hover{
    transform:translateY(-1px);
    border-color:rgba(196,84,135,.28);
    box-shadow:0 14px 28px rgba(196,84,135,.12);
}

.pd-reviews__actionBtn--danger{
    color:#8f2347;
    border-color:rgba(143,35,71,.18);
}

.pd-reviews__actionBtn:disabled{
    opacity:.7;
    cursor:wait;
    transform:none;
}

.pd-reviews__authorCard{
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding-left:18px;
    border-left:1px solid rgba(17,17,17,.08);
}

.pd-reviews__avatar{
    width:46px;
    height:46px;
    border-radius:999px;
    background:linear-gradient(180deg, #f3a1c0, #ef8a74);
    color:#fff;
    display:grid;
    place-items:center;
    font-weight:1000;
    box-shadow:0 10px 22px rgba(215,112,150,.20);
}

.pd-reviews__authorName{
    color:#c45487;
    font-size:16px;
    line-height:1.4;
    max-width:100%;
    overflow-wrap:anywhere;
}

@media (max-width: 980px){
    .pd-reviews__item{
        grid-template-columns:140px minmax(0, 1fr);
    }

    .pd-reviews__authorCard{
        grid-column:2;
        justify-content:center;
        padding-left:0;
        padding-top:10px;
        border-left:0;
    }
}

@media (max-width: 640px){
    .pd-reviews{
        margin-top:20px;
        padding-top:18px;
        gap:16px;
    }

    .pd-reviews__top{
        align-items:flex-start;
    }

    .pd-reviews__composeBtn{
        width:100%;
        justify-content:center;
    }

    .pd-reviews__composer{
        padding:16px;
        border-radius:20px;
    }

    .pd-reviews__item{
        grid-template-columns:1fr;
        gap:12px;
        padding:18px 0;
    }

    .pd-reviews__itemTitle{
        font-size:21px;
    }

    .pd-reviews__authorCard{
        grid-column:auto;
        padding-top:0;
    }
}

/* Reviews area below product columns */
.pd-reviewsShell{
    margin-top:clamp(28px, 5vw, 48px);
}

.pd-reviews{
    margin-top:0;
    padding-top:0;
    border-top:0;
    background:transparent;
    gap:24px;
}

.pd-reviews__top{
    align-items:flex-end;
    padding-bottom:6px;
}

.pd-reviews__feed{
    background:transparent;
}

.pd-reviews__feedTitle{
    margin:0 0 10px;
    color:rgba(17,17,17,.52);
    font-size:12px;
    font-weight:900;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.pd-reviews__empty{
    padding:0;
}

.pd-reviews__list{
    gap:18px;
}

.pd-reviews__item{
    border:1px solid rgba(196,84,135,.16);
    border-radius:28px;
    background:rgba(255,255,255,.74);
    box-shadow:0 18px 40px rgba(196,84,135,.10);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    padding:24px 26px;
}

.pd-reviews__item:first-child{
    border-top:1px solid rgba(196,84,135,.16);
}

.pd-reviews__itemTitle{
    color:#c45487;
}

.pd-reviews__authorCard{
    min-width:0;
}

/* Popup composer */
.pd-opinions[hidden]{
    display:none !important;
}

.pd-opinions__backdrop{
    border:0;
    padding:0;
    cursor:default;
}

.pd-opinions__card{
    width:min(760px, calc(100vw - (var(--fluid-gutter) * 2)));
    max-height:min(calc(100vh - (var(--fluid-gutter) * 2)), 920px);
    border-radius:36px;
    border-color:rgba(196,84,135,.14);
    background:
        radial-gradient(circle at top right, rgba(255,214,229,.42), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,244,248,.96));
    box-shadow:0 30px 90px rgba(58,22,43,.22);
    padding:34px 32px 30px;
}

.pd-opinions__close{
    top:18px;
    right:18px;
    width:44px;
    height:44px;
    border-color:rgba(196,84,135,.10);
    box-shadow:0 12px 24px rgba(58,22,43,.08);
}

.pd-opinions__head{
    display:grid;
    gap:8px;
    padding-right:72px;
}

.pd-opinions__title{
    margin:4px 0 0;
    font-size:clamp(30px, 4vw, 46px);
    line-height:.98;
}

.pd-opinions__sub{
    margin:0;
    max-width:44ch;
    font-size:15px;
}

.pd-opinions__product{
    margin-top:2px;
    font-size:15px;
    font-weight:900;
    color:#1b1b24;
}

.pd-opinions__form{
    margin-top:26px;
    max-width:100%;
    flex:1 1 auto;
    gap:18px;
    padding:22px 20px 20px;
    border-radius:28px;
    border-color:rgba(196,84,135,.12);
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,242,247,.92));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 18px 40px rgba(196,84,135,.08);
    scrollbar-gutter:stable both-edges;
}

.pd-opinions__authorRow{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    flex-wrap:wrap;
    padding:10px 12px;
    border-radius:20px;
    background:rgba(255,255,255,.72);
    border:1px solid rgba(196,84,135,.10);
}

.pd-opinions__authorValue{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:0 16px;
    border-radius:999px;
    background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,240,246,.96));
    color:#c45487;
    font-size:14px;
    font-weight:800;
    box-shadow:0 10px 22px rgba(196,84,135,.10);
}

.pd-opinions__field{
    gap:10px;
}

.pd-opinions__label{
    padding-left:2px;
    color:rgba(17,17,17,.50);
}

.pd-opinions__input,
.pd-opinions__textarea{
    border-radius:20px;
    border-color:rgba(196,84,135,.16);
    background:rgba(255,255,255,.98);
    padding:16px 18px;
    font-size:16px;
    line-height:1.55;
    box-shadow:0 10px 24px rgba(196,84,135,.04);
}

.pd-opinions__input{
    min-height:58px;
}

.pd-opinions__textarea{
    min-height:190px;
}

.pd-opinions__input::placeholder,
.pd-opinions__textarea::placeholder{
    color:rgba(17,17,17,.42);
}

.pd-opinions__actions{
    display:flex;
    justify-content:flex-end;
    padding-top:4px;
}

.pd-opinions__submit{
    min-width:210px;
    min-height:56px;
    padding:0 24px;
    border-radius:18px;
    letter-spacing:.05em;
}

.pd-opinions__formMsg{
    min-height:20px;
    padding-left:2px;
}

@media (max-width: 980px){
    .pd-reviewsShell{
        margin-top:24px;
    }
}

@media (max-width: 640px){
    .pd-reviews{
        gap:18px;
    }

    .pd-reviews__top{
        align-items:flex-start;
        padding-bottom:0;
    }

    .pd-reviews__item{
        padding:20px 18px;
        border-radius:22px;
    }

    .pd-opinions__card{
        padding:24px 18px 20px;
        border-radius:26px;
    }

    .pd-opinions__head{
        padding-right:54px;
    }

    .pd-opinions__form{
        padding:18px 16px 16px;
        border-radius:24px;
    }

    .pd-opinions__authorRow{
        align-items:flex-start;
    }

    .pd-opinions__submit{
        width:100%;
        min-width:0;
    }

    .pd-opinions__textarea{
        min-height:160px;
    }
}

/* Refined opinions presentation */
.pd-reviewsShell{
    position:relative;
}

.pd-reviews{
    position:relative;
    padding:clamp(24px, 3.5vw, 36px);
    border:1px solid rgba(196,84,135,.14);
    border-radius:36px;
    background:
        radial-gradient(circle at top left, rgba(255,255,255,.75), transparent 34%),
        linear-gradient(135deg, rgba(255,247,250,.94), rgba(255,232,241,.88));
    box-shadow:0 28px 56px rgba(196,84,135,.10);
    overflow:hidden;
}

.pd-reviews::before{
    content:"";
    position:absolute;
    inset:auto -10% -42% auto;
    width:280px;
    height:280px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(243,161,192,.20), rgba(243,161,192,0));
    pointer-events:none;
}

.pd-reviews__top{
    align-items:flex-end;
    gap:22px;
    padding-bottom:16px;
    border-bottom:1px solid rgba(196,84,135,.12);
}

.pd-reviews__topCopy{
    display:grid;
    gap:8px;
    max-width:640px;
}

.pd-reviews__eyebrow{
    color:#ba4e81;
}

.pd-reviews__title{
    margin:0;
    font-size:clamp(28px, 4vw, 42px);
    letter-spacing:-.03em;
    color:#b8447b;
}

.pd-reviews__composeBtn{
    min-height:52px;
    padding:0 24px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    white-space:nowrap;
    text-align:center;
    box-shadow:0 18px 36px rgba(215,112,150,.22);
}

.pd-reviews__feed{
    gap:16px;
}

.pd-reviews__feedTitle{
    margin:0;
    color:rgba(108,45,74,.72);
}

.pd-reviews__empty{
    padding:22px 24px;
    border:1px dashed rgba(196,84,135,.22);
    border-radius:24px;
    background:rgba(255,255,255,.54);
}

.pd-reviews__list{
    gap:20px;
}

.pd-reviews__item{
    grid-template-columns:minmax(118px, 144px) minmax(0, 1fr) minmax(180px, 220px);
    align-items:start;
    gap:22px;
    padding:26px;
    border:1px solid rgba(196,84,135,.18);
    border-radius:30px;
    background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,247,250,.88));
    box-shadow:0 18px 42px rgba(196,84,135,.10);
}

.pd-reviews__meta{
    padding:12px 14px;
    border-radius:22px;
    background:rgba(255,255,255,.72);
    border:1px solid rgba(196,84,135,.12);
}

.pd-reviews__metaKicker{
    font-size:12px;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.pd-reviews__date{
    font-size:13px;
}

.pd-reviews__content{
    display:grid;
    gap:14px;
}

.pd-reviews__itemTitle{
    font-size:clamp(24px, 2.8vw, 32px);
    line-height:1.04;
    color:#be4f83;
}

.pd-reviews__text{
    margin:0;
    font-size:15px;
    line-height:1.8;
    color:rgba(31,20,27,.78);
}

.pd-reviews__actions{
    margin-top:2px;
}

.pd-reviews__actionBtn{
    min-height:42px;
    padding:0 18px;
}

.pd-reviews__authorCard{
    display:grid;
    align-content:start;
    justify-items:start;
    gap:10px;
    padding:16px 0 0 22px;
    border-left:1px solid rgba(196,84,135,.12);
    text-align:left;
}

.pd-reviews__authorBadge{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:0 10px;
    border-radius:999px;
    background:rgba(196,84,135,.08);
    color:#be4f83;
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.pd-reviews__authorName{
    font-size:18px;
    color:#a93f72;
}

@media (max-width: 980px){
    .pd-reviews{
        padding:24px;
    }

    .pd-reviews__item{
        grid-template-columns:132px minmax(0, 1fr);
    }

    .pd-reviews__authorCard{
        grid-column:2;
        padding:16px 0 0;
        border-left:0;
        border-top:1px solid rgba(196,84,135,.12);
    }
}

@media (max-width: 640px){
    .pd-reviews{
        padding:20px 16px;
        border-radius:28px;
    }

    .pd-reviews__top{
        align-items:flex-start;
        padding-bottom:14px;
    }

    .pd-reviews__composeBtn{
        width:100%;
        justify-content:center;
    }

    .pd-reviews__item{
        grid-template-columns:1fr;
        gap:16px;
        padding:20px 18px;
        border-radius:24px;
    }

    .pd-reviews__meta{
        width:100%;
    }

    .pd-reviews__itemTitle{
        font-size:26px;
    }

    .pd-reviews__authorCard{
        grid-column:auto;
        gap:8px;
        padding-top:14px;
    }
}

/* Product details layout refresh */
.pd__grid{
    grid-template-columns:minmax(0, 1.15fr) minmax(350px, .85fr);
    gap:clamp(24px, 4.5vw, 46px);
}

.pd__left{
    display:grid;
    gap:14px;
}

.pd__panel{
    gap:18px;
}

.pd__summaryHead{
    display:grid;
    gap:14px;
}

.pd__title{
    font-size:clamp(36px, 3.2vw, 54px);
    letter-spacing:-.03em;
    line-height:1.02;
}

.pd__priceRow{
    margin-top:0;
    padding:0;
    border:0;
}

.pd__priceVal{
    font-size:clamp(34px, 3vw, 48px);
}

.pd__descCard{
    border:1px solid rgba(196,84,135,.14);
    border-radius:20px;
    background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,245,250,.86));
    padding:16px 18px;
}

.pd__desc{
    max-width:none;
    font-size:15px;
    line-height:1.75;
}

.pd__ctaGroup{
    margin-top:4px;
    display:grid;
    gap:14px;
}

.pd__actionsCard{
    margin-top:0;
}

.pd__add,
.pd__fav,
.pd__opinionsBtn{
    min-height:56px;
}

@media (max-width: 1180px){
    .pd__grid{
        grid-template-columns:minmax(0, 1fr) minmax(320px, .78fr);
        gap:30px;
    }
}

@media (max-width: 980px){
    .pd__grid{
        grid-template-columns:1fr;
        gap:22px;
    }

    .pd__panel{
        min-height:0;
    }
}

@media (max-width: 760px){
    .pd__descCard{
        padding:14px 14px;
        border-radius:18px;
    }
}

@media (max-width: 640px){
    .pd__panel{
        gap:14px;
    }

    .pd__summaryHead{
        gap:10px;
    }

    .pd__title{
        font-size:clamp(30px, 9.6vw, 38px);
    }

    .pd__priceVal{
        font-size:clamp(30px, 10vw, 38px);
    }

    .pd__actionsCard{
        grid-template-columns:1fr;
        gap:14px;
    }
}

/* Requested tweaks: description under gallery + original buttons feel */
.pd__panel{
    padding:30px 28px;
    height:100%;
    width:100%;
    max-width:100%;
    margin:0;
}

.pd__left{
    display:flex;
    flex-direction:column;
    gap:16px;
    align-content:start;
}

.pd__right--summary{
    display:flex;
    width:100%;
    justify-content:stretch;
}

.pd__galleryCard{
    height:auto;
    align-self:start;
    flex:0 0 auto;
}

.pd__titleCard{
    margin:0 0 16px;
    padding:18px 22px;
    border:1px solid rgba(17,17,17,.08);
    border-radius:24px;
    background:rgba(255,255,255,.92);
    box-shadow:0 18px 40px rgba(17,17,17,.08);
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
}

.pd__titleCard .pd__title{
    margin:0;
}

.pd__leftDescCard{
    margin-top:2px;
    padding:18px 20px;
    border:1px solid rgba(17,17,17,.08);
    border-radius:24px;
    background:rgba(255,255,255,.92);
    box-shadow:0 18px 40px rgba(17,17,17,.08);
}

.pd__leftDescCard .pd__desc{
    max-width:none;
}

.pd__leftDescCard--full{
    grid-column:1 / -1;
    margin-top:8px;
}

.pd__thumbs--full{
    grid-column:1 / -1;
    margin-top:2px;
}

.pd__panel .pd__priceRow{
    margin-top:12px;
    padding:18px 0 16px;
    border-bottom:1px solid var(--line);
    justify-items:end;
    text-align:right;
}

.pd__panel .pd__price{
    width:100%;
    justify-content:flex-end;
}

.pd__panel .pd__actionsCard{
    margin-top:8px;
    grid-template-columns:140px minmax(0,1fr);
    gap:8px;
    align-items:end;
}

.pd__panel .pd__add,
.pd__panel .pd__fav,
.pd__panel .pd__opinionsBtn{
    height:54px;
    min-height:54px;
    border-radius:16px;
}

.pd__panel .pd__fav{
    margin-top:6px;
}

.pd__panel .pd__opinionsBtn{
    margin-top:6px;
}

.pd__grid.pd__grid--product{
    align-items:stretch;
}

.pd__descCard--collapsible{
    flex:0 0 auto;
    min-height:0;
    margin-bottom:0;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
}

.pd__descCard--collapsible .pd__desc{
    max-height:96px;
    overflow:hidden;
    transition:max-height .2s ease;
}

.pd__descCard--collapsible.is-expanded .pd__desc{
    display:block;
    max-height:min(55vh, 420px);
    overflow:auto;
    padding-right:4px;
}

.pd__descToggle{
    margin-top:10px;
    border:0;
    background:transparent;
    color:#be4f83;
    font-weight:800;
    font-size:13px;
    letter-spacing:.04em;
    text-transform:lowercase;
    cursor:pointer;
    padding:0;
}

.pd__descToggle:hover{
    text-decoration:underline;
}

/* Keep product image frame size stable across products */
.pd__galleryCard .pd__main{
    width:100%;
    aspect-ratio:1 / 1;
    height:auto;
    min-height:0;
    max-height:none;
}

.pd__galleryCard .pd__main img{
    width:100%;
    height:100%;
    max-width:100%;
    max-height:100%;
    object-fit:contain;
}

.pd__left{
    min-height:0;
}

.pd__left .pd__galleryCard{
    height:auto;
}

.pd__left .pd__gallery{
    height:auto;
    display:block;
}

@media (min-width: 981px){
    .pd__left,
    .pd__right--summary{
        height:100%;
    }

    .pd__left{
        justify-content:flex-start;
    }

    .pd__left .pd__galleryCard{
        flex:1 1 auto;
        height:100%;
        display:flex;
        align-self:stretch;
    }

    .pd__left .pd__gallery{
        flex:1 1 auto;
        height:100%;
        display:flex;
    }

    .pd__left .pd__main{
        flex:1 1 auto;
        height:100%;
        aspect-ratio:auto;
    }
}

@media (max-width: 760px){
    .pd__leftDescCard{
        padding:16px;
        border-radius:20px;
    }
}

@media (max-width: 640px){
    .pd__panel{
        padding:18px;
    }

    .pd__titleCard{
        margin-bottom:14px;
        padding:16px 18px;
        border-radius:20px;
    }

    .pd__leftDescCard--full{
        margin-top:2px;
    }

    .pd__thumbs--full{
        margin-top:0;
    }

    .pd__panel .pd__actionsCard{
        margin-top:8px;
        grid-template-columns:1fr;
        gap:8px;
    }

    .pd__galleryCard .pd__main{
        width:100%;
        aspect-ratio:1 / 1;
        height:auto;
        min-height:0;
        max-height:none;
    }
}

.pd-opinions__form,
.pd-opinions__form *{
    box-sizing:border-box;
}

.pd-opinions__authorRow,
.pd-opinions__field,
.pd-opinions__input,
.pd-opinions__textarea,
.pd-opinions__formMsg,
.pd-opinions__actions{
    width:100%;
    max-width:100%;
}

.pd-opinions__authorRow{
    display:grid;
    grid-template-columns:auto minmax(0, 1fr);
    align-items:center;
}

.pd-opinions__authorValue{
    justify-self:end;
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
}

.pd-opinions__actions{
    justify-content:flex-end;
}

@media (max-width: 640px){
    .pd-opinions__authorRow{
        grid-template-columns:1fr;
    }

    .pd-opinions__authorValue{
        justify-self:start;
    }
}

/* Final modal composer layout: avoid nested scrollbars and keep the submit action at the bottom. */
.pd-opinions__card{
    display:flex;
    flex-direction:column;
    max-height:calc(100dvh - 28px);
    overflow:hidden;
}

.pd-opinions__form{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    min-height:0;
    overflow:visible;
    scrollbar-gutter:auto;
}

.pd-opinions__textarea{
    min-height:185px;
}

.pd-opinions__actions{
    margin-top:auto;
    padding-top:14px;
    justify-content:flex-end;
}

.pd-opinions__submit{
    align-self:flex-end;
}

@media (min-width: 900px) and (min-height: 760px){
    .pd-opinions__card{
        min-height:min(720px, calc(100dvh - 40px));
    }
}

@media (min-width: 900px){
    .pd-opinions__card{
        padding:28px 32px 26px;
    }

    .pd-opinions__form{
        margin-top:18px;
        gap:14px;
        padding:20px 20px 18px;
    }

    .pd-opinions__title{
        font-size:clamp(30px, 3.2vw, 42px);
    }
}

@media (max-width: 640px){
    .pd-opinions__card{
        max-height:calc(100dvh - 16px);
        overflow:auto;
    }

    .pd-opinions__textarea{
        min-height:170px;
    }

    .pd-opinions__submit{
        width:100%;
    }
}

/* Product summary: fixed lower actions and scrollable description */
.pd__right--summary .pd__panel{
    display:flex;
    flex-direction:column;
    min-height:100%;
    overflow:hidden;
}

.pd__descCard--collapsible{
    flex:1 1 auto;
    min-height:clamp(120px, 22vh, 240px);
    overflow:hidden;
}

.pd__descCard--collapsible .pd__desc{
    flex:1 1 auto;
    max-height:none;
    height:100%;
    min-height:0;
    overflow:auto;
    padding-right:6px;
}

.pd__descToggle{
    display:none !important;
}

.pd__panel .pd__priceRow{
    flex:0 0 auto;
    margin-top:auto;
}

.pd__panel .pd__opinionsBtn,
.pd__panel .pd__actionsCard,
.pd__panel .pd__fav,
.pd__panel .pd__msg{
    flex:0 0 auto;
}

@media (min-width: 981px){
    .pd__grid.pd__grid--product{
        align-items:stretch;
    }

    .pd__right--summary{
        align-self:stretch;
    }
}

@media (max-width: 980px){
    .pd__right--summary .pd__panel{
        min-height:0;
    }

    .pd__left{
        order:1;
    }

    .pd__thumbs--full{
        order:2;
        grid-column:1;
    }

    .pd__right--summary{
        order:3;
    }

    .pd__descCard--collapsible{
        min-height:160px;
        max-height:42vh;
    }
}

/* Product description: fixed panel with internal scrolling */
.pd__right--summary .pd__panel{
    height:100% !important;
    max-height:100% !important;
}

.pd__trustLine{
    flex:0 0 auto;
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
    margin:0 0 12px;
    padding:12px 14px;
    border-radius:16px;
    border:1px solid rgba(196,84,135,.13);
    background:rgba(255,247,250,.92);
    color:#302735;
    font-size:13px;
    font-weight:900;
    line-height:1.25;
    list-style:none;
}

.pd__trustLine li{
    display:flex;
    align-items:flex-start;
    gap:8px;
    min-width:0;
    padding:8px 9px;
    border-radius:12px;
    background:rgba(255,255,255,.66);
    box-shadow:inset 0 0 0 1px rgba(196,84,135,.08);
}

.pd__trustLine li span:first-child{
    flex:0 0 auto;
}

@media (max-width:640px){
    .pd__trustLine{
        grid-template-columns:1fr;
        padding:10px;
    }
}

/* Final mobile title sizing: keep long translated product names compact. */
@media (max-width:640px){
    .pd__title{
        font-size:clamp(24px, 7.2vw, 32px) !important;
        line-height:1.05 !important;
        letter-spacing:-.015em !important;
    }
}

@media (max-width:480px){
    .pd__title{
        font-size:clamp(21px, 6.7vw, 28px) !important;
    }
}

.pd__handmadeInfo{
    flex:0 0 auto;
    margin:0 0 12px;
    padding:14px 16px;
    border-radius:18px;
    border:1px solid rgba(196,84,135,.14);
    background:
        radial-gradient(circle at 16% 0%, rgba(255,255,255,.78), rgba(255,255,255,0) 36%),
        linear-gradient(180deg, rgba(255,247,251,.96), rgba(255,232,242,.88));
    box-shadow:0 14px 30px rgba(196,84,135,.10);
    color:#2b2530;
    font-size:14px;
    line-height:1.48;
}

.pd__handmadeInfo p{
    margin:0;
}

.pd__handmadeInfo p + p{
    margin-top:6px;
}

.pd__handmadeKicker{
    color:#a40055;
    font-weight:950;
}

.pd__descCard--collapsible{
    display:flex !important;
    flex:1 1 0 !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:hidden !important;
}

.pd__descCard--collapsible .pd__desc{
    display:block !important;
    flex:1 1 auto !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding-right:8px !important;
    scrollbar-gutter:stable !important;
}

.pd__descCard--collapsible .pd__desc::-webkit-scrollbar{
    width:8px;
}

.pd__descCard--collapsible .pd__desc::-webkit-scrollbar-thumb{
    border-radius:999px;
    background:rgba(196,84,135,.28);
}

.pd__descCard--collapsible .pd__desc::-webkit-scrollbar-track{
    background:rgba(196,84,135,.08);
    border-radius:999px;
}

.pd__panel .pd__priceRow{
    margin-top:16px !important;
}

@media (min-width: 981px){
    .pd__right--summary .pd__panel{
        min-height:0 !important;
    }
}

@media (max-width: 980px){
    .pd__right--summary .pd__panel{
        height:auto !important;
        max-height:none !important;
    }

    .pd__descCard--collapsible{
        flex:0 0 auto !important;
        height:clamp(180px, 34vh, 320px) !important;
    }
}

/* Keep the description panel fixed, with the trust line below it */
.pd__descCard--collapsible{
    flex:0 0 auto !important;
    height:clamp(140px, 20vh, 220px) !important;
    min-height:140px !important;
    max-height:none !important;
}

.pd__trustLine{
    margin:14px 0 0 !important;
}

.pd__panel .pd__priceRow{
    margin-top:18px !important;
}

@media (max-width: 980px){
    .pd__descCard--collapsible{
        height:clamp(180px, 34vh, 320px) !important;
        min-height:180px !important;
    }
}
