/* Mijoli 2.2 — shared foundations and task-focused shopping components. */
:root {
  --color-brand:#1c3a13;
  --color-accent:#d3fa99;
  --surface-page:#fcfcf7;
  --surface-subtle:#efefe7;
  --text-primary:#1c3a13;
  --text-secondary:#58644f;
  --muted:var(--text-secondary);
  --border-subtle:#dfe3d8;
  --border-control:#84917a;
  --text-xs:.75rem;
  --text-sm:.875rem;
  --text-md:1rem;
  --space-1:.25rem;
  --space-2:.5rem;
  --space-3:.75rem;
  --space-4:1rem;
  --space-6:1.5rem;
  --space-8:2rem;
  --space-12:3rem;
  --space-16:4rem;
  --space-24:6rem;
  --control-height:48px;
  --target-size:44px;
  --radius-field:12px;
  --radius-card:20px;
  --radius-dialog:24px;
  --radius-pill:999px;
}
body { font-size:var(--text-md); font-optical-sizing:auto; }
:where(button,a,input,select,summary):focus-visible { outline:3px solid #527936; outline-offset:4px; }
.button,.text-link { font-size:var(--text-sm); }
.header nav,.cart-button { font-size:var(--text-sm); }
.header-finder { font-size:var(--text-xs); }
.quick-categories { display:grid; grid-template-columns:1.15fr repeat(4,1fr); gap:12px; padding-block:32px; }
.quick-categories>div { display:flex; flex-direction:column; justify-content:center; gap:6px; }
.quick-categories>div p { font-size:18px; letter-spacing:-.03em; }
.quick-categories .eyebrow { font-size:10px; }
.quick-categories>a { display:flex; align-items:center; gap:12px; padding:20px 16px; min-height:72px; border:1px solid var(--line); border-radius:var(--radius-field); background:var(--stone); font-size:var(--text-sm); line-height:1.4; transition:background .2s; }
.quick-categories>a:hover { background:var(--lime); }
.quick-categories>a>svg { width:22px; height:22px; }
.quick-categories>a>svg:last-child { width:16px; height:16px; margin-left:auto; }
.seed-featured { margin-top:0; }
.seed-section-heading>div:last-child:not(:first-child)>p,.section-intro { font-size:var(--text-md); }
.seed-editorial { border-top:1px solid var(--line); }
.editorial-copy>p,.editorial-panel p,.ritual-copy>p,.ritual-steps p,.principles-grid p { font-size:var(--text-md); line-height:1.8; }
.editorial-tabs button { font-size:var(--text-sm); }
.featured-package { font-family:var(--font); font-size:var(--text-xs); line-height:1.6; min-height:38px; }
.featured-card h3 { font-weight:450; min-height:60px; }
.featured-card-bottom { align-items:flex-start; }
.featured-card-bottom small { font:var(--text-xs)/1.5 var(--font); }
.featured-card-bottom .product-availability { color:#e2edda; font-size:var(--text-xs); }
.featured-card-bottom .button { font-size:var(--text-xs); padding-inline:14px; gap:8px; }
.product-code { font-size:10px; padding:5px 9px; }
.catalog .section-heading { margin-bottom:32px; }
.catalog-search-row { display:flex; gap:24px; align-items:center; margin-bottom:24px; }
.catalog-search-field { display:flex; align-items:center; gap:12px; border:1px solid var(--border-control); border-radius:var(--radius-field); background:#fff; padding:4px 12px 4px 16px; width:100%; max-width:660px; min-height:56px; }
.catalog-search-field:focus-within,.search-field:focus-within { outline:3px solid #527936; outline-offset:3px; }
.catalog-search-field>svg { width:22px; height:22px; color:var(--muted); }
.catalog-search-field input { width:100%; min-width:0; min-height:44px; border:0; background:none; font-size:var(--text-md); outline:none; }
.catalog-search-field input::-webkit-search-cancel-button { appearance:none; }
.catalog-search-field input::placeholder { color:var(--muted); opacity:1; }
.catalog-stock { display:flex; align-items:center; gap:10px; min-height:48px; flex-shrink:0; font-size:var(--text-sm); cursor:pointer; }
.catalog-stock input { width:20px; height:20px; accent-color:var(--forest); }
.catalog-toolbar { flex-wrap:wrap; gap:16px; margin-bottom:20px; }
.category-tabs { flex-wrap:wrap; gap:8px; }
.category-tabs button { font-size:var(--text-sm); min-height:48px; }
.category-tabs #total-count,.category-count { font:var(--text-xs)/1 var(--mono); opacity:.85; }
.sort-label { border-bottom:1px solid var(--border-control); font-size:var(--text-sm); }
.sort-label select { max-width:190px; font-size:var(--text-sm); }
.mobile-catalog-controls { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 24px; }
.catalog-result { display:block; font-size:var(--text-sm); font-weight:550; }
.catalog-hint { display:block; color:var(--muted); font-size:var(--text-xs); margin-top:4px; }
.catalog-tools,.view-switch { display:flex; align-items:center; gap:8px; }
.view-switch { border:1px solid var(--border-control); border-radius:var(--radius-pill); padding:3px; gap:0; }
.view-switch .icon-button { width:44px; min-width:44px; height:44px; }
.view-switch .active { background:var(--forest); color:var(--snow); }
.view-switch svg { width:21px; height:21px; }
.filter-trigger { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:52px; padding:0 18px; border:1px solid var(--border-control); border-radius:var(--radius-pill); font-size:var(--text-sm); position:relative; }
.filter-trigger:hover { background:var(--stone); }
.filter-trigger svg { width:20px; height:20px; }
.filter-dot { width:7px; height:7px; border-radius:50%; background:var(--forest); }
.filter-summary { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:24px; font-size:var(--text-sm); }
.filter-chip { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border-control); border-radius:var(--radius-pill); background:var(--stone); padding:9px 14px; min-height:44px; max-width:100%; font-size:var(--text-xs); overflow-wrap:anywhere; }
.filter-chip svg { width:16px; height:16px; }
.filter-reset { min-height:44px; padding:8px 12px; text-decoration:underline; text-underline-offset:4px; font-size:var(--text-xs); }
.product-badge { background:rgba(252,252,247,.94); padding:4px 8px; border-radius:var(--radius-pill); font-size:10px; top:16px; left:12px; }
.favorite-toggle { background:rgba(252,252,247,.94); }
.product-card-info>.product-code { display:none; }
.product-category { font:var(--text-xs)/1.5 var(--font); letter-spacing:0; text-transform:none; margin-bottom:6px; }
.product-category svg { width:16px; height:16px; }
.product-title { font-size:22px; font-weight:500; letter-spacing:-.035em; }
.product-package { font-size:var(--text-xs); min-height:38px; margin:4px 0 16px; }
.product-availability { font-size:var(--text-xs); gap:5px; color:#3d6031; }
.product-availability svg { width:14px; height:14px; }
.product-availability.unavailable { color:#716246; }
.product-bottom { align-items:flex-end; gap:8px; }
.add-button { width:auto; min-width:48px; height:48px; padding:0 16px; gap:8px; }
.add-label { display:inline; font-size:var(--text-xs); font-weight:500; }
.add-button:disabled { color:var(--muted); background:var(--stone); opacity:1; }
.add-button:disabled svg { display:none; }
.catalog-bottom>span { font-size:var(--text-xs); font-family:var(--font); }
.catalog-bottom>.text-link { font-size:var(--text-xs); }
.search-dialog { width:min(720px,calc(100% - 32px)); }
.search-prompt { font-size:var(--text-sm); }
.search-result { min-height:88px; gap:16px; }
.search-result strong { font-size:var(--text-md); }
.search-result small { font-size:var(--text-xs); }
.search-result>span { font-size:var(--text-sm); white-space:nowrap; }
.search-all { width:100%; margin-top:20px; }
.detail-copy>.detail-description,.detail-accordion p { font-size:var(--text-md); line-height:1.8; }
.detail-package,.detail-copy .product-availability,.detail-source { font-size:var(--text-xs); line-height:1.75; }
.detail-facts>div { font-size:var(--text-sm); }
.detail-facts small { font-size:var(--text-xs); }
.detail-accordion details { font-size:var(--text-sm); }
.detail-accordion summary { min-height:44px; }
.quantity-control button { width:44px; min-width:44px; height:44px; }
.quantity-control span { min-width:24px; font-size:var(--text-sm); }
.quantity-control button:disabled { opacity:.35; }
.cart-item small,.cart-remove { font-size:var(--text-xs); }
.cart-remove { min-height:44px; text-decoration:underline; text-underline-offset:3px; }
.cart-continue { min-height:44px; font-size:var(--text-sm); }
.cart-item h3 { font-weight:500; }
.demo-note { font-size:var(--text-sm); line-height:1.7; }
.checkout-form label,.checkout-options label { font-size:var(--text-sm); }
.checkout-form input:not([type=checkbox]),.checkout-form select,.filter-sort-label select { min-height:48px; font-size:var(--text-md); border-color:var(--border-control); border-radius:var(--radius-field); }
.checkout-options label,.filter-categories label,.finder-option { border-color:var(--border-control); }
.checkout-options small,.checkout-options b { font-size:var(--text-xs); }
.checkout-progress { font-size:var(--text-xs); }
.checkout-actions .button,.checkout-actions .text-link { font-size:var(--text-sm); }
.review-address,.review-items .summary-row { font-size:var(--text-sm); line-height:1.8; }
.checkout-success p,.info-dialog p { font-size:var(--text-md); }
.filter-categories label,.filter-sort-label,.stock-toggle,.finder-option { font-size:var(--text-sm); }
.filter-sheet-actions .button,.filter-sheet-actions .text-link,.finder-actions .button,.finder-actions .text-link { font-size:var(--text-sm); }
.stock-toggle small,.finder-option small { font-size:var(--text-xs); }
#finder-content>p,#finder-content form>p,.finder-result p { font-size:var(--text-md); }
.finder-progress { font-size:var(--text-xs); }
.finder-actions>span { font-size:var(--text-xs); }
.finder-option:has(input:focus-visible),.filter-categories label:has(input:focus-visible) { outline:3px solid #527936; outline-offset:3px; }
.faq summary { font-size:var(--text-md); }
.faq details p { font-size:var(--text-md); line-height:1.8; }
.footer-top a,.footer-top button { min-height:44px; font-size:var(--text-sm); }
.supplement-note,.footer-bottom { font-size:var(--text-xs); line-height:1.75; }
.toast { font-size:var(--text-sm); }
@media(min-width:761px) and (max-width:1100px) {
  .products-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 24px; }
  .featured-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 24px; }
  .quick-categories { grid-template-columns:repeat(4,1fr); }
  .quick-categories>div { grid-column:1/-1; }
  .header { gap:16px; padding-inline:24px; }
  .header nav { gap:20px; margin-left:0; }
  .header-finder { display:none; }
  .view-switch { display:none; }
  .seed-editorial,.seed-ritual { gap:40px; }
}
@media(min-width:1101px) { .view-switch { display:none; } }
@media(max-width:760px) {
  .header { height:72px; }
  .hero-actions .button,.hero-actions .text-link { font-size:var(--text-xs); }
  .hero-actions { gap:16px; }
  .quick-categories { grid-template-columns:1fr 1fr; gap:8px; padding-block:24px; }
  .quick-categories>div { grid-column:1/-1; padding-bottom:8px; }
  .quick-categories>a { min-height:64px; padding:12px; font-size:var(--text-xs); gap:8px; }
  .quick-categories>a>svg { width:20px; height:20px; }
  .quick-categories>a>svg:last-child { width:14px; height:14px; }
  h2 { font-size:clamp(32px,8.8vw,40px); }
  .seed-section-heading>div:last-child:not(:first-child)>p,.section-intro { font-size:var(--text-sm); }
  .seed-section-heading .eyebrow,.section-heading .eyebrow { font-size:11px; }
  .featured-card h3 { font-size:26px; min-height:0; }
  .featured-card-bottom .button { font-size:var(--text-sm); }
  .featured-package { font-size:var(--text-xs); min-height:0; }
  .featured-card-bottom small { font-size:var(--text-xs); }
  .catalog .section-heading { padding-inline:24px; }
  .catalog .section-heading h2 { font-size:36px; }
  .catalog-search-row { margin:0 24px 20px; gap:12px; flex-wrap:wrap; }
  .catalog-search-field { min-height:56px; padding-left:12px; }
  .catalog-stock { min-height:44px; }
  .catalog-toolbar { display:flex; margin-bottom:20px; gap:12px; }
  .category-tabs { width:100%; flex-wrap:nowrap; padding-inline:24px; gap:8px; }
  .category-tabs button { min-height:48px; padding:12px 16px; font-size:var(--text-sm); }
  .sort-label { display:none; }
  .mobile-catalog-controls { display:flex; margin:0 24px 20px; flex-wrap:wrap; gap:16px; }
  .catalog-result { font-size:var(--text-sm); }
  .catalog-hint { font-size:var(--text-xs); max-width:none; }
  .catalog-tools { width:100%; justify-content:space-between; }
  .view-switch .icon-button { width:44px; min-width:44px; height:44px; }
  .filter-trigger { min-height:52px; width:auto; min-width:0; }
  .filter-summary { margin:0 24px 24px; font-size:var(--text-xs); }
  .product-title { font-size:28px; font-weight:500; }
  .product-package { font-size:var(--text-xs); min-height:0; }
  .product-availability { font-size:var(--text-xs); }
  .add-button { min-height:48px; min-width:112px; padding:0 16px; }
  .add-label { font-size:var(--text-sm); }
  .product-badge { font-size:10px; max-width:calc(100% - 64px); }
  .product-category { font-size:var(--text-xs); }
  body[data-catalog-view="grid"] .products-grid { gap:28px 16px; padding-inline:24px; }
  body[data-catalog-view="grid"] .product-title { font-size:20px; font-weight:500; line-height:1.3; }
  body[data-catalog-view="grid"] .product-package { font-size:var(--text-xs); min-height:40px; margin:4px 0 12px; }
  body[data-catalog-view="grid"] .product-card-info { padding-top:14px; }
  body[data-catalog-view="grid"] .product-card-info>.product-code { display:none; }
  body[data-catalog-view="grid"] .product-category { font-size:var(--text-xs); }
  body[data-catalog-view="grid"] .product-category svg { display:none; }
  body[data-catalog-view="grid"] .product-bottom { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-start; }
  body[data-catalog-view="grid"] .product-price { font-size:21px; }
  body[data-catalog-view="grid"] .product-availability { font-size:var(--text-xs); }
  body[data-catalog-view="grid"] .add-button { width:100%; min-width:0; min-height:48px; height:auto; padding:12px 8px; gap:8px; }
  body[data-catalog-view="grid"] .add-label { display:inline; font-size:var(--text-xs); }
  body[data-catalog-view="grid"] .add-button svg { width:17px; height:17px; }
  body[data-catalog-view="grid"] .product-badge { display:none; }
  .catalog-bottom { margin:28px 24px 0; }
  .catalog-bottom>span,.catalog-bottom>.text-link { font-size:var(--text-xs); }
  .carousel-caption { font-size:10px; }
  .mobile-dock button { min-height:56px; gap:4px; }
  .mobile-dock button>span:not(.dock-badge) { font-size:var(--text-xs); }
  .mobile-dock svg { width:22px; height:22px; }
  .dock-badge { font-size:10px; min-width:18px; height:18px; }
  .detail-copy h2 { font-size:34px; font-weight:450; }
  .detail-copy .eyebrow { font-size:var(--text-xs); }
  .detail-copy>.detail-description,.detail-accordion p { font-size:var(--text-md); line-height:1.8; }
  .detail-package,.detail-copy .product-availability,.detail-source { font-size:var(--text-xs); }
  .detail-facts>div { font-size:var(--text-sm); }
  .detail-facts small { font-size:var(--text-xs); }
  .detail-accordion details { font-size:var(--text-sm); }
  .detail-accordion summary { min-height:44px; }
  .detail-pager { font-size:var(--text-xs); }
  .detail-mobile-price-note { font-size:var(--text-xs); }
  .detail-mobile-bar>.button { font-size:var(--text-sm); }
  .cart-item { grid-template-columns:56px minmax(0,1fr); gap:12px; position:relative; padding-block:24px; }
  .cart-item>div:nth-child(2) { min-width:0; }
  .cart-item h3 { font-size:18px; line-height:1.4; }
  .cart-item small { font-size:var(--text-xs); }
  .cart-item-end { grid-column:2; flex-direction:row; align-items:center; justify-content:space-between; font-size:var(--text-md); }
  .cart-item .quantity-control { margin-top:12px; }
  .cart-item .quantity-control button { width:44px; min-width:44px; height:44px; }
  .cart-item .quantity-control span { min-width:32px; font-size:var(--text-sm); }
  .cart-remove,.cart-continue { font-size:var(--text-sm); min-height:44px; }
  .cart-summary>.button { font-size:var(--text-sm); }
  .demo-note { font-size:var(--text-sm); padding:16px; }
  .dialog-heading h2 { font-size:30px; }
  .checkout-form label { font-size:var(--text-sm); }
  .checkout-progress { font-size:var(--text-xs); gap:12px; }
  .checkout-options label { font-size:var(--text-sm); }
  .checkout-options small,.checkout-options b { font-size:var(--text-xs); }
  .checkout-actions { flex-wrap:wrap; gap:12px; }
  .checkout-actions .button,.checkout-actions .text-link { font-size:var(--text-sm); }
  .checkout-actions .button { flex:1 1 200px; }
  .review-address,.review-items .summary-row { font-size:var(--text-sm); }
  .checkout-success p,.info-dialog p { font-size:var(--text-md); }
  .filter-categories label { font-size:var(--text-sm); min-height:72px; }
  .filter-sheet-actions { flex-wrap:wrap; gap:12px; }
  .filter-sheet-actions .button,.filter-sheet-actions .text-link { font-size:var(--text-sm); }
  .filter-sheet-actions .button { flex:1 1 180px; }
  .filter-sort-label,.stock-toggle { font-size:var(--text-sm); }
  .stock-toggle small { font-size:var(--text-xs); }
  #finder-content h3 { font-size:28px; }
  #finder-content>p,#finder-content form>p,.finder-result p { font-size:var(--text-md); }
  .finder-option { font-size:var(--text-sm); }
  .finder-option small,.finder-progress,.finder-actions>span { font-size:var(--text-xs); }
  .finder-actions { flex-wrap:wrap; }
  .finder-actions .button,.finder-actions .text-link { font-size:var(--text-sm); }
  .editorial-copy>p,.editorial-panel p,.ritual-copy>p,.ritual-steps p,.principles-grid p,.faq details p { font-size:var(--text-md); }
  .glass-note p { font-size:var(--text-sm); }
  .glass-note>div>span { font-size:10px; }
  .footer-top a,.footer-top button { font-size:var(--text-sm); }
  .footer-bottom,.supplement-note { font-size:var(--text-xs); }
}
@media(max-width:360px) {
  .hero-actions { gap:8px; }
  .hero-actions .button,.hero-actions .text-link { font-size:11px; }
  .quick-categories>a { gap:6px; padding-inline:10px; }
  .quick-categories>a>svg:last-child { display:none; }
  body[data-catalog-view="grid"] .products-grid { padding-inline:20px; gap:24px 12px; }
  body[data-catalog-view="grid"] .product-title { font-size:18px; }
  .mobile-dock button>span:not(.dock-badge) { font-size:11px; }
  .filter-categories { grid-template-columns:1fr; }
  .finder-actions>span { display:none; }
  .search-result { grid-template-columns:48px 1fr; gap:12px; }
  .search-result>span { grid-column:2; }
}
@media(prefers-reduced-transparency:reduce) { .mobile-dock,.glass-note { backdrop-filter:none; background:var(--paper); } }
@media(prefers-contrast:more) { :root { --muted:#34432d; --border-control:#46583c; --line:#84917a; } .glass-note,.mobile-dock { background:var(--paper); } }
@media(prefers-reduced-motion:reduce) { .button:hover,.button:active { transform:none; } }

.featured-availability { color:#e2edda; font-size:var(--text-xs); margin:0 0 16px; }
.cart-item .quantity-control button { width:44px; min-width:44px; height:44px; }
.summary-row { font-size:var(--text-sm); }
.detail-add-row>.button { font-size:var(--text-sm); }
@media(max-width:360px) { .search-result { display:grid; } }

.view-switch .icon-button.active { background:var(--forest); color:var(--snow); }
