.catalog-hero { background:var(--mint); padding:72px 0 66px; }
.catalog-hero h1 { font-size:clamp(42px, 6vw, 74px); }
.catalog-hero h1 em { color:var(--green); font-style:normal; }
.catalog-hero p { max-width:650px; color:var(--muted); font-size:19px; margin:20px 0 0; }
.catalog-section { padding-top:72px; padding-bottom:40px; }
.catalog-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:32px; }
.catalog-heading h2 { font-size:42px; }
.catalog-heading p { margin:0 0 3px; color:var(--muted); font-size:14px; }
.catalog-heading p strong { color:var(--green-dark); font-size:18px; }
.catalog-layout { display:grid; grid-template-columns:240px minmax(0, 1fr); gap:30px; align-items:start; }
.product-filters { position:sticky; top:20px; padding:25px; border:1px solid var(--line); border-radius:20px; background:#fff; }
.product-filters h2 { font-size:25px; margin-bottom:24px; }
.product-filters label { display:block; color:var(--green-dark); font-size:13px; font-weight:700; margin-top:18px; }
.product-filters input, .product-filters select { display:block; width:100%; margin-top:8px; padding:11px 12px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:#fcfdfc; font:inherit; font-size:14px; }
.product-filters input:focus, .product-filters select:focus { outline:2px solid #bde1d3; border-color:var(--green); }
.filter-reset { width:100%; margin-top:18px; padding:10px 12px; border:1px solid var(--line); border-radius:999px; color:var(--green); background:#fff; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.filter-reset:hover { border-color:var(--green); background:var(--mint); }
.filter-help { margin-top:26px; padding-top:20px; border-top:1px solid var(--line); }
.filter-help strong { display:block; color:var(--green-dark); font-size:14px; line-height:1.35; }
.filter-help p { margin:8px 0 12px; color:var(--muted); font-size:13px; line-height:1.5; }
.filter-help a { color:var(--green); font-size:13px; font-weight:700; }
.product-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:18px; }
.product-card { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:#fff; display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease; }
.product-card:hover { transform:translateY(-3px); box-shadow:0 12px 26px #19332d12; }
.product-media { position:relative; display:grid; place-items:center; min-height:208px; padding:16px; background:#f5faf7; border-bottom:1px solid var(--line); }
.product-media img { display:block; width:100%; height:176px; object-fit:contain; mix-blend-mode:multiply; }
.product-badge { position:absolute; top:12px; left:12px; z-index:1; padding:5px 9px; border-radius:999px; color:#fff; background:var(--coral); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.product-card-body { display:flex; flex:1; flex-direction:column; padding:20px; }
.product-category { color:var(--coral); font-size:10px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.product-card h3 { min-height:58px; margin:9px 0 16px; color:var(--green-dark); font-size:18px; line-height:1.25; }
.product-title-link { color:inherit; }
.product-title-link:hover { color:var(--green); }
.product-price { display:flex; align-items:end; justify-content:space-between; gap:10px; padding:13px 0; border-top:1px solid var(--line); }
.product-price span { color:var(--muted); font-size:11px; }
.product-price strong { color:var(--green-dark); font-size:19px; white-space:nowrap; }
.product-cta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:10px; color:var(--green); font-size:13px; font-weight:800; }
.product-cta span { color:var(--coral); font-size:18px; transition:transform .2s ease; }
.product-cta:hover span { transform:translateX(3px); }
.catalog-empty { margin:22px 0; padding:44px 28px; border:1px dashed var(--line); border-radius:18px; text-align:center; background:#fff; }
.catalog-empty h3 { font-size:24px; }
.catalog-empty p { color:var(--muted); }
.catalog-empty .button { margin-top:8px; }
.catalog-disclaimer { margin:28px 0 0; color:var(--muted); font-size:12px; line-height:1.6; }
.catalog-callout { margin-top:35px; margin-bottom:88px; padding:38px 46px; border-radius:22px; background:var(--coral); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:25px; }
.catalog-callout h2 { color:#fff; font-size:32px; }
.catalog-callout p { margin:8px 0 0; color:#fff6f3; }
.catalog-callout .eyebrow { color:#ffe1d8; margin-bottom:9px; }
.catalog-callout .button-light { flex-shrink:0; }
.product-card[hidden] { display:none; }
@media (min-width:1180px) { .product-grid { grid-template-columns:repeat(4, minmax(0, 1fr)); } }
@media (max-width:850px) { .catalog-layout { grid-template-columns:1fr; } .product-filters { position:static; } .product-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } .catalog-callout { margin-left:15px; margin-right:15px; } }
@media (max-width:580px) { .catalog-hero { padding:56px 0 50px; } .catalog-section { padding-top:55px; } .catalog-heading { align-items:flex-start; flex-direction:column; margin-bottom:25px; } .catalog-heading h2 { font-size:34px; } .product-grid { grid-template-columns:1fr; } .product-card h3 { min-height:0; } .catalog-callout { align-items:flex-start; flex-direction:column; margin-top:20px; margin-bottom:55px; padding:30px 24px; } .catalog-callout h2 { font-size:28px; } }
