.view-product .page-content { padding-top: 16px; }
.view-product .breadcrumb { margin-bottom: 12px; }
.product-layout { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(340px,1fr); gap: 12px; align-items: start; }
.product-offer { display: contents; }
.gallery { grid-column: 1; grid-row: 1; min-width: 0; background: white; border-radius: var(--card-radius); padding: var(--card-padding); display: flex; flex-direction: row-reverse; align-items: start; gap: 12px; }
.main-photo { flex: 1; min-width: 0; }
.gallery-enlarge>img { display: block; width: 100%; height: clamp(360px,34vw,440px); object-fit: contain; }
.main-photo>.placeholder { width: 100%; min-height: 360px; }
.thumbs { display: flex; flex-direction: column; gap: 8px; max-height: clamp(360px,34vw,440px); overflow-y: auto; flex-shrink: 0; }
.thumbs button { background: white; border: 1px solid var(--line); border-radius: 8px; padding: 3px; width: 44px; height: 44px; flex-shrink: 0; }
.thumbs [aria-pressed=true] { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.thumbs img { width: 100%; height: 100%; object-fit: contain; }
.offer-sidebar { grid-column: 2; grid-row: 1/3; min-width: 0; }
.offer-card { border-radius: var(--card-radius); background: white; padding: var(--card-padding); }
.offer-heading h1 { font-size: var(--text-title,20px); line-height: 1.35; letter-spacing: -.015em; overflow-wrap: anywhere; }
.landing-kicker { display: block; color: var(--accent-hover); font-size: var(--text-small,12px); font-weight: 600; letter-spacing: .04em; margin-bottom: 10px; }
.offer-summary { padding-top: 0; }
.offer-heading { margin-bottom: 8px; }
.offer-heading .product-code { display: inline-block; max-width: 100%; color: var(--muted); font-size: var(--text-small,12px); line-height: 1.4; font-weight: 400; letter-spacing: 0; vertical-align: baseline; overflow-wrap: anywhere; }
.offer-stock { display: flex; gap: 8px; color: var(--muted); }
.offer-stock .stock { font-size: var(--text-body,14px); }
.product-price-row { display: flex; gap: 4px 12px; align-items: baseline; flex-wrap: wrap; margin: 12px 0; }
.product-price-row .old-price { order: 2; flex-basis: 100%; }
.price { font-size: var(--text-price); font-weight: 700; line-height: 1.2; }
#offer-unit { color: var(--muted); font-size: var(--text-body,14px); }
.offer-summary>.button { width: 100%; min-height: 44px; border-radius: 24px; }
.offer-assurance { display: grid; gap: 8px; color: var(--muted); font-size: var(--text-small,12px); margin: 12px 0 0; }
.offer-assurance .icon { width: 18px; height: 18px; }
.product-content { grid-column: 1; grid-row: 2; min-width: 0; }
.product-nav { display: flex; gap: 20px; overflow-x: auto; white-space: nowrap; margin-bottom: 12px; padding: 0 4px; }
.product-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0; font-size: var(--text-body,14px); color: var(--muted); }
.product-nav a:hover { color: var(--accent); }
.landing-benefits { margin-bottom: 16px; }
.landing-benefits>div:last-child { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 12px; }
.landing-benefits article { display: flex; align-items: start; gap: 10px; background: white; border-radius: var(--card-radius); padding: var(--card-padding); }
.landing-benefits p { margin: 0; line-height: 1.6; }
.landing-story,.product-details { padding: var(--card-padding); border-radius: var(--card-radius); background: white; margin-bottom: 16px; }
.product-details:last-child { margin-bottom: 0; }
.landing-story:has(.landing-story-photo) { display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; align-items: center; }
.landing-story h2,.product-details h2 { font-size: var(--section-heading); line-height: 1.35; margin-bottom: 12px; }
.landing-copy { font-size: var(--text-body,15px); line-height: 1.7; }
.landing-story-photo img { width: 100%; max-height: 300px; object-fit: contain; }
.specification-list { display: grid; gap: 0; margin: 0 0 16px; font-size: var(--text-body,14px); line-height: 1.5; }
.specification-list>div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.5fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--subtle-border,#f0eff5); }
.specification-list>div:first-child { padding-top: 0; }
.specification-list dt { color: var(--muted); overflow-wrap: anywhere; }
.specification-list dd { margin: 0; overflow-wrap: anywhere; }
.product-detail { border-top: 1px solid var(--line); }
.product-detail summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; min-height: 48px; font-weight: 500; }
.product-detail summary .icon { width: 18px; height: 18px; }
.product-detail[open] summary .icon { transform: rotate(45deg); }
.product-detail p { margin: 0 0 16px; line-height: 1.7; }
.product-store-info { display: grid; gap: 12px; min-width: 0; margin-top: 12px; }
.product-info-card { border-radius: var(--card-radius); background: white; padding: var(--card-padding); }
.product-info-card h2 { display: flex; align-items: center; gap: 10px; font-size: 18px; line-height: 1.35; margin-bottom: 12px; }
.product-info-card h2>.icon { width: 22px; height: 22px; }
.product-terms>summary { list-style: none; }
.product-terms>summary::-webkit-details-marker { display: none; }
.product-terms-content { margin-top: 14px; font-size: var(--text-body,14px); line-height: 1.6; overflow-wrap: anywhere; }

.product-order { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; background: white; border: 1px solid var(--line); border-radius: var(--card-radius); padding: var(--card-padding); scroll-margin-top: 100px; }
.order-explanation { padding: 0; }
.order-explanation h2 { font-size: 18px; line-height:1.35; margin-bottom: 8px; }
.order-explanation p { font-size:13px; margin:0; color: var(--muted); line-height: 1.55; max-width: 440px; }
.order-form-card { min-width: 0; }
.quick-order-form { display: grid; grid-template-columns:minmax(0,1fr); gap: 14px; }
.quick-order-form label { margin: 0; font-size: var(--text-body,14px); font-weight: 500; gap: 6px; }
.quick-order-form .pair { gap: 12px; grid-template-columns: minmax(0,1.7fr) minmax(80px,1fr); }
.quick-order-form input,.quick-order-form select { min-height: var(--control-height); font-size: var(--text-control,16px); font-weight: 400; border-color: var(--line); }
.quick-order-form input:focus,.quick-order-form select:focus { border-color: var(--accent); }
.quick-order-form input::placeholder { color: var(--muted); opacity: 1; }
.quick-total { margin: 0; padding: 14px 0; }
.quick-total strong { font-size: var(--text-total,24px); line-height: 1.2; font-variant-numeric: tabular-nums; }
.quick-order-form .field-hint { margin: 0; line-height: 1.5; color: var(--muted); font-size: var(--text-body,13px); }
.quick-order-form>button { width: 100%; min-height: var(--control-height); border-radius: 24px; }
.order-assurance { display: grid; gap: 4px; color: var(--muted); font-size: var(--text-small,12px); line-height: 1.5; text-align: center; }
.order-assurance p { margin: 0; }
.bulk-choice { border-top: 1px solid var(--line); padding-top: 14px; }
.bulk-choice p { font-size: var(--text-body,14px); font-weight: 500; margin: 0 0 10px; }
.bulk-choice button { width: 100%; min-height: var(--control-height); border-radius: 24px; font-size: var(--text-body,14px); }
.mobile-landing-blocks { display: none; }
.view-product .catalog-section { margin: 24px 0; }
.product-suggestions { display: block; margin: 0 0 12px; }
.product-suggestions h2 { font-size: var(--text-subheading,16px); margin-bottom: 12px; }
.suggestion-list { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px)/5); gap: 12px; overflow-x: auto; scroll-snap-type: x proximity; }
.suggestion-card { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 8px; background: white; border-radius: var(--card-radius); }
.suggestion-card>img,.suggestion-card>.placeholder { width: 52px; height: 52px; min-height: 0; flex: 0 0 52px; object-fit: contain; }
.suggestion-card>.placeholder { padding: 8px; }
.suggestion-card>.placeholder>span { display: none; }
.suggestion-card>span { min-width: 0; }
.suggestion-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: var(--text-body,13px); line-height: 1.4; }
.suggestion-card strong { display: block; margin-top: 4px; font-size: var(--text-body,14px); }
.suggestion-card:hover .suggestion-name { color: var(--accent); }
@media(max-width:1180px) {
 .product-layout { grid-template-columns: minmax(0,1.5fr) minmax(320px,1fr); }
 .product-nav { gap: 14px; }
 .product-nav a { font-size: var(--text-body,13px); }
}
@media(max-width:900px) and (min-width:761px) {
 .product-layout { grid-template-columns: minmax(0,1.2fr) minmax(300px,1fr); gap: 12px; }
 .landing-story,.product-details,.product-info-card { padding: 18px; }
}

 .product-comment { padding: 18px; min-width: 0; background: white; border: 1px solid var(--line); border-radius: var(--card-radius); overflow-wrap: anywhere; }
 .product-comment-heading { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
 .product-comment h3 { font-size: var(--text-subheading,16px); line-height: 1.4; margin: 0; letter-spacing: 0; }
 .product-comment p { font-size: var(--text-body,14px); line-height: 1.6; margin: 0; }
 .product-comment .product-comment-caption { margin-top: 10px; color: var(--muted); font-size: var(--text-small,12px); line-height: 1.5; }
@media(min-width:761px) {
 .product-layout { grid-template-rows: min-content 1fr; }
 .offer-sidebar { display: flex; flex-direction: column; gap: 12px; }
 .product-store-info { margin-top: 0; }
 .product-order { display: block; padding: var(--card-padding); scroll-margin-top: 100px; }
 .order-explanation { padding: 0; margin-bottom: 12px; }
 .order-explanation .landing-kicker { display: none; }
 .order-explanation h2 { font-size: 18px; line-height: 1.35; margin-bottom: 8px; }
 .order-explanation p { font-size: var(--text-body,13px); line-height: 1.5; margin: 0; }
 .quick-order-form { gap: 10px; }
 .quick-total { padding: 10px 0; }
 .quick-total strong { font-size: var(--text-total,24px); }
 .product-content { display: flex; flex-direction: column; gap: 12px; }
 .product-nav { order: -3; margin-bottom: 0; flex-wrap: wrap; white-space: normal; gap: 4px 18px; }
 .product-details { order: -2; }
 .product-details,.product-details:last-child,.landing-story,.landing-benefits { margin: 0; }
 .landing-benefits>div:last-child { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
 .landing-benefits article { padding: 16px; gap: 10px; }
 .landing-benefits p { font-size: var(--text-body,14px); line-height: 1.5; }
 .landing-benefits .sectionline { margin-bottom: 12px; }
 .landing-story,.product-details { padding: var(--card-padding); }
 .landing-story:has(.landing-story-photo) { grid-template-columns: 1fr; gap: 16px; }
 .landing-story-photo img { display: block; max-height: 280px; }
 .landing-copy { font-size: var(--text-body,14px); line-height: 1.6; }
 .mobile-product-comments { display: block; min-width: 0; padding: var(--card-padding); background: white; border-radius: var(--card-radius); }
 .reviews-heading { margin-bottom: 12px; }
 .product-comment { padding: 16px; }
}
@media(min-width:761px) and (max-width:1000px) {
 .suggestion-list { grid-auto-columns: calc((100% - 12px)/2); }
 .product-nav a { font-size: var(--text-body,12px); }
 .landing-benefits>div:last-child { grid-template-columns: minmax(0,1fr); }
 .offer-card,.product-order,.product-info-card { padding: 16px; }
}

/* Shared product interactions; the mobile landing structure stays in product-mobile.css. */
.main-photo { position: relative; }
.gallery-enlarge { display: block; cursor: zoom-in; overflow: hidden; }
@media (hover:hover) and (pointer:fine) {
 .gallery-enlarge.is-zoomed>img { transform: scale(2); }
}
.gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; padding: 0; border-radius: 50%; font-size: 28px; box-shadow: 0 2px 8px #17382d14; }
.gallery-prev { left: 4px; }
.gallery-next { right: 4px; }
.gallery-arrow:disabled { opacity: .35; cursor: default; }
.thumbs { position: relative; }
.suggestion-card { scroll-snap-align: start; }
.specs-collapsed .specification-list>div:nth-child(n+5) { display: none; }
.specs-toggle { width: 100%; margin-bottom: 12px; min-height: 44px; }
.comment-body.is-collapsed { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.product-comment .comment-more { color: var(--accent-hover); min-height: 44px; padding: 8px 0; font-size: 13px; }
.product-media-viewer,.product-terms-panel { border: 1px solid var(--line); background: white; padding: var(--card-padding); }
.product-media-viewer { width: min(1100px,calc(100% - 24px)); max-width: none; height: calc(100dvh - 24px); max-height: 100dvh; border-radius: 12px; margin: auto; }
.product-media-viewer[open],.product-terms-panel[open] { display: flex; flex-direction: column; gap: 14px; }
.product-media-viewer::backdrop,.product-terms-panel::backdrop { background: #17382d99; }
.product-media-viewer>header,.product-terms-panel>header { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-shrink: 0; }
.product-media-viewer h2,.product-terms-panel h2 { font-size: var(--section-heading); margin: 0; }
.product-media-viewer header button,.product-terms-panel header button { min-width: 44px; min-height: 44px; padding: 8px; }
.product-media-viewer [hidden] { display: none !important; }
.media-counter { font-size: 20px; }
.media-stage { position: relative; display: flex; flex: 1; min-height: 0; align-items: center; justify-content: center; overflow: hidden; }
.media-current-image { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.media-stage>[data-media-status] { color: var(--muted); margin: 0; padding: 16px; }
.media-stage>button { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; padding: 0; font-size: 28px; box-shadow: 0 2px 8px #17382d14; }
.media-stage>button:disabled { opacity: .35; cursor: default; }
.media-prev { left: 8px; }
.media-next { right: 8px; }
.media-thumbs { display: flex; flex: 0 0 auto; gap: 8px; overflow-x: auto; padding: 3px 1px 6px; scroll-snap-type: x proximity; }
.media-thumbs>button { width: 66px; height: 66px; flex: 0 0 66px; border: 1px solid var(--line); border-radius: 8px; background: white; padding: 3px; scroll-snap-align: start; }
.media-thumbs>button[aria-pressed=true] { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.media-thumbs img { width: 100%; height: 100%; object-fit: contain; }
.media-purchase { display: flex; flex: 0 0 auto; justify-content: space-between; align-items: center; gap: 16px; padding-top: 12px; border-top: 1px solid var(--line); }
.media-purchase>div { min-width: 0; display: grid; gap: 4px; }
.media-purchase strong { font-size: var(--text-total,24px); color: #e00027; }
.media-purchase del,.media-purchase small { color: var(--muted); font-size: 13px; }
.media-purchase>button { min-height: 48px; border-radius: 28px; flex: 0 1 50%; }
.product-terms-panel { position: fixed; inset: 0 0 0 auto; margin: 0; width: min(520px,100%); max-width: 100%; height: 100dvh; max-height: 100dvh; border-radius: 0; }
.terms-tabs { display: flex; border-bottom: 1px solid var(--line); flex-shrink: 0; }
.terms-tabs button { flex: 1; padding: 12px 8px; min-height: 48px; border-radius: 0; background: white; color: var(--muted); border: 0; border-bottom: 2px solid transparent; font-size: var(--text-body,14px); }
.terms-tabs [aria-selected=true] { color: var(--accent); border-bottom-color: var(--accent); }
.terms-panel-scroll { overflow-y: auto; min-height: 0; overscroll-behavior: contain; }
html:has(:is(.product-media-viewer,.product-terms-panel,.product-review-panel)[open]) { overflow: hidden; }
@media(min-width:761px) {
 .product-suggestions .sectionline { margin-bottom: 10px; }
 .product-suggestions .sectionline h2 { margin: 0; }
}

/* Product reputation and text reviews share one rating component. */
.rating-stars { display: inline-flex; gap: 2px; flex-shrink: 0; font-size: var(--text-subheading,16px); line-height: 1; letter-spacing: 0; }
.star-full { color: #e6a800; }
.star-empty { color: var(--line); }
.star-half { color: transparent; background: linear-gradient(90deg,#e6a800 50%,var(--line) 50%); background-clip: text; }
.product-reputation { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin-bottom: 10px; font-size: var(--text-small,12px); }
.product-reputation>a { color: var(--accent-hover); text-decoration: underline; text-underline-offset: 3px; }
.purchase-count { color: var(--muted); }
.gallery-counter { position: absolute; right: 12px; bottom: 12px; z-index: 1; padding: 4px 10px; border: 1px solid var(--line); border-radius: 16px; background: #fffffff2; color: var(--muted); font-size: var(--text-small,12px); pointer-events: none; }
.reviews-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 12px)/2); gap: 12px; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 8px; }
.reviews-track>.product-comment { scroll-snap-align: start; }
.reviews-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.reviews-heading>.sectionline { flex: 0 0 100%; }
.reviews-heading>[data-reviews-all] { margin-left: auto; font-size: 13px; color: var(--accent-hover); padding: 8px 0; }
.reviews-heading .sectionline { margin-bottom: 8px; align-items: center; }
.reviews-heading .sectionline h2 { margin-bottom: 0; }
.reviews-heading h2 { font-size: var(--section-heading); line-height: 1.35; margin: 0 0 10px; }
.reviews-heading h2>span { color: var(--muted); font-size: var(--text-subheading,16px); font-weight: 400; }
.reviews-summary { display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; font-size: var(--text-body,14px); }
.reviews-summary>span:not(.rating-stars) { color: var(--muted); font-size: 13px; }
.reviews-empty { color: var(--muted); font-size: var(--text-body,14px); }
.comment-rating { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; font-size: var(--text-small,12px); }
.comment-rating .rating-stars { font-size: var(--text-subheading,17px); }
.product-bundles { min-width: 0; order: -1; }
.product-bundles .sectionline { margin-bottom: 6px; }
.product-bundles h2 { font-size: var(--section-heading); line-height: 1.35; }
.product-bundles>.field-hint { margin: 0 0 12px; color: var(--muted); font-size: 13px; }
.bundle-list { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 12px)/2); gap: 12px; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 4px; }
.bundle-card { min-width: 0; padding: 16px; background: white; border: 1px solid var(--line); border-radius: var(--card-radius); scroll-snap-align: start; }
.bundle-items { display: grid; grid-template-columns: minmax(0,1fr) 16px minmax(0,1fr); gap: 10px; align-items: center; }
.bundle-item { display: grid; gap: 8px; min-width: 0; font-size: 13px; }
.bundle-item>img,.bundle-item>.placeholder { width: 100%; height: 76px; min-height: 0; object-fit: contain; }
.bundle-item>.placeholder { padding: 8px; }
.bundle-item>.placeholder>span { display: none; }
.bundle-item>span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.4; min-height: 2.8em; }
.bundle-item:hover>span { color: var(--accent-hover); }
.bundle-plus { font-size: 22px; color: var(--muted); }
.bundle-total { display: flex; justify-content: space-between; gap: 10px; margin: 12px 0 8px; font-size: var(--text-body,14px); }
.bundle-form>button { width: 100%; min-height: 44px; padding: 10px; border-radius: 24px; font-size: var(--text-body,13px); }
@media(min-width:761px) and (max-width:1100px) {
 .bundle-list { grid-auto-columns: minmax(0,100%); }
 .reviews-track { grid-auto-columns: 92%; }
}

.offer-add-to-cart { display: none; }
.carrier-heading { display: flex; align-items: center; gap: 8px; }
.carrier-icon { width: 24px; height: 24px; flex-shrink: 0; object-fit: contain; }
.details-description-slot { display: none; }
@media(min-width:761px) {
 .details-description-slot { display: block; }
 .specs-collapsed .details-description-slot { display: none; }
 .details-description-slot .landing-story { padding: 0; margin: 20px 0; background: transparent; }
 .details-description-slot .landing-kicker { display: none; }
 .details-description-slot .landing-story h2 { font-size: 18px; }
}

.offer-assurance>small { font-size: 11px; line-height: 1.5; }
.comment-photo { display: block; width: fit-content; margin: 0 0 12px 12px; float: right; }
.comment-photo img { display: block; width: 64px; height: 64px; max-width: 100%; object-fit: cover; border-radius: 8px; }


/* Shared block content uses the same markup on mobile and in desktop details. */
 .mobile-landing-block { min-width: 0; background: white; border-radius: var(--card-radius); overflow: hidden; }
 .landing-block-copy { padding: 18px; }
 .landing-block-copy h2 { font-size: var(--section-heading); line-height: 1.35; margin-bottom: 12px; overflow-wrap: anywhere; }
 .landing-block-copy p { font-size: var(--text-body,14px); line-height: 1.6; margin: 0; overflow-wrap: anywhere; }
 .mobile-landing-block figure { display: flex; justify-content: center; margin: 0; background: var(--soft-surface,#faf9fc); }
 .mobile-landing-block figure>img { display: block; width: auto; height: auto; max-width: 100%; max-height: min(640px,85svh); object-fit: contain; }
 .mobile-layout-photo_text { display: flex; flex-direction: column; }
 .mobile-layout-photo_text>figure { order: 1; }
 .mobile-layout-photo_text>.landing-block-copy { order: 2; }
 .landing-block-order { display: flex; justify-content: center; min-height: 48px; margin: 0 18px 18px; border-radius: 24px; }
 .mobile-layout-photo_text>.landing-block-order { order: 3; }
 .landing-point-list { display: grid; gap: 12px; padding-left: 24px; margin: 0; font-size: var(--text-body,15px); line-height: 1.6; overflow-wrap: anywhere; }
 .landing-point-list li::marker { color: var(--accent-hover); font-weight: 700; }
 .mobile-layout-steps .landing-point-list { list-style: decimal; }
 .mobile-layout-bullets .landing-point-list { list-style: disc; }

.offer-assurance>span { display: flex; align-items: center; gap: 8px; }
@media(min-width:761px) {
 .details-description-slot>.mobile-landing-blocks { display: grid; gap: 20px; margin: 20px 0 0; }
 .details-description-slot .mobile-landing-block { border: 1px solid var(--line); }
 .details-description-slot .mobile-landing-block figure>img { max-height: 480px; }
}

.sale-discount { display: inline-flex; color: var(--sale-ink,#d90026); background: var(--sale-bg,#fff0f2); padding: 4px 8px; border-radius: 6px; font-size: 13px; font-weight: 600; }
.sale-discount[hidden] { display: none; }
/* Shared compact purchase controls, in the offer and order form. */
.purchase-options { min-width:0; margin-bottom:12px; }
.purchase-options-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:36px; }
.purchase-options-heading p { margin:0; font-size:14px; font-weight:600; }
.offer-scroll-controls { display:flex; gap:4px; }
.offer-scroll-controls button { padding:0; width:44px; min-height:44px; border:0; background:transparent; font-size:22px; color:var(--ink); }
.offer-scroll-controls button:disabled { opacity:.35; }
.quantity-offers { position:relative; display:flex; gap:8px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scrollbar-width:none; padding:3px; margin:0 -3px; }
.quantity-offers::-webkit-scrollbar { display:none; }
.quantity-offer,.quick-order-form .quantity-offer { position:relative; display:grid; grid-template-columns:16px minmax(0,1fr); align-content:start; gap:7px; flex:0 0 154px; min-width:0; margin:0; padding:10px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); cursor:pointer; line-height:1.25; font-weight:400; scroll-snap-align:start; }
.quantity-offer:hover:not(:has(input:disabled)),.quantity-offer:has(input:checked) { border-color:var(--accent); background:var(--selected-surface,#f8f4ff); }
.quantity-offer:has(input:checked) { box-shadow:inset 0 0 0 1px var(--accent); }
.quantity-offer:has(input:focus-visible) { outline:2px solid var(--accent); outline-offset:1px; }
.quantity-offer input[type=radio],.quick-order-form .quantity-offer input[type=radio] { position:static; appearance:auto; width:16px; height:16px; min-height:0; opacity:1; margin:2px 0 0; padding:0; accent-color:var(--accent); cursor:inherit; }
.quantity-offer-body { display:grid; gap:4px; min-width:0; }
.quantity-condition { display:flex; align-items:center; justify-content:space-between; gap:4px; white-space:nowrap; }
.quantity-condition b { font-size:14px; font-weight:600; }
.quantity-offer strong { font-size:16px; font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums; }
.quantity-offer .quantity-unit { font-size:12px; font-weight:400; white-space:nowrap; color:var(--muted); }
.quantity-offer small { font-size:12px; font-weight:400; color:var(--muted); white-space:nowrap; }
.quantity-badge { padding:2px 4px; border-radius:4px; font-size:12px; font-weight:500; color:var(--accent); background:var(--pale); }
.quantity-offer.gift-offer { flex-basis:210px; }
.quantity-condition .gift-badge { color:#604700; background:#fff0b3; font-size:11px; }
.quantity-offer:has(input:disabled) { cursor:not-allowed; background:var(--soft-surface,#faf9fc); }
.quantity-offer:has(input:disabled) .quantity-offer-body { opacity:.65; }
.variant-selection-note { grid-column:1 / -1; margin:0; font-size:12px; color:var(--muted); }
.offer-selection-note { margin:6px 0 0; font-size:12px; color:var(--muted); }
.product-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:12px 0; min-width:0; }
.product-option { min-width:0; }
.product-option>label,.quick-order-form .product-option>label,.product-option>.option-label { display:block; margin:0 0 5px; font-size:13px; font-weight:500; }
.product-option>select { display:none; }
.option-buttons { display:flex; gap:6px; flex-wrap:wrap; }
.option-buttons button { min-height:44px; padding:6px 10px; font-size:14px; font-weight:400; border-radius:8px; overflow-wrap:anywhere; }
.option-buttons button[aria-pressed=true] { color:var(--accent); border-color:var(--accent); background:var(--selected-surface,#f8f4ff); }
.color-option .option-buttons { display:flex; }
.product-option.color-option>select { display:none; }
.color-option .option-buttons button { display:inline-flex; align-items:center; gap:5px; padding:6px; font-size:13px; }
.color-swatch { display:inline-block; width:14px; height:14px; flex:0 0 14px; border:1px solid #aaa; border-radius:50%; }
.color-swatch[data-color=white] { background:#fff; }
.color-swatch[data-color=black] { background:#111; }
.quick-order-form .product-options { margin:0; }
.quick-order-form .quick-total strong { font-size:20px; font-weight:600; }
.quick-total small { display:block; color:var(--muted); font-size:12px; font-weight:400; }
.purchase-options[hidden],.product-options[hidden],.offer-scroll-controls[hidden],.variant-choice[hidden],[data-offer-fallback][hidden],[data-quantity-fallback][hidden] { display:none; }
@media(max-width:760px) {
 .product-option>select { display:block; min-height:44px; padding:8px; font-size:16px; width:100%; }
 .option-buttons { display:none; }
}

.gallery-enlarge[hidden],.gallery-specs-preview[hidden],.gallery-specs-trigger[hidden],.main-photo>.placeholder[hidden] { display: none; }
.gallery-specs-trigger { display: inline-flex; position: absolute; left: 12px; bottom: 12px; z-index: 1; align-items: center; gap: 6px; padding: 6px 10px; min-height: 44px; border: 1px solid var(--line); border-radius: 20px; background: #fffffff2; font-size: var(--text-small,12px); }
.gallery-specs-trigger>.icon { width: 18px; height: 18px; }
.gallery-specs-preview { display: flex; flex-direction: column; justify-content: center; padding: 24px 32px; min-height: clamp(360px,34vw,440px); border: 1px solid var(--line); border-radius: var(--card-radius); }
.gallery-specs-preview h2 { font-size: var(--section-heading); margin: 0 0 12px; }
.gallery-specs-preview dl { display: grid; gap: 18px; margin: 0 0 24px; font-size: var(--text-body,15px); line-height: 1.5; }
.gallery-specs-preview dl>div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 14px; }
.gallery-specs-preview dt { color: var(--muted); overflow-wrap: anywhere; }
.gallery-specs-preview dd { margin: 0; overflow-wrap: anywhere; }
.gallery-specs-preview>.button { margin-top: auto; min-height: 44px; border-color: var(--accent); color: var(--accent-hover); }
.thumbs .specs-thumb { display: grid; align-content: center; justify-items: center; gap: 2px; color: var(--muted); font-size: 9px; }
.thumbs .specs-thumb>.icon { width: 22px; height: 22px; }
.fulfilment-methods { display: grid; gap: 16px; }
.fulfilment-method { display: flex; align-items: start; gap: 12px; min-width: 0; }
.fulfilment-method>img { width: 26px; height: 26px; flex: 0 0 26px; object-fit: contain; }
.fulfilment-method>div { min-width: 0; }
.fulfilment-method h3 { margin: 0 0 6px; font-size: var(--text-subheading,16px); font-weight: 500; line-height: 1.4; }
.fulfilment-method p,.fulfilment-note { margin: 0; font-size: var(--text-body,13px); line-height: 1.6; color: var(--muted); }
.fulfilment-method p+p { margin-top: 8px; }
.product-terms>summary { display: flex; width: 100%; margin-top: 16px; min-height: 44px; border-radius: 8px; color: var(--ink); font-size: var(--text-body,14px); }
.product-terms-panel>header h2 { flex: 1; text-align: center; padding-left: 44px; line-height: 1.35; }
.product-terms-panel .product-terms-content { margin: 6px 0 0; }
.product-terms-panel .fulfilment-method h3 { font-size: var(--text-subheading,17px); }
.product-terms-panel .fulfilment-methods { gap: 24px; }
.fulfilment-return { border-top: 1px solid var(--line); padding-top: 16px; }
.fulfilment-return>summary,.fulfilment-return-action { display: flex; align-items: center; gap: 12px; list-style: none; cursor: pointer; min-height: 44px; font-size: var(--text-subheading,16px); }
.fulfilment-return>summary::-webkit-details-marker { display: none; }
.fulfilment-return>summary>.icon:last-child,.fulfilment-return-action>.icon:last-child { margin-left: auto; }
.fulfilment-return[open]>summary>.icon:last-child { transform: rotate(90deg); }
.fulfilment-return-action { width: 100%; justify-content: flex-start; min-height: 61px; padding: 16px 0 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; color: inherit; font-weight: inherit; line-height: inherit; text-align: left; }
.fulfilment-return-action:hover { background: transparent; border-color: var(--line); }
.fulfilment-return-action>.icon { width: 22px; height: 22px; filter: none; }
.fulfilment-return p,.fulfilment-policy p { margin: 12px 0 0; font-size: var(--text-body,13px); line-height: 1.6; color: var(--muted); }
.fulfilment-policy { border-top: 1px solid var(--line); padding-top: 18px; margin-top: 24px; }
.fulfilment-policy h3 { font-size: var(--text-subheading,16px); margin: 0; }

.offer-assurance .payment-options { padding-left: 30px; margin-top: -4px; }

.gallery-video { width: 100%; height: 100%; min-height: 0; }
.gallery-video video { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.video-thumb { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; font-size: var(--text-small,12px); }
.media-current-video { display: block; width: 100%; height: 100%; max-height: 78dvh; object-fit: contain; }
.checkout-intro h1 { font-size: clamp(28px,4vw,42px); }
.view-checkout .checkout { align-items: start; }
.view-checkout #buy-btn { width: 100%; margin-top: 20px; }

.gallery-video video { max-height: 560px; min-height: 280px; }
@media(max-width:760px) { .gallery-video video { height: clamp(280px,40svh,390px); min-height: 0; } }

.review-preview { cursor: pointer; }
.product-comment .comment-body { clear: both; }
.product-review-panel { position: fixed; inset: 0 0 0 auto; margin: 0; padding: 0; width: min(480px,100%); height: 100dvh; max-width: 100%; max-height: 100dvh; border: 0; border-radius: 16px 0 0 16px; background: white; color: var(--ink); }
.product-review-panel[open] { display: flex; flex-direction: column; }
.product-review-panel::backdrop { background: rgb(17 16 38 / 45%); }
.product-review-panel>header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.product-review-panel h2 { margin: 0; font-size: var(--section-heading); }
.product-review-panel>header button { width: 44px; height: 44px; padding: 10px; }
.review-panel-content { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: var(--card-padding); }
.review-panel-content .product-comment { padding: 0; border: 0; }
.review-panel-content .comment-photo { float: none; margin: 16px 0; }
.review-panel-content .comment-photo img { width: auto; height: auto; max-width: 100%; max-height: 320px; object-fit: contain; }
.review-panel-content .comment-rating { margin-bottom: 8px; }
.product-review-panel>footer { padding: 16px 16px max(16px,env(safe-area-inset-bottom)); border-top: 1px solid var(--line); }
.product-review-panel>footer button { width: 100%; }
@media(max-width:760px) { .product-review-panel { width: 100%; border-radius: 0; } }

.payment-options { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; max-width: 100%; padding: 4px 0; }
.payment-card-logo { position: relative; display: block; flex: 0 0 auto; height: 26px; overflow: hidden; }
.payment-card-logo img { position: absolute; top: 0; height: 26px; width: auto; max-width: none; }
.payment-card-logo.mastercard { width: 28px; }
.payment-card-logo.mastercard img { right: -3px; }
.payment-card-logo.visa { width: 34px; }
.payment-card-logo.visa img { left: -4px; }
.payment-wallet-logo { width: 52px; height: 28px; object-fit: contain; border: 1px solid var(--line); padding: 3px; border-radius: 6px; }


.quick-order-form .checkout-modes { gap:8px; }
.quick-order-form .checkout-modes legend { font-size:14px; font-weight:600; margin-bottom:8px; }
.quick-order-form .checkout-mode { padding:10px; gap:8px; }
.quick-order-form .checkout-mode b { font-size:14px; font-weight:600; }
.quick-order-form .checkout-mode small { font-size:12px; line-height:1.4; }
.quick-order-form .order-contact-fields { gap:10px; }
@media(min-width:400px) { .quick-order-form .order-contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } }
