/* Customer browsing refinements. The homepage hero is intentionally outside these rules. */
.service-area-note { display:flex; align-items:center; gap:10px; margin:12px 0 18px; padding:10px 12px; border:1px solid #dcebe1; border-radius:14px; background:#f5faf7; color:#174c3b; }
.service-area-note > i { flex:none; font-size:20px; }
.service-area-note > div { display:grid; flex:1; min-width:0; gap:2px; }
.service-area-note strong { font-size:13px; line-height:1.45; }
.service-area-note span { color:#53675b; font-size:11px; line-height:1.5; }
.service-area-note > a { display:inline-flex; flex:none; align-items:center; min-height:44px; padding:0 10px; border:1px solid #bedbcc; border-radius:10px; color:#07513a; font-size:12px; font-weight:700; text-decoration:none; }
.store-card-location { display:block; overflow:hidden; max-width:100%; color:#64756b; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.home-reference-page .home-page .home-store-rail .marketplace-store-photo { aspect-ratio:2; }
.home-reference-page .home-page .home-store-rail .marketplace-store-name { min-height:0; }
.home-reference-page .home-page .home-store-rail .marketplace-store-actions { margin-block:3px; }
.home-reference-page .home-page .home-store-rail .marketplace-store-copy { text-align:start; }
.home-reference-page .home-page .home-store-rail .marketplace-store-actions { align-self:flex-start; }
.customer-storefront .storefront-browse { display:flex; flex-direction:column; gap:0; }
.customer-storefront .storefront-browse .storefront-product-search { width:100%; }
.customer-storefront .storefront-categories { width:100%; scroll-snap-type:x proximity; }
.customer-storefront .storefront-categories .category-chip { scroll-snap-align:start; }
.product-detail-media { aspect-ratio:1.25; }
.product-detail-copy { min-width:0; }
.quick-cart-dialog { position:fixed; inset:auto 0 0; width:min(100%,520px); max-width:520px; max-height:min(75vh,700px); margin:0 auto; padding:18px; border:0; border-radius:20px 20px 0 0; background:#fff; color:#173d2b; box-shadow:0 -8px 32px #123c2929; }
.quick-cart-dialog::backdrop { background:#102e23a3; }
.quick-cart-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.quick-cart-head h2 { margin:0; font-size:19px; }
.quick-cart-head button { display:grid; place-items:center; width:44px; height:44px; border:0; border-radius:50%; background:#f1f6f2; color:inherit; }
.quick-cart-items { display:grid; gap:0; max-height:32vh; overflow-y:auto; margin:0 0 12px; padding:0; list-style:none; }
.quick-cart-items li { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; padding:9px 0; border-bottom:1px solid #e7eee8; font-size:13px; }
.quick-cart-items li > span:first-child { overflow-wrap:anywhere; }
.quick-cart-items small { color:#637467; }
.quick-cart-totals { display:grid; gap:8px; margin:0; }
.quick-cart-totals > div { display:flex; justify-content:space-between; gap:10px; font-size:13px; }
.quick-cart-totals dd { margin:0; text-align:end; }
.quick-cart-final { padding-top:9px; border-top:1px solid #dbe8df; font-weight:700; }
.quick-cart-note { margin:9px 0; color:#617568; font-size:11px; }
.checkout-coupon { padding:12px; border:1px solid #e2ebe5; border-radius:12px; background:#f8fbf9; }
.customer-cart .cart-item img { width:100%; max-width:96px; aspect-ratio:1; object-fit:cover; }
.cart-image-fallback { display:inline-grid; place-items:center; width:60px; height:60px; border:1px solid #e2ebe5; border-radius:10px; background:#f4f7f4; color:#648071; font-size:24px; }
.customer-cart .cart-image-fallback { width:min(100%,96px); height:auto; aspect-ratio:1; }
.customer-checkout .cart-image-fallback { width:50px; height:50px; flex:none; }
.customer-order-progress { margin-bottom:16px; padding:14px; border:1px solid #dcebe1; border-radius:14px; background:#f8fbf9; }
.customer-order-progress h3 { margin:0 0 12px; font-size:17px; }
.order-progress-list { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; margin:0 0 10px; padding:0; list-style:none; }
.order-progress-list li { display:grid; justify-items:center; align-content:start; gap:6px; color:#6d7e72; font-size:11px; text-align:center; }
.order-progress-mark { display:grid; place-items:center; width:31px; height:31px; border:1px solid #c6d6cb; border-radius:50%; background:#fff; font-weight:700; }
.order-progress-list .is-complete { color:#196347; }
.order-progress-list .is-complete .order-progress-mark { border-color:#196347; background:#e7f5ec; }
.order-progress-list .is-current { color:#064934; font-weight:700; }
.order-progress-list .is-current .order-progress-mark { border-color:#064934; background:#064934; color:#fff; }
.order-terminal-status { margin:0; padding:9px 12px; border-radius:10px; background:#f7eddf; color:#684c24; font-weight:700; }
.customer-notifications .notification-item { border-radius:12px; }
.customer-notifications .notification-row { padding-block:10px; }
[data-push-onboarding] .card-body { padding:10px 14px; gap:8px !important; }
[data-push-onboarding] .btn { min-height:40px; padding-block:6px; font-size:12px; }
@media (max-width:767.98px) {
  .customer-checkout > div { margin-bottom:12px !important; }
  .customer-checkout .card-body { padding:16px !important; }
  .customer-checkout .card-header { padding-block:12px !important; }
  .customer-cart .card-body { padding:14px !important; }
  .customer-cart .cart-item { margin-bottom:10px !important; padding-bottom:10px !important; }
  .customer-orders-list { border:0; background:transparent; box-shadow:none !important; }
  .customer-orders-list .table-responsive { overflow:visible; }
  .customer-orders-list thead { display:none; }
  .customer-orders-list tbody { display:grid; gap:10px; }
  .customer-orders-list tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:12px; border:1px solid #e0eae3; border-radius:14px; background:#fff; }
  .customer-orders-list td { display:grid; align-content:start; padding:0 !important; border:0; text-align:start !important; font-size:12px; }
  .customer-orders-list td::before { content:attr(data-label); color:#6d7b70; font-size:10px; }
  .customer-orders-list .customer-order-details-link { grid-column:1 / -1; }
  .customer-orders-list .customer-order-details-link a { min-height:44px; align-content:center; }
  .order-progress-list { gap:2px; }
  .order-progress-list li { font-size:10px; }
  .order-progress-mark { width:27px; height:27px; }
  .customer-order-items thead { display:none; }
  .customer-order-items tbody { display:grid; gap:8px; padding:10px; }
  .customer-order-items tr { display:grid; grid-template-columns:60px repeat(2,minmax(0,1fr)); gap:5px 10px; padding:8px; border:1px solid #e4ebe5; border-radius:12px; }
  .customer-order-items td { display:grid; align-content:start; padding:0 !important; border:0; text-align:start !important; font-size:12px; }
  .customer-order-items td::before { content:attr(data-label); color:#6c7d70; font-size:10px; font-weight:400; }
  .customer-order-items .order-item-image { grid-column:1; grid-row:1 / 3; }
  .customer-order-items .order-item-name { grid-column:2 / 4; }
  .customer-order-items td:last-child { grid-column:2 / 4; border-top:1px solid #e4ebe5; padding-top:4px !important; }
  .customer-confirmation-items { overflow:visible; }
  .customer-confirmation-items thead { display:none; }
  .customer-confirmation-items tbody { display:grid; gap:8px; }
  .customer-confirmation-items tr { display:grid; grid-template-columns:60px repeat(2,minmax(0,1fr)); gap:6px 10px; padding:8px; border:1px solid #e4ebe5; border-radius:12px; }
  .customer-confirmation-items td { display:grid; align-content:start; min-width:0; padding:0 !important; border:0; font-size:12px; text-align:start; overflow-wrap:anywhere; }
  .customer-confirmation-items td:first-child { grid-column:1; grid-row:1 / 4; }
  .customer-confirmation-items .order-item-name { grid-column:2 / 4; font-weight:700; }
  .customer-confirmation-items td::before { content:attr(data-label); color:#6c7d70; font-size:10px; font-weight:400; }
  .customer-confirmation-items td:last-child { grid-column:2 / 4; border-top:1px solid #e4ebe5; padding-top:4px !important; }
}
@media (max-width:767.98px) {
  .service-area-note { margin:8px 0 12px; }
  .marketplace-directory .directory-hero { min-height:0; padding:12px 14px; }
  .marketplace-directory .directory-hero-art { opacity:.28; }
  .marketplace-directory .directory-hero .catalog-heading { max-width:100%; }
  .marketplace-directory .directory-hero .catalog-heading h1 { font-size:23px; }
  .marketplace-directory .directory-hero .catalog-heading p:not(.marketplace-kicker) { display:none; }
  .marketplace-directory .catalog-filter { margin-top:0; }
  .marketplace-directory .marketplace-store-photo { aspect-ratio:2.1; }
  .marketplace-directory .marketplace-store-name { min-height:0; }
  .customer-storefront .marketplace-store-identity { min-height:0; padding:12px; margin-bottom:8px; gap:10px; }
  .customer-storefront .store-identity-cover { width:40%; opacity:.38; }
  .customer-storefront .marketplace-store-identity .marketplace-store-avatar { width:52px; height:52px; flex-basis:52px; }
  .customer-storefront .marketplace-store-identity .marketplace-store-state { position:static; align-self:center; margin-inline-start:auto; white-space:normal; text-align:center; }
  .customer-storefront .marketplace-identity-name { font-size:17px; }
  .customer-storefront { padding-bottom:24px; }
  body:has(.mobile-cart-summary:not([hidden])) .customer-storefront { padding-bottom:84px; }
  .customer-storefront .storefront-description { margin-block:2px 10px; }
  .customer-storefront .storefront-categories { padding-bottom:8px; }
  .product-detail { padding-top:4px; gap:12px; }
  .product-detail-media { max-height:300px; }
  .product-detail-media:has(.product-image-placeholder:not([hidden])) { height:180px; aspect-ratio:auto; }
  .home-reference-page .home-page .home-store-rail > .marketplace-store-card { flex-basis:min(72%,240px); }
  .home-reference-page .home-page .home-store-action { min-height:44px; }
  .mobile-cart-summary { gap:5px; }
  .mobile-cart-summary > span { flex:1; min-width:0; }
  .mobile-cart-summary .btn { min-width:0; padding-inline:9px; white-space:nowrap; }
  .quick-cart-dialog { padding-bottom:max(18px,env(safe-area-inset-bottom)); }
}
@media (max-width:389.98px) {
  .service-area-note { gap:7px; padding:8px; }
  .service-area-note strong { font-size:12px; }
  .service-area-note span { font-size:10px; }
  .service-area-note > a { padding-inline:7px; }
  .mobile-cart-summary > span strong { display:none; }
  .mobile-cart-summary .btn { gap:2px; padding-inline:7px; font-size:11px; }
}
