/* UX-01: shared catalog cards, galleries, and non-scrolling dialog controls. */
.set-description{font-size:14px;line-height:1.5;color:var(--muted);margin:8px 0 12px}
.product-card:has(.set-variant) .product-name{min-height:0;max-height:none;font-size:17px}
.product-card:has(.set-variant) .product-name button{-webkit-line-clamp:unset}
.set-variant{display:grid;gap:6px;font-size:14px;margin:8px 0 12px;color:var(--plum)}
.set-variant select{width:100%;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--white);font:inherit;font-size:16px;color:var(--ink)}
.product-card:has(.set-variant) .product-weight{line-height:1.5;min-height:42px}
.product-grid{align-items:stretch}.product-card .product-body{display:flex;flex-direction:column}.product-bottom{margin-top:auto}
.gallery-arrows{display:flex;align-items:center;justify-content:center;gap:18px;padding:8px}
.gallery-arrows button{width:44px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--white);color:var(--plum);font-size:22px;cursor:pointer}
[data-product-gallery]{touch-action:pan-y;border-radius:16px;overflow:hidden}
[data-product-gallery] img{user-select:none;-webkit-user-drag:none}
[data-product-gallery] .dialog-product-image{display:flex;align-items:center;justify-content:center}
[data-product-gallery] .dialog-product-image img{min-height:0;max-height:100%;height:100%;object-fit:contain}
.gallery-caption{min-height:2.8em;line-height:1.4}.set-components{margin:12px 0}.set-components summary{cursor:pointer;font-weight:700}.set-components li{line-height:1.5;margin-bottom:8px}
.set-page-variants{display:flex;flex-wrap:wrap;gap:8px}.set-page-variants a{border:1px solid var(--line);border-radius:20px;padding:9px 14px;color:var(--plum);text-decoration:none}.set-page-variants a[aria-current]{background:var(--plum);color:white}
.cart-top-up{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.cart-top-up h3{font-size:18px;margin:0}.cart-top-up p{font-size:13px;line-height:1.5}.top-up-item{display:flex;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.top-up-item img{width:66px;height:66px;object-fit:contain;border-radius:10px;background:white}.top-up-item>div{min-width:0;display:grid;gap:7px}.top-up-item strong,.top-up-item span{font-size:13px;line-height:1.4}.top-up-item button{padding:10px;border:0;border-radius:20px;background:var(--plum);color:white;font:inherit;font-size:13px;cursor:pointer}
dialog.checkout-dialog,dialog.ct-dialog,dialog.product-dialog{padding:0!important;overflow:clip!important;max-height:calc(100dvh - 24px)}
dialog.checkout-dialog[open],dialog.ct-dialog[open]{display:flex;flex-direction:column}
.modal-fixed-head{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:12px;background:var(--white);padding:10px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.modal-fixed-head h2{margin:0!important;font-size:20px!important;flex:1;line-height:1.25!important}
.modal-fixed-head .dialog-close,.modal-fixed-head .ct-close{position:static!important;float:none!important;flex:0 0 42px;width:42px;height:42px;margin:0;cursor:pointer}
.modal-scroll-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px 24px;scroll-padding:16px}
.product-dialog #productDialogContent{height:min(790px,calc(100dvh - 88px));max-height:calc(100dvh - 88px)}
.checkout-dialog .checkout-copy{padding-right:0}.checkout-dialog .form-row:has(>label:only-child){grid-template-columns:1fr}
body:has(dialog[open]){overflow:hidden}
.ct-dialog .ct-details{border:1px solid var(--line);border-radius:12px;padding:12px}.ct-details summary{cursor:pointer;font-weight:700}.ct-details[open]>label{margin-top:14px}
.ct-card{position:relative}.ct-card .ct-primary::after{content:'';position:absolute;inset:0;z-index:1}.ct-card .ct-variant-label{position:relative;z-index:2}.ct-card:focus-within{outline:2px solid var(--plum)}
.ct-card .ct-card-photo img{object-fit:contain!important;background:var(--paper)}.ct-event-photo img{object-fit:contain!important}
.seo-page.seo-catalog-page #catalog{display:block}.seo-catalog-page .seo-content{padding-bottom:0}.seo-catalog-page #catalog{padding-top:12px}.seo-catalog-page #catalog>.section-heading{display:none}.seo-catalog-page .seo-content h1{font-family:inherit;font-size:32px;margin:8px 0}.seo-catalog-page .seo-breadcrumbs{margin-bottom:12px}.seo-catalog-page .seo-content>p{margin:8px 0}.seo-catalog-page .trust-bar{display:none}
.catalog-category-links{margin:24px 0}.catalog-category-links summary{cursor:pointer}.catalog-category-links nav{display:flex;flex-wrap:wrap;gap:8px;padding-top:12px}.catalog-category-links a{font-size:14px;padding:6px 10px;border:1px solid var(--line);border-radius:20px;color:var(--plum)}
.seo-catalog-page .catalog-heading>div{display:none}.seo-catalog-page .catalog-heading{margin:0 0 12px}.seo-catalog-page .toolbar>.search-field{grid-column:1/-1}.catalog-filters{margin:10px 0}.catalog-filters summary{cursor:pointer;font-weight:700;padding:10px 0}.catalog-filters .toolbar{margin-top:12px}.seo-catalog-page .mode-explainer>div{display:none}.seo-catalog-page .mode-explainer{padding:0;border:0;background:none;margin:10px 0}.seo-catalog-page .category-chips{margin:12px 0}.seo-catalog-page .catalog-category-links{margin:12px 0}
@media(max-width:600px){.product-grid .product-card:has(.set-variant){grid-column:1/-1}.modal-scroll-body{padding:16px}.seo-catalog-page .seo-content{padding-top:14px}.seo-catalog-page .seo-content h1{font-size:25px}.product-card:has(.set-variant) .product-image{height:190px;aspect-ratio:auto}.product-card:has(.set-variant) .product-image img{object-fit:contain}.set-description{font-size:14px}.modal-fixed-head h2{font-size:18px!important}}
@media(max-width:700px){.seo-product:has([data-set-page-gallery]){display:flex;flex-direction:column;gap:12px}.seo-product:has([data-set-page-gallery])>article{display:contents}.seo-product:has([data-set-page-gallery])>article>.eyebrow{order:-8}.seo-product:has([data-set-page-gallery]) h1{order:-7;margin:0}.seo-product .set-page-variants{order:-6}.seo-product .set-description{order:-5}.seo-product .seo-price{order:-4;margin:4px 0}.seo-product:has([data-set-page-gallery])>article>.checkout-button{order:-3;margin:0}.seo-product>[data-set-page-gallery]{order:-2;width:100%}.seo-product:has([data-set-page-gallery])>article>p{margin:4px 0}}
