/* Storefront type scale. Component layout sheets own geometry; this sheet owns
   text roles for both server-rendered and hydrated storefront content. */
.storefront-frontend {
 --font-storefront:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Hiragino Sans","Yu Gothic UI",Meiryo,"Microsoft YaHei",sans-serif;
 --text-meta:12px;--text-body:14px;--text-section:16px;--text-title:22px;--text-price:28px;
 --weight-regular:400;--weight-medium:500;--weight-emphasis:600;
 --leading-body:1.65;--leading-heading:1.4;--leading-ui:1.5;
 --text-lead:18px;--text-amount:32px;
 --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;
}
body.storefront-frontend,.storefront-frontend.shop-page{font-family:var(--font-storefront);font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
.storefront-frontend h2{font-size:var(--text-section);font-weight:var(--weight-emphasis);line-height:var(--leading-heading)}
.storefront-frontend.shop-page:not(.checkout-page)>main>h1{font-size:var(--text-title);font-weight:var(--weight-emphasis);line-height:var(--leading-heading);letter-spacing:-.02em}
.storefront-frontend :is(input[type=text],input[type=email],input[type=tel],input[type=search],input[type=url],input[type=number],input:not([type]),select,textarea){font-family:inherit;font-size:var(--text-body);min-height:44px}
.storefront-frontend :is(header,footer,main>nav){font-size:var(--text-meta);line-height:1.5}
.storefront-frontend .storefront-catalog>section>h1{font-family:inherit;font-size:var(--text-title);font-weight:var(--weight-emphasis);line-height:var(--leading-heading);letter-spacing:-.02em}
.storefront-frontend .storefront-catalog>section>p{font-size:var(--text-meta);line-height:1.5}
.storefront-frontend #categoryNav{font-size:var(--text-meta);font-weight:var(--weight-medium);line-height:1.5}
.storefront-frontend #categoryNav>span{display:inline-flex;align-items:center;min-height:44px}
.storefront-frontend #categoryNav>.font-bold{font-weight:var(--weight-emphasis)}
.storefront-frontend .catalog-search input{height:44px;min-height:44px;font-size:var(--text-body);line-height:1.5}
.storefront-frontend .catalog-search>i{top:15px}
.storefront-frontend .catalog-product-title{font-family:inherit;font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.5;min-height:3em;margin:0;letter-spacing:0}
.storefront-frontend .catalog-product-price{font-size:var(--text-section);font-weight:var(--weight-emphasis);line-height:1.5;letter-spacing:-.01em}
.storefront-frontend .catalog-product-shipping,.storefront-frontend .catalog-product-original-price{font-size:var(--text-meta);font-weight:var(--weight-regular);line-height:1.5}
.storefront-frontend>footer :is(p,li,h4){font-size:var(--text-meta);line-height:1.65;letter-spacing:0;font-family:inherit}
.storefront-frontend>footer :is(p,ul){font-weight:var(--weight-regular)}
.storefront-frontend>footer h4{font-weight:var(--weight-emphasis)}
.storefront-frontend>nav.fixed a>span{font-size:var(--text-meta);line-height:1.4}
.storefront-frontend #productTitle{font-size:var(--text-title);font-weight:var(--weight-emphasis);line-height:var(--leading-heading);letter-spacing:-.02em}
.storefront-frontend #productPrice{font-size:var(--text-price);font-weight:var(--weight-emphasis);line-height:1.25;font-variant-numeric:tabular-nums}
.storefront-frontend #productBrand,.storefront-frontend #productAvailability,.storefront-frontend .product-price-stack+span{font-size:var(--text-meta);line-height:1.5}
.storefront-frontend #productBrand{font-weight:var(--weight-medium);letter-spacing:.04em}
.storefront-frontend .product-specifications{font-size:var(--text-body);line-height:var(--leading-body)}
.storefront-frontend .product-notes h2{font-size:var(--text-section);font-weight:var(--weight-emphasis);letter-spacing:0;line-height:var(--leading-heading);text-transform:none;margin:0 0 8px;color:#1f2937}
.storefront-frontend .product-notes p{font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--leading-body);margin:0;color:#4b5563}
.storefront-frontend .product-purchase-actions>button{font-size:var(--text-body);line-height:1.5;font-weight:var(--weight-medium);letter-spacing:0;min-height:44px}
.storefront-frontend.storefront-cart main h1{font-size:var(--text-title);font-weight:var(--weight-emphasis);line-height:var(--leading-heading);letter-spacing:-.02em}
.storefront-frontend.storefront-cart .cart-item h3{font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.5}
.storefront-frontend.storefront-cart .cart-item p{font-size:var(--text-meta);line-height:1.5}
.storefront-frontend.storefront-cart .cart-item .font-mono{font-family:inherit;font-size:var(--text-section);font-weight:var(--weight-emphasis);font-variant-numeric:tabular-nums}
.storefront-frontend.storefront-cart #totalVal{font-family:inherit;font-size:var(--text-title);font-weight:var(--weight-emphasis);font-variant-numeric:tabular-nums}
.storefront-frontend.storefront-cart #subtotalVal{font-family:inherit;font-size:var(--text-body);font-variant-numeric:tabular-nums}
.storefront-frontend.storefront-cart [data-i18n=order_summary]{font-size:var(--text-section);font-weight:var(--weight-emphasis);letter-spacing:0;line-height:var(--leading-heading)}
.storefront-frontend.storefront-cart [data-i18n=total_amount]{font-size:var(--text-body);font-weight:var(--weight-emphasis)}
.storefront-frontend.storefront-cart button[onclick="openCheckout()"]{font-size:var(--text-body);letter-spacing:0;line-height:1.5;min-height:44px}
.storefront-frontend.storefront-cart .cart-item button{min-width:32px;min-height:32px}
.storefront-frontend #checkoutModal label{font-size:var(--text-body);line-height:1.5}
.storefront-frontend #checkoutModal :is(input,select){height:44px;font-size:var(--text-body);line-height:1.5}
/* Public pages and generated states use the same roles as the catalog. */
.storefront-frontend :is(main,section,article,form){min-width:0}
.storefront-frontend :is(main h1,main h2,main h3,main p,main a){overflow-wrap:anywhere}
.storefront-frontend .font-mono{font-family:inherit;font-variant-numeric:tabular-nums}
.storefront-frontend :is(#productGrid>p,#cartItemsContainer>.text-center,[role=alert],#contactNotice,#orderSubmitNotice){font-size:var(--text-body);line-height:var(--leading-body);overflow-wrap:anywhere}
.storefront-frontend :is(button,input,select,textarea){font-family:inherit}
.storefront-frontend #langSelect{font-size:var(--text-meta);min-height:44px;min-width:0}
.storefront-frontend :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid #111827;outline-offset:3px}
.storefront-frontend.storefront-cart main>div:first-child{flex-wrap:wrap;gap:var(--space-3)}
.storefront-frontend.storefront-cart main h1{flex-wrap:wrap;min-width:0}
.storefront-frontend.storefront-cart .cart-item h3{white-space:normal;overflow-wrap:anywhere}
.storefront-frontend.storefront-cart .cart-item .font-mono{min-width:0;max-width:100%;overflow-wrap:anywhere}
.storefront-frontend.storefront-order main h1{font-size:var(--text-title);font-weight:var(--weight-emphasis);line-height:var(--leading-heading);letter-spacing:-.02em}
.storefront-frontend.storefront-order :is(form button,#liveOrder button){min-height:44px;font-size:var(--text-body);line-height:var(--leading-ui)}
.storefront-frontend #queryResult section h3{font-size:var(--text-section);line-height:var(--leading-heading)}
.storefront-frontend #queryResult section .flex>p,.storefront-frontend #liveOrder section .flex>.flex-1>p:first-child{font-size:var(--text-body);line-height:var(--leading-body)}
.storefront-frontend #queryResult section .flex>img{flex-shrink:0}
.storefront-frontend #liveOrder .grid section>div{font-size:var(--text-body);line-height:var(--leading-body)}
.storefront-frontend.storefront-contact main h1,.storefront-frontend.storefront-preferences h1{font-size:var(--text-title);font-weight:var(--weight-emphasis);line-height:var(--leading-heading);letter-spacing:-.02em}
.storefront-frontend.storefront-contact main h2{text-transform:none;letter-spacing:0}
.storefront-frontend.storefront-contact main h3{font-size:var(--text-body);font-weight:var(--weight-emphasis);line-height:var(--leading-heading)}
.storefront-frontend.storefront-contact main>div:first-child p{font-size:var(--text-body);line-height:var(--leading-body)}
.storefront-frontend.storefront-contact main>.grid:first-of-type p{font-size:var(--text-meta);line-height:var(--leading-body)}
.storefront-frontend.storefront-contact :is(form label,details summary,details p){font-size:var(--text-body);line-height:var(--leading-body)}
.storefront-frontend.storefront-contact details summary{min-height:44px;gap:var(--space-3);font-weight:var(--weight-medium)}
.storefront-frontend.storefront-contact details summary>i{flex:none}
.storefront-frontend.storefront-contact :is(form button,form input,form select){min-height:44px;font-size:var(--text-body)}
.storefront-frontend.storefront-contact textarea{resize:vertical;min-height:140px}
.storefront-frontend.storefront-preferences main{box-sizing:border-box;width:100%;margin:var(--space-6) auto;padding:var(--space-6);overflow-wrap:anywhere}
.storefront-frontend.storefront-preferences main>button{min-height:44px;max-width:100%;white-space:normal;line-height:var(--leading-ui)}
.storefront-frontend.shop-page:not(.checkout-page)>main{line-height:var(--leading-body)}
.storefront-frontend.shop-page:not(.checkout-page)>main h2{margin:var(--space-6) 0 var(--space-2)}
.storefront-frontend.shop-page:not(.checkout-page)>main p{margin:0 0 var(--space-4)}
.storefront-frontend.shop-page:not(.checkout-page)>main :is(a,dt,dd){overflow-wrap:anywhere}

@media(max-width:767px){
 .storefront-frontend{--text-title:20px;--text-price:24px}
 .storefront-frontend #langSelect,.storefront-frontend.storefront-contact :is(form input,form select,form textarea){font-size:16px}
 .storefront-frontend .catalog-search input,.storefront-frontend #checkoutModal :is(input,select){font-size:16px}
 .storefront-frontend :is(input[type=text],input[type=email],input[type=tel],input[type=search],input[type=url],input[type=number],input:not([type]),select,textarea){font-size:16px}
 .storefront-frontend.storefront-cart .cart-item button{min-width:44px;min-height:44px}
 .storefront-frontend.storefront-cart .cart-item .pt-1{flex-wrap:wrap;gap:8px}
}

/* Layout refinements keep the existing typography and amount hierarchy. */
.storefront-frontend :is(main>nav,.shop-header-actions nav)>a{display:inline-flex;align-items:center;min-height:44px}
.storefront-frontend .catalog-header-row a[title]{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.storefront-frontend.storefront-cart button[onclick="clearCart()"]{min-height:44px;padding:6px 8px}
.storefront-frontend :is(.catalog-product-price,#productPrice,#totalVal){overflow-wrap:anywhere}
.storefront-frontend.shop-page :is(main p,main dd,.checkout-result strong,.checkout-order-status dd){overflow-wrap:anywhere}
.storefront-frontend :is(#queryResult,#liveOrder){min-width:0;overflow-wrap:anywhere}
.storefront-frontend #liveOrder .whitespace-nowrap{white-space:normal;overflow-wrap:anywhere;max-width:45%;min-width:0;text-align:right}
.storefront-frontend #liveOrder .flex>img{flex-shrink:0}
.storefront-frontend .checkout-item>strong{white-space:normal;overflow-wrap:anywhere;text-align:right}
.storefront-frontend #queryResult .flex-1{min-width:0}
.storefront-frontend .skip-link{position:fixed;top:-100px;left:16px;z-index:100;padding:12px;background:#fff;color:#111827}
.storefront-frontend .skip-link:focus{top:12px}
.storefront-frontend .product-share-dialog{overscroll-behavior:contain}
html:has(body.storefront-frontend .product-share-dialog[open]){overflow:hidden}
.storefront-frontend #productShareAction .product-share-trigger{padding:6px 10px;min-height:44px;gap:6px;border-radius:8px;font-size:12px;font-weight:500}
.storefront-frontend #productShareAction .product-share-trigger svg{width:17px;height:17px}
@media(max-width:767px){
 html:has(body.storefront-frontend){scroll-padding-top:84px;scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
 html:has(body.storefront-frontend.product-page){scroll-padding-bottom:var(--product-purchase-clearance,calc(88px + env(safe-area-inset-bottom,0px)))}
 body.storefront-frontend:has(>nav.fixed){padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
 body.storefront-frontend>nav.fixed{padding-bottom:env(safe-area-inset-bottom,0px)}
 body.storefront-frontend>nav.fixed>div{padding-top:6px;padding-bottom:6px}
 body.storefront-frontend>nav.fixed a{justify-content:center;min-width:44px;min-height:44px}
 body.storefront-frontend.product-page{padding-bottom:var(--product-purchase-clearance,calc(88px + env(safe-area-inset-bottom,0px)))}
 .storefront-frontend.product-page .product-information>.product-purchase-actions{gap:8px;padding:8px max(16px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));align-items:start}
 .storefront-frontend.product-page .product-purchase-actions>button{box-sizing:border-box;min-height:48px;height:auto;padding:4px 8px;border-radius:8px;font-size:12px;line-height:18px;gap:6px;box-shadow:none}
 .storefront-frontend.product-page .product-purchase-actions>button>span{min-width:0;overflow-wrap:anywhere}
 .storefront-frontend.product-page .product-purchase-actions>button>i{flex:none;font-size:13px}
 .storefront-frontend.product-page .product-purchase-actions>button:first-child{border-color:#dfe2e6;background:#fff;color:#374151}
 .storefront-frontend.product-page .product-purchase-actions>button:first-child:hover{background:#f9fafb}
 .storefront-frontend.product-page .product-purchase-actions>button:last-of-type{background:#111827;color:#fff}
 .storefront-frontend.product-page .product-purchase-actions>button:last-of-type:hover{background:#030712}
 .storefront-frontend.storefront-order #searchInput{height:44px;border-radius:8px;padding-top:0;padding-bottom:0;font-size:16px}
 .storefront-frontend.storefront-order form button,.storefront-frontend.storefront-order #liveOrder button{min-height:44px;border-radius:8px;font-size:var(--text-body)}
}
