.detail-image{background:#faf8f6;border:1px solid #eee7e3;border-radius:20px;overflow:hidden;padding:20px}.detail-image>#variant-image{width:100%;height:min(65vh,670px);object-fit:contain;background:white;border-radius:12px}.product-gallery{display:flex;gap:10px;overflow-x:auto;padding:12px 0;scroll-snap-type:x mandatory}.product-gallery button{flex:0 0 76px;width:76px;height:76px;border:1px solid #e6d9d4;border-radius:10px;padding:3px;background:white;scroll-snap-align:start}.product-gallery img{width:100%;height:100%;object-fit:contain}.product-gallery button[aria-pressed=true]{border:2px solid #ad626b}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin:12px 0 0}.gallery-controls button{width:40px;height:40px;border:1px solid #ded2cc;border-radius:50%;background:white;font-size:22px}.gallery-controls span{font-size:13px;color:#74645e;font-variant-numeric:tabular-nums}.client-details,.client-included{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.client-details>div>p,.client-sizing>p{max-width:65ch;line-height:1.8}.feature-list{padding-left:20px;line-height:1.8;color:#655750}.included-list{list-style:none;margin:0;padding:0}.included-list li{display:flex;gap:20px;padding:18px 0;border-bottom:1px solid #e9e0da}.included-list b{color:#a15c66;min-width:30px}.client-sizing{background:#f7efeb;border-radius:24px;margin:0 4vw 60px;padding:40px}.catalogue-fields h3{margin-top:30px}.structured-row{display:grid;grid-template-columns:minmax(80px,.6fr) minmax(100px,1.4fr) 32px;gap:10px;margin-bottom:12px}.structured-row input{min-width:0}.structured-row button{background:#f6edeb;border:0;border-radius:8px}.catalogue-fields>label{display:block;margin-top:25px}.source-review{margin-top:24px;border:1px solid #ead9cf;padding:18px;border-radius:14px;background:#fffaf4}.source-review summary{cursor:pointer;font-weight:600}.source-review textarea{width:100%}.source-review label{display:block;margin-top:16px}.gallery-order{display:flex;justify-content:center;gap:5px}.admin-gallery-photo .gallery-order button{position:static;width:28px;height:28px}.real-swatches{max-width:100%;overflow:hidden}.product-card .product-image img{object-fit:contain;background:#fbfaf8}.client-quote{display:block;margin:12px 0;font-size:14px}.catalogue-fields p{color:#766860}.product-studio .pricing-panel .spec-note{max-width:80ch}.product-studio .variant-table input[type=number]{min-width:80px}@media(max-width:700px){.client-details,.client-included{grid-template-columns:1fr;gap:24px}.detail-image{padding:10px;border-radius:12px}.detail-image>#variant-image{height:400px;max-height:65vh}.product-gallery button{flex-basis:64px;width:64px;height:64px}.client-sizing{padding:24px;margin-bottom:30px}.structured-row{grid-template-columns:minmax(70px,.7fr) minmax(100px,1.3fr) 28px;gap:6px}.client-details h2,.client-included h2{font-size:32px}}
@media(min-width:761px){.detail-image{position:sticky;top:120px}.detail-image>#variant-image{padding:0;height:480px;max-height:60vh;aspect-ratio:auto}}
.structured-row[data-detail-row="includedItems"]{grid-template-columns:70px minmax(120px,1fr) minmax(110px,.7fr) 32px}.structured-row select{min-width:0}@media(max-width:700px){.structured-row[data-detail-row="includedItems"]{grid-template-columns:60px minmax(100px,1fr) 28px}.structured-row[data-detail-row="includedItems"] select{grid-column:2;grid-row:2}.structured-row[data-detail-row="includedItems"] button{grid-column:3;grid-row:1}}

/* Match the actual photograph proportions instead of cropping into portrait frames. */
.product-card .product-image{aspect-ratio:1/1;height:auto;background:#f4f1ed}
.product-card .product-image img{width:100%;height:100%;aspect-ratio:1/1;object-fit:contain;object-position:center;background:#f4f1ed;transform:none}
.product-card:hover .product-image img{transform:none}
.detail-image{padding:0;background:transparent;border:0;border-radius:16px;overflow:visible;align-self:start}
.detail-image>#variant-image{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center;padding:0;border-radius:16px;background:transparent;transform:none}
.detail-image .product-gallery{padding:14px 0 4px}
.product-gallery button{background:#f4f1ed;overflow:hidden}
.product-gallery button img{object-fit:contain;transform:none}
.zoom-view img{width:100%;height:auto;max-height:none;object-fit:contain}
@media(max-width:760px){.detail-image{position:static}.detail-image>#variant-image{height:auto;max-height:none;width:100%}}
.collection-results .product-card .product-image img,.collection-results .product-card:hover .product-image img{padding:0;transform:none}

/* Label every colour, with consistent spacing and no empty swatches. */
.product-card .real-swatches{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;gap:10px 6px;margin:12px 0;overflow:visible}
.product-card .card-colour{display:flex;flex:0 0 54px;width:54px;min-height:58px;align-items:center;flex-direction:column;gap:5px;text-align:center;text-decoration:none}
.product-card .card-colour .colour-chip{width:24px;height:24px;flex:0 0 24px}
.colour-name{font-size:11px;line-height:1.2;overflow-wrap:anywhere;color:var(--muted)}
.product-card .more-colours{display:block;font-size:12px;text-decoration:underline;margin:0 0 12px}
.detail-info .options.colour-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;max-width:520px}
.detail-info .colour-options button{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:7px;padding:10px 5px;min-width:0;min-height:82px;text-align:center;font-size:12px;line-height:1.25;border-radius:9px}
.detail-info .colour-options .colour-chip{width:32px;height:32px;flex:0 0 32px}
.detail-info .colour-options button[aria-pressed=true]{border-color:#925159;box-shadow:0 0 0 1px #925159;background:#f8eceb;color:#302829}
.colour-unknown{background:#eee;display:inline-grid;place-items:center;font-size:12px;color:#555}
@media(max-width:600px){.product-card .card-colour{flex-basis:44px;width:44px}.product-card .real-swatches{gap:8px 4px}.product-card .colour-name{font-size:10px}}

.detail-info .option-group,.detail-info .option-group fieldset{min-width:0;max-width:100%}.detail-info .options.colour-options{width:100%;min-width:0}

.products>.product-card{min-width:0}.product-card .real-swatches{min-width:0;width:100%}.product-card .more-colours{white-space:normal}

/* Client-supplied hammock photography, contained without cropping. */
.product-card .card-colour .hammock-colour-photo{width:48px;height:42px;flex-basis:42px;border-radius:4px;object-fit:contain;background:#fff;box-shadow:none;border:0;transform:none}
.detail-info .colour-options .hammock-colour-photo{width:64px;height:54px;flex-basis:54px;object-fit:contain;border-radius:4px;background:white;box-shadow:none;border:0}
.facet-choice .hammock-colour-photo{width:40px;height:34px;object-fit:contain;border-radius:3px;background:#fff;border:0;box-shadow:none}
@media(max-width:600px){.product-card .card-colour .hammock-colour-photo{width:42px;height:36px;flex-basis:36px}}

/* Matching photographic banners on category and product pages. */
.category-banner{margin:0 0 28px;width:100%;overflow:hidden;border-radius:12px;background:#eee8e1}
.category-banner img{display:block;width:100%;height:auto;aspect-ratio:3/1;object-fit:contain}
.collection-page .collection-title{margin-bottom:24px}
.agency-credit a{font-weight:700;text-underline-offset:4px}
@media(max-width:760px){.category-banner{margin-bottom:20px;border-radius:8px}.footer-bottom .agency-credit{display:block}}
.banner-editor{max-width:1050px}.banner-editor>label{display:grid;gap:8px;margin:20px 0}.banner-editor select{width:100%;padding:14px;border:1px solid #d8cece;border-radius:8px;background:white}.banner-size-guide{display:grid;gap:8px;background:#f7f1ee;padding:20px;border-radius:10px;margin:20px 0}.banner-size-guide small{line-height:1.6;color:#665c5c}.banner-upload{position:relative;display:inline-flex!important;width:fit-content;cursor:pointer}.banner-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.banner-upload:focus-within{outline:2px solid #91595c;outline-offset:3px}.banner-actions{display:flex;flex-wrap:wrap;gap:12px}.banner-empty{border:1px dashed #c7b7b7;border-radius:10px;padding:45px 20px;text-align:center;color:#766}.banner-editor #banner-feedback{min-height:24px}
