/* Leather catalogue and circular product presentation. */
.products-page-header { padding: 66px 4% 44px; background: #f5f1e9; }
.products-page-header h1 { font-size: clamp(44px,5.5vw,76px); }
.products-page-description { margin-top: 18px; }
.collection-count { margin: 22px 0 0; font-size: 10px; letter-spacing: 2px; color: #8a7258; }
.all-products-section { padding: 36px 4% 90px; background: #fcfbf8; }
.product-grid { gap: 34px 22px; }
.product-image { aspect-ratio: 1; border-radius: 8px; background: #f2eee6; }
.product-photo { object-fit: contain; }
.product-hover { opacity: 1; transform: none; left: 12px; right: 12px; bottom: 12px; height: 35px; background: #fffdf7eb; border-radius: 3px; }
.product-hover span { font-size: 8px; }
.product-card:focus-visible { outline: 2px solid #8b5c39; outline-offset: 5px; }
.product-details { gap: 12px; }
.product-details h3 { font-size: 17px; line-height: 1.4; }
.shop-product-wrap .shop-add { background: transparent; }
.product-breadcrumb { background: #f7f4ed; border-bottom: 1px solid #e0d8ca; padding: 20px 5%; }
.product-detail-page { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 5%; align-items: center; padding: 42px 5% 65px; background: #f7f4ed; }
.product-detail-page[hidden] { display: none; }
.product-detail-info { padding: 0; background: transparent; min-width: 0; }
.product-detail-info .product-info-inner { position: static; }
.detail-back { display: inline-block; color: #78684f; font-size: 11px; margin-bottom: 30px; }
.product-detail-category { display: flex; align-items: center; gap: 12px; color: #895c36; margin-bottom: 17px; font-size: 10px; letter-spacing: 1.7px; }
.product-detail-category span { color: #948977; font-size: 9px; }
.product-detail-info h1 { max-width: 600px; font-size: clamp(36px,4.2vw,65px); line-height: 1.07; letter-spacing: -1.5px; color: #29251e; }
.detail-edition { margin-top: 17px; color: #91724f; font-size: 12px; }
.product-detail-description { margin-top: 24px; font-size: 14px; line-height: 1.9; max-width: 490px; color: #756d5f; }
.detail-price-row { display: flex; justify-content: space-between; align-items: baseline; gap: 15px; margin-top: 26px; padding-top: 21px; border-top: 1px solid #dbd1c0; }
.detail-price-row .product-detail-price { margin: 0; font-size: 17px; color: #593c28; }
.detail-price-row > span { font: italic 13px Georgia,serif; color: #8b7f6b; }
.product-detail-info .shop-add { margin: 22px 0 12px; padding: 17px 20px; border-radius: 5px; }
.detail-inquiry { display: flex; justify-content: space-between; align-items: center; padding: 13px 0; font-size: 12px; color: #75634f; }
.detail-specs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; border-top: 1px solid #dbd1c0; padding-top: 22px; margin-top: 20px; }
.detail-specs span { color: #ac9170; font-size: 9px; }
.detail-specs p { margin-top: 7px; font-size: 8px; letter-spacing: 1.2px; color: #6e604b; }
.detail-sample-note { font-size: 10px; line-height: 1.7; color: #8c806f; margin-top: 23px; max-width: 460px; }
.product-detail-gallery { order: -1; display: block; background: transparent; min-width: 0; padding: 0 8px; }
.detail-art-label { display: flex; justify-content: space-between; color: #96846c; letter-spacing: 2px; font-size: 9px; margin: 0 10px 28px; }
.detail-orbit { position: relative; padding: 13px; border: 1px solid #d9cbb7; border-radius: 50%; aspect-ratio: 1; width: 100%; max-width: 650px; margin: auto; }
.product-detail-image { min-height: 0; width: 100%; height: 100%; aspect-ratio: 1; border-radius: 50%; background: #eee8dc; display: grid; place-items: center; overflow: hidden; }
.product-detail-image img { width: 100%; height: 100%; padding: 10%; object-fit: contain; mix-blend-mode: multiply; mask-image: radial-gradient(circle, #000 52%, transparent 70%); transition: transform .5s ease; }
.product-detail-image:hover img { transform: scale(1.06); }
.detail-orbit-dot { position: absolute; top: 14%; right: 14%; width: 11px; height: 11px; background: #9b6339; border: 3px solid #f7f4ed; border-radius: 50%; }
.detail-gallery-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 27px 12px 0; }
.detail-gallery-footer > span { font: italic 20px Georgia,serif; color: #8f7a5b; }
.detail-thumbnails { display: flex; flex-wrap: wrap; gap: 8px; }
.detail-thumb { width: 54px; height: 54px; padding: 4px; border: 1px solid #ded3c0; border-radius: 50%; background: #f2eee6; cursor: pointer; }
.detail-thumb[aria-pressed="true"] { border-color: #8d6340; box-shadow: 0 0 0 3px #ebe0cf; }
.detail-thumb img { width: 100%; height: 100%; border-radius: 50%; object-fit: contain; }
@media (max-width: 1100px) { .product-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } .product-detail-page { gap: 4%; padding: 36px 4% 55px; } .detail-price-row { flex-direction: column; gap: 8px; } }
@media (max-width: 760px) { .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 12px; } .product-detail-page { grid-template-columns: minmax(0,1fr); padding: 28px 6% 45px; gap: 38px; } .product-detail-gallery { grid-row: 1; max-width: 480px; width: 100%; margin: auto; } .detail-art-label { margin-bottom: 18px; } .detail-back { margin-bottom: 24px; } .detail-gallery-footer { margin-top: 20px; } .product-detail-info h1 { font-size: 40px; } .product-details h3 { font-size: 14px; } .product-hover { height: 30px; bottom: 7px; left: 7px; right: 7px; } .product-hover span { font-size: 7px; } }
@media (max-width: 380px) { .product-grid { grid-template-columns: minmax(0,1fr); } }
@media (prefers-reduced-motion: reduce) { .product-detail-image img { transition: none; } }
/* One-card-at-a-time looping New Arrivals carousel. */
.arrivals-carousel { --arrivals-visible: 4; --arrivals-gap: 22px; }
.arrivals-viewport { overflow: hidden; padding: 5px; margin: -5px; }
.arrivals-track.product-grid { display: flex; gap: var(--arrivals-gap); transition: none; }
.arrivals-track > .shop-product-wrap { flex: 0 0 calc((100% - (var(--arrivals-visible) - 1) * var(--arrivals-gap)) / var(--arrivals-visible)); }
.arrivals-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 25px; }
.arrivals-controls button { min-width: 40px; height: 40px; border: 1px solid #dacdbb; border-radius: 50%; background: transparent; color: #6c442b; cursor: pointer; }
.arrivals-controls [data-arrivals="pause"] { border-radius: 22px; padding: 0 18px; font-size: 11px; }
.arrivals-controls button:hover { background: #f3ece0; }
.arrivals-controls button:focus-visible { outline: 2px solid #8b5c39; outline-offset: 3px; }
@media (max-width: 1100px) { .arrivals-carousel { --arrivals-visible: 3; } }
@media (max-width: 760px) { .arrivals-carousel { --arrivals-visible: 2; --arrivals-gap: 12px; } }
@media (max-width: 480px) { .arrivals-carousel { --arrivals-visible: 1; } }
/* Reference-style purchase information, beside the circular photo. */
.product-detail-info h1 { font-size: clamp(28px,2.5vw,38px); line-height: 1.2; letter-spacing: -.4px; margin-bottom: 10px; }
.product-detail-info .detail-back { margin-bottom: 22px; }
.purchase-reviews { font-size: 14px; color: #5b5b55; margin-bottom: 16px; }
.purchase-reviews summary { display: flex; align-items: center; gap: 12px; cursor: pointer; list-style: none; }
.purchase-reviews summary::-webkit-details-marker { display: none; }
.purchase-stars { font-size: 24px; letter-spacing: 1px; color: #b3945e; line-height: 1; }
.purchase-reviews p, .purchase-help { font-size: 12px; color: #77756b; margin: 12px 0; }
.purchase-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 16px; margin-bottom: 22px; }
.purchase-price .product-detail-price { font-size: 22px; color: #171714; margin: 0; }
.purchase-price > span { font: 600 13px Georgia,serif; color: #ad8e57; }
.purchase-colour-row { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 10px; color: #5c5c56; font-size: 17px; }
.purchase-divider { color: #c4c1b7; padding: 0 4px; }
.purchase-size-help { border: 0; padding: 0; background: none; color: #95938b; text-decoration: underline; cursor: pointer; font-size: 13px; }
.purchase-swatches { display: flex; flex-wrap: wrap; gap: 14px; margin: 19px 0 26px; padding-left: 4px; }
.purchase-swatch { display: block; width: 32px; height: 32px; border: 1px solid #0002; border-radius: 50%; background: var(--swatch); cursor: pointer; position: relative; }
.purchase-swatch::after { content: ''; position: absolute; inset: -5px; border: 1px solid transparent; border-radius: 50%; }
.purchase-swatch[aria-pressed="true"]::after { border-color: #57564e; }
.purchase-swatch:focus-visible { outline: 2px solid #6d714c; outline-offset: 6px; }
.purchase-size-label { display: block; margin-bottom: 12px; font-size: 17px; color: #5c5c56; }
.purchase-size { width: 100%; min-height: 52px; padding: 12px; border: 1px solid #bcb9af; border-radius: 5px; background: #fffdf9; color: #55554f; font: 14px Arial,sans-serif; }
.product-detail-info .shop-add.purchase-add { justify-content: center; min-height: 54px; margin: 27px 0 19px; font-size: 15px; background: #455b37; border: 1px solid #455b37; color: #fff; border-radius: 5px; box-shadow: 0 3px 8px #0002; }
.product-detail-info .shop-add.purchase-add:hover { background: #35492a; }
.purchase-description { font-size: 12px; color: #716957; padding-top: 12px; border-top: 1px solid #ddd6c8; }
.purchase-description summary { cursor: pointer; }
.purchase-description p { line-height: 1.8; margin-top: 12px; }
.purchase-description a { display: inline-block; margin-top: 12px; text-decoration: underline; }
.shop-cart-options { color: #85734e; font-size: 11px; margin-top: 5px; }
@media (max-width: 480px) { .purchase-swatches { gap: 12px; } .purchase-swatch { width: 29px; height: 29px; } .purchase-colour-row { font-size: 16px; } }
/* Complete product cards with an inline cart quantity control. */
.shop-product-wrap { padding:12px; border:1px solid #e5ddd2; border-radius:16px; background:#fffdf9; box-shadow:0 4px 16px #49301a06; transition:border-color .2s,box-shadow .2s; }
.shop-product-wrap:hover { border-color:#c5a98c; box-shadow:0 8px 24px #49301a12; }
.shop-product-wrap .product-image { border-radius:10px; }
.shop-product-wrap .product-details { display:flex; flex-direction:column; gap:12px; padding:18px 5px 8px; }
.shop-product-wrap .product-details h3 { min-height:2.8em; margin-top:7px; }
.shop-product-wrap .product-price { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:20px; font-weight:600; color:#713f25; }
.sample-price-label { font:10px Arial,sans-serif; color:#8b7a68; }
.card-purchase { margin-top:auto; padding-top:10px; }
.shop-product-wrap .shop-add { margin:0; min-height:46px; border-radius:9px; background:#713f25; color:#fff; border-color:#713f25; }
.shop-product-wrap .shop-add:hover { background:#512b19; }
.card-stepper { display:flex; align-items:center; justify-content:space-between; min-height:46px; border:1px solid #b99878; border-radius:9px; background:#f5eee5; overflow:hidden; }
.card-stepper button { width:48px; min-height:44px; background:transparent; border:0; color:#713f25; font-size:22px; cursor:pointer; }
.card-stepper button:hover { background:#e9dac8; }
.card-stepper button:disabled { opacity:.4; cursor:default; }
.card-stepper output { font-size:16px; font-weight:600; font-variant-numeric:tabular-nums; }
.card-purchase [hidden] { display:none !important; }
.card-stepper button:focus-visible { outline:2px solid #713f25; outline-offset:-4px; }
@media(max-width:760px) { .shop-product-wrap { padding:8px; border-radius:12px; } .shop-product-wrap .product-price { font-size:17px; } }
@media(prefers-reduced-motion:reduce) { .shop-product-wrap { transition:none; } }

@media(max-width:480px) {
 .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 10px; }
 .arrivals-carousel { --arrivals-visible:2; --arrivals-gap:10px; }
 .shop-product-wrap .product-details { padding:12px 2px 5px; gap:7px; }
 .shop-product-wrap .product-details h3 { font-size:13px; }
 .shop-product-wrap .product-category { font-size:7px; letter-spacing:.8px; }
 .shop-product-wrap .product-price { font-size:16px; gap:4px; }
 .shop-product-wrap .shop-add { padding:10px; font-size:11px; }
 .sample-price-label { font-size:9px; }
 .product-badge { top:7px; left:7px; padding:5px 7px; font-size:7px; }
 .products-page-header { padding:32px 5%; }
 .products-page-header h1 { font-size:36px; }
}

/* Our Products category photos: replace the three image sources in index.html. */
.category-image { background:#f2eee7; border-radius:10px; }
.category-image img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .35s ease; }
.category-card:hover .category-image img { transform:scale(1.035); }
@media(prefers-reduced-motion:reduce) { .category-image img { transition:none; } }

.purchase-leather{font-size:14px;line-height:1.7;margin:0 0 20px;color:#75634f;overflow-wrap:anywhere}

.detail-thumbnails[hidden]{display:none}

.product-stock{font-size:12px;color:#486540;margin:10px 4px}.product-stock:empty{display:none}.product-stock.sold-out{color:#a63d2b;font-weight:600}

/* Public stock status: availability only; quantities stay in Admin. */
.product-stock{display:table;width:fit-content;padding:5px 10px;border-radius:20px;background:#eaf4e8;color:#2e6b36;font-size:11px;font-weight:600;line-height:1.5}
.product-stock.sold-out{background:#fbece8;color:#a33a28}

.purchase-swatch.color-sold-out{background-image:linear-gradient(135deg,transparent 46%,#fff 47%,#fff 53%,transparent 54%);opacity:.55}
.catalog-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px;border:1px solid #e1d4c2;border-radius:12px;background:#f8f3eb}.catalog-filters label,.review-form label{display:block;font-size:12px}.catalog-filters input,.catalog-filters select,.review-form select,.review-form textarea{display:block;width:100%;min-width:0;padding:10px;margin-top:6px;border:1px solid #d6c4af;border-radius:6px;background:#fff;font:inherit}.catalog-filters button,.purchase-reviews button{padding:10px 15px;border:1px solid #ad8a66;border-radius:6px;background:#fff8ee;color:#6e4427;cursor:pointer;min-height:40px}.catalog-result-count{margin:18px 0;color:#7b664e;font-size:13px}.review-list article{padding:15px 0;border-bottom:1px solid #ded3c2;overflow-wrap:anywhere}.review-list article p{white-space:pre-wrap}.review-form{margin-top:20px;display:grid;gap:12px}.review-error{color:#a33929}@media(max-width:650px){.catalog-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.catalog-filters input,.catalog-filters select,.review-form textarea{font-size:16px}}

.detail-gallery-footer{flex-wrap:wrap}.detail-thumbnails{max-width:100%;flex-wrap:wrap}
