/* Store-wide layout, accessible controls and calm product-focused surfaces. */
:root { --ui-surface:#fff; --ui-muted:#627168; --ui-line:#dfe7e1; --ui-shadow:0 3px 16px #173a2407; }
:root[data-theme="dark"] { --ui-surface:#15221b; --ui-muted:#a9bbae; --ui-line:#30463a; --ui-shadow:0 3px 16px #0002; }
body { background:var(--paper); overflow-wrap:break-word; }
:where(button,a,input,select,textarea,summary,details):focus-visible { outline:3px solid #159866; outline-offset:3px; }
/* Safari focuses the parent <details> (not just <summary>) on click and draws
   its own blue ring there outside :focus-visible; the rule above covers
   keyboard focus, this clears the mouse-click ring Safari adds on top. */
details:focus { outline:none; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
input,select,textarea { max-width:100%; }
img,video { max-width:100%; }
main { min-width:0; }
.skip-link { position:fixed; left:16px; top:-100px; z-index:200; padding:12px 18px; border-radius:10px; background:var(--ui-surface); color:var(--ink); border:2px solid var(--brand-green); }
.skip-link:focus { top:12px; }
.glass,.glass-card, :root[data-theme="dark"] :is(.glass,.glass-card) { background:var(--ui-surface); border-color:var(--ui-line); backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:var(--ui-shadow); }
.glass::after,.glass-card::after,.glass-card::before { display:none; }
.glass-card:hover { transform:none; box-shadow:var(--ui-shadow); }
.glass-input, :root[data-theme="dark"] .glass-input { background:var(--ui-surface); border:1px solid var(--ui-line); min-height:44px; color:var(--ink); }
.glass-input:focus { border-color:var(--brand-green); box-shadow:0 0 0 3px #13936115; }
.btn-brand { background:var(--brand-green); box-shadow:0 3px 8px #0b6b3a12; }
.btn-brand,.btn-outline-brand { min-height:44px; justify-content:center; align-items:center; gap:6px; }
.btn-brand:hover { background:var(--brand-green-dark); transform:translateY(-1px); }
.nav-glass, :root[data-theme="dark"] .nav-glass { background:var(--ui-surface); border-bottom:1px solid var(--ui-line); backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:none; }
.nav-glass > div:first-child { width:100%; max-width:none; }
.nav-glass .h-20 { height:76px; }
.nav-color-btn { background:none; box-shadow:none; color:var(--ink); }
.nav-color-btn::before,.nav-search-wrap::before,.nav-search-wrap::after { display:none; }
.nav-color-btn:hover,.nav-color-btn[aria-current="page"] { background:#1393610d; color:var(--brand-green); box-shadow:none; }
.nav-icon-btn { width:44px; height:44px; min-width:44px; min-height:44px; flex-shrink:0; align-items:center; justify-content:center; line-height:1; }
.nav-icon-btn > svg { flex-shrink:0; }
.nav-icon-btn:hover { background:#1393610d; box-shadow:none; transform:none; }
.nav-search-wrap { min-width:0; flex-shrink:1; }
.nav-search-input, :root[data-theme="dark"] .nav-search-input { background:var(--paper); color:var(--ink); border:1px solid var(--ui-line); min-height:44px; box-shadow:none; }
.nav-search-input:focus { border-color:var(--brand-green); box-shadow:0 0 0 3px #13936112; }
#nav-search-results,#nav-search-results-mobile { max-height:min(420px,60dvh); overflow-y:auto; }
.search-result { display:flex; align-items:center; gap:12px; padding:12px; color:var(--ink); border-bottom:1px solid var(--ui-line); }
.search-result:hover,.search-result:focus { background:#1393610d; }
.search-result img { width:44px; height:44px; border-radius:8px; object-fit:cover; flex-shrink:0; }
.search-result strong { display:block; font-size:13px; font-weight:600; }
.search-result small { font-size:12px; color:var(--ui-muted); }
.search-result > span { min-width:0; }
.search-note { padding:16px; font-size:13px; color:var(--ui-muted); }
.store-mobile-menu { position:relative; display:none; }
.store-mobile-menu summary { list-style:none; cursor:pointer; }
.store-mobile-menu summary::-webkit-details-marker { display:none; }
.store-menu-panel { position:absolute; right:0; top:calc(100% + 12px); width:min(340px,calc(100vw - 32px)); max-height:calc(100dvh - 110px); overflow-y:auto; padding:12px; border:1px solid var(--ui-line); border-radius:16px; background:var(--ui-surface); box-shadow:0 16px 40px #12332220; }
.store-menu-panel a { display:block; padding:12px; border-radius:8px; font-size:14px; }
.store-menu-panel a:hover { background:#1393610d; }
.store-menu-panel p { padding:12px 12px 4px; color:var(--ui-muted); text-transform:uppercase; font-size:10px; font-weight:600; letter-spacing:.1em; }
.store-catalog { width:100%; max-width:none; }
.catalog-heading { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-block:8px 16px; }
.catalog-heading h1 { font-family:inherit; font-weight:600; letter-spacing:-.04em; font-size:clamp(26px,3vw,38px); }
.catalog-heading .catalog-intro { font-size:13px; color:var(--ui-muted); margin-top:8px; }
.catalog-filters { padding:22px; background:var(--ui-surface); border:1px solid var(--ui-line); border-radius:16px; }
.catalog-filters label { min-height:36px; }
.catalog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(185px,1fr)); gap:16px; }
/* Compact fixed-size product grid (home, wishlist) */
.product-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,200px)); gap:16px; }
.product-card-body h3 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.product-card { min-width:0; border-radius:16px; transition:border-color .18s,box-shadow .18s; }
.product-card:hover { border-color:#83b498; box-shadow:0 8px 26px #153b2410; }
.product-card-body { padding:12px; background:var(--ui-surface); }
.product-card-body h3 { font-size:13px; line-height:1.45; letter-spacing:-.015em; }
.product-card-body > p:first-child { font-size:10px; letter-spacing:.1em; color:var(--ui-muted); }
.product-card-body > .flex { flex-wrap:wrap; }
.product-image-frame { background:var(--paper); }
.product-image-frame::after { display:none; }
.product-list-card { display:grid; grid-template-columns:96px minmax(0,1fr) auto auto; gap:16px; }
.active-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.filter-chip { display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--ui-line); border-radius:999px; font-size:12px; color:var(--ink); background:var(--ui-surface); }
.filter-chip:hover { border-color:var(--brand-green); }
.account-navigation nav { display:flex; flex-direction:column; }
.account-navigation nav a { min-height:42px; display:flex; align-items:center; }
.auth-card { border-radius:22px; box-shadow:0 12px 48px #1435220a; }
.auth-section { background:var(--paper); }
.auth-section h1 { font-family:inherit; font-weight:600; letter-spacing:-.035em; }
.auth-card input { min-width:0; }
/* Assistant launcher: a pill (icon + label) on desktop, an icon-only circle on phones; turns into a round close button while the panel is open. */
.ai-chat-toggle, :root[data-theme="dark"] .ai-chat-toggle { position:relative; display:inline-flex; align-items:center; gap:10px; width:auto; height:54px; padding:0 20px 0 8px; border-radius:999px; border:0; background:linear-gradient(135deg,#0e7a43 0%,var(--brand-green) 55%,#085a31 100%); color:#fff; font-size:14px; font-weight:600; letter-spacing:.01em; box-shadow:0 10px 28px #0b6b3a38,0 2px 6px #0b6b3a26,inset 0 1px 0 #ffffff2e; cursor:pointer; transition:transform .2s ease,box-shadow .2s ease,padding .2s ease; }
.ai-chat-toggle:hover { transform:translateY(-2px); box-shadow:0 14px 34px #0b6b3a47,0 3px 8px #0b6b3a2e,inset 0 1px 0 #ffffff2e; }
.ai-chat-toggle:active { transform:translateY(0) scale(.97); }
.ai-chat-toggle-icon { position:relative; display:grid; place-items:center; width:38px; height:38px; border-radius:999px; background:#ffffff26; box-shadow:inset 0 0 0 1px #ffffff33; flex-shrink:0; }
.ai-chat-toggle-icon svg { position:absolute; width:21px; height:21px; transition:opacity .2s ease,transform .25s ease; }
.ai-chat-icon-close { opacity:0; transform:rotate(-90deg) scale(.6); }
.ai-chat-toggle-label { white-space:nowrap; }
.ai-chat-toggle-dot { position:absolute; top:7px; left:37px; width:11px; height:11px; border-radius:999px; background:#f2b84b; box-shadow:0 0 0 2px var(--brand-green); }
.ai-chat-toggle-dot::after { content:""; position:absolute; inset:0; border-radius:inherit; background:inherit; animation:ai-chat-ping 2.4s ease-out infinite; }
@keyframes ai-chat-ping { 0% { transform:scale(1); opacity:.7; } 70%,100% { transform:scale(2.4); opacity:0; } }
.ai-chat-toggle[aria-expanded="true"] { padding:0 8px; }
.ai-chat-toggle[aria-expanded="true"] .ai-chat-toggle-label,.ai-chat-toggle[aria-expanded="true"] .ai-chat-toggle-dot { display:none; }
.ai-chat-toggle[aria-expanded="true"] .ai-chat-icon-open { opacity:0; transform:rotate(90deg) scale(.6); }
.ai-chat-toggle[aria-expanded="true"] .ai-chat-icon-close { opacity:1; transform:none; }
.ai-chat-toggle:focus-visible { outline:3px solid #159866; outline-offset:3px; }
.ai-chat-panel, :root[data-theme="dark"] .ai-chat-panel { background:var(--ui-surface); border-color:var(--ui-line); max-height:calc(100dvh - 180px); display:flex; flex-direction:column; bottom:66px; }
.ai-chat-messages { min-height:0; flex:1; max-height:360px; overflow-y:auto; }
.ai-chat-header,.ai-chat-form { flex-shrink:0; }
.ai-chat-form input { min-width:0; }
/* WhatsApp launcher: icon-only circle in WhatsApp green. */
.whatsapp-float { display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; padding:0; border-radius:999px; background:linear-gradient(135deg,#2ee07a 0%,#25d366 45%,#128c4e 100%); color:#fff; text-decoration:none; box-shadow:0 6px 20px #128c4e3d,0 2px 6px #128c4e29; transition:transform .2s ease,box-shadow .2s ease; }
.whatsapp-float:hover { transform:translateY(-2px); box-shadow:0 10px 28px #128c4e4d,0 3px 8px #128c4e33; color:#fff; }
.whatsapp-float:active { transform:translateY(0) scale(.97); }
.whatsapp-float-icon { display:grid; place-items:center; width:52px; height:52px; background:none; box-shadow:none; flex-shrink:0; }
.whatsapp-float-icon svg { width:26px; height:26px; }
.whatsapp-float-label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.store-toast { position:fixed; z-index:120; top:90px; left:50%; transform:translateX(-50%); width:max-content; max-width:calc(100vw - 32px); padding:14px 18px; border:1px solid var(--ui-line); border-radius:12px; background:var(--ui-surface); color:var(--ink); box-shadow:0 8px 32px #12332220; font-size:13px; }
.flash-stack { max-width:min(24rem,calc(100vw - 32px)); }
[data-flash] { overflow-wrap:anywhere; }
[data-flash] button { min-width:32px; min-height:32px; }
@media (max-width:1279px) {
  .nav-glass nav.hidden.lg\:flex { display:none; }
  .store-mobile-menu { display:block; }
}
@media (max-width:1023px) {
  .catalog-filters { padding:0; border:0; background:none; }
  .catalog-filters #more-filters { padding:18px; margin-bottom:12px; border:1px solid var(--ui-line); border-radius:14px; background:var(--ui-surface); }
  .account-navigation { padding:12px; }
  .account-navigation nav { flex-direction:row; gap:6px; overflow-x:auto; padding-bottom:4px; }
  .account-navigation nav a { flex-shrink:0; white-space:nowrap; }
  .account-navigation > p { padding:0 8px; font-size:13px; }
  .bottom-nav, :root[data-theme="dark"] .bottom-nav { border-color:var(--ui-line); background:var(--ui-surface); }
  .bottom-nav a { min-height:52px; }
  .bottom-nav a.is-active { background:#1393610b; }
  .ai-chat-panel { max-height:calc(100dvh - 220px); }
}
@media (max-width:639px) {
  .nav-glass .h-20 { height:66px; gap:8px; }
  .nav-glass img.h-12 { max-width:108px; height:auto; max-height:42px; }
  .nav-glass .nav-icon-btn { min-width:40px; min-height:44px; padding:8px; }
  .catalog-grid, .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .product-card-body { padding:12px; }
  .product-card-body h3 { font-size:13px; }
  .product-card .badge-custom { font-size:9px; padding:4px 6px; top:8px; left:8px; }
  .product-list-card { grid-template-columns:76px minmax(0,1fr) auto; gap:10px; padding:12px; }
  .product-list-card .product-image-frame { width:76px; height:88px; }
  .product-list-card > span:last-child { display:none; }
  .glass-input,.nav-search-input,.ai-chat-form input,select,textarea { font-size:16px; }
  .auth-card { padding:24px; }
  .auth-card .grid-cols-2 { grid-template-columns:minmax(0,1fr); }
  .auth-section { padding:32px 16px; min-height:70dvh; }
  .whatsapp-float { left:12px; width:48px; height:48px; }
  .whatsapp-float-icon { width:48px; height:48px; }
  .whatsapp-float-icon svg { width:24px; height:24px; }
  .ai-chat-widget { right:12px; }
  .ai-chat-toggle, :root[data-theme="dark"] .ai-chat-toggle { height:52px; padding:0 7px; gap:0; }
  .ai-chat-toggle-label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .ai-chat-toggle-dot { top:6px; left:auto; right:6px; }
  .ai-chat-panel { bottom:62px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; } }
@media print { .nav-glass,.bottom-nav,.whatsapp-float,.ai-chat-widget,.skip-link,.store-toast { display:none !important; } body.has-bottom-nav { padding-bottom:0; } }
.store-mobile-menu summary { display:flex; align-items:center; justify-content:center; }
:root[data-theme="dark"] .nav-color-btn:hover,:root[data-theme="dark"] .nav-color-btn[aria-current="page"] { color:#86dfac; }

.catalog-filters a.is-active > span:first-child { outline:2px solid var(--brand-green); outline-offset:3px; }

.badge-custom { background:#edf7ef; color:#165934; border:1px solid #c7e5d0; box-shadow:none; }
:root[data-theme="dark"] .badge-custom { background:#193f2b; color:#a5ebbe; border-color:#346446; }

/* Keep the product purchase action within reach above the phone tab bar. */
.product-purchase-bar { display:none; }
@media screen and (max-width:639px) {
  body.has-bottom-nav.product-detail-page { padding-bottom:calc(140px + env(safe-area-inset-bottom)); }
  .product-detail-page #add-to-cart-form { scroll-margin-top:100px; }
  .product-inline-actions { display:none; }
  .product-purchase-bar { display:flex; align-items:center; gap:12px; position:fixed; z-index:45; left:0; right:0; bottom:calc(4rem + env(safe-area-inset-bottom)); padding:10px 16px; background:var(--ui-surface); border-top:1px solid var(--ui-line); box-shadow:0 -4px 18px #0000000d; }
  .product-purchase-button { display:flex; align-items:center; justify-content:center; flex:1; min-width:0; min-height:48px; padding:10px 12px; border-radius:999px; text-align:center; font-size:13px; font-weight:600; line-height:1.4; }
  .product-purchase-button:disabled { color:var(--ui-muted); background:var(--paper); cursor:not-allowed; }
  .product-options-link { display:flex; align-items:center; min-height:48px; color:var(--ink); font-size:13px; text-decoration:underline; text-underline-offset:3px; }
  body.has-bottom-nav.product-detail-page .whatsapp-float,
  body.has-bottom-nav.product-detail-page .ai-chat-widget { bottom:calc(9.5rem + env(safe-area-inset-bottom)); }
  .product-detail-page .ai-chat-panel { max-height:calc(100dvh - 300px); }
}

/* Light navbar: crisp white bar with a thin brand accent, a search box that
   fills the middle, and clear hover/current states. Dark keeps its own rules. */
.nav-search-icon { z-index:1; }
.nav-search-input { backdrop-filter:none; -webkit-backdrop-filter:none; }
@media (min-width:768px) {
  .nav-glass .nav-search-wrap { flex:1 1 auto; width:auto; max-width:460px; margin-inline:auto; }
}
:root:not([data-theme="dark"]) .nav-glass { background:#fffffff2; border-bottom-color:#e4ebe6; box-shadow:0 1px 2px #1233220a, 0 6px 20px #12332208; backdrop-filter:saturate(160%) blur(12px); -webkit-backdrop-filter:saturate(160%) blur(12px); }
:root:not([data-theme="dark"]) header.nav-glass::before { content:""; position:absolute; inset:0 0 auto; height:3px; background:linear-gradient(90deg,var(--brand-green),var(--brand-green-light) 60%,var(--brand-gold)); }
:root:not([data-theme="dark"]) .nav-color-btn { color:#3c4b43; font-weight:500; }
:root:not([data-theme="dark"]) .nav-color-btn:hover { background:#eef6f1; color:var(--brand-green-dark); }
:root:not([data-theme="dark"]) .nav-color-btn[aria-current="page"] { background:#e5f2ea; color:var(--brand-green-dark); font-weight:600; }
:root:not([data-theme="dark"]) .nav-search-input { background:#f3f6f4; border-color:#dde6e0; }
:root:not([data-theme="dark"]) .nav-search-input:hover { border-color:#c6d5cb; }
:root:not([data-theme="dark"]) .nav-search-input:focus { background:#fff; border-color:var(--brand-green); box-shadow:0 0 0 3px #0b6b3a1f; }
:root:not([data-theme="dark"]) .nav-search-input::placeholder { color:#7a877f; }
:root:not([data-theme="dark"]) .nav-search-icon { color:#6b7a71; }
:root:not([data-theme="dark"]) .nav-icon-btn { background:#fff; border:1px solid #e1e8e3; color:#2b3a32; }
:root:not([data-theme="dark"]) .nav-icon-btn:hover { background:#eef6f1; border-color:#c9dfd1; color:var(--brand-green-dark); }
:root:not([data-theme="dark"]) .nav-icon-btn svg { color:currentColor; }

/* Navbar account-dropdown address hint */
.nav-address-hint { font-size:11px; color:var(--ui-muted); line-height:1.4; text-decoration:none; }
.nav-address-hint:hover { color:var(--brand-green); }
.nav-address-nudge { color:var(--brand-green); font-weight:500; }
.nav-address-nudge:hover { text-decoration:underline; }

/* Navbar "Deliver to" pill (desktop, next to search) */
.nav-deliver-pill { background:var(--ui-surface); border:1px solid var(--ui-line); text-decoration:none; transition:background .15s,border-color .15s; }
.nav-deliver-pill:hover { border-color:var(--brand-green); }
:root:not([data-theme="dark"]) .nav-deliver-pill:hover { background:#eef6f1; }
:root[data-theme="dark"] .nav-deliver-pill:hover { background:#1c2f24; }
.nav-deliver-icon { color:var(--brand-green); align-self:center; }
.nav-deliver-label { font-size:9.5px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:var(--ui-muted); line-height:1.5; }
.nav-deliver-value { display:block; font-size:12px; font-weight:600; color:var(--ink); line-height:1.6; margin-top:1px; }
.nav-deliver-value.nav-deliver-add { color:var(--brand-green); }

/* Account > Profile Information: avatar + collapsible "Edit" sections */
.profile-avatar, .profile-avatar-fallback { width:72px; height:72px; border-radius:9999px; display:block; }
.profile-avatar-fallback { display:flex; align-items:center; justify-content:center; background:var(--brand-green); color:#fff; font-size:26px; font-weight:700; }
.profile-avatar-edit { position:absolute; right:-2px; bottom:-2px; width:26px; height:26px; border-radius:9999px; background:var(--brand-green); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; border:2px solid var(--ui-surface); transition:background .15s; }
.profile-avatar-edit:hover { background:var(--brand-green-dark); }

.edit-toggle > summary { list-style:none; }
.edit-toggle > summary::-webkit-details-marker { display:none; }
.edit-toggle-link { font-size:13px; font-weight:600; color:var(--brand-green); }
.edit-toggle-link:hover { text-decoration:underline; }
.edit-toggle[open] > summary .edit-toggle-link { color:var(--ui-muted); }
.edit-toggle[open] > summary .edit-toggle-link::after { content:" ✕"; }

/* ---- Catalog filters + toolbar polish ---- */
.catalog-filters { padding:0; overflow:hidden; box-shadow:var(--ui-shadow); }
.catalog-filters form { padding:0; }
.catalog-filters .cf-head { align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid var(--ui-line); background:linear-gradient(180deg,#0b6b3a0f,transparent); }
.catalog-filters .cf-head-title { display:inline-flex; align-items:center; gap:8px; font-size:14.5px; font-weight:700; color:var(--ink); }
.catalog-filters .cf-head-title svg { color:var(--brand-green); }
.catalog-filters .cf-head-clear { font-size:12px; font-weight:600; color:var(--brand-green); padding:3px 10px; border-radius:9999px; background:#0b6b3a14; }
.catalog-filters .cf-head-clear:hover { background:#0b6b3a26; }
:root[data-theme="dark"] .catalog-filters .cf-head-clear { color:#3fd68a; background:#3fd68a1a; }
.catalog-filters .cf-title { margin:0; padding:16px 18px 8px; font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ui-muted); }
.catalog-filters .cf-list { flex-direction:column; gap:1px; margin:0; padding:0 10px 12px; border-bottom:1px solid var(--ui-line); }
@media (min-width:1024px) {
  .catalog-filters .cf-list { display:flex; }
}
.catalog-filters .cf-list.cf-checks { border-bottom:0; padding-bottom:4px; }
.catalog-filters .cf-option { position:relative; display:flex; align-items:center; gap:10px; min-height:38px; padding:7px 12px; border-radius:10px; font-size:13.5px; color:var(--ink); cursor:pointer; transition:background .15s,color .15s; }
.catalog-filters .cf-option:hover { background:#0b6b3a12; }
.catalog-filters .cf-option:has(input:focus-visible) { outline:2px solid #159866; outline-offset:-2px; }
/* category rows: no radio dot — the active row is highlighted with a bar */
.catalog-filters .cf-list:not(.cf-checks) .cf-option input[type=radio] { position:absolute; opacity:0; width:0; height:0; pointer-events:none; }
.catalog-filters .cf-list:not(.cf-checks) .cf-option:has(input:checked) { background:#0b6b3a1a; color:var(--brand-green); font-weight:600; box-shadow:inset 3px 0 0 var(--brand-green); }
:root[data-theme="dark"] .catalog-filters .cf-list:not(.cf-checks) .cf-option:has(input:checked) { background:#3fd68a1f; color:#3fd68a; box-shadow:inset 3px 0 0 #3fd68a; }
.catalog-filters .cf-option input[type=checkbox] { accent-color:var(--brand-green); width:16px; height:16px; margin:0; flex:none; }
.catalog-filters .cf-switch { margin:0 10px 2px; padding-left:12px; }
.catalog-filters .cf-price { display:flex; align-items:center; gap:8px; padding:0 18px 10px; }
.catalog-filters .cf-price .glass-input { width:100%; min-height:38px; padding:0 10px; border-radius:10px; font-size:13.5px; }
.catalog-filters .cf-dash { color:var(--ui-muted); }
.catalog-filters .cf-presets { display:flex; flex-wrap:wrap; gap:5px; padding:0 18px 16px; border-bottom:1px solid var(--ui-line); }
.catalog-filters .cf-presets button { padding:4px 9px; white-space:nowrap; border-radius:9999px; border:1px solid var(--ui-line); background:var(--ui-surface); color:var(--ink); font-size:11.5px; cursor:pointer; transition:border-color .15s,background .15s,color .15s; }
.catalog-filters .cf-presets button:hover { border-color:var(--brand-green); color:var(--brand-green); background:#0b6b3a0d; }
.catalog-filters .cf-apply { display:block; width:calc(100% - 36px); margin:14px 18px 0; padding:10px 0; border-radius:9999px; font-size:13.5px; font-weight:600; }
.catalog-filters .cf-clear { display:none; }
.catalog-filters #more-filters { padding-bottom:18px; }

/* Mobile: 2-row grid — count + view toggle on top, sort/per-page filling the
   row below (equal halves) so there's no ragged wrap or leftover dead space.
   Desktop: collapses back to one row, count left / sort+toggle right. */
.catalog-toolbar {
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-areas:"count toggle" "sort sort";
  align-items:center;
  gap:10px;
  padding:10px 12px;
  margin-bottom:18px;
  background:var(--ui-surface);
  border:1px solid var(--ui-line);
  border-radius:14px;
  box-shadow:var(--ui-shadow);
}
.catalog-toolbar .cf-count { grid-area:count; margin:0; font-size:13.5px; color:var(--ui-muted); }
.catalog-toolbar .cf-count strong { color:var(--ink); font-size:17px; font-weight:700; margin-right:3px; }
.catalog-toolbar .cf-viewtoggle { grid-area:toggle; }
.catalog-toolbar #sort-form { grid-area:sort; display:flex; align-items:center; gap:8px; }
.catalog-toolbar #sort-form select { flex:1; min-width:0; }
.catalog-toolbar .cf-sortlabel { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.catalog-toolbar select.glass-input { min-height:36px; padding:0 30px 0 12px; border-radius:10px; font-size:13.5px; }
.cf-viewtoggle { display:inline-flex; padding:3px; gap:2px; border:1px solid var(--ui-line); border-radius:10px; background:var(--paper); }
.cf-viewtoggle a { display:flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:8px; color:var(--ui-muted); transition:background .15s,color .15s; }
.cf-viewtoggle a:hover { background:#0b6b3a14; color:var(--ink); }
.cf-viewtoggle a.is-on { background:var(--brand-green); color:#fff; }
@media (min-width:1024px) {
  .catalog-toolbar { grid-template-columns:auto 1fr auto; grid-template-areas:"count sort toggle"; padding:10px 14px; gap:12px; }
  .catalog-toolbar #sort-form { justify-content:flex-end; }
  .catalog-toolbar #sort-form select { flex:0 0 auto; }
  .catalog-toolbar .cf-sortlabel { position:static; width:auto; height:auto; overflow:visible; clip:auto; }
}
@media (max-width:1023px) {
  .catalog-filters .cf-clear { display:block; text-align:center; margin-top:12px; font-size:12.5px; color:var(--ui-muted); }
}

/* Pre-launch countdown banner (top and bottom of every page). */
.launch-banner { background:linear-gradient(135deg,#084d2a,#0b6b3a 55%,#12a35a); color:#fff; text-align:center; padding:28px 16px; }
.launch-banner-bottom { margin-top:32px; }
.launch-banner-inner { max-width:880px; margin:0 auto; }
.launch-kicker { display:inline-block; margin:0 0 10px; padding:4px 14px; border-radius:999px; background:#f2b84b; color:#12241c; font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase; }
.launch-title { margin:0 0 8px; font-family:"Playfair Display",serif; font-weight:700; font-size:clamp(22px,4.6vw,40px); line-height:1.2; }
.launch-sub { margin:0 0 16px; font-size:clamp(14px,2.4vw,17px); opacity:.92; }
.launch-timer { display:flex; justify-content:center; gap:clamp(8px,2vw,16px); margin-top:14px; }
.launch-timer > div { min-width:clamp(64px,17vw,96px); padding:10px 6px; border-radius:14px; background:#ffffff1f; border:1px solid #ffffff40; }
.launch-timer b { display:block; font-size:clamp(26px,7vw,44px); font-weight:800; line-height:1.1; font-variant-numeric:tabular-nums; }
.launch-timer small { font-size:12px; letter-spacing:.08em; text-transform:uppercase; opacity:.85; }
.launch-cart-note { display:flex; flex-direction:column; gap:2px; padding:12px 14px; border-radius:14px; background:#f2b84b26; border:1px solid #f2b84b; color:var(--ink); text-align:center; font-size:13px; }
.launch-cart-note strong { font-size:14px; }
