/* Stage 2 keeps the approved ivory and rose identity. */
body.storefront .product{position:relative;border:1px solid #e6ddd4;border-radius:10px;overflow:hidden;background:#fffdf9;padding:0 12px 14px;align-self:stretch}
body.storefront #products>.product{align-self:stretch}
body.storefront .product>.perfume-photo,body.storefront .product>.product-images{width:calc(100% + 24px);margin-inline:-12px;border:0;border-radius:0;background:#f7f4ee}
body.storefront .product h3{margin-top:14px;font-size:22px}
body.storefront .product .note{font-size:13px;margin-bottom:14px;min-height:0}
body.storefront .product .item-pricing,body.storefront #products>.product .item-pricing{margin-top:auto;padding-top:12px;border-top:1px solid #ebe3da}
body.storefront .product .product-action{background:#a36960;border-color:#a36960;font-weight:400;font-size:14px;min-height:44px}
body.storefront .product .product-action:hover{background:#8e574f}
.product>.favorite-button,.featured-card>.favorite-button{position:absolute;z-index:2;right:8px;top:8px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid #e6ddd4;background:#fffdf9ee;color:#82716c;border-radius:50%;padding:9px}
.featured-card{position:relative}
[data-favorite][aria-pressed="true"]{color:#9b5c54;background:#f5e8df}
[data-favorite][aria-pressed="true"] svg{fill:#a3696025;stroke:#a36960}
.shopping-controls{margin:0 0 22px}
.shopping-control-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.shopping-filter{position:relative;min-width:0}
.shopping-filter summary,.shopping-sort select{box-sizing:border-box;height:48px;min-height:48px;border:1px solid #d9ccc0;border-radius:8px;background-color:#fffdf9;padding:12px 14px;color:#625459;font:400 14px/1.4 Arial,sans-serif;width:100%;cursor:pointer}
.shopping-filter summary{list-style:none;display:flex;justify-content:space-between;align-items:center}.shopping-filter summary::-webkit-details-marker{display:none}
.shopping-filter[open] summary{border-color:#a36960;background:#f4ebe4}
.shopping-sort{position:relative;display:block;min-width:0}
.shopping-sort select{appearance:none;-webkit-appearance:none;max-width:100%;padding-right:36px}
.shopping-sort::after{content:"⌄";position:absolute;right:14px;top:50%;transform:translateY(-58%);color:#82716c;font:400 16px/1 Arial,sans-serif;pointer-events:none}
.shopping-filter-panel{position:absolute;left:0;right:0;top:54px;z-index:15;min-width:280px;background:#fffdf9;border:1px solid #ded5cc;border-radius:10px;padding:20px;box-shadow:0 12px 36px #514b581c}
.shopping-filter-panel label{display:flex;flex-direction:column;gap:8px;font:400 13px/1.4 Arial,sans-serif;color:#625459;min-width:0}
.shopping-filter-panel select,.shopping-filter-panel input{min-width:0;width:100%;min-height:44px;font-size:16px;padding:10px;border:1px solid #ded5cc;border-radius:6px;background:#fff;color:#514b58}
.shopping-filter-panel fieldset{border:0;padding:0;margin:20px 0 14px;min-width:0}.shopping-filter-panel legend{padding:0 0 10px;font-size:13px}.price-range{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.filter-clear{background:none;border:0;text-decoration:underline;min-height:44px;padding:8px 0;color:#925c54;font-size:13px}
.filter-note{font:400 11px/1.5 Arial,sans-serif;color:#82716c}
.shopping-results{font:400 12px/1.5 Arial,sans-serif;color:#82716c;margin:14px 0 0}
.shopping-empty{padding:40px 20px;border:1px solid #e6ddd4;border-radius:10px;background:#fffdf9;text-align:center}.shopping-empty h3{font:400 26px/1.2 Georgia,serif;margin:0 0 12px}.shopping-empty p{font:400 14px/1.6 Arial,sans-serif;color:#70696b;margin:0 0 20px}
.favorites-note,#favorites-status{font:400 13px/1.6 Arial,sans-serif;color:#70696b}
body.storefront .collection-filters{gap:6px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:680px;margin-bottom:18px}
body.storefront .collection-filters button{border:0;border-bottom:1px solid #ded5cc;border-radius:0;background:transparent;min-height:44px;padding:10px 4px;font-size:13px}
body.storefront .collection-filters button[aria-pressed="true"]{border-bottom:2px solid #a36960;color:#925c54;background:transparent}
body.storefront .page-footer>span:last-child:not(:first-child){display:none}
body.storefront #product-dialog{width:min(1040px,calc(100vw - 32px));max-width:1040px;max-height:calc(100dvh - 24px);border:1px solid #ded5cc;border-radius:14px;background:#fffdf9;overflow:auto;padding:0}
body.storefront .product-dialog-heading{position:sticky;top:0;z-index:8;background:#fffdf9f5;backdrop-filter:blur(12px);padding:14px 24px;border-bottom:1px solid #e6ddd4}
body.storefront .detail-layout{padding:24px;gap:32px;align-items:start;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
body.storefront .detail-copy{padding:0;min-width:0}.detail-copy h2{font:400 32px/1.2 Georgia,serif;letter-spacing:-.5px}
.detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}
.detail-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 10px;border:1px solid #ded5cc;border-radius:6px;background:#fffdf9;color:#82716c;font:400 12px/1.3 Arial,sans-serif}
#detail-share-status{font:400 12px/1.5 Arial,sans-serif;color:#82716c;margin:0}#detail-share-status:empty{display:none}#detail-share-status input{display:block;width:100%;min-width:0;margin:8px 0;padding:10px;font-size:14px}
.detail-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.detail-gallery button{display:block;aspect-ratio:1;border:1px solid #ded5cc;border-radius:8px;overflow:hidden;padding:0;background:#f7f4ee}
.detail-gallery button[aria-pressed="true"]{border:2px solid #a36960}
.detail-gallery img{display:block;width:100%;height:100%;object-fit:contain}
body.storefront #detail-photo{aspect-ratio:1;border-radius:10px;overflow:hidden;background:#f7f4ee}
body.storefront #detail-photo .perfume-photo,body.storefront #detail-photo .product-images{height:100%;width:100%;border:0;border-radius:0}
body.storefront .photo-open{margin-top:10px}
body.storefront #detail-description{font:400 14px/1.7 Arial,sans-serif;color:#70696b}
body.storefront #product-options{margin-top:20px}
.detail-choices{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.detail-choice{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:68px;padding:12px;border:1px solid #ded5cc;border-radius:8px;background:#fffdf9;cursor:pointer}
.detail-choice:has(input:checked){border-color:#a36960;background:#f8f1eb}
.detail-choice input{accent-color:#a36960;margin:0;width:16px;height:16px}
.detail-choice strong{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 7px;font:400 16px/1.3 Georgia,serif;color:#514b58}
.detail-choice small{display:block;font:400 11px/1.5 Arial,sans-serif;color:#82716c;margin-top:3px}
.detail-choice .choice-saving{color:#9b343d}
.detail-choice b{font:400 16px/1.3 Georgia,serif;white-space:nowrap;color:#625459}
.detail-quantity-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 8px;font:400 14px/1.4 Arial,sans-serif}
.detail-quantity{display:flex;align-items:stretch;border:1px solid #ded5cc;border-radius:8px;overflow:hidden}
.detail-quantity button{border:0;background:#f1ebe4;color:#625459;width:40px;min-height:44px;font-size:20px}
.detail-quantity button:disabled{opacity:.4}
.detail-quantity input{appearance:textfield;-moz-appearance:textfield;width:48px;padding:8px 2px;min-width:0;border:0;text-align:center;background:#fffdf9;color:#514b58;font-size:16px;border-radius:0}
.detail-quantity input::-webkit-inner-spin-button,.detail-quantity input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.detail-quantity-total{font:400 14px/1.5 Arial,sans-serif;margin:12px 0;color:#625459}
body.storefront #detail-add{background:#a36960;border-color:#a36960;font-weight:400}
body.storefront #detail-cart{font-weight:400;background:none;border:0;text-decoration:underline;font-size:12px}
body.storefront .detail-payment{font-size:12px;line-height:1.6}
.detail-delivery{margin-top:22px;border-top:1px solid #ded5cc;font:400 13px/1.7 Arial,sans-serif;color:#70696b}
.detail-delivery summary{padding:16px 0;cursor:pointer;color:#625459}
.detail-related{padding:0 24px 28px;border-top:1px solid #e6ddd4;margin-top:12px}
.detail-related h3{font:400 25px/1.2 Georgia,serif;margin:24px 0 18px}.related-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.related-products button{min-width:0;background:#f7f4ee;border:1px solid #e6ddd4;border-radius:8px;overflow:hidden;padding:0 0 12px;text-align:left;color:#514b58}
.related-products img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.related-products span{display:block;font:400 18px/1.3 Georgia,serif;padding:10px 10px 6px}.related-products small{display:block;padding:0 10px;font-size:13px}
@media(max-width:700px){
 body.storefront .product{padding:0 9px 12px}body.storefront .product>.perfume-photo,body.storefront .product>.product-images{width:calc(100% + 18px);margin-inline:-9px}
 body.storefront .product h3{font-size:18px}.product>.favorite-button,.featured-card>.favorite-button{width:36px;height:36px;right:5px;top:5px;padding:8px}
 body.storefront .product .note{font-size:12px;line-height:1.5}body.storefront .product .product-action{font-size:12px}
 .shopping-control-row{gap:10px}.shopping-filter summary,.shopping-sort select{font-size:12px;padding:12px 10px}.shopping-sort select{padding-right:30px}.shopping-sort::after{right:10px;font-size:15px}
 .shopping-filter-panel{min-width:min(300px,calc(100vw - 32px));padding:16px}
 body.storefront #product-dialog{width:100%;max-width:100%;max-height:100dvh;border-radius:0;margin:0;border:0;min-height:100dvh}
 body.storefront .product-dialog-heading{padding:12px 16px}
 body.storefront .detail-layout{display:block;padding:16px}
 body.storefront .detail-copy{margin-top:22px}
 body.storefront .detail-copy h2{font-size:29px}
 .detail-toolbar{margin-bottom:14px}
 .detail-choice{padding:12px 10px;gap:8px}.detail-choice strong{font-size:16px}.detail-choice b{font-size:16px}
 .detail-related{padding:0 16px 24px}.related-products{gap:10px}.related-products span{font-size:14px;padding:9px 7px 6px}.related-products small{font-size:12px;padding:0 7px}
 .related-products{grid-template-columns:repeat(3,minmax(0,1fr))}
 .detail-quantity-row{margin-top:20px}
 body.storefront .collection-filters button{font-size:12px}
}
@media(max-width:360px){body.storefront .product h3{font-size:16px}.detail-choice{grid-template-columns:16px minmax(0,1fr) auto;gap:6px}.detail-choice b{font-size:14px}.detail-choice strong{font-size:15px}}

/* Klô v105: product-first hierarchy and accessible interaction states. */
body.storefront{--klo-ink:#40383b;--klo-muted:#6d6063;--klo-accent:#965c53;--klo-line:#ded5cc}
body.storefront .product-title{line-height:1.3;text-wrap:balance}
body.storefront .product .note{color:var(--klo-muted)}
body.storefront .product .item-pricing{margin-top:auto}
body.storefront .product .selected-price{font-variant-numeric:tabular-nums;color:var(--klo-ink)}
body.storefront .product-action,body.storefront .store-button{transition:background-color .18s ease,border-color .18s ease;min-height:44px}
body.storefront button:focus-visible,body.storefront a:focus-visible,body.storefront input:focus-visible,body.storefront select:focus-visible{outline:2px solid var(--klo-accent);outline-offset:4px}
body.storefront button:disabled{cursor:not-allowed}
.detail-choice:has(input:disabled),.presentation-choice:has(input:disabled){background:#eee9e2;border-style:dashed;color:#6d6063;cursor:not-allowed}
.detail-choice:has(input:focus-visible),.presentation-choice:has(input:focus-visible){outline:2px solid var(--klo-accent);outline-offset:3px}
body.storefront .product>.favorite-button,body.storefront .featured-card>.favorite-button{min-width:44px;min-height:44px}
.shopping-results{color:var(--klo-muted);font-variant-numeric:tabular-nums}
@media(max-width:700px){
 body.storefront .shopping-filter-panel input,body.storefront .shopping-filter-panel select{font-size:16px}
 body.storefront .product .product-action{min-height:44px}
 body.storefront .collection-filters button{min-height:44px;padding-inline:10px}
 body.storefront .detail-choice b{white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){body.storefront *,body.storefront *::before,body.storefront *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
