/* Product discovery and detail layouts. Shared with the local Design Lab. */
.catalog-area {padding-block:64px;scroll-margin-top:90px}
.catalog-area h2 {max-width:750px;font-size:clamp(2rem,5vw,3.3rem);line-height:1.25;color:var(--forest-deep);letter-spacing:-.01em}
.catalog-intro {max-width:650px;color:var(--muted);font-size:18px}
.catalog-heading {display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px}
.catalog-heading .button {flex-shrink:0}
.catalog-eyebrow {font-size:14px;letter-spacing:.12em}
.catalog-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.catalog-card {display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-card);transition:box-shadow .2s,transform .2s}
.catalog-card:hover {box-shadow:var(--shadow);transform:translateY(-3px)}
.catalog-card-image {display:block;aspect-ratio:1;background:#fff;border-bottom:1px solid var(--line);padding:16px}
.catalog-card-image img {width:100%;height:100%;object-fit:contain}
.catalog-card-body {padding:20px;display:flex;flex-direction:column;flex:1;gap:12px}
.catalog-card-category {font-size:14px;color:var(--leaf);font-weight:700}
.catalog-card h3 {font:600 21px/1.4 var(--serif);margin:0;color:var(--forest)}
.catalog-card h3 a {display:block}
.catalog-card h3 a:hover {text-decoration:underline;text-underline-offset:4px}
.catalog-card-price {font-size:24px;color:var(--forest);margin-top:auto}
.catalog-card-note {font-size:14px;color:var(--muted);margin:0}
.catalog-card .button {width:100%;min-height:48px;font-size:16px}
.catalog-tools {display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;padding:24px;background:var(--cream);border-radius:var(--radius-card);margin-bottom:20px}
.catalog-tools label {display:flex;flex-direction:column;gap:8px;font-size:16px;font-weight:700;color:var(--forest)}
.catalog-tools input,.catalog-tools select {width:100%;min-width:0;min-height:52px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--paper);color:var(--ink);font:400 17px var(--sans)}
.catalog-filters {display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.catalog-filter {min-height:48px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--forest);padding:10px 18px;font:600 16px var(--sans);cursor:pointer}
.catalog-filter[aria-pressed=true] {background:var(--forest);color:var(--paper);border-color:var(--forest)}
.catalog-results {display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--muted);font-size:16px;margin-bottom:24px}
.catalog-results p {margin:0}
.catalog-empty {padding:40px 24px;background:var(--cream);border-radius:var(--radius-card);text-align:center;font-size:18px}
.catalog-more {display:flex;justify-content:center;margin-top:32px}
.catalog-source {margin-top:24px;color:var(--muted);font-size:14px;max-width:800px}
.product-page {font-size:18px;padding-bottom:90px}
.product-page .header-inner {height:80px;gap:12px}
.product-header-nav {display:flex;align-items:center;gap:24px;font-size:16px;font-weight:650}
.product-header-nav a {min-height:48px;display:inline-flex;align-items:center}
.product-header-nav a:last-child {color:var(--leaf)}
.product-breadcrumb {display:flex;flex-wrap:wrap;gap:8px;padding-block:24px;color:var(--muted);font-size:14px}
.product-breadcrumb a {text-decoration:underline;text-underline-offset:4px;min-height:32px;display:inline-flex;align-items:center}
.product-breadcrumb span {display:inline-flex;align-items:center}
.product-overview {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start;padding-block:8px 56px}
.product-gallery {min-width:0}
.product-photo {position:relative;width:100%;aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius-panel);background:#fff;padding:24px;cursor:zoom-in;overflow:hidden}
.product-photo img {width:100%;height:100%;object-fit:contain}
.product-photo-label {position:absolute;right:16px;bottom:12px;background:var(--paper);color:var(--forest);border-radius:var(--radius-control);padding:6px 12px;font-size:14px}
.product-thumbs {display:flex;gap:10px;overflow-x:auto;margin-top:16px;padding:3px 3px 12px;scrollbar-width:thin}
.product-thumb {width:76px;height:76px;flex:0 0 76px;background:#fff;padding:5px;border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer}
.product-thumb[aria-pressed=true] {outline:2px solid var(--forest);outline-offset:1px}
.product-thumb img {width:100%;height:100%;object-fit:contain}
.product-summary h1 {font-size:clamp(2.2rem,3.6vw,3.25rem);font-weight:600;letter-spacing:-.01em;line-height:1.25;overflow-wrap:break-word}
.product-fullname {font-size:16px;color:var(--muted);line-height:1.6}
.product-purchase {padding:24px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-card);margin-block:24px}
.product-price-label {font-size:14px;color:var(--muted);margin-bottom:4px}
.product-price {font-size:36px;color:var(--forest);line-height:1.3;display:block;margin-bottom:12px}
.product-shipping {font-size:16px;color:var(--muted);margin-bottom:20px}
.product-actions {display:grid;gap:12px}
.product-actions .button {min-height:54px;font-size:17px;line-height:1.4;text-align:center}
.product-summary-links {display:flex;flex-wrap:wrap;gap:8px 24px;font-size:16px}
.product-summary-links a {min-height:48px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:5px}
.product-details {display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:56px;align-items:start;padding-block:48px;border-top:1px solid var(--line);scroll-margin-top:100px}
.product-details h2 {font-size:clamp(1.8rem,3vw,2.6rem);color:var(--forest);line-height:1.2}
.product-description {min-width:0;overflow-wrap:anywhere}
.product-description p {white-space:pre-line;line-height:1.8;margin-bottom:20px}
.product-description h3 {font:600 23px/1.4 var(--serif);margin-block:32px 16px;color:var(--forest)}
.product-description img {width:100%;height:auto;max-width:720px;margin:24px auto;border-radius:var(--radius-card)}
.product-source-note {font-size:14px;color:var(--muted);padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:28px}
.product-help {padding:28px;background:var(--cream);border-radius:var(--radius-card);font-size:16px}
.product-help h3 {font:600 26px/1.4 var(--serif);color:var(--forest);margin-bottom:16px}
.product-help .button {width:100%;margin-top:12px}
.product-mobile-actions {display:none}
.product-zoom {width:min(92vw,850px);max-width:850px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--paper)}
.product-zoom::backdrop {background:rgba(16,46,36,.8)}
.product-zoom img {width:100%;max-height:75dvh;object-fit:contain}
.product-zoom .button {margin:0 0 12px auto;display:flex}
.product-page .site-footer {padding-bottom:48px}
.catalog-area :focus-visible,.product-page :focus-visible {outline:3px solid var(--leaf);outline-offset:4px}
@media(min-width:1200px){.catalog-grid {grid-template-columns:repeat(4,minmax(0,1fr))}.catalog-featured {grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.catalog-grid {grid-template-columns:repeat(2,minmax(0,1fr))}.product-overview {gap:28px}.product-details {gap:28px}.product-summary h1 {font-size:2.3rem}.catalog-tools {grid-template-columns:1fr 1fr}.catalog-tools label:first-child {grid-column:1/-1}}
@media(max-width:600px){.catalog-area {padding-block:48px}.catalog-heading {display:block}.catalog-heading .button {margin-top:16px}.catalog-grid {gap:12px}.catalog-card-image {padding:8px}.catalog-card-body {padding:14px;gap:10px}.catalog-card h3 {font-size:18px}.catalog-card-price {font-size:22px}.catalog-card-category,.catalog-card-note {font-size:14px}.catalog-card .button {padding:10px 8px;font-size:16px}.catalog-tools {padding:16px;gap:12px;grid-template-columns:1fr}.catalog-tools label:first-child {grid-column:auto}.catalog-results {align-items:start;flex-direction:column;gap:8px}.catalog-filter {padding:10px 14px}.product-page .header-inner {height:72px}.product-header-nav {gap:14px;font-size:14px}.product-header-nav a:last-child {display:none}.product-overview,.product-details {grid-template-columns:1fr;gap:28px}.product-overview {padding-bottom:32px}.product-summary h1 {font-size:2.25rem}.product-purchase {padding:20px}.product-breadcrumb {padding-block:16px}.product-details {padding-block:32px}.product-mobile-actions {position:fixed;z-index:45;bottom:0;left:0;right:0;display:grid;grid-template-columns:auto 1fr;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -8px 32px rgba(16,46,36,.08)}.product-mobile-actions .button {min-height:52px;padding:10px 16px;font-size:16px}.product-mobile-actions strong {color:var(--forest);font-size:20px}.product-mobile-actions small {display:block;font-size:14px;line-height:1.45;color:var(--muted)}.product-page .site-footer {padding-bottom:40px}}
@media(max-width:359px){.catalog-grid {grid-template-columns:1fr}.product-summary h1 {font-size:2rem}.product-header-nav {font-size:14px}.product-photo {padding:12px}.product-mobile-actions {gap:8px;padding-inline:12px}.product-mobile-actions .button {padding-inline:12px}}
@media(prefers-reduced-motion:reduce){.catalog-card {transition:none}.catalog-card:hover {transform:none}}
.product-page .order-status-pill {bottom:110px}
.product-page .cart-button {min-height:48px}
.product-page .toast {bottom:110px}
.catalog-results .text-link {min-height:48px;padding:8px}
@media(max-width:600px){.product-header-nav a[href^="tel:"] {display:none}.product-header-nav {gap:12px}.product-header-nav .cart-button {padding:4px 8px}.product-page .brand-copy b {font-size:14px}.product-page .brand-copy small {font-size:14px;letter-spacing:.12em}.product-page .brand-mark {width:36px;height:36px}.product-page .header-inner {gap:8px}}
.product-breadcrumb a {min-height:44px}
.catalog-page .order-status-pill {bottom:16px}
.product-order-strip {display:flex;justify-content:flex-end;padding:8px max(16px, calc((100% - 1180px)/2));background:var(--cream);border-top:1px solid var(--line)}
.product-order-strip:has(button[hidden]) {display:none}
.product-order-strip .order-status-pill {position:static;max-width:100%;padding:8px 16px;min-height:44px;margin:0;box-shadow:none}
@media(max-width:600px){
 .product-overview {display:flex;flex-direction:column;gap:24px}
 .product-summary {display:contents}
 .product-summary>.eyebrow {order:-1;margin:0 0 -12px}
 .product-summary>h1 {order:0;margin:0}
 .product-gallery {order:1;width:100%}
 .product-summary>.product-fullname {order:2;margin:0}
 .product-summary>.product-purchase {order:3;width:100%;margin:0}
 .product-summary>.product-summary-links {order:4}
}

@media(max-width:359px){.product-page .brand-mark{display:none}.product-header-nav{gap:8px}.product-mobile-actions{grid-template-columns:110px minmax(0,1fr)}.product-mobile-actions .button{gap:4px}}

@media(max-width:600px){.catalog-card .button span[aria-hidden=true]{display:none}}

/* Free shipping uses the existing offer label on every purchasing surface. */
.offer-label.shipping-label{display:inline-block;max-width:100%;background:var(--forest);color:var(--paper)}
.catalog-card-note .offer-label{display:block;padding:6px 4px;text-align:center}
.product-shipping .offer-label{display:inline-block;margin-bottom:8px;font-size:16px}
.product-mobile-actions small{font-weight:700;color:var(--forest)}
@media(max-width:359px){.product-mobile-actions{grid-template-columns:120px minmax(0,1fr)}}
