/* Homepage only. Mobile first; static fallbacks do not pretend to be loading. */
.home-content { --section-space:clamp(3.5rem,7vw,6.5rem); }
.home-section { margin-block:var(--section-space); }
.home-hero { display:grid; border-radius:24px; overflow:hidden; background:#f2e5df; }
.hero-copy { padding:2.25rem 1.5rem; }
.eyebrow { color:var(--accent); font-size:.66rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; margin:0 0 1rem; }
.eyebrow .icon { width:16px; height:16px; margin-right:.3rem; }
.hero-copy h1 { margin:.3rem 0 1.5rem; max-width:550px; font-size:clamp(2.6rem,5.3vw,5.2rem); line-height:1.04; }
.hero-description { font-size:.92rem; color:#65534a; max-width:430px; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.7rem 1.3rem; margin-top:1.8rem; }
.hero-actions .button { font-size:.85rem; }
.hero-footnote { display:flex; align-items:center; gap:.6rem; margin:1.7rem 0 0; color:var(--muted); font-size:.7rem; }
.hero-footnote .icon { width:17px; height:17px; }
.hero-visual { position:relative; min-width:0; aspect-ratio:1.2; overflow:hidden; }
.hero-visual .editorial-image,.season-visual .editorial-image { position:absolute; inset:0; }
.editorial-image { width:100%; height:100%; object-fit:cover; }
.hero-label { position:absolute; left:1rem; right:1rem; bottom:1rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.9rem 1.1rem; background:rgb(255 250 244 / 94%); border-radius:12px; font-family:Georgia,serif; font-size:1.1rem; box-shadow:var(--shadow); }
.hero-label .icon { width:20px; color:var(--accent); }
.values-strip { display:grid; grid-template-columns:1fr; gap:.9rem; justify-items:center; padding:1.5rem 0; border-bottom:1px solid var(--line); color:var(--muted); }
.values-strip span { display:flex; gap:.6rem; align-items:center; font-size:.72rem; }
.values-strip .icon { width:19px; height:19px; color:var(--accent); }
.section-heading { display:flex; align-items:end; flex-wrap:wrap; justify-content:space-between; gap:.5rem 2rem; margin-bottom:1.9rem; }
.section-heading h2 { margin:0; }
.section-heading .eyebrow { margin-bottom:.7rem; }
.section-description { color:var(--muted); font-size:.87rem; max-width:550px; margin:1rem 0 0; }
.category-grid,.product-grid,.benefits-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem .8rem; }
.category-card { min-width:0; }
.category-card > a { display:block; text-decoration:none; border-radius:var(--radius); }
.category-media { aspect-ratio:4/5; overflow:hidden; border-radius:var(--radius); background:#f1e6dc; }
.category-media img { width:100%; height:100%; object-fit:cover; }
.category-1 .category-media { background:#e8e9df; }
.category-1 img { filter:hue-rotate(20deg); }
.category-4 img { filter:saturate(.5); }
.category-copy { position:relative; padding:.9rem .1rem 0; }
.category-copy h3 { font-size:1.1rem; margin:0; line-height:1.25; }
.category-copy p { color:var(--muted); font-size:.66rem; margin:.4rem 0 0; }
.category-copy .icon { display:none; }
.category-card a:hover h3 { color:var(--accent); }
.category-pending { color:var(--muted); }
.product-grid { gap:1.8rem .8rem; }
.product-card-link { display:block; text-decoration:none; border-radius:var(--radius); }
.product-media { position:relative; aspect-ratio:1; background:#f0e5dd; border-radius:var(--radius); overflow:hidden; }
.product-media > img { display:block; width:100%; height:100%; object-fit:contain; }
.product-card h3 { font-family:system-ui,sans-serif; font-size:.82rem; line-height:1.55; font-weight:500; margin:.85rem 0 .5rem; }
.product-card-link:hover h3 { color:var(--accent); }
.product-meta { display:flex; align-items:start; flex-wrap:wrap; gap:.4rem .7rem; }
.product-meta .price { font-size:.85rem; font-weight:600; color:var(--ink); }
.price del { font-size:.75rem; color:var(--muted); font-weight:400; margin-right:.35rem; }
.price ins { text-decoration:none; color:var(--accent); }
.product-stock { font-size:.62rem; color:#57634b; }
.product-stock::before { content:""; display:inline-block; width:5px; height:5px; border-radius:50%; background:currentColor; margin-right:.35rem; vertical-align:middle; }
.product-stock.is-unavailable { color:var(--muted); }
.product-badge { position:absolute; top:.7rem; left:.7rem; background:#fffaf3; color:var(--accent); border-radius:999px; padding:.3rem .7rem; font-size:.64rem; font-weight:600; }
.product-view { display:none; position:absolute; bottom:.8rem; left:.8rem; right:.8rem; align-items:center; justify-content:space-between; border-radius:999px; background:#fffaf5; padding:.6rem .9rem; font-size:.75rem; color:var(--ink); }
.product-view .icon { width:18px; height:18px; }
.missing-photo { position:absolute; bottom:1rem; left:.75rem; right:.75rem; font-size:.63rem; text-align:center; background:rgb(255 250 246 / 90%); border-radius:8px; padding:.35rem; color:var(--muted); }
.empty-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.empty-product img { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius); opacity:.8; }
.empty-product-1 img { filter:saturate(.55); }
.empty-product-2 img { filter:hue-rotate(20deg); }
.empty-product-3 img { filter:saturate(.4); }
.skeleton-line { display:block; height:8px; border-radius:8px; background:#e9ded6; margin-top:1rem; width:80%; }
.skeleton-line.short { width:40%; margin-top:.65rem; }
.empty-caption { text-align:center; color:var(--muted); font-size:.83rem; padding:1rem 1.3rem; border:1px solid var(--line); background:#fffdf9; border-radius:12px; margin:1.6rem 0 0; }
.season-banner { display:grid; border-radius:24px; overflow:hidden; background:#e6e9df; }
.season-visual { position:relative; aspect-ratio:1.3; min-width:0; overflow:hidden; }
.season-copy { padding:2rem 1.5rem; }
.season-copy h2 { margin:0 0 1.2rem; font-size:clamp(2rem,3.5vw,3.6rem); }
.season-copy > p:not(.eyebrow) { color:#5d6255; font-size:.9rem; max-width:460px; }
.season-copy .button { margin-top:1rem; font-size:.8rem; }
.button-light { background:#fffaf5; color:var(--ink); }
.button-light:hover { background:#f2e5df; }
.personalized-wrap { padding:2rem 1rem; background:#f8eeee; border-radius:24px; margin-block:var(--section-space); }
.personalized-wrap .home-section { margin:0; }
.personalization-steps { list-style:none; margin:2rem 0 0; padding:1.5rem 0 0; border-top:1px solid #e5cdcd; display:grid; gap:1rem; }
.personalization-steps li { display:flex; align-items:center; gap:.85rem; font-size:.8rem; }
.personalization-steps span { display:grid; place-items:center; width:34px; height:34px; border:1px solid #c8a0a5; border-radius:50%; color:var(--accent); font-family:Georgia,serif; font-size:.85rem; flex-shrink:0; }
.story-section { display:grid; gap:2.5rem; align-items:center; }
.story-visual { position:relative; aspect-ratio:1; overflow:hidden; border-radius:24px 24px 80px 24px; }
.story-caption { position:absolute; left:1rem; bottom:1rem; background:#fffaf5; padding:.7rem 1rem; border-radius:12px; font-size:.7rem; box-shadow:var(--shadow); }
.story-copy h2 { margin:0 0 1.5rem; }
.story-copy > p:not(.eyebrow) { color:var(--muted); font-size:.95rem; }
.story-copy .story-signature { font-family:Georgia,serif; font-size:1.3rem!important; font-style:italic; color:var(--accent)!important; margin-top:1.7rem; }
.benefits-section { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:2rem 0; }
.benefits-grid { gap:2rem 1.3rem; }
.benefits-grid > li > .icon { color:var(--accent); width:30px; height:30px; }
.benefits-grid h3 { font-family:system-ui,sans-serif; font-size:.8rem; font-weight:600; line-height:1.5; margin:1rem 0 .5rem; }
.benefits-grid p { font-size:.73rem; color:var(--muted); margin:0; }
.centered { text-align:center; justify-content:center; }
.reviews-grid { display:grid; gap:1rem; }
.review-card { margin:0; background:#fffdf9; border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem; }
.review-rating { color:#96683e; font-size:1rem; letter-spacing:.12em; margin:0 0 1rem; }
.review-card blockquote { margin:0; font-family:Georgia,serif; font-size:1.1rem; line-height:1.7; overflow-wrap:anywhere; }
.review-card figcaption { margin-top:1.3rem; font-size:.75rem; display:flex; flex-direction:column; gap:.25rem; }
.review-card figcaption a { color:var(--muted); font-size:.7rem; }
.verified { font-size:.65rem; color:#58634d; }
.verified .icon { width:13px; height:13px; }
.review-empty { max-width:700px; margin:auto; text-align:center; padding:2rem; border:1px solid var(--line); border-radius:var(--radius); background:#fffdf9; }
.review-empty > .icon { color:var(--accent); width:32px; height:32px; }
.review-empty h3 { font-size:1.5rem; }
.review-empty p { color:var(--muted); font-size:.87rem; }
.newsletter-section { background:#f0dcd7; border-radius:24px; padding:2rem 1.5rem; display:grid; gap:2rem; }
.newsletter-section > div > .icon { color:var(--accent); margin-bottom:1rem; }
.newsletter-section h2 { margin:0; font-size:clamp(2rem,3.4vw,3rem); max-width:480px; }
.newsletter-section p:not(.eyebrow) { color:#685047; font-size:.85rem; max-width:500px; }
.newsletter-preview { align-self:center; min-width:0; }
.newsletter-preview label { display:block; font-size:.75rem; margin:.6rem 0; }
.newsletter-field { display:flex; gap:.5rem; flex-wrap:wrap; }
.newsletter-field input { min-width:0; width:100%; flex:1 1 180px; background:#fffaf6; border:1px solid #bd9d91; border-radius:999px; }
.newsletter-field input:disabled { opacity:1; color:#73635b; }
.newsletter-field button { flex-shrink:0; font-size:.8rem; background:#e4c7c0; color:#604c43; border:1px solid #bda098; }
.newsletter-status { display:inline-block; border:1px solid #c4a097; padding:.3rem .75rem; border-radius:999px; font-size:.65rem!important; margin:0; }
.newsletter-section .fine-print { font-size:.68rem!important; }
@media (min-width:30rem) {
 .values-strip { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; }
 .values-strip span { flex-direction:column; text-align:center; gap:.4rem; font-size:.7rem; }
 .hero-copy { padding:2.75rem 2rem; }
 .personalized-wrap { padding:2.5rem 1.5rem; }
}
@media (min-width:48rem) {
 .home-hero { grid-template-columns:1fr 1fr; }
 .hero-copy { padding:clamp(2rem,4vw,4.25rem); align-self:center; }
 .hero-visual { aspect-ratio:auto; min-height:530px; }
 .hero-label { left:1.75rem; right:1.75rem; bottom:1.75rem; padding:1.1rem 1.4rem; }
 .values-strip { padding-block:1.75rem; }
 .values-strip span { flex-direction:row; font-size:.78rem; }
 .category-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.8rem 1.25rem; }
 .product-grid,.empty-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem; }
 .product-card h3 { font-size:.9rem; }
 .product-meta .price { font-size:.95rem; }
 .season-banner { grid-template-columns:.85fr 1.15fr; }
 .season-visual { aspect-ratio:auto; min-height:430px; max-height:530px; }
 .season-copy { align-self:center; padding:2.75rem; }
 .personalized-wrap { padding:3rem 2rem; }
 .personalization-steps { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
 .personalization-steps li { font-size:.75rem; }
 .story-section { grid-template-columns:1fr 1fr; gap:3rem; }
 .story-copy { padding:1rem; }
 .benefits-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:2rem; }
 .benefits-section { padding-block:2.5rem; }
 .reviews-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .reviews-count-1 { grid-template-columns:1fr; max-width:700px; margin-inline:auto; }
 .reviews-count-2 { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:1000px; margin-inline:auto; }
 .review-card { padding:1.5rem; }
 .newsletter-section { grid-template-columns:1.1fr .9fr; padding:3rem; gap:3rem; }
}
@media (min-width:64rem) {
 .category-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:1.25rem; }
 .category-copy h3 { font-size:1.1rem; }
 .hero-visual { min-height:570px; }
 .story-section { gap:5rem; }
 .story-copy h2 { font-size:3.4rem; }
 .personalized-wrap { padding:3rem; }
 .newsletter-section { padding:3.5rem 4rem; }
}
@media (hover:hover) and (min-width:48rem) {
 .product-view { display:flex; opacity:0; transform:translateY(5px); }
 .product-card-link:hover .product-view,.product-card-link:focus-visible .product-view { opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion:no-preference) {
 .category-media img,.product-media > img { transition:transform .35s ease; }
 .category-card a:hover img { transform:scale(1.035); }
 .product-view { transition:opacity .2s ease,transform .2s ease; }
}

