/* Catalog12: independent page width and photo height. Text remains natural flow.
   This sheet follows catalog-desktop09.css. Two body classes outrank its rules
   and later generic storefront sheets without changing those frozen sources. */
body.ace-catalog09.ace-catalog12 #app .catalog12-tools,
body.ace-catalog09.ace-catalog12 #app .catalog12-heading,
body.ace-catalog09.ace-catalog12 #app .catalog09-grid,
body.ace-catalog09.ace-catalog12 #app .catalog09-grid > *{min-width:0;box-sizing:border-box}
body.ace-catalog09.ace-catalog12 #app .catalog12-tools{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:12px;margin:0 0 14px}
body.ace-catalog09.ace-catalog12 #app .catalog12-tools .catalog09-section-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
body.ace-catalog09.ace-catalog12 #app .catalog12-tools .catalog-section-switch__item{display:flex;align-items:center;justify-content:center;min-width:0;min-height:48px;padding:8px 12px;gap:8px;font-size:14px;line-height:1.35;text-align:center;overflow-wrap:anywhere}
body.ace-catalog09.ace-catalog12 #app .catalog12-tools .catalog-section-switch__item small{font-size:12px;line-height:1.3}
body.ace-catalog09.ace-catalog12 #app .catalog12-search{display:flex;align-items:stretch;gap:8px;min-width:0;max-width:none;width:100%;margin:0}
body.ace-catalog09.ace-catalog12 #app .catalog12-search input[type=search]{flex:1 1 auto;min-width:0;width:100%;min-height:44px;margin:0;padding:9px 12px;font-size:14px;line-height:1.4}
body.ace-catalog09.ace-catalog12 #app .catalog12-search button{flex:0 0 auto;min-height:44px;margin:0;padding:9px 18px;font-size:14px;line-height:1.4}
body.ace-catalog09.ace-catalog12 #app .catalog12-heading.catalog09-toolbar{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px 22px;margin:0 0 8px;padding:0}
body.ace-catalog09.ace-catalog12 #app .catalog12-heading .catalog09-title-line{flex-wrap:wrap;gap:8px 12px}
body.ace-catalog09.ace-catalog12 #app .catalog12-heading h1{margin:0;font-size:24px;line-height:1.3}
body.ace-catalog09.ace-catalog12 #app .catalog09-subtitle,
body.ace-catalog09.ace-catalog12 #app .catalog09-count{font-size:12px;line-height:1.4}
body.ace-catalog09.ace-catalog12 #app .catalog12-heading .catalog-order-links{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:6px 18px;margin:0;font-size:13px;line-height:1.4}
body.ace-catalog09.ace-catalog12 #app .catalog12-heading .catalog-order-links a{display:inline-flex;align-items:center;min-height:44px;padding:4px 0;white-space:normal}
body.ace-catalog09.ace-catalog12 #app .catalog09-page .catalog09-filters{gap:8px;margin:0 0 10px}
body.ace-catalog09.ace-catalog12 #app .catalog09-filters .japan-chip{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;font-size:13px;line-height:1.35}
body.ace-catalog09.ace-catalog12 #app .catalog09-grid .shop-spec,
body.ace-catalog09.ace-catalog12 #app .catalog09-grid .shop-tag,
body.ace-catalog09.ace-catalog12 #app .catalog09-grid .domestic-price__cny,
body.ace-catalog09.ace-catalog12 #app .catalog09-grid .shop-allin,
body.ace-catalog09.ace-catalog12 #app .catalog09-placeholder small{font-size:12px;line-height:1.3}
body.ace-catalog09.ace-catalog12 #app .catalog09-grid .ace-compare-choice{min-height:44px;font-size:12px;box-sizing:border-box}
body.ace-catalog09.ace-catalog12 #app .catalog09-grid .ace-compare-choice[hidden]{display:none!important}
body.ace-catalog09.ace-catalog12 #app .catalog12-flow-anchor,
body.ace-catalog09.ace-catalog12 #app #consultationCalendar12{scroll-margin-top:144px}
body.ace-catalog09.ace-catalog12 #app .catalog12-flow-anchor{margin:0}
@media(min-width:1024px){
 body.ace-catalog09.ace-catalog12{--catalog12-gutter:clamp(20px,2.1vw,40px);--catalog12-photo-height:clamp(112px,calc((100vh - 620px)/2),180px)}
 @supports(height:100svh){body.ace-catalog09.ace-catalog12{--catalog12-photo-height:clamp(112px,calc((100svh - 620px)/2),180px)}}
 body.ace-catalog09.ace-catalog12 #app{width:100%;max-width:none;margin-inline:0}
 body.ace-catalog09.ace-catalog12 #app header.top{padding-left:var(--catalog12-gutter);padding-right:var(--catalog12-gutter)}
 body.ace-catalog09.ace-catalog12 #app header.top .headrow,
 body.ace-catalog09.ace-catalog12 #app header.top .ace-desktop-nav{max-width:none;width:100%;margin-left:0;margin-right:0}
 body.ace-catalog09.ace-catalog12 #app #main > .catalog09-page > .pad{max-width:none;width:100%;padding:14px var(--catalog12-gutter) 36px;box-sizing:border-box}
 body.ace-catalog09.ace-catalog12 #app .catalog12-tools{grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:18px;margin-bottom:12px}
 body.ace-catalog09.ace-catalog12 #app .catalog12-tools .catalog-section-switch__item{min-height:50px;padding:8px 16px;font-size:15px}
 body.ace-catalog09.ace-catalog12 #app .catalog09-page .catalog09-grid.production-products{grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:auto;gap:12px;max-width:none;width:100%;margin:0;align-items:stretch}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid > .catalog09-photo-card{min-height:0;height:auto;aspect-ratio:auto;overflow:visible}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid .catalog09-photo-card .product-photo37-frame{flex:0 0 var(--catalog12-photo-height);height:var(--catalog12-photo-height);min-height:0;width:100%;max-width:100%;aspect-ratio:auto;box-sizing:border-box}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid .catalog09-photo-card .product-photo37-frame .shop-pic{flex:none;height:100%;width:100%;max-width:100%;aspect-ratio:auto}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid .catalog09-photo-card .shop-pic > img[data-product-image37]{object-fit:contain!important;object-position:center}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid .catalog09-photo-card .shop-info{flex:1 0 auto;min-height:0;height:auto;max-height:none;padding:7px 10px;gap:2px;overflow:visible}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid .catalog09-photo-card .shop-name{font-size:14px;line-height:1.25;min-height:0;max-height:2.5em;margin:0;overflow-wrap:anywhere}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid .catalog09-photo-card .shop-name:focus-visible{max-height:none;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid .catalog09-photo-card .shop-spec{margin:0;max-height:none;overflow:visible;white-space:normal;overflow-wrap:anywhere}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid .catalog09-photo-card .domestic-price{max-height:none;overflow:visible;white-space:normal;gap:1px 6px}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid .catalog09-photo-card .domestic-price__jpy{font-size:18px;line-height:1.25;max-height:none;overflow:visible;white-space:normal}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid .catalog09-photo-card .product-photo-zoom37{top:auto;right:6px;bottom:6px;left:auto;width:44px;height:44px;min-width:44px;min-height:44px}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid > .catalog09-placeholder{justify-content:flex-start;min-height:0;height:auto;width:100%;max-width:100%;aspect-ratio:auto;padding:0 10px 12px;overflow-wrap:anywhere}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid > .catalog09-placeholder .catalog09-placeholder-photo{position:relative;inset:auto;flex:0 0 var(--catalog12-photo-height);height:var(--catalog12-photo-height);width:100%;max-width:100%;aspect-ratio:auto;background:transparent}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid > .catalog09-placeholder .catalog09-placeholder-photo span{transform:none}
 body.ace-catalog09.ace-catalog12 #app .catalog09-grid > .catalog09-placeholder > strong{margin-top:7px;font-size:14px;line-height:1.3}
}
@media(max-width:767px){
 body.ace-catalog09.ace-catalog12 #app .catalog09-page .catalog09-grid.production-products{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.ace-catalog09.ace-catalog12 #app .catalog12-tools .catalog-section-switch__item{padding:8px 5px;font-size:12px;line-height:1.35;min-height:52px}
 body.ace-catalog09.ace-catalog12 #app .catalog12-heading.catalog09-toolbar{align-items:flex-start;gap:4px}
 body.ace-catalog09.ace-catalog12 #app .catalog12-heading .catalog-order-links{flex-basis:100%;gap:6px 16px}
 body.ace-catalog09.ace-catalog12 #app .catalog12-heading h1{font-size:22px}
}

/* Native12: keep the age marker whole inside the existing section button. */
body.ace-catalog09.ace-catalog12 #app .catalog12-tools .catalog-section-switch__item small {
  flex: 0 0 auto; min-width: 3ch; white-space: nowrap;
  word-break: normal; overflow-wrap: normal;
}
