/* Responsive catalog and checkout refinements. */
[hidden] { display:none !important; }
.welcome-dialog { width:min(480px,calc(100% - 32px)); max-height:calc(100dvh - 32px); margin:auto; padding:0; overflow-y:auto; overscroll-behavior:contain; border:0; border-radius:8px; background:#fff; color:var(--ink); box-shadow:0 12px 52px #163c1640; }
.welcome-dialog::backdrop { background:#1b251bb3; }
.welcome-dialog * { letter-spacing:0; }
.welcome-toolbar { position:sticky; top:0; z-index:1; display:flex; justify-content:flex-end; padding:8px; background:#fff; }
.welcome-content { padding:0 28px 28px; }
.welcome-content > img { width:175px; height:62px; object-fit:contain; margin:0 0 20px; }
.welcome-content .eyebrow { font-size:.75rem; margin-bottom:10px; color:var(--green-deep); }
.welcome-content h2 { margin:0 0 14px; font-size:2rem; line-height:1.15; }
.welcome-content > p { font-size:.9375rem; line-height:1.6; }
.welcome-benefits { padding-left:20px; margin:18px 0; font-size:.875rem; line-height:1.6; }
.welcome-benefits li + li { margin-top:6px; }
.welcome-content .welcome-terms { margin:18px 0; font-size:.8125rem; color:var(--muted); }
.welcome-content .button { display:flex; width:100%; border-radius:6px; font-size:.9375rem; text-align:center; white-space:normal; }
.welcome-content .welcome-later { display:block; width:100%; min-height:44px; margin:8px 0; text-align:center; }
.welcome-content .welcome-privacy { margin-bottom:0; font-size:.75rem; line-height:1.6; color:var(--muted); }
.welcome-privacy a { color:var(--green-deep); text-underline-offset:3px; }
body.welcome-open .assistant-float, body.welcome-open .cart-dock, body.welcome-open .checkout-actions, body.welcome-open .toast { visibility:hidden; }
@media (max-width:380px) {
  .welcome-content { padding:0 20px 24px; }
  .welcome-content h2 { font-size:1.75rem; }
}
.site-header { grid-template-columns:120px minmax(0,1fr) auto; gap:24px; }
.site-header .brand { width:100%; max-width:120px; }
.main-nav { gap:16px; }
.main-nav button { min-height:44px; }
.header-actions { display:flex; align-items:center; gap:10px; }
.account-trigger { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-width:44px; min-height:44px; padding:10px; border-radius:8px; color:var(--cocoa); font-size:.8125rem; font-weight:700; text-decoration:none; white-space:nowrap; }
.account-trigger:hover { background:#eaf4e7; }
.account-trigger svg, .assistant-float svg { width:22px; height:22px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.assistant-float { position:fixed; z-index:45; right:24px; bottom:24px; display:flex; align-items:center; gap:8px; min-height:48px; padding:12px 16px; border-radius:8px; background:var(--green-deep); color:#fff; box-shadow:0 5px 20px #163c1626; font-size:.875rem; font-weight:700; text-decoration:none; }
.assistant-float:hover { background:var(--green); }
body:has(.toast.show) .assistant-float { visibility:hidden; }
body.menu-open .cart-dock, body.menu-open .checkout-actions, body.menu-open .assistant-float { display:none; }
@media (min-width:1101px) {
  .main-nav .account-link { display:none; }
}
@media (max-width:1100px) {
  .site-header { grid-template-columns:minmax(0,1fr) auto auto; gap:12px; }
  .main-nav { gap:4px; max-height:calc(100dvh - 150px); overflow-y:auto; overscroll-behavior:contain; padding:12px 20px; }
  .main-nav > button, .main-nav .account-link { flex-shrink:0; min-height:44px; padding:10px 12px; font-size:1rem; text-align:left; }
}
@media (max-width:480px) {
  .site-header { padding-inline:14px; gap:8px; }
  .header-actions { gap:6px; }
  .account-label { display:none; }
}
.catalog-view *, .cart-dock *, .checkout-view * { letter-spacing:0; }
.catalog-view .catalog-heading { padding-top:30px; padding-bottom:18px; }
.catalog-view .catalog-heading .eyebrow { margin-bottom:8px; }
.catalog-view .catalog-heading h1 { font-size:2.5rem; line-height:1.12; }
.catalog-view .catalog-heading > p { margin:10px 0 0; font-size:1rem; }
[data-view="catalogo"] .catalog-heading { padding-bottom:0; }
[data-view="catalogo"] .catalog-shell { padding-top:18px; }
.pack-callout { margin-top:20px; padding:10px 16px; gap:12px; border:0; border-left:3px solid var(--mango); border-radius:0; background:#f6f8ed; }
.pack-callout strong { font-family:inherit; font-size:.875rem; }
.pack-callout span { margin-top:4px; font-size:.875rem; }
.pack-callout .text-link { flex-shrink:0; min-height:44px; font-size:.875rem; text-align:left; border:0; }
.catalog-toolbar { display:grid; grid-template-columns:minmax(240px,1.5fr) repeat(2,minmax(180px,1fr)); align-items:end; gap:12px 18px; padding:0; margin:0; border:0; border-radius:0; background:none; }
.catalog-toolbar label { min-width:0; font-size:.875rem; }
.catalog-toolbar .search-field { grid-column:auto; }
.catalog-toolbar input, .catalog-toolbar select { font-size:1rem; min-height:48px; border-radius:8px; }
.catalog-filter-panel, .catalog-filter-fields { display:contents; }
.catalog-toolbar .category-filters { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding-top:4px; }
.category-filters button { border-radius:6px; font-size:.8125rem; padding:8px 12px; }
.catalog-filter-options { grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; }
.catalog-filter-options .checkbox-label { display:flex; align-items:center; min-height:44px; }
.catalog-toolbar .checkbox-label input { width:20px; height:20px; min-height:20px; }
#catalog-filter-done { display:none; }
.catalog-results { margin:0 0 16px; gap:8px 16px; min-height:44px; border-top:1px solid var(--line); }
.catalog-results .text-link { font-size:.8125rem; min-height:44px; }
.active-filter-summary { color:var(--muted); font-size:.8125rem; }
.filter-toggle { align-self:end; min-height:48px; padding:10px 12px; display:flex; align-items:center; justify-content:center; gap:6px; border:1px solid var(--green-deep); border-radius:8px; background:#fff; color:var(--green-deep); font-size:.875rem; font-weight:700; cursor:pointer; }
.filter-toggle[aria-expanded="true"] { background:#eaf4e7; }
#catalog-filter-count { display:grid; place-items:center; min-width:22px; height:22px; padding:0 5px; border-radius:50%; background:var(--green-deep); color:white; font-size:.75rem; }
.product-card { border-radius:8px; box-shadow:none; }
.product-grid { align-items:stretch; }
.product-image-placeholder { aspect-ratio:4/3; }
.product-body { padding:18px; gap:0; }
.product-type, .product-body .product-description, .product-tags { display:none; }
.product-body h3 { margin:12px 0 16px; font-size:1.375rem; line-height:1.2; overflow-wrap:anywhere; }
.product-body h3 button { min-height:44px; }
.product-body .bundle-saving { font-size:.8125rem; line-height:1.5; margin-bottom:14px; }
.product-controls { gap:12px; }
.grouped-variants .product-controls { grid-template-columns:minmax(0,1fr); }
.variant-summary { margin:0; color:var(--muted); font-size:.8125rem; line-height:1.5; overflow-wrap:anywhere; }
.grouped-variants .price-block { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
#detail-selection-summary { margin:12px 0; }
.product-controls select { min-height:48px; padding:10px 8px; font-size:1rem; border-radius:8px; }
.product-controls .price { font-size:1.375rem; }
.product-controls .unit-price { font-size:.75rem; }
.product-body .add-button { margin-top:14px; border-radius:8px; font-size:.9375rem; box-shadow:none; }
.product-body .product-detail-link { min-height:44px; font-size:.8125rem; line-height:1.4; }
.product-body .product-quote { display:flex; align-items:center; justify-content:center; text-align:center; text-decoration:none; }
.product-body .availability { padding:5px 8px; }
.product-body .quote-controls .price { font-size:1.125rem; }
.cart-dock { position:fixed; z-index:45; right:24px; bottom:20px; display:flex; align-items:center; justify-content:space-between; gap:24px; width:min(420px,calc(100% - 40px)); min-height:80px; padding:12px 16px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 5px 24px #32170e20; }
.cart-dock > div { display:grid; gap:5px; min-width:0; }
.cart-dock > div > span { font-size:.8125rem; color:var(--muted); }
.cart-dock strong { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 8px; font-size:1.125rem; }
#cart-dock-label { font-size:.8125rem; font-weight:500; }
.cart-dock .button { flex-shrink:0; border-radius:8px; padding:12px 16px; font-size:.9375rem; box-shadow:none; }
body.has-cart-dock { padding-bottom:110px; }
body.has-cart-dock .assistant-float { bottom:116px; }
body.has-cart-dock .toast { bottom:116px; }
body.cart-open .assistant-float, body.detail-open .assistant-float, body.checkout-active .assistant-float, body.keyboard-open .assistant-float { display:none; }
body.cart-open .cart-dock, body.detail-open .cart-dock { display:none; }
.product-dialog input, .product-dialog select, .pack-choice select { font-size:1rem; }
.product-dialog { scroll-padding-top:68px; }
.product-dialog .dialog-toolbar { display:flex; align-items:center; justify-content:flex-end; height:60px; padding:8px 12px; background:var(--paper); border-bottom:1px solid var(--line); }
.product-dialog .dialog-close { position:static; }
.product-dialog .detail-body { min-width:0; }
.detail-restock { padding:18px 0; margin-top:18px; border-block:1px solid var(--line); }
.detail-restock h3 { margin:0 0 8px; font-size:1.125rem; }
.detail-restock p { font-size:.875rem; line-height:1.6; overflow-wrap:anywhere; }
.detail-restock .button { min-height:48px; border-radius:6px; padding:12px; white-space:normal; line-height:1.5; }
.detail-restock .text-link { min-height:44px; text-align:left; }
.detail-restock .restock-status { margin:12px 0 0; }
.detail-restock .restock-status[role="alert"] { color:#8a271c; }
.product-dialog .detail-body h2 { font-size:1.875rem; line-height:1.18; overflow-wrap:anywhere; }
.product-dialog .detail-price-line { flex-wrap:wrap; }
.cart-item, .checkout-item { min-width:0; }
.cart-item strong { overflow-wrap:anywhere; }
.cart-item .remove-item { min-width:44px; }
.icon-button { width:44px; height:44px; min-width:44px; min-height:44px; }
.cart-footer { padding-bottom:env(safe-area-inset-bottom,0px); }
@media (max-width:960px) and (min-width:601px) {
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:800px) {
  .announcement { padding:7px 16px; min-height:36px; font-size:.75rem; line-height:1.45; }
  .announcement > span:not(:first-child) { display:none; }
  .site-header { min-height:64px; padding-block:6px; }
  .brand img { height:48px; }
  .catalog-view .catalog-heading { padding-top:22px; padding-bottom:14px; }
  .catalog-view .catalog-heading .eyebrow { font-size:.75rem; margin-bottom:8px; }
  .catalog-view .catalog-heading h1 { font-size:1.875rem; line-height:1.15; }
  .catalog-view .catalog-heading > p { margin-top:8px; font-size:.875rem; line-height:1.5; }
  [data-view="catalogo"] .catalog-heading > p { display:none; }
  [data-view="catalogo"] .catalog-shell { padding-top:0; }
  .pack-callout { flex-direction:row; align-items:center; gap:12px; margin-top:14px; padding:8px 10px; }
  .pack-callout strong { font-size:.8125rem; }
  .pack-callout span { font-size:.75rem; }
  .pack-callout .text-link { flex:0 0 110px; font-size:.8125rem; line-height:1.4; }
  .catalog-toolbar { grid-template-columns:minmax(0,1fr) auto; gap:10px; }
  .catalog-toolbar .search-field { min-width:0; grid-column:auto; }
  .catalog-toolbar .search-field > span { font-size:.8125rem; }
  .catalog-filter-panel { display:block; grid-column:1/-1; padding:12px 0; border-block:1px solid var(--line); }
  .catalog-filter-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .catalog-toolbar .category-filters { margin-top:12px; }
  .catalog-filter-options { margin-top:8px; }
  #catalog-filter-done { display:block; min-height:44px; font-size:.875rem; }
  .catalog-results { border:0; margin-bottom:10px; padding-top:4px; }
  .product-grid { gap:16px; }
  .product-body h3 { font-size:1.25rem; margin:8px 0 12px; }
  .cart-dock { left:0; right:0; bottom:0; width:100%; min-height:80px; border-radius:0; border:0; border-top:1px solid var(--line); padding:12px max(16px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px)); gap:12px; }
  body.has-cart-dock { padding-bottom:calc(100px + env(safe-area-inset-bottom,0px)); }
  body.has-cart-dock .assistant-float, body.has-cart-dock .toast { bottom:calc(94px + env(safe-area-inset-bottom,0px)); }
  .assistant-float { right:16px; bottom:calc(16px + env(safe-area-inset-bottom,0px)); }
  .product-dialog { width:calc(100% - 24px); max-height:calc(100dvh - 24px); border-radius:8px; }
  .detail-photo, .detail-photo img { max-height:260px; }
}
@media (max-width:600px) {
  .product-grid { grid-template-columns:minmax(0,1fr); }
  .product-image-placeholder { aspect-ratio:3/2; }
  .product-dialog:has(#detail-selection-summary:not([hidden])) .detail-controls { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:359px) {
  .catalog-filter-fields { grid-template-columns:1fr; }
  .catalog-results { gap:4px 8px; }
  .active-filter-summary { flex-basis:100%; }
  .cart-dock .button { padding-inline:12px; font-size:.875rem; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .view.active { animation:none; }
  .button, .product-image-placeholder img { transition:none; }
}
