.single-product-page {
    max-width:1120px;
    padding-top:26px;
    padding-bottom:64px;
}

.single-product-layout {
    display:grid;
    grid-template-columns:minmax(0, 1.7fr) minmax(260px, .9fr);
    gap:28px;
    align-items:flex-start;
}

.single-product-gallery {
    display:grid;
    grid-template-columns:68px minmax(0, 1fr);
    gap:12px;
    align-items:flex-start;
    min-width:0;
}

.single-product-gallery-rail {
    display:flex;
    flex-direction:column;
    gap:8px;
    align-items:center;
}

.product-gallery-thumb {
    width:60px;
    height:60px;
    padding:0;
    overflow:hidden;
    border:1px solid rgba(17,24,39,.11);
    background:#fff;
    border-radius:5px;
    cursor:pointer;
    transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.product-gallery-thumb img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.product-gallery-thumb.is-active {
    border-color:var(--color-primary);
    box-shadow:0 0 0 1px rgba(237,107,36,.18);
}

.product-gallery-thumb:hover,
.product-gallery-thumb:focus-visible {
    border-color:rgba(237,107,36,.32);
    transform:translateY(-1px);
    outline:none;
}

.single-product-gallery-main {
    min-width:0;
}

.single-product-carousel {
    position:relative;
    width:100%;
    max-width:560px;
    aspect-ratio:4 / 3;
    margin:0 auto;
    border-radius:8px;
    overflow:hidden;
    background:var(--color-surface);
    border:1px solid rgba(17,24,39,.07);
    box-shadow:0 8px 18px rgba(17,24,39,.04);
}

.single-product-carousel .product-carousel-slide {
    border-radius:8px;
}

.single-product-carousel .product-carousel-slide img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.single-product-carousel .product-carousel-control {
    width:30px;
    min-height:30px;
    padding:0;
    border:1px solid rgba(255,255,255,.18);
    border-radius:6px;
    background:rgba(20,20,20,.30);
    color:#fff;
    box-shadow:none;
    opacity:.7;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:background-color .2s ease, opacity .2s ease, border-color .2s ease;
}

.single-product-carousel .product-carousel-control:hover,
.single-product-carousel .product-carousel-control:focus-visible {
    background:rgba(20,20,20,.50);
    border-color:rgba(255,255,255,.20);
    opacity:1;
    outline:1px solid rgba(255,255,255,.16);
    outline-offset:1px;
}

.single-product-carousel .product-carousel-control .icon {
    width:15px;
    height:15px;
    stroke-width:1.8;
}

.single-product-carousel .product-carousel-prev {
    left:12px;
}

.single-product-carousel .product-carousel-next {
    right:12px;
}

.single-product-info {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    min-width:0;
    padding-top:6px;
}

.single-product-eyebrow {
    margin:0;
    color:var(--color-primary);
    letter-spacing:.12em;
    font-size:.68rem;
    line-height:1.4;
}

.single-product-info h1 {
    margin:10px 0 12px;
    font-size:clamp(2rem,3vw,2.6rem);
    letter-spacing:-.04em;
    line-height:1.08;
}

.single-product-price {
    margin:0 0 10px;
    color:var(--color-text);
    font-weight:700;
    font-size:1rem;
    letter-spacing:-.01em;
}

.single-product-cta {
    margin-top:8px;
    display:flex;
    justify-content:flex-start;
}

.single-product-button {
    min-width:200px;
    justify-content:center;
    margin-top:0;
    min-height:42px;
    padding-inline:18px;
}

.single-product-details {
    margin-top:24px;
    padding-top:18px;
    border-top:1px solid color-mix(in srgb,var(--color-text) 12%,transparent);
}

.single-product-details h2 {
    margin:0 0 10px;
    font-size:1.06rem;
    letter-spacing:-.02em;
}

.single-product-details p {
    margin:0;
    color:var(--color-muted);
    line-height:1.75;
    max-width:760px;
}

@media (max-width: 960px) {
    .single-product-page {
        padding-top:20px;
        padding-bottom:56px;
    }

    .single-product-layout {
        grid-template-columns:1fr;
        gap:22px;
    }

    .single-product-gallery {
        grid-template-columns:1fr;
    }

    .single-product-gallery-rail {
        flex-direction:row;
        justify-content:flex-start;
        overflow:auto;
        padding-bottom:2px;
    }

    .single-product-button {
        width:100%;
        min-width:0;
    }
}

@media (max-width: 760px) {
    .single-product-carousel {
        aspect-ratio:4 / 3;
        max-width:none;
        border-radius:8px;
    }

    .single-product-cta {
        width:100%;
    }
}
