/* Pamora product detail: centered cover-flow gallery + premium detail cards */
.product-detail-shell {
    width: min(1480px, 100%);
    padding: clamp(20px, 3.5vw, 48px) clamp(15px, 4.5vw, 66px) 100px;
}

.product-breadcrumb {
    gap: 9px;
    margin-bottom: clamp(18px, 3vw, 30px);
    color: #7c8981;
    font-size: 10px;
    letter-spacing: .01em;
}
.product-breadcrumb a { color: #42695a; transition: color .2s ease; }
.product-breadcrumb a:hover { color: #0a3a2c; }

.product-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(360px, .94fr);
    gap: clamp(30px, 5.4vw, 82px);
    align-items: start;
}

/* Gallery header and centered slide rail */
.product-gallery { min-width: 0; }
.product-gallery-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 3px 13px;
}
.product-gallery-kicker,
.product-gallery-image-count {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #72867a;
    font: 500 9px/1.4 "IBM Plex Mono", monospace;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.product-gallery-kicker i { color: #b58d3d; font-size: 12px; }
.product-gallery-image-count {
    gap: 7px;
    padding: 7px 10px;
    border: 1px solid rgba(10, 58, 44, .10);
    border-radius: 30px;
    background: rgba(255, 255, 255, .58);
    letter-spacing: .07em;
    color: #0a3a2c;
}
.product-gallery-image-count span { color: #a6b0a7; }
.product-carousel {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .65);
    border-radius: 26px;
    background:
        radial-gradient(ellipse at 50% 38%, rgba(255,255,255,.95) 0%, rgba(246,247,241,.76) 44%, rgba(220,231,222,.76) 100%);
    box-shadow: 0 22px 54px rgba(31, 54, 41, .07), inset 0 0 0 1px rgba(255,255,255,.34);
}
.product-carousel-stage {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding: 22px 0 20px;
    outline: none;
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
}
.product-carousel-stage:focus-visible { outline: 2px solid #145c44; outline-offset: -3px; }
.product-carousel-track {
    position: relative;
    display: flex;
    align-items: center;
    gap: clamp(10px, 1.7vw, 20px);
    width: max-content;
    will-change: transform;
    transition: transform .58s cubic-bezier(.22, .72, .22, 1);
}
.product-carousel-slide {
    position: relative;
    flex: 0 0 clamp(250px, 30vw, 450px);
    width: clamp(250px, 30vw, 450px);
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.8);
    border-radius: 21px;
    background: #e8ece5;
    box-shadow: 0 8px 23px rgba(16, 38, 27, .07);
    opacity: .48;
    transform: scale(.855);
    filter: saturate(.78);
    cursor: pointer;
    transition: opacity .45s ease, transform .58s cubic-bezier(.22, .72, .22, 1), filter .45s ease, box-shadow .45s ease;
}
.product-carousel-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    -webkit-user-drag: none;
}
.product-carousel-slide.is-active {
    z-index: 2;
    opacity: 1;
    transform: scale(1);
    filter: none;
    box-shadow: 0 18px 36px rgba(16, 38, 27, .15);
    cursor: grab;
}
.product-carousel-slide.is-active:active { cursor: grabbing; }
.product-carousel-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 0 18px 17px;
}
.product-carousel-arrow {
    display: inline-grid;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(10, 58, 44, .15);
    border-radius: 50%;
    background: rgba(255,255,255,.76);
    color: #0a3a2c;
    font-size: 13px;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, transform .2s ease;
}
.product-carousel-arrow:hover { background: #0a3a2c; color: #fff; transform: translateY(-1px); }
.product-carousel-dots { display: flex; flex: 1; justify-content: center; align-items: center; gap: 6px; }
.product-carousel-dot {
    width: 5px;
    height: 5px;
    padding: 0;
    border: 0;
    border-radius: 99px;
    background: #b7c5ba;
    cursor: pointer;
    transition: width .3s ease, background .3s ease;
}
.product-carousel-dot.is-active { width: 23px; background: #0a3a2c; }
.product-gallery-caption {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 12px 0 0;
    color: #7b897f;
    font: 500 9px/1.5 "IBM Plex Mono", monospace;
    letter-spacing: .06em;
}
.product-gallery-caption span { color: #c5a460; }

/* Product information cards */
.product-detail-info {
    position: sticky;
    top: 22px;
    display: grid;
    gap: 14px;
    min-width: 0;
    padding: 0;
}
.product-summary-card,
.product-purchase-card,
.product-info-card {
    min-width: 0;
    border: 1px solid #e1e7e0;
    border-radius: 20px;
    background: rgba(255,255,252,.88);
    box-shadow: 0 9px 30px rgba(18, 42, 28, .035);
}
.product-summary-card { padding: clamp(22px, 3vw, 34px); }
.product-summary-topline { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 22px; }
.product-category-pill {
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    padding: 0 11px;
    border: 1px solid #d9e6dc;
    border-radius: 99px;
    background: #f0f5f0;
    color: #35624c;
    font: 600 8px/1.3 "IBM Plex Mono", monospace;
    letter-spacing: .1em;
}
.product-summary-mark {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #9b875c;
    font: 500 8px/1.4 "IBM Plex Mono", monospace;
    letter-spacing: .06em;
    text-align: right;
}
.product-summary-mark i { font-size: 11px; }
.product-detail-info h1 {
    margin: 0;
    color: #0c1512;
    font-size: clamp(39px, 4.1vw, 61px);
    font-weight: 400;
    line-height: .98;
    letter-spacing: -.04em;
    text-wrap: balance;
}
.product-short-description {
    max-width: 480px;
    margin: 16px 0 0;
    color: #68766d;
    font-size: 12px;
    line-height: 1.85;
}
.product-price-panel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 7px 12px;
    margin-top: 23px;
    padding-top: 20px;
    border-top: 1px solid #edf0eb;
}
.product-detail-price { display: flex; align-items: baseline; gap: 10px; font-size: 20px; }
.product-detail-price strong { color: #0a3a2c; font-size: 27px; font-weight: 700; letter-spacing: -.04em; }
.product-detail-price del { color: #8a958c; font-size: 12px; }
.product-tax-note { display: inline-flex; align-items: center; gap: 6px; margin: 0; color: #7d8980; font-size: 9px; }
.product-tax-note i { color: #57846a; font-size: 11px; }

.product-purchase-card { padding: 23px clamp(20px, 2.8vw, 29px) 20px; }
.product-purchase-heading { margin-bottom: 18px; }
.product-purchase-heading>span { display: block; margin-bottom: 5px; color: #8b9a8f; font: 500 8px/1.5 "IBM Plex Mono", monospace; letter-spacing: .18em; }
.product-purchase-heading p { margin: 0; color: #273a30; font-family: "Instrument Serif", Georgia, serif; font-size: 24px; line-height: 1.1; }
.product-option-label { display: block; margin-bottom: 8px; color: #526459; font-size: 10px; font-weight: 700; }
.product-variant-wrap { position: relative; margin-bottom: 13px; }
.product-variant-wrap>i:first-child { position: absolute; z-index: 1; top: 50%; left: 14px; color: #6d8172; font-size: 14px; transform: translateY(-50%); pointer-events: none; }
.product-variant-select {
    display: block;
    width: 100%;
    height: 49px;
    margin: 0;
    padding: 0 40px 0 41px;
    appearance: none;
    border: 1px solid #dce5dc;
    border-radius: 12px;
    background: #f9fbf8;
    color: #1b3025;
    font: 600 11px/1 Manrope, sans-serif;
    outline: none;
    cursor: pointer;
}
.product-variant-select:focus { border-color: #6b9b7b; box-shadow: 0 0 0 3px rgba(20,92,68,.08); }
.product-variant-chevron { position: absolute; top: 50%; right: 15px; color: #64766a; font-size: 11px; pointer-events: none; transform: translateY(-50%); }
.product-add-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 56px;
    margin-top: 3px;
    padding: 0 19px;
    border: 1px solid #0a3a2c;
    border-radius: 13px;
    background: #0a3a2c;
    color: #fff;
    font: 700 11px/1 Manrope, sans-serif;
    letter-spacing: .07em;
    cursor: pointer;
    transition: background .22s ease, box-shadow .22s ease, transform .22s ease;
}
.product-add-button i { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid rgba(255,255,255,.26); border-radius: 50%; font-size: 14px; }
.product-add-button:hover { background: #145c44; box-shadow: 0 8px 20px rgba(10,58,44,.17); transform: translateY(-1px); }
.product-add-button:active { transform: translateY(0); }
.product-bag-feedback { min-height: 0; margin: 0; color: #0a6847; font-size: 10px; line-height: 1.6; }
.product-bag-feedback:not(:empty) { margin-top: 9px; }
.product-checkout-note { display: flex; align-items: center; gap: 8px; margin-top: 13px; padding-top: 13px; border-top: 1px solid #edf0eb; color: #7b887f; font-size: 9px; line-height: 1.6; }
.product-checkout-note i { color: #b08a42; font-size: 13px; }

.product-promise-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.product-promise-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    padding: 15px 12px 14px;
    border: 1px solid #e2e8e0;
    border-radius: 15px;
    background: #f9faf6;
}
.product-promise-icon { display: grid; width: 29px; height: 29px; place-items: center; margin-bottom: 11px; border: 1px solid #dbe7dc; border-radius: 10px; background: #edf4ed; color: #1d6847; font-size: 13px; }
.product-promise-title { color: #22382b; font-size: 9px; font-weight: 800; line-height: 1.45; }
.product-promise-copy { margin-top: 4px; color: #849087; font-size: 8px; line-height: 1.6; }

.product-info-card { padding: 21px 24px 18px; }
.product-info-card-heading { display: flex; align-items: center; gap: 11px; margin-bottom: 12px; }
.product-info-index { display: grid; flex: 0 0 28px; width: 28px; height: 28px; place-items: center; border: 1px solid #dce7dc; border-radius: 9px; background: #eef4ee; color: #6b8574; font: 500 9px/1 "IBM Plex Mono", monospace; }
.product-specifications h2,
.product-description h2 { margin: 0; color: #182b21; font-family: "Instrument Serif", Georgia, serif; font-size: 24px; font-weight: 400; line-height: 1.1; }
.product-specification-list>div { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-top: 1px solid #edf0eb; font-size: 10px; }
.product-specification-list>div span { color: #7b887f; }
.product-specification-list>div strong { color: #26382d; font-weight: 700; text-align: right; overflow-wrap: anywhere; }
.product-description-copy { border-top: 1px solid #edf0eb; padding-top: 13px; color: #68766d; font-size: 11px; line-height: 1.9; overflow-wrap: anywhere; }
.product-not-found { margin-top: 25px; }

@media (max-width: 1000px) {
    .product-detail-grid { grid-template-columns: minmax(0, 1fr) minmax(330px, .9fr); gap: 27px; }
    .product-summary-card { padding: 24px; }
    .product-summary-mark { font-size: 7px; }
    .product-detail-info h1 { font-size: clamp(38px, 4.8vw, 50px); }
    .product-promise-grid { gap: 7px; }
    .product-promise-card { padding: 12px 9px; }
}

@media (max-width: 760px) {
    .product-detail-shell { padding: 17px 15px 100px; }
    .product-breadcrumb { margin-bottom: 17px; font-size: 9px; }
    .product-detail-grid { display: flex; flex-direction: column; gap: 23px; }
    .product-gallery { width: calc(100% + 30px); margin-inline: -15px; }
    .product-gallery-heading { padding: 0 17px 11px; }
    .product-carousel { border-radius: 0; border-right: 0; border-left: 0; box-shadow: none; }
    .product-carousel-stage { padding: 15px 0 17px; }
    .product-carousel-slide { flex-basis: 75vw; width: 75vw; max-width: 360px; border-radius: 21px; }
    .product-carousel-track { gap: 10px; }
    .product-carousel-controls { padding: 0 18px 15px; }
    .product-carousel-arrow { flex-basis: 33px; width: 33px; height: 33px; }
    .product-gallery-caption { margin-top: 10px; font-size: 8px; }
    .product-detail-info { position: static; width: 100%; gap: 12px; }
    .product-summary-card { padding: 22px 20px 19px; border-radius: 20px; }
    .product-summary-topline { margin-bottom: 17px; }
    .product-detail-info h1 { font-size: clamp(39px, 10.4vw, 49px); line-height: .96; }
    .product-short-description { margin-top: 12px; font-size: 11px; line-height: 1.8; }
    .product-price-panel { align-items: flex-end; margin-top: 17px; padding-top: 16px; }
    .product-detail-price strong { font-size: 25px; }
    .product-tax-note { padding-bottom: 4px; font-size: 8px; }
    .product-purchase-card { padding: 20px 18px 16px; border-radius: 19px; }
    .product-purchase-heading { margin-bottom: 15px; }
    .product-purchase-heading p { font-size: 23px; }
    .product-promise-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
    .product-promise-card { padding: 12px 9px 11px; border-radius: 13px; }
    .product-promise-icon { width: 27px; height: 27px; margin-bottom: 9px; border-radius: 9px; }
    .product-promise-title { font-size: 8px; }
    .product-promise-copy { font-size: 7px; }
    .product-info-card { padding: 19px 19px 15px; border-radius: 18px; }
    .product-specifications h2, .product-description h2 { font-size: 23px; }
}

@media (max-width: 380px) {
    .product-summary-mark { max-width: 112px; font-size: 6px; }
    .product-promise-grid { grid-template-columns: 1fr; }
    .product-promise-card { display: grid; grid-template-columns: 30px 1fr; column-gap: 10px; align-items: center; padding: 11px 13px; }
    .product-promise-icon { grid-row: span 2; margin: 0; }
    .product-promise-title, .product-promise-copy { font-size: 9px; }
    .product-promise-copy { margin-top: 1px; }
}

@media (prefers-reduced-motion: reduce) {
    .product-carousel-track, .product-carousel-slide, .product-add-button, .product-carousel-arrow { transition: none !important; }
}

/* Premium polish: jewel-box gallery, cinematic light and discreet motion controls. */
.product-detail-shell {
    position: relative;
}
.product-breadcrumb span {
    color: #53665a;
    max-width: 46vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.product-carousel {
    isolation: isolate;
    border: 1px solid rgba(255, 255, 255, .78);
    border-radius: 30px;
    background:
        radial-gradient(ellipse at 49% 35%, rgba(255, 240, 210, .93) 0%, rgba(220, 234, 217, .83) 39%, rgba(20, 69, 49, .96) 100%);
    box-shadow: 0 28px 70px rgba(10, 58, 44, .14), inset 0 1px 0 rgba(255,255,255,.72);
}
.product-carousel::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(145deg, rgba(255,255,255,.22), transparent 34%, rgba(4,32,22,.13));
    content: "";
    pointer-events: none;
}
.product-carousel-stage {
    padding: clamp(19px, 2.5vw, 30px) 0 23px;
}
.product-carousel-track {
    gap: clamp(12px, 1.7vw, 21px);
    transition: transform .68s cubic-bezier(.18, .72, .18, 1);
}
.product-carousel-slide {
    border: 1px solid rgba(255,255,255,.88);
    border-radius: 25px;
    background: #e8e9df;
    opacity: .55;
    filter: saturate(.72) brightness(.94);
    box-shadow: 0 12px 30px rgba(5, 31, 20, .15);
    transition: opacity .48s ease, transform .68s cubic-bezier(.18, .72, .18, 1), filter .48s ease, box-shadow .48s ease;
}
.product-carousel-slide img {
    transform: scale(1.015);
    transition: transform .9s cubic-bezier(.2, .7, .2, 1);
}
.product-carousel-slide.is-active {
    opacity: 1;
    filter: none;
    border-color: rgba(255,255,255,.98);
    box-shadow: 0 24px 55px rgba(3, 26, 17, .3), 0 0 0 1px rgba(212,173,98,.28);
}
.product-carousel-slide.is-active img { transform: scale(1); }
.product-carousel-controls {
    position: relative;
    z-index: 2;
    gap: 12px;
    padding: 0 21px 15px;
}
.product-carousel-arrow {
    flex-basis: 35px;
    width: 35px;
    height: 35px;
    border-color: rgba(255,255,255,.65);
    background: rgba(255,255,255,.9);
    box-shadow: 0 4px 14px rgba(3,26,17,.1);
}
.product-carousel-arrow:hover {
    background: #d4ad62;
    color: #14281d;
    border-color: #d4ad62;
    transform: scale(1.04);
}
.product-carousel-dots { gap: 7px; min-width: 0; }
.product-carousel-dot { background: rgba(255,255,255,.58); }
.product-carousel-dot.is-active { background: #f1d79e; box-shadow: 0 0 0 3px rgba(241,215,158,.12); }
.product-carousel-autoplay {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 76px;
    min-height: 34px;
    padding: 0 10px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 99px;
    background: rgba(255,255,255,.13);
    color: #fffdf5;
    font: 600 9px/1 Manrope, sans-serif;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.product-carousel-autoplay i { font-size: 13px; }
.product-carousel-autoplay:hover,
.product-carousel-autoplay:focus-visible {
    border-color: #f0d28b;
    background: #f0d28b;
    color: #123326;
}
.product-carousel-autoplay:focus-visible,
.product-carousel-arrow:focus-visible,
.product-carousel-dot:focus-visible {
    outline: 2px solid #f0d28b;
    outline-offset: 3px;
}
.product-carousel-progress {
    height: 3px;
    margin: 0 21px;
    overflow: hidden;
    border-radius: 99px;
    background: rgba(255,255,255,.2);
}
.product-carousel-progress span {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #d4ad62, #f7e7bd);
    transform: scaleX(0);
    transform-origin: left center;
    will-change: transform;
}
.product-gallery-caption {
    margin-top: 13px;
    color: #78857b;
    letter-spacing: .075em;
}
.product-gallery-caption span { color: #b08b44; }

/* Refined product cards with quiet emerald and champagne accents. */
.product-summary-card,
.product-purchase-card,
.product-info-card {
    border-color: rgba(19, 66, 45, .11);
    border-radius: 23px;
    box-shadow: 0 13px 34px rgba(18, 42, 28, .045), 0 2px 5px rgba(18,42,28,.025);
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.product-summary-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(145deg, #fffefa 0%, #f8faf4 70%, #eef4eb 100%);
}
.product-summary-card::after {
    position: absolute;
    top: -95px;
    right: -90px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212,173,98,.13), rgba(212,173,98,0) 70%);
    content: "";
    pointer-events: none;
}
.product-summary-card > * { position: relative; z-index: 1; }
.product-category-pill {
    border-color: #d7e5d8;
    background: linear-gradient(135deg, #f3f8ef, #eaf2e9);
}
.product-price-panel { border-top-color: #e7ece4; }
.product-detail-price strong { color: #0a3a2c; }
.product-purchase-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(145deg, #ffffff 0%, #fbfcf8 100%);
}
.product-purchase-card::before {
    position: absolute;
    top: 0;
    right: 24px;
    left: 24px;
    height: 2px;
    border-radius: 0 0 5px 5px;
    background: linear-gradient(90deg, transparent, #d4ad62 25%, #0a3a2c 50%, #d4ad62 75%, transparent);
    content: "";
}
.product-add-button {
    position: relative;
    overflow: hidden;
    border-color: #0a3a2c;
    background: linear-gradient(112deg, #0a3a2c 0%, #145c44 62%, #0a3a2c 100%);
    box-shadow: 0 9px 19px rgba(10,58,44,.13);
}
.product-add-button::before {
    position: absolute;
    top: -40%;
    bottom: -40%;
    left: -35%;
    width: 24%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
    content: "";
    transform: skewX(-18deg);
    transition: left .65s ease;
}
.product-add-button:hover::before { left: 120%; }
.product-add-button > * { position: relative; z-index: 1; }
.product-promise-card {
    border-color: #e1e9df;
    background: linear-gradient(145deg, #fbfcf8 0%, #f2f6ef 100%);
    transition: transform .23s ease, box-shadow .23s ease, border-color .23s ease;
}
.product-promise-card:hover {
    transform: translateY(-3px);
    border-color: #c8dacb;
    box-shadow: 0 10px 21px rgba(10,58,44,.065);
}
.product-promise-icon {
    border-color: rgba(10,58,44,.11);
    background: linear-gradient(145deg, #f4f7ec, #e3eee2);
}
.product-info-card { background: rgba(255,255,252,.92); }
.product-info-index { background: linear-gradient(145deg, #f4f7ec, #e4eee2); }

@media (min-width: 761px) {
    .product-gallery { position: sticky; top: 24px; }
    .product-detail-info { position: static; }
    .product-summary-card:hover,
    .product-purchase-card:hover,
    .product-info-card:hover {
        border-color: rgba(20,92,68,.19);
        box-shadow: 0 17px 42px rgba(18,42,28,.065), 0 3px 8px rgba(18,42,28,.025);
    }
}

@media (max-width: 760px) {
    .product-carousel { border-radius: 0; }
    .product-carousel-stage { padding: 18px 0 21px; }
    .product-carousel-slide {
        flex-basis: 75vw;
        width: 75vw;
        max-width: 355px;
        border-radius: 24px;
    }
    .product-carousel-controls { gap: 8px; padding: 0 13px 14px; }
    .product-carousel-arrow { flex-basis: 33px; width: 33px; height: 33px; }
    .product-carousel-autoplay { min-width: 70px; min-height: 33px; padding-inline: 8px; font-size: 8px; }
    .product-carousel-progress { margin-inline: 14px; }
    .product-summary-card,
    .product-purchase-card,
    .product-info-card { border-radius: 21px; }
    .product-summary-card { background: linear-gradient(145deg, #fffefa 0%, #f6f8f1 100%); }
}

@media (max-width: 360px) {
    .product-carousel-controls { gap: 6px; padding-inline: 10px; }
    .product-carousel-autoplay { min-width: 64px; }
    .product-carousel-dots { gap: 4px; }
}

@media (prefers-reduced-motion: reduce) {
    .product-carousel-track,
    .product-carousel-slide,
    .product-carousel-slide img,
    .product-add-button,
    .product-carousel-arrow,
    .product-carousel-autoplay,
    .product-promise-card,
    .product-summary-card,
    .product-purchase-card,
    .product-info-card { transition: none !important; }
    .product-add-button::before { display: none; }
}

/* Colour-specific product options and variant-aware specifications */
.product-variant-native-hidden { display: none !important; }
.product-colour-picker { margin: 2px 0 18px; }
.product-colour-picker-heading { display: flex; align-items: baseline; gap: 8px; margin-bottom: 11px; color: #78857d; font-size: 12px; }
.product-colour-picker-heading strong { color: #0c1512; font-size: 13px; font-weight: 800; }
.product-colour-swatches { display: flex; flex-wrap: wrap; gap: 9px; }
.product-colour-swatch {
    display: inline-flex; align-items: center; gap: 8px; min-height: 43px; padding: 7px 12px 7px 8px;
    color: #34473b; background: #fff; border: 1px solid #e3e9e3; border-radius: 999px;
    font: 700 11px/1.2 "Manrope", sans-serif; cursor: pointer;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.product-colour-swatch:hover { border-color: #9cb7a3; background: #f8faf7; }
.product-colour-swatch.is-selected { color: #0a3a2c; border-color: #0a3a2c; background: #f3f7f2; box-shadow: 0 0 0 2px rgba(10,58,44,.08); }
.product-colour-swatch-dot {
    display: inline-block; flex: 0 0 24px; width: 24px; height: 24px; border-radius: 50%;
    background: var(--swatch-color, #9ca69e); border: 1px solid rgba(12,21,18,.15);
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.3);
}
.product-colour-swatch[aria-pressed="true"] .product-colour-swatch-dot { outline: 2px solid #0a3a2c; outline-offset: 2px; }
.product-secondary-option { margin-top: 14px; }
.product-attribute-group {
    overflow: hidden; margin-top: 10px; background: #fff; border: 1px solid rgba(10,58,44,.11);
    border-radius: 16px; box-shadow: 0 5px 22px rgba(12,21,18,.025);
}
.product-attribute-group:first-child { margin-top: 0; }
.product-attribute-group > summary {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    min-height: 54px; padding: 15px 17px; color: #0a3a2c; list-style: none; cursor: pointer;
    font: 800 12px/1.4 "Manrope", sans-serif; letter-spacing: .035em;
}
.product-attribute-group > summary::-webkit-details-marker { display: none; }
.product-attribute-group > summary i { flex: 0 0 auto; color: #728177; transition: transform .22s ease; }
.product-attribute-group[open] > summary { border-bottom: 1px solid rgba(10,58,44,.08); }
.product-attribute-group[open] > summary i { transform: rotate(180deg); }
.product-attribute-group .product-specification-list {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; padding: 12px;
}
.product-attribute-group .product-specification-list > div {
    display: flex; flex-direction: column; align-items: flex-start; gap: 7px; min-width: 0;
    min-height: 78px; padding: 12px; background: #f7f9f6; border: 1px solid rgba(10,58,44,.055); border-radius: 12px;
}
.product-attribute-group .product-specification-list > div > span {
    color: #7c877f; font: 700 9px/1.5 "Manrope", sans-serif; letter-spacing: .09em; text-transform: uppercase;
}
.product-attribute-group .product-specification-list > div > strong {
    max-width: 100%; color: #0c1512; font: 600 12px/1.55 "Manrope", sans-serif;
    white-space: normal; overflow-wrap: anywhere; word-break: normal;
}
.product-info-card[hidden], .product-carousel-controls[hidden], .product-carousel-progress[hidden], .product-secondary-option[hidden] { display: none !important; }
@media (max-width: 768px) {
    .product-colour-picker { margin-bottom: 15px; }
    .product-colour-swatches { gap: 7px; }
    .product-colour-swatch { min-height: 40px; padding: 6px 10px 6px 7px; }
    .product-colour-swatch-dot { width: 22px; height: 22px; flex-basis: 22px; }
    .product-attribute-group > summary { min-height: 50px; padding: 14px; }
    .product-attribute-group .product-specification-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 10px; }
    .product-attribute-group .product-specification-list > div { min-height: 72px; padding: 10px; }
}
@media (max-width: 380px) {
    .product-colour-swatches { gap: 6px; }
    .product-colour-swatch { font-size: 10px; }
    .product-attribute-group .product-specification-list { grid-template-columns: minmax(0, 1fr); }
    .product-attribute-group .product-specification-list > div { min-height: auto; padding: 11px 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .product-colour-swatch, .product-attribute-group > summary i { transition: none; }
}


/* Responsive polish: colour controls stay beside the gallery on mobile;
   specification cards use readable, flexible columns at every viewport. */
.product-colour-picker--gallery {
    position: relative;
    z-index: 2;
    margin: 12px 0 18px;
    padding: 15px 15px 14px;
    border: 1px solid rgba(10,58,44,.12);
    border-radius: 17px;
    background: rgba(255,255,252,.96);
    box-shadow: 0 8px 24px rgba(12,21,18,.045);
}
.product-colour-picker--gallery .product-colour-picker-heading {
    margin-bottom: 12px;
    font-size: 12px;
}
.product-colour-picker--gallery .product-colour-swatches { gap: 8px; }
.product-colour-picker--gallery .product-colour-swatch { min-height: 42px; }
.product-specifications { align-self: stretch; }
.product-info-card-heading { justify-content: flex-start; }
.product-specifications .product-info-card-heading h2 { margin-left: auto; font-size: clamp(25px, 2.3vw, 32px); }
.product-attributes-accordion {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
    align-items: start;
    gap: 12px;
}
.product-attribute-group {
    min-width: 0;
    height: 100%;
    margin: 0;
    border-color: #e3e9e2;
    border-radius: 17px;
    box-shadow: 0 4px 16px rgba(12,21,18,.025);
}
.product-attribute-group > summary {
    min-height: 58px;
    padding: 16px 17px;
    color: #344a3c;
    font-size: 12px;
    letter-spacing: 0;
}
.product-attribute-group .product-specification-list {
    grid-template-columns: repeat(auto-fit, minmax(105px, 1fr));
    gap: 9px;
    padding: 12px;
}
.product-attribute-group .product-specification-list > div {
    min-width: 0;
    min-height: 76px;
    padding: 12px;
    overflow-wrap: break-word;
    word-break: normal;
}
.product-attribute-group .product-specification-list > div > span {
    font-size: 9px;
    letter-spacing: .045em;
    overflow-wrap: anywhere;
}
.product-attribute-group .product-specification-list > div > strong {
    font-size: 12px;
    line-height: 1.55;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
}
@media (min-width: 769px) {
    .product-specifications { padding: 25px 25px 23px; }
    .product-attributes-accordion { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
}
@media (max-width: 768px) {
    .product-colour-picker--gallery { margin-top: 12px; }
    .product-detail-info { gap: 12px; }
    .product-specifications { padding: 18px 15px 16px; }
    .product-specifications .product-info-card-heading { margin-bottom: 15px; }
    .product-specifications .product-info-card-heading h2 { font-size: 27px; }
    .product-attributes-accordion { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .product-attribute-group { height: auto; }
    .product-attribute-group > summary { min-height: 50px; padding: 14px 15px; }
    .product-attribute-group .product-specification-list {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 115px), 1fr));
        gap: 8px; padding: 10px;
    }
    .product-attribute-group .product-specification-list > div { min-height: 70px; padding: 11px; }
    .product-attribute-group .product-specification-list > div > strong { font-size: 12px; }
}
@media (max-width: 380px) {
    .product-colour-picker--gallery { padding: 13px 12px; }
    .product-colour-picker--gallery .product-colour-swatches { gap: 6px; }
    .product-colour-picker--gallery .product-colour-swatch { padding-inline: 7px; font-size: 10px; }
    .product-attribute-group .product-specification-list { grid-template-columns: minmax(0, 1fr); }
}


/* Pamora product specifications: readable, full-width disclosure rows.
   These final rules intentionally replace the earlier card/grid experiments. */
.product-specifications {
    width: 100%;
    min-width: 0;
    align-self: stretch;
    padding: clamp(18px, 2.5vw, 30px);
    border: 1px solid #e2e8df;
    border-radius: 22px;
    background: #fffefb;
    box-shadow: 0 10px 28px rgba(12, 21, 18, .035);
}
.product-specifications .product-info-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 17px;
    margin: 0 0 14px;
    border-bottom: 1px solid #e8ede6;
}
.product-specifications .product-info-index {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: #edf3ea;
    border: 1px solid #dce7d9;
    color: #476251;
    font: 600 11px/1 "IBM Plex Mono", monospace;
}
.product-specifications .product-info-card-heading h2 {
    margin: 0;
    color: #193c2e;
    font: 400 clamp(26px, 3vw, 36px)/1.08 "Instrument Serif", Georgia, serif;
    letter-spacing: -.035em;
}
.product-attributes-accordion {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 9px;
    width: 100%;
    min-width: 0;
}
.product-attribute-group {
    display: block;
    width: 100%;
    min-width: 0;
    height: auto !important;
    margin: 0 !important;
    overflow: hidden;
    border: 1px solid #e1e8df;
    border-radius: 15px;
    background: #fff;
    box-shadow: none;
}
.product-attribute-group > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    min-height: 58px;
    padding: 16px 18px;
    border: 0;
    color: #243e31;
    background: #f8faf6;
    list-style: none;
    cursor: pointer;
    font: 700 13px/1.45 "Manrope", sans-serif;
    letter-spacing: 0;
}
.product-attribute-group > summary::-webkit-details-marker { display: none; }
.product-attribute-group > summary::marker { content: ""; }
.product-attribute-group > summary span { min-width: 0; overflow-wrap: break-word; }
.product-attribute-group > summary i {
    flex: 0 0 28px;
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border: 1px solid #e1e8df;
    border-radius: 50%;
    color: #315945;
    background: #fff;
    transition: transform .28s ease, background .22s ease, color .22s ease;
}
.product-attribute-group[open] > summary { border-bottom: 1px solid #edf0eb; }
.product-attribute-group[open] > summary i {
    transform: rotate(180deg);
    color: #fff;
    background: #145c44;
    border-color: #145c44;
}
.product-attribute-content {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-5px);
    transition:
        max-height .42s cubic-bezier(.22,.75,.18,1),
        opacity .28s ease,
        transform .32s cubic-bezier(.22,.75,.18,1);
    will-change: max-height, opacity, transform;
}
.product-attribute-group[open] .product-attribute-content { opacity: 1; }
.product-attribute-group .product-specification-list {
    display: block !important;
    width: 100%;
    min-width: 0;
    padding: 0 18px;
    margin: 0;
    background: #fff;
}
.product-attribute-group .product-specification-list > div {
    display: grid !important;
    grid-template-columns: minmax(125px, .8fr) minmax(0, 1.2fr);
    align-items: start;
    gap: 18px;
    width: 100%;
    min-width: 0;
    min-height: unset;
    padding: 15px 0;
    margin: 0;
    border: 0;
    border-bottom: 1px solid #edf0eb;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.product-attribute-group .product-specification-list > div:last-child { border-bottom: 0; }
.product-attribute-group .product-specification-list > div > span {
    display: block;
    min-width: 0;
    padding: 1px 0 0;
    color: #7b887f;
    font: 700 10px/1.55 "Manrope", sans-serif;
    letter-spacing: .045em;
    text-transform: uppercase;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
}
.product-attribute-group .product-specification-list > div > strong {
    display: block;
    min-width: 0;
    max-width: 100%;
    color: #14261d;
    text-align: right;
    font: 600 13px/1.55 "Manrope", sans-serif;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: none;
}
.product-specifications .product-attribute-group summary:focus-visible {
    outline: 2px solid #145c44;
    outline-offset: -3px;
    border-radius: 14px;
}
@media (min-width: 769px) {
    .product-specifications { padding: 28px 30px 30px; }
    .product-specifications .product-info-card-heading { padding-bottom: 20px; margin-bottom: 16px; }
    .product-attributes-accordion { gap: 10px; }
    .product-attribute-group > summary { padding: 17px 20px; }
    .product-attribute-group .product-specification-list { padding-inline: 21px; }
    .product-attribute-group .product-specification-list > div { grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr); padding: 16px 0; }
    .product-attribute-group .product-specification-list > div > span { font-size: 10px; }
    .product-attribute-group .product-specification-list > div > strong { font-size: 13px; }
}
@media (max-width: 768px) {
    .product-specifications {
        width: 100%;
        padding: 17px 14px 15px;
        border-radius: 18px;
    }
    .product-specifications .product-info-card-heading { padding-bottom: 13px; margin-bottom: 12px; }
    .product-specifications .product-info-index { width: 32px; height: 32px; border-radius: 10px; }
    .product-specifications .product-info-card-heading h2 { font-size: 29px; }
    .product-attributes-accordion { grid-template-columns: minmax(0, 1fr) !important; gap: 8px; }
    .product-attribute-group { width: 100% !important; border-radius: 13px; }
    .product-attribute-group > summary { min-height: 52px; padding: 13px 13px; font-size: 12px; }
    .product-attribute-group > summary i { flex-basis: 26px; width: 26px; height: 26px; }
    .product-attribute-group .product-specification-list { padding: 0 13px; }
    .product-attribute-group .product-specification-list > div {
        grid-template-columns: minmax(100px, .85fr) minmax(0, 1.15fr);
        gap: 12px;
        padding: 13px 0;
    }
    .product-attribute-group .product-specification-list > div > span { font-size: 9px; line-height: 1.55; }
    .product-attribute-group .product-specification-list > div > strong { font-size: 12px; line-height: 1.55; }
}
@media (max-width: 360px) {
    .product-specifications { padding-inline: 11px; }
    .product-attribute-group .product-specification-list { padding-inline: 10px; }
    .product-attribute-group .product-specification-list > div { grid-template-columns: minmax(88px, .85fr) minmax(0, 1.15fr); gap: 9px; }
    .product-attribute-group .product-specification-list > div > strong { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
    .product-attribute-content, .product-attribute-group > summary i { transition: none !important; }
}

/* Rich product descriptions created in the Pamora admin editor. */
.product-description-copy > * { max-width: 100%; }
.product-description-copy > p { margin: 0 0 13px; }
.product-description-copy > p:last-child { margin-bottom: 0; }
.product-description-copy h2,
.product-description-copy h3 { margin: 20px 0 9px; color: #233a2d; font-family: Manrope, Arial, sans-serif; font-size: 16px; font-weight: 800; line-height: 1.45; }
.product-description-copy h2:first-child,
.product-description-copy h3:first-child { margin-top: 0; }
.product-description-copy ul,
.product-description-copy ol { margin: 8px 0 15px; padding-left: 22px; }
.product-description-copy li { padding-left: 3px; margin: 5px 0; }
.product-description-copy strong,
.product-description-copy b { color: #3d5648; font-weight: 800; }
.product-description-copy blockquote { margin: 13px 0; padding: 10px 14px; border-left: 3px solid #b8cdbd; background: #f5f8f3; color: #4c6657; }
.product-description-copy br { line-height: 1.8; }

/* Cart actions: add-to-bag and direct-buy preview */
.product-cart-actions{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:9px;align-items:stretch}
.product-cart-actions .product-add-button{width:100%;min-width:0;justify-content:center}
.product-buy-now-button{width:100%;min-width:0;min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 15px;border:1px solid #145c44;border-radius:8px;background:#fff;color:#145c44;font:800 11px Manrope,Arial,sans-serif;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}
.product-buy-now-button:hover{background:#f0f6f1;color:#0a3a2c;transform:translateY(-1px)}
.product-buy-now-button i{font-size:15px}
@media(max-width:480px){.product-cart-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px}.product-cart-actions .product-add-button,.product-buy-now-button{font-size:10px;padding:12px 8px;gap:6px;min-height:46px}}
@media(prefers-reduced-motion:reduce){.product-buy-now-button{transition:none}}


/* Product-level wishlist control */
.product-gallery { position: relative; }
.product-gallery-wishlist { position: absolute; top: 57px; right: 14px; z-index: 12; display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.9); border-radius: 50%; background: rgba(255,255,255,.74); color: #182a20; box-shadow: 0 8px 20px rgba(12,21,18,.10), inset 0 1px 0 #fff; -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px); cursor: pointer; transition: transform .24s ease, background .24s ease, color .24s ease; }
.product-gallery-wishlist:hover { transform: translateY(-1px) scale(1.04); background: rgba(255,255,255,.94); }
.product-gallery-wishlist[aria-pressed="true"] { color: #a23f4e; background: rgba(255,255,255,.94); }
.product-gallery-wishlist i { font-size: 17px; }
@media (max-width: 767.98px) { .product-gallery-wishlist { top: 55px; right: 12px; width: 39px; height: 39px; } }
