/* Storefront layout: media never contributes its intrinsic size to a card. */
.shop-page{--header:76px}
.shop-page .shop-main{max-width:1200px}
.shop-page .product-card{min-width:0;box-shadow:0 5px 20px #24170f06;border-radius:20px;align-self:stretch}
.shop-page .product-visual{display:block;position:relative;width:100%;height:auto;aspect-ratio:1;overflow:hidden;flex:none;min-width:0;min-height:0;background:#f2efeb}
.shop-page .product-visual>img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:100%;object-fit:contain}
.shop-page .product-visual>.plant-placeholder{position:absolute;inset:0}
.shop-page .product-visual .tag{z-index:1;max-width:calc(100% - 28px);font-size:12px}
.shop-page .product-content{gap:10px;padding:20px;min-width:0}
.shop-page .product-content h3{font-size:20px;line-height:1.5;margin:0;word-break:normal;overflow-wrap:anywhere}
.shop-page .product-content p{margin:0;font-size:15px;line-height:1.7}
.shop-page .product-content .button{margin-top:auto;min-height:48px;border-radius:12px;font-size:15px;background:#faf7f5}
.shop-page .product-code{font-size:11px;direction:ltr;text-align:right}
.shop-page .shop-filter{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
.shop-page .shop-filter input,.shop-page .shop-filter select{min-width:0;border-color:#d7cfca;border-radius:12px;min-height:50px}
.shop-page #catalog-start{scroll-margin-top:90px}
.shop-page .catalog-header{gap:12px;margin:24px 0 18px}
.shop-page .catalog-header h2{font-size:24px}
.shop-page #count{white-space:nowrap;font-size:14px}
.shop-page .detail-image{position:relative;min-width:0;width:100%;aspect-ratio:1;max-height:620px}
.shop-page .detail-image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.shop-page .detail-image>.plant-placeholder{position:absolute;inset:0}
.shop-page .product-detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.shop-page .product-detail>div{min-width:0}
.shop-page .product-detail .stack{align-content:start}
.shop-page .detail-name{font-size:32px;line-height:1.4;margin:0}
.shop-page .product-detail p{white-space:pre-line;overflow-wrap:anywhere;margin-bottom:4px}
.shop-page .genus-info{margin:0;background:#f4f0ec;border:0;padding:18px;border-radius:14px}
.shop-page .genus-info h2{font-size:17px;margin-bottom:6px}
.shop-page .genus-info p{font-size:14px;margin:0;line-height:1.9}
.shop-page #product-view{padding-top:20px}
.shop-page .product-detail .primary{min-height:54px;line-height:1.6;padding:13px 16px;border-radius:14px;font-size:16px;white-space:normal}
.shop-page .hero-art{max-width:420px;justify-self:center}
@media(max-width:760px){
 .shop-page .topbar{height:76px;padding:0 16px;gap:10px}
 .shop-page .brand{font-size:18px;min-width:0;flex-shrink:1}
 .shop-page .brand-mark{width:42px;height:42px;flex:none}
 .shop-page .brand small{font-size:10px;letter-spacing:0}
 .shop-page .topbar>.button{min-height:44px;font-size:12px;padding:8px 10px;border-radius:12px}
 .shop-page .shop-main{padding:0 16px 28px}
 .shop-page .hero{padding:28px 0 24px;display:block}
 .shop-page .hero h1{font-size:38px;line-height:1.3;margin:10px 0 12px}
 .shop-page .hero p{font-size:14px;line-height:1.8;margin-bottom:18px}
 .shop-page .hero .eyebrow{font-size:10px;letter-spacing:0}
 .shop-page .hero-art{display:none}
 .shop-page .hero>.button,.shop-page .hero .button{min-height:46px;border-radius:12px}
 .shop-page .shop-filter{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:18px 0;margin-bottom:16px;gap:10px}
 .shop-page .shop-filter input{grid-column:1/-1}
 .shop-page .shop-filter select{font-size:14px;padding:10px 8px}
 .shop-page .catalog{grid-template-columns:minmax(0,1fr);gap:20px}
 .shop-page .catalog-header h2{font-size:22px}
 .shop-page .product-visual{aspect-ratio:1/1}
 .shop-page .product-content{padding:18px;gap:8px}
 .shop-page .product-content h3{font-size:21px;line-height:1.45}
 .shop-page .product-content .button{min-height:50px;font-size:15px}
 .shop-page .product-detail{grid-template-columns:minmax(0,1fr);gap:18px;margin:18px 0 24px}
 .shop-page .detail-name{font-size:27px}
 .shop-page .product-detail .stack{gap:14px}
 .shop-page .product-detail .eyebrow{letter-spacing:0;font-size:12px}
 .shop-page .product-detail .field{font-size:14px}
 .shop-page .product-detail input,.shop-page .product-detail select{min-height:52px;border-radius:12px;border-color:#d7cfca;font-size:16px}
 .shop-page .policy{padding:20px;gap:22px;margin-top:28px;border-radius:16px}
 .shop-page .hint{font-size:13px}
 .shop-page .footer{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
 .shop-page .notice{inset-inline:12px;font-size:14px;padding:14px;max-height:40dvh;overflow:auto}
}
@media(min-width:540px) and (max-width:760px){.shop-page .catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-page .product-content h3{font-size:18px}}
@media(max-width:360px){.shop-page .topbar{padding:0 12px}.shop-page .brand{font-size:16px}.shop-page .brand-mark{width:36px;height:36px}.shop-page .shop-main{padding-inline:12px}.shop-page .catalog-header h2{font-size:20px}}

/* Equal rows keep images and actions aligned without truncating plant names. */
.shop-page .catalog{grid-auto-rows:1fr}.shop-page .product-card{height:100%}.shop-page .product-content{min-height:220px}.shop-page .product-content h3{min-height:3em}.shop-page .product-content .button{margin-top:auto}.shop-page .product-visual{aspect-ratio:1!important}
/* Direct ordering: consistent prices, readable cart and touch-sized controls. */
.product-price{font-size:1.3rem;color:#a80000;line-height:1.6;display:block}.cart-line{padding:16px;border:1px solid #ddd;border-radius:14px;display:grid;gap:8px}.cart-line p{margin:0}.order-number{font-size:1.6rem;direction:ltr;text-align:center}.honeypot{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}.shop-page .topbar{gap:12px;flex-wrap:wrap;height:auto;min-height:80px;padding-block:12px}.shop-page .dialog-form{font-size:16px}.shop-page dialog{max-height:90dvh;overflow:auto}.shop-page .product-content{min-height:260px}@media(max-width:540px){.shop-page .topbar>.button:not(.primary){display:none}.shop-page .topbar .button{font-size:14px;min-height:44px}.shop-page .brand{font-size:17px}.shop-page .brand-mark{width:40px;height:40px}.shop-page dialog{width:calc(100% - 20px);max-height:92dvh}.shop-page .form-grid{grid-template-columns:1fr}.shop-page .dialog-actions{position:sticky;bottom:0;background:white;padding-block:12px}.shop-page input,.shop-page textarea{font-size:16px}}

.receipt-preview{display:block;max-width:100%;height:auto;max-height:65vh;object-fit:contain}.receipt-preview[hidden]{display:none}.receipt-instructions{white-space:pre-wrap;overflow-wrap:anywhere}
