/* Product detail page ----------------------------------------------------- */

.product-page {
    background: #fff;
}

.product-main {
    padding: 2rem 0 4.5rem;
}

.product-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1.6rem;
    color: #727985;
    font-size: .75rem;
}

.product-breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.product-breadcrumb a:hover,
.product-breadcrumb a:focus {
    color: var(--gold);
}

.product-gallery {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 1rem;
    position: sticky;
    top: 145px;
    align-items: start;
}

.product-thumbnails {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.product-thumb {
    width: 88px;
    aspect-ratio: 1 / 1;
    padding: 0;
    border: 1px solid rgba(6, 29, 56, .14);
    background: #fff;
    overflow: hidden;
}

.product-thumb.active {
    border: 2px solid var(--navy);
}

.product-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-main-image {
    position: relative;
    align-self: start;
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: #f7f7f6;
    overflow: hidden;
    text-align: left;
}

.product-main-image > img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: transform .35s ease;
}

.product-main-image:hover > img {
    transform: scale(1.012);
}

.product-image-zoom {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .65rem .8rem;
    background: rgba(255, 255, 255, .92);
    color: var(--navy);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.product-info {
    max-width: 590px;
    padding-top: .2rem;
}

.product-category-label {
    margin: 0 0 .6rem;
    color: #757d88;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.product-info h1 {
    margin: 0;
    color: var(--navy);
    font-family: var(--font-heading);
    font-size: clamp(2rem, 3.3vw, 3.35rem);
    font-weight: 600;
    line-height: 1.05;
}

.product-sku {
    margin: .8rem 0 0;
    color: #7a818a;
    font-size: .76rem;
}

.product-price {
    margin: 1.35rem 0 1.4rem;
    color: #111;
    font-size: 1.6rem;
    font-weight: 700;
}

.product-description {
    padding: 1.25rem 0;
    border-top: 1px solid rgba(6, 29, 56, .14);
    border-bottom: 1px solid rgba(6, 29, 56, .14);
}

.product-description h2,
.product-section-heading h2 {
    margin: 0 0 .65rem;
    color: var(--navy);
    font-family: var(--font-body);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.product-description p {
    margin: 0;
    color: #454c55;
    font-size: .9rem;
    line-height: 1.75;
}

.product-quick-details {
    display: grid;
    gap: 0;
    margin: 1rem 0 0;
}

.product-quick-details > div {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 1rem;
    padding: .55rem 0;
}

.product-quick-details dt,
.product-quick-details dd {
    margin: 0;
    font-size: .8rem;
}

.product-quick-details dt {
    color: var(--navy);
    font-weight: 700;
}

.product-quick-details dd {
    color: #525963;
}

.product-purchase {
    display: grid;
    grid-template-columns: 1fr;
    gap: .8rem;
    margin: 1.3rem 0 1.6rem;
}

.product-quantity label {
    display: block;
    margin-bottom: .35rem;
    color: #626a75;
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
}

.product-quantity select {
    width: 100%;
    height: 46px;
    padding: 0 .75rem;
    border: 1px solid rgba(6, 29, 56, .28);
    background: #fff;
    color: var(--ink);
    font-family: var(--font-body);
}

.product-add-cart {
    align-self: end;
    width: 100%;
    height: 46px;
    border-radius: 0;
    font-size: .8rem;
    letter-spacing: .04em;
}

.product-wishlist-wrap {
    margin: .85rem 0 0;
}

.product-wishlist {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .25rem 0;
    border: 0;
    background: transparent;
    color: var(--navy);
    font-family: var(--font-body);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .015em;
}

.product-wishlist i {
    font-size: 1rem;
}

.product-wishlist:hover,
.product-wishlist:focus {
    color: var(--action-blue);
}

.product-spec-block {
    margin-top: 1.2rem;
    padding-top: 1.15rem;
    border-top: 1px solid rgba(6, 29, 56, .14);
}

.product-section-heading h2 {
    margin-bottom: .85rem;
}

.product-dimensions {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid rgba(6, 29, 56, .14);
}

.product-dimensions > div {
    padding: .9rem .7rem;
    text-align: center;
}

.product-dimensions > div + div {
    border-left: 1px solid rgba(6, 29, 56, .14);
}

.product-dimensions span,
.product-dimensions strong {
    display: block;
}

.product-dimensions span {
    margin-bottom: .25rem;
    color: #777e87;
    font-size: .68rem;
    text-transform: uppercase;
}

.product-dimensions strong {
    color: var(--navy);
    font-size: .95rem;
}

.product-detail-list {
    display: grid;
    gap: .45rem;
    margin: 0;
    padding-left: 1.05rem;
    color: #4f5660;
    font-size: .82rem;
    line-height: 1.55;
}

.product-recommendations {
    padding: 4rem 0;
    border-top: 1px solid rgba(6, 29, 56, .1);
    background: #fff;
}

.recommendation-item-count {
    margin: 0;
    color: #69717c;
    font-size: .92rem;
}

.designer-recommends {
    background: #f7f4ef;
}

.recommendation-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.6rem;
}

.recommendation-eyebrow {
    display: block;
    margin-bottom: .45rem;
    color: var(--gold);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.recommendation-heading h2 {
    margin: 0;
    color: var(--navy);
    font-family: var(--font-heading);
    font-size: clamp(1.9rem, 3vw, 2.75rem);
    font-weight: 600;
}

.recommendation-heading > a {
    color: var(--navy);
    font-size: .72rem;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
}

.recommendation-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.4rem;
}

.recommendation-card {
    min-width: 0;
}

.recommendation-image {
    position: relative;
    display: block;
    overflow: hidden;
    background: #f2f2f0;
    color: inherit;
    text-decoration: none;
}

.recommendation-image img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: transform .3s ease;
}

.recommendation-card:hover .recommendation-image img {
    transform: scale(1.025);
}

.product-badge {
    position: absolute;
    z-index: 1;
    top: .75rem;
    left: .75rem;
    padding: .38rem .55rem;
    background: var(--navy);
    color: #fff;
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.recommendation-copy {
    padding-top: .8rem;
}

.recommendation-type {
    margin: 0 0 .3rem;
    color: #8a9098;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.recommendation-copy h3 {
    margin: 0;
    font-family: var(--font-body);
    font-size: .82rem;
    font-weight: 600;
    line-height: 1.45;
}

.recommendation-copy h3 a {
    color: var(--navy);
    text-decoration: none;
}

.recommendation-price {
    margin: .45rem 0 0;
    color: #111;
    font-size: .9rem;
    font-weight: 700;
}

/* Large image modal */
.product-gallery-modal .modal-content {
    border: 0;
    border-radius: 0;
    background: #fff;
}

.product-gallery-modal .modal-header {
    min-height: 68px;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid rgba(6, 29, 56, .12);
}

.product-gallery-modal .modal-title {
    color: var(--navy);
    font-family: var(--font-body);
    font-size: .9rem;
    font-weight: 700;
}

.product-gallery-modal .modal-body {
    position: relative;
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) 70px;
    align-items: center;
    min-height: calc(100vh - 68px);
    padding: 1rem;
}

.gallery-modal-image-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    height: 100%;
}

.gallery-modal-image-wrap img {
    display: block;
    max-width: min(1200px, 88vw);
    max-height: calc(100vh - 150px);
    object-fit: contain;
}

.gallery-modal-counter {
    margin: .7rem 0 0;
    color: #69717a;
    font-size: .75rem;
}

.gallery-modal-nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    justify-self: center;
    border: 1px solid rgba(6, 29, 56, .18);
    border-radius: 50%;
    background: #fff;
    color: var(--navy);
    font-size: 1.4rem;
}

.gallery-modal-nav:hover,
.gallery-modal-nav:focus {
    border-color: var(--navy);
}

@media (max-width: 1199.98px) {
    .product-gallery {
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .product-thumb {
        width: 72px;
    }

    .recommendation-grid {
        gap: 1rem;
    }
}

@media (max-width: 991.98px) {
    .product-main {
        padding-top: 1.4rem;
    }

    .product-gallery {
        position: static;
        grid-template-columns: 1fr;
    }

    .product-main-image {
        order: 1;
    }

    .product-thumbnails {
        order: 2;
        flex-direction: row;
        overflow-x: auto;
        padding-bottom: .25rem;
    }

    .product-thumb {
        flex: 0 0 76px;
        width: 76px;
    }

    .product-info {
        max-width: none;
    }

    .recommendation-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 2rem;
    }
}

@media (max-width: 575.98px) {
    .product-main {
        padding-bottom: 3rem;
    }

    .product-breadcrumb {
        margin-bottom: 1.1rem;
        font-size: .7rem;
    }

    .product-info h1 {
        font-size: 2rem;
    }

    .product-main-image > img {
        aspect-ratio: 1 / 1.06;
    }

    .product-image-zoom {
        right: .65rem;
        bottom: .65rem;
        padding: .55rem .65rem;
        font-size: .62rem;
    }

    .product-quick-details > div {
        grid-template-columns: 88px 1fr;
    }

    .product-purchase {
        grid-template-columns: 1fr;
    }

    .product-dimensions {
        grid-template-columns: repeat(3, 1fr);
    }

    .product-dimensions > div {
        padding: .75rem .4rem;
    }

    .product-recommendations {
        padding: 3rem 0;
    }

    .recommendation-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .8rem;
    }

    .recommendation-grid {
        gap: .9rem;
        row-gap: 1.7rem;
    }

    .recommendation-copy h3 {
        font-size: .76rem;
    }

    .product-gallery-modal .modal-header {
        padding: .8rem 1rem;
    }

    .product-gallery-modal .modal-title {
        max-width: 80%;
        font-size: .76rem;
    }

    .product-gallery-modal .modal-body {
        grid-template-columns: 44px minmax(0, 1fr) 44px;
        padding: .5rem;
    }

    .gallery-modal-nav {
        width: 38px;
        height: 38px;
        font-size: 1.1rem;
    }

    .gallery-modal-image-wrap img {
        max-width: 100%;
        max-height: calc(100vh - 135px);
    }
}

/* Horizontal recommendation rails --------------------------------------- */
.single-items-section { padding-top: 2.75rem; }
.recommendation-controls { display:flex; gap:.55rem; flex:0 0 auto; }
.recommendation-arrow { width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(6,29,56,.2); background:#fff; color:var(--navy); }
.recommendation-arrow:disabled { opacity:.3; cursor:default; }
.recommendation-slider { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 4.2rem)/4); gap:1.4rem; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:inline mandatory; scrollbar-width:none; scroll-behavior:smooth; }
.recommendation-slider::-webkit-scrollbar { display:none; }
.recommendation-slider .recommendation-card { scroll-snap-align:start; }
.recommendation-price-row { display:flex; align-items:baseline; gap:.55rem; }
.recommendation-price-original, .product-price-was { color:#858b92; text-decoration:line-through; font-size:.8rem; font-weight:500; }
.product-price-sale { color:#a12a21; }
.recommendation-add-cart { width:100%; margin-top:.85rem; border-radius:0; font-size:.72rem; letter-spacing:.035em; text-transform:uppercase; }
@media (max-width: 991.98px) { .recommendation-slider { grid-auto-columns:calc((100% - 1.4rem)/2); } }
@media (max-width: 575.98px) { .recommendation-heading { align-items:center; } .recommendation-slider { grid-auto-columns:82%; } .recommendation-arrow { width:38px; height:38px; } }


/* Product gallery thumbnail rail ----------------------------------------- */
.product-thumbnail-rail { min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:.4rem; align-self:stretch; }
.product-thumbnails { min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; scroll-behavior:smooth; }
.product-thumbnails::-webkit-scrollbar { display:none; }
.thumbnail-arrow { width:88px; height:28px; display:grid; place-items:center; padding:0; border:1px solid rgba(6,29,56,.14); background:#fff; color:var(--navy); }
.thumbnail-arrow:disabled { visibility:hidden; }
.product-set-contents { padding:1.05rem 0 1.15rem; border-bottom:1px solid rgba(6,29,56,.14); }
.product-set-contents h2 { margin:0 0 .7rem; color:var(--navy); font-family:var(--font-body); font-size:.82rem; font-weight:800; letter-spacing:.045em; text-transform:uppercase; }
.product-set-contents ul { list-style:none; margin:0; padding:0; display:grid; gap:.45rem; }
.product-set-contents li { display:grid; grid-template-columns:38px 1fr; gap:.5rem; color:#525963; font-size:.82rem; line-height:1.45; }
.product-set-contents li strong { color:var(--gold); font-size:.75rem; letter-spacing:.03em; }
.product-dimension-description { margin:.7rem 0 0; color:#626a75; font-size:.78rem; line-height:1.55; }
@media (max-width:1199.98px){ .thumbnail-arrow { width:72px; } }
@media (max-width:991.98px){
  .product-thumbnail-rail { order:2; display:block; overflow:hidden; }
  .product-thumbnails { flex-direction:row; overflow-x:auto; overflow-y:hidden; }
  .thumbnail-arrow { display:none; }
}


/* Build 3 refinements ---------------------------------------------------- */
:root { --action-blue: #1f5f8f; }
.product-add-cart,
.recommendation-add-cart { background:var(--action-blue); border-color:var(--action-blue); }
.product-add-cart:hover, .product-add-cart:focus,
.recommendation-add-cart:hover, .recommendation-add-cart:focus { background:var(--navy); border-color:var(--navy); }
.product-set-contents li strong { color:var(--action-blue); }

/* On desktop the thumbnail column must never be allowed to establish the
   gallery row height. JS pins this rail to the square primary-image height. */
@media (min-width: 992px) {
  .product-thumbnail-rail { align-self:start; overflow:hidden; }
  .product-thumbnails { overflow-y:auto; overflow-x:hidden; }
}

@media (max-width: 575.98px) {
  .recommendation-heading { align-items:stretch; }
  .recommendation-controls { align-self:center; }
}


/* Furniture-set dimensions: show the dimensions of each constituent item, not an aggregate set size. */
.product-set-dimensions { border:1px solid #d9dee5; }
.product-set-dimension-row { padding:1rem 1.05rem; }
.product-set-dimension-row + .product-set-dimension-row { border-top:1px solid #d9dee5; }
.product-set-dimension-row h3 { margin:0 0 .75rem; color:#071f3d; font-size:.82rem; font-weight:700; line-height:1.35; }
.product-set-dimension-values { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.product-set-dimension-values > div { text-align:center; padding:.05rem .65rem; }
.product-set-dimension-values > div + div { border-left:1px solid #d9dee5; }
.product-set-dimension-values span, .product-set-dimension-values strong { display:block; }
.product-set-dimension-values span { color:#858d98; font-size:.65rem; text-transform:uppercase; letter-spacing:.04em; }
.product-set-dimension-values strong { margin-top:.2rem; color:#071f3d; font-size:.83rem; }
.product-set-dimension-row .product-dimension-description { margin:.7rem 0 0; }
@media (max-width:575.98px) {
  .product-set-dimension-row { padding:.9rem; }
  .product-set-dimension-values > div { padding:.05rem .35rem; }
}

/* Build 5: kit/set presentation */
.set-kit-piece-count {
    font-weight: 600;
    color: inherit;
}

/* Recommendation View All / View Less ------------------------------------- */
.recommendation-controls { align-items:center; }
.recommendation-arrows { display:flex; gap:.55rem; }
.recommendation-view-all {
    padding:.35rem .15rem;
    border:0;
    background:transparent;
    color:var(--navy);
    font-family:var(--font-body);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.035em;
    text-transform:uppercase;
    text-decoration:underline;
    text-underline-offset:3px;
}
.recommendation-view-all:hover,
.recommendation-view-all:focus { color:var(--action-blue); }
.product-recommendations.is-expanded .recommendation-arrows { display:none; }
.product-recommendations.is-expanded .recommendation-slider {
    grid-auto-flow:row;
    grid-auto-columns:auto;
    grid-template-columns:repeat(4,minmax(0,1fr));
    overflow:visible;
    scroll-snap-type:none;
}
.product-recommendations.is-expanded .recommendation-slider .recommendation-card { scroll-snap-align:none; }
@media (max-width:991.98px) {
    .product-recommendations.is-expanded .recommendation-slider { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:575.98px) {
    .recommendation-controls { width:100%; justify-content:center; }
    .product-recommendations.is-expanded .recommendation-slider { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem; row-gap:1.7rem; }
}

/* Additional Product Information ----------------------------------------- */
.product-additional-information {
    border-bottom: 1px solid rgba(6, 29, 56, .14);
}

.product-additional-information-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: .9rem 0;
    border: 0;
    background: transparent;
    color: var(--navy);
    font-family: var(--font-body);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-align: left;
    text-transform: uppercase;
}

.product-additional-information-toggle i {
    flex: 0 0 auto;
    font-size: .8rem;
    transition: transform .2s ease;
}

.product-additional-information-toggle:not(.collapsed) i {
    transform: rotate(180deg);
}

.product-additional-information-toggle:hover,
.product-additional-information-toggle:focus {
    color: var(--action-blue);
}

.product-additional-information-content {
    padding: 0 0 1rem;
}

.product-additional-information-content ul {
    display: grid;
    gap: .4rem;
    margin: 0;
    padding-left: 1.1rem;
    color: #454c55;
    font-size: .82rem;
    line-height: 1.55;
}

.product-additional-information-content li {
    padding-left: .1rem;
}

