.research-banner{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 24px;margin-bottom:26px;border:1px solid #d6d6d6;background:#f7f7f7;font-size:15px;line-height:1.5}
.research-banner p{margin:5px 0 0;color:#626262}
.text-button{border:0;background:none;padding:0;text-decoration:underline;text-underline-offset:4px;font-size:14px;line-height:1.5;text-align:left}
.research-banner .text-button{white-space:nowrap}
.comparison-note{font-size:14px;color:#626262;line-height:1.5;margin:0 0 22px;max-width:840px}
.price-comparison{display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.45}
.reference-price{font-size:14px;color:#737373;font-weight:400;white-space:nowrap;text-decoration-thickness:1px}
.discount-badge{font-size:12px;font-weight:600;padding:3px 6px;background:#fcece7;color:#ae3614;white-space:nowrap}
.price-source{display:block;font-size:13px;color:#626262;text-decoration:underline;line-height:1.5;margin-bottom:16px}
#productContent .reference-price{font-size:18px}
.product-status{background:#f7f7f7;border-left:3px solid #f05a30;padding:14px 16px;margin-top:20px;font-size:14px;line-height:1.5}
.product-status p{margin:6px 0 0;color:#626262}
.product-precautions{margin-top:24px;border-top:1px solid #ddd;padding-top:18px}
.product-precautions summary{cursor:pointer;font-weight:600;font-size:15px;line-height:1.5}
.precaution-list{padding-left:21px;margin:16px 0;font-size:14px;line-height:1.65;color:#454545}
.precaution-list li{padding-left:3px;margin-bottom:13px}
.cart-warning{font-size:14px;line-height:1.5;background:#f7f7f7;padding:14px;margin:0 0 18px}
.checkout-confirm,.gate-check{display:flex;align-items:flex-start;gap:12px;font-size:14px;line-height:1.6}
.checkout-confirm{margin-bottom:20px}
.checkout-confirm input,.gate-check input{flex:none;width:18px;height:18px;margin:3px 0 0;accent-color:#171717}
.copy-order:disabled{color:#999;border-color:#eee;background:#f5f5f5;cursor:default}
#researchGate{width:min(660px,calc(100% - 32px));padding:34px;max-height:calc(100dvh - 32px)}
#researchGate::backdrop{background:#171717b8;backdrop-filter:blur(5px)}
.gate-kicker{display:block;color:#626262;font-size:12px;letter-spacing:1.4px;margin-bottom:14px}
#researchGate h2,#precautionsDialog h2{font-weight:500;font-size:28px;line-height:1.25;margin:0 0 18px}
#researchGate p{font-size:15px;line-height:1.6;color:#454545;margin:12px 0}
.gate-warning{border:1px solid #ddd;background:#f7f7f7;padding:16px 18px;margin:20px 0;font-size:15px;line-height:1.5}
.gate-warning p{margin-bottom:0!important}
.gate-check{margin:18px 0}
.gate-actions{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin-top:26px}
.gate-actions .black,.gate-actions .copy-order{min-height:48px;font-size:14px}
.footer-inner .text-button{margin:2px 0 12px;color:#626262}
.product-image{aspect-ratio:1/1}
.product-image.has-photo{background:#e9e9e9}
.product-image.has-photo img{object-fit:contain}
@media(max-width:750px){.research-banner{align-items:flex-start;flex-direction:column;gap:12px;padding:16px;margin-bottom:20px}.comparison-note{font-size:13px}.price-comparison{gap:6px}.reference-price{font-size:13px}.discount-badge{font-size:11px}#researchGate{padding:24px 20px}#researchGate h2,#precautionsDialog h2{font-size:24px}.gate-actions{grid-template-columns:1fr}.precaution-list{font-size:14px}}

.gate-details{border-top:1px solid #ddd;margin-top:22px;padding-top:18px}
.gate-details h3{font-size:18px;line-height:1.4;margin:0 0 12px}
#researchGate .precaution-list{font-size:15px;line-height:1.6}
#researchGate .gate-evidence{padding:14px 16px;background:#fff3ed;border-left:3px solid #f05a30}
#researchGate{overflow-y:auto}

/* Phone and tablet layout, with touch targets and safe-area spacing. */
body:has(dialog[open]){overflow:hidden}
.catalog,.detail-media,#productContent>div,.cart-item>div{min-width:0}
@media(max-width:900px) and (min-width:751px){
 .catalog-layout{grid-template-columns:145px minmax(0,1fr);gap:20px}
 .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .search{width:260px}.navrow{gap:18px}.navrow nav{gap:16px}
}
@media(max-width:750px){
 .wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
 .topbar .wrap{gap:12px;align-items:center;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
 .topbar{font-size:12px;line-height:1.5}.topbar a{padding:4px 0}
 .header-main{min-height:76px;height:auto;gap:10px;padding-top:12px;padding-bottom:12px}
 .logo{font-size:28px;letter-spacing:-1.5px;flex-shrink:0}
 .header-actions{gap:4px}.icon-button{min-width:44px;min-height:44px;padding:8px 4px;gap:4px}
 .icon-button b{min-width:20px;width:auto;padding:0 4px;border-radius:12px}
 .navrow nav{gap:6px}.nav{min-height:44px;flex:1;font-size:14px;text-align:center;padding:12px 4px}
 .search{min-height:48px;padding:12px 14px;margin-bottom:16px}.search input{font-size:16px;min-width:0}
 .breadcrumb{margin:18px 0 14px}.title-row{margin-bottom:18px}h1{font-size:28px;line-height:1.2}
 .research-banner{padding:16px;font-size:16px;gap:8px}.research-banner .text-button{min-height:44px;white-space:normal}
 .toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:16px}
 .filter-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:14px}
 .filter-controls>label{min-width:0;gap:8px}.filter-controls input[type=number]{width:100%;min-width:0;min-height:44px;font-size:16px;padding:10px 8px}
 .filter-controls .check{grid-column:1/-1;min-height:44px}.check input{width:20px;height:20px}
 .toolbar select{max-width:none;width:100%;min-height:46px;border:1px solid #ddd;background:#fafafa;padding:10px 12px;font-size:16px}
 .comparison-note{font-size:14px;line-height:1.6}.grid{gap:24px 12px}
 .card{display:flex;flex-direction:column}.card-info{display:flex;flex-direction:column;flex:1}
 .card .price-comparison{column-gap:6px;row-gap:4px}.card .current-price{flex-basis:100%;font-size:18px}
 .reference-price{font-size:14px}.discount-badge{font-size:12px}
 .product-title{font-size:16px;overflow-wrap:anywhere;line-height:1.4}.mass{font-size:14px;line-height:1.5}
 .description{font-size:14px;line-height:1.5;min-height:42px;margin:8px 0 14px}
 .add{min-height:46px;font-size:14px;margin-top:auto;padding:12px 8px}
 .favorite{width:44px;height:44px;right:6px;top:6px}.label-tag{font-size:11px;letter-spacing:.3px;max-width:calc(100% - 16px)}
 .footer-inner{grid-template-columns:1fr;gap:22px}.footer-note{grid-column:auto;font-size:14px!important;line-height:1.65}
 dialog{width:100%;max-width:100%;max-height:100dvh;margin:0;padding:56px 20px max(24px,env(safe-area-inset-bottom));overscroll-behavior:contain;overflow-x:hidden;overflow-y:auto}
 .close{width:44px;height:44px;top:6px;right:10px;background:#fff}
 #productDialog,#precautionsDialog{height:100dvh}
 #productContent{grid-template-columns:minmax(0,1fr);gap:20px}
 #productContent .detail-media>img{height:min(70vw,360px);max-height:none}
 .photo-thumbnails{flex-wrap:wrap}.photo-thumbnail{min-width:64px;min-height:64px}
 #productContent h2{font-size:28px;overflow-wrap:anywhere}
 #productContent .detail-text{font-size:16px}.detail-note,.source-links{font-size:14px}
 .source-links a{overflow-wrap:anywhere}.price-source{font-size:14px}
 #cartDialog{width:100%;height:100dvh;max-height:100dvh;margin:0;padding-top:48px}
 .cart-item{grid-template-columns:64px minmax(0,1fr);gap:12px}
 .cart-item h3{overflow-wrap:anywhere;line-height:1.4}.cart-item .remove{min-height:44px;font-size:14px;margin-left:10px}
 .quantity button{width:44px;height:44px;font-size:20px}.quantity span{width:34px;font-size:16px}
 .total{gap:12px;flex-wrap:wrap}.total span:last-child{margin-left:auto}
 .checkout-confirm,.gate-check{font-size:16px;line-height:1.6}
 .checkout-confirm input,.gate-check input{width:22px;height:22px;margin-top:3px}
 .order-note,.cart-warning,.product-status{font-size:14px;line-height:1.6}
 #cartBottom .black,#cartBottom .copy-order{min-height:48px;font-size:16px}
 #researchGate{width:calc(100% - 20px);max-height:calc(100dvh - 20px);margin:auto;padding:24px 18px max(24px,env(safe-area-inset-bottom))}
 #researchGate h2{font-size:26px}#researchGate p,#researchGate .precaution-list{font-size:16px}
 .gate-warning{padding:14px}.gate-actions{grid-template-columns:1fr;gap:10px}
 .gate-actions .black,.gate-actions .copy-order{min-height:48px;font-size:16px}
 .precaution-list{overflow-wrap:anywhere}#toast{bottom:max(20px,env(safe-area-inset-bottom));padding:14px 18px;max-width:calc(100% - 32px);width:max-content}
}
@media(max-width:359px){
 .grid{grid-template-columns:minmax(0,1fr)}
 .logo{font-size:25px}.header-actions{gap:0}.icon-button{padding:8px 2px}
 .filter-controls{grid-template-columns:minmax(0,1fr)}.filter-controls .check{grid-column:auto}
 .card .current-price{flex-basis:auto}.card .price-comparison{gap:8px}
}

.illustration-tag{position:absolute;top:12px;left:10px;padding:5px 7px;background:#ffffffed;color:#626262;font-size:12px;line-height:1.4;max-width:calc(100% - 64px)}
@media(max-width:750px){.navrow nav{gap:2px}.nav{padding-left:2px;padding-right:2px}.illustration-tag{top:10px;left:6px;font-size:12px}}

.photo-reference-note{font-size:14px;line-height:1.6;color:#626262;margin:0 0 24px;max-width:840px}
.detail-note a{text-decoration:underline;text-underline-offset:3px}
.illustration-tag{max-width:calc(100% - 68px);font-size:12px;letter-spacing:0;white-space:normal}
.product-image img{object-position:center}

/* Keep complete product photos at a consistent size without source-image borders. */
.product-image{display:block;position:relative;aspect-ratio:1/1}
.product-image>img{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0}
.product-image.source-framed>img{object-fit:cover;transform:scale(var(--photo-scale,1))}
.card:hover .product-image.source-framed>img{transform:scale(var(--photo-scale,1))}
.detail-photo-stage{position:relative;width:100%;aspect-ratio:1/1;background:#e9e9e9;overflow:hidden}
#productContent .detail-photo-stage>img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:contain}
#productContent .detail-photo-stage.source-framed>img{object-fit:cover;transform:scale(var(--photo-scale,1))}
.cart-photo-stage{display:block;position:relative;width:64px;height:84px;overflow:hidden;background:#e9e9e9}
.cart-photo-stage img{width:100%;height:100%;object-fit:contain}
.cart-photo-stage.source-framed img{object-fit:cover;transform:scale(var(--photo-scale,1))}
.water-card{border:1px solid #ddd;padding:20px;align-self:start;min-height:260px}
.water-card-heading{font-size:14px;line-height:1.5;color:#626262;padding-right:46px;margin:0 0 26px}
.water-card .card-info{padding-top:0}.water-card .product-title{line-height:1.5}
.water-card .favorite{top:10px;right:10px}
#productContent.text-only{grid-template-columns:minmax(0,1fr)}
.cart-item.text-only{grid-template-columns:minmax(0,1fr)}
@media(max-width:750px){.water-card{padding:16px;min-height:260px}.detail-photo-stage{max-width:360px;margin:auto}}

.reference-caption{flex-basis:100%;font-size:11px;font-weight:400;color:#757575;line-height:1.3}.price-source-note{font-size:13px;color:#626262;line-height:1.5;margin:8px 0 18px}.price-source-note p{margin:8px 0}.price-source-note .price-source{margin:6px 0;overflow-wrap:anywhere}

.catalog-about{margin:48px 0 0;padding:30px 0 8px;border-top:1px solid #ddd;color:#555;font-size:14px;line-height:1.75}.catalog-about h2{color:#171717;font-size:24px;line-height:1.35;font-weight:500;margin:0 0 16px}.catalog-about p{margin:0 0 18px;max-width:950px}.catalog-about h3{color:#333;font-size:16px;line-height:1.5;margin:0 0 10px}.catalog-about-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:22px}@media(max-width:750px){.catalog-about{margin-top:32px;padding-top:24px}.catalog-about h2{font-size:21px}.catalog-about-columns{grid-template-columns:1fr;gap:8px;margin-top:18px}}

.purpose-notice{margin:20px 0;padding:18px;background:#f7f7f7;border:1px solid #dedede;font-size:14px;line-height:1.6}.purpose-notice h3{font-size:17px;line-height:1.4;margin:0 0 12px}.purpose-notice p{margin:10px 0}.checkout-purpose{font-size:13px;line-height:1.6;color:#555;padding:14px 0 6px;border-top:1px solid #ddd}.checkout-purpose b{color:#222}.checkout-purpose p{margin:8px 0}.checkout-confirm{line-height:1.6}

.privacy-note{font-size:13px;line-height:1.65;color:#565656;margin:18px 0}.privacy-note a,.privacy-link{text-decoration:underline;text-underline-offset:3px}.privacy-note a{overflow-wrap:anywhere}
