/* Fruitato storefront — RTL, dependency-free, production UI */
@font-face {
    font-family: "Vazirmatn";
    src: url("../fonts/Vazirmatn-Arabic.woff2") format("woff2");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    unicode-range: U+0600-06FF, U+0750-077F, U+0870-08FF, U+200C-200D, U+FB50-FDFF, U+FE70-FEFC;
}

@font-face {
    font-family: "Vazirmatn";
    src: url("../fonts/Vazirmatn-LatinExt.woff2") format("woff2");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    unicode-range: U+0100-024F, U+1E00-1EFF, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Vazirmatn";
    src: url("../fonts/Vazirmatn-Latin.woff2") format("woff2");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122, U+2190-2193, U+2212, U+2215;
}

:root {
    color-scheme: light;
    --ink: #171912;
    --ink-soft: #4d5147;
    --ink-muted: #686c62;
    --paper: #f8f6f1;
    --surface: #fffdfa;
    --surface-soft: #f0ece6;
    --forest: #153c2f;
    --forest-deep: #0d2c22;
    --lime: #baf13f;
    --lime-strong: #a9de32;
    --lime-soft: #eaf8c8;
    --berry: #a9364b;
    --rose: #fedbd6;
    --mango: #fee6a2;
    --kiwi: #d6e2a5;
    --line: rgba(23, 25, 18, .13);
    --line-light: rgba(255, 255, 255, .2);
    --error: #a72b35;
    --error-soft: #fff0f1;
    --shadow-sm: 0 8px 24px rgba(23, 31, 22, .07);
    --shadow-md: 0 18px 50px rgba(23, 31, 22, .11);
    --shadow-lg: 0 28px 70px rgba(23, 31, 22, .16);
    --radius-sm: 14px;
    --radius-md: 22px;
    --radius-lg: 32px;
    --radius-pill: 999px;
    --shell: min(1280px, calc(100% - 48px));
    --section-space: clamp(4.5rem, 8vw, 8rem);
    --ease-out: cubic-bezier(.16, 1, .3, 1);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 7.5rem;
    text-size-adjust: 100%;
}

body {
    margin: 0;
    min-width: 320px;
    overflow-x: clip;
    background: var(--paper);
    color: var(--ink);
    font-family: "Vazirmatn", Tahoma, sans-serif;
    font-size: 1rem;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
}

body.is-locked {
    overflow: hidden;
}

button,
input,
select,
textarea {
    color: inherit;
    font: inherit;
}

button,
select {
    cursor: pointer;
}

button:disabled,
fieldset:disabled :is(button, input, select, textarea) {
    cursor: not-allowed;
}

img,
svg {
    display: block;
}

img {
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
    text-decoration: none;
}

p,
h1,
h2,
h3,
h4 {
    margin-block: 0;
}

ul,
ol,
dl,
dd {
    margin: 0;
    padding: 0;
}

[hidden] {
    display: none !important;
}

::selection {
    background: var(--lime);
    color: var(--forest-deep);
}

:focus-visible {
    outline: 3px solid var(--forest);
    outline-offset: 3px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.store-shell {
    width: var(--shell);
    margin-inline: auto;
}

.page-section {
    padding-block: var(--section-space);
}

.icon {
    width: 1.35rem;
    height: 1.35rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.icon-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

.skip-link {
    position: fixed;
    inset: .75rem auto auto 50%;
    z-index: 1000;
    min-height: 44px;
    padding: .65rem 1.1rem;
    border-radius: var(--radius-pill);
    background: var(--forest-deep);
    color: #fff;
    transform: translate(-50%, -160%);
    transition: transform .2s var(--ease-out);
}

.skip-link:focus {
    transform: translate(-50%, 0);
}

.button {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    padding: .75rem 1.35rem;
    border: 1px solid transparent;
    border-radius: var(--radius-pill);
    font-weight: 750;
    line-height: 1.25;
    transition: background-color .2s, border-color .2s, color .2s, box-shadow .25s, transform .25s var(--ease-out);
}

.button .icon {
    width: 1.15rem;
    height: 1.15rem;
}

.button:hover:not(:disabled) {
    transform: translateY(-2px);
}

.button--primary {
    background: var(--lime);
    color: var(--forest-deep);
    box-shadow: 0 10px 28px rgba(130, 177, 31, .22);
}

.button--primary:hover:not(:disabled) {
    background: var(--lime-strong);
    box-shadow: 0 14px 34px rgba(130, 177, 31, .28);
}

.button--ghost,
.button--outline {
    border-color: var(--line);
    background: rgba(255, 255, 255, .55);
    color: var(--ink);
}

.button--ghost:hover:not(:disabled),
.button--outline:hover:not(:disabled) {
    border-color: rgba(23, 25, 18, .34);
    background: #fff;
}

.button--compact {
    min-height: 44px;
    padding: .55rem 1rem;
}

.button--block {
    width: 100%;
}

.button--grow {
    flex: 1;
}

.button:disabled {
    background: #dde0d8;
    color: #74786f;
    box-shadow: none;
    opacity: 1;
}

.button__round-icon {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    background: #fff;
}

.text-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: .55rem;
    font-weight: 750;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: .3em;
    transition: gap .2s, text-decoration-color .2s;
}

.text-link:hover {
    gap: .8rem;
    text-decoration-color: currentColor;
}

.text-link .icon {
    width: 1.1rem;
    height: 1.1rem;
}

.text-link--light {
    color: #fff;
}

/* Header */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    padding-block: .85rem;
    pointer-events: none;
}

.site-header__surface {
    display: grid;
    min-height: 68px;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;
    padding-inline: 1.25rem;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 24px;
    background: rgba(255, 253, 250, .92);
    box-shadow: var(--shadow-sm);
    backdrop-filter: blur(16px) saturate(130%);
    pointer-events: auto;
}

.brand {
    display: inline-flex;
    width: fit-content;
    min-height: 44px;
    align-items: center;
    gap: .15rem;
    font-size: 1.55rem;
    font-weight: 900;
    letter-spacing: -.045em;
}

.brand__mark {
    display: grid;
    width: 1.2rem;
    height: 1.2rem;
    place-items: center;
    color: #91bd22;
    transform: translateY(-.45rem) rotate(18deg);
}

.brand__mark .icon {
    width: 1.2rem;
    height: 1.2rem;
    fill: var(--lime);
}

.desktop-nav {
    display: flex;
    align-items: center;
    gap: clamp(1.2rem, 3vw, 2.75rem);
}

.desktop-nav a {
    position: relative;
    display: grid;
    min-height: 44px;
    place-items: center;
    color: var(--ink-soft);
    font-size: .9rem;
    font-weight: 650;
}

.desktop-nav a::after {
    position: absolute;
    inset: auto 50% .22rem auto;
    width: .34rem;
    height: .34rem;
    border-radius: 50%;
    background: var(--lime-strong);
    content: "";
    opacity: 0;
    transform: translateX(50%) scale(.3);
    transition: opacity .2s, transform .2s;
}

.desktop-nav a:hover,
.desktop-nav a.is-active {
    color: var(--ink);
}

.desktop-nav a.is-active::after {
    opacity: 1;
    transform: translateX(50%) scale(1);
}

.header-actions {
    display: flex;
    justify-self: end;
    gap: .35rem;
}

.icon-button,
.menu-toggle {
    position: relative;
    display: grid;
    width: 46px;
    height: 46px;
    padding: 0;
    place-items: center;
    border: 1px solid transparent;
    border-radius: 50%;
    background: transparent;
    transition: background-color .2s, border-color .2s, transform .2s;
}

.icon-button:hover,
.menu-toggle:hover {
    border-color: var(--line);
    background: #fff;
}

.cart-badge {
    position: absolute;
    inset: -.1rem auto auto -.1rem;
    display: grid;
    min-width: 1.25rem;
    height: 1.25rem;
    padding-inline: .22rem;
    place-items: center;
    border: 2px solid #fff;
    border-radius: var(--radius-pill);
    background: var(--lime-strong);
    color: var(--forest-deep);
    font-size: .64rem;
    font-weight: 850;
}

.menu-toggle {
    display: none;
}

.menu-toggle .icon--close {
    display: none;
}

.menu-toggle[aria-expanded="true"] .icon--menu {
    display: none;
}

.menu-toggle[aria-expanded="true"] .icon--close {
    display: block;
}

.header-search,
.mobile-menu {
    margin-top: .55rem;
    border: 1px solid rgba(255, 255, 255, .75);
    border-radius: var(--radius-md);
    background: rgba(255, 253, 250, .97);
    box-shadow: var(--shadow-md);
    pointer-events: auto;
}

.header-search {
    padding: 1rem 1.25rem 1.25rem;
}

.header-search form {
    max-width: 760px;
    margin-inline: auto;
}

.header-search label {
    display: block;
    margin-bottom: .35rem;
    color: var(--ink-soft);
    font-size: .84rem;
    font-weight: 650;
}

.search-field {
    display: flex;
    min-height: 50px;
    align-items: center;
    gap: .6rem;
    padding: .25rem .45rem .25rem .25rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-pill);
    background: #fff;
}

.search-field > .icon {
    flex: 0 0 auto;
    margin-inline-start: .55rem;
    color: var(--ink-muted);
}

.search-field input {
    min-width: 0;
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
}

.mobile-menu__inner {
    display: grid;
    padding: .65rem;
}

.mobile-menu a {
    display: flex;
    min-height: 48px;
    align-items: center;
    padding-inline: .8rem;
    border-radius: 12px;
    font-weight: 700;
}

.mobile-menu a:hover {
    background: var(--lime-soft);
}

.flash-message {
    position: fixed;
    inset: auto 50% 1.25rem auto;
    z-index: 150;
    display: flex;
    width: min(560px, calc(100% - 32px));
    min-height: 54px;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 1rem;
    border: 1px solid rgba(21, 60, 47, .22);
    border-radius: 18px;
    background: var(--lime-soft);
    box-shadow: var(--shadow-md);
    color: var(--forest-deep);
    transform: translateX(50%);
}

.flash-message--error {
    border-color: rgba(167, 43, 53, .25);
    background: var(--error-soft);
    color: var(--error);
}

.flash-message button {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
}

.toast-region {
    position: fixed;
    inset: auto auto 1rem 1rem;
    z-index: 160;
}

/* Footer */
.site-footer {
    margin-top: var(--section-space);
    padding: clamp(3rem, 6vw, 5rem) 0 1.5rem;
    background: var(--forest-deep);
    color: #fff;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.45fr repeat(3, 1fr);
    gap: clamp(2rem, 5vw, 5rem);
}

.brand--footer {
    color: #fff;
}

.footer-brand > p,
.footer-contact > p {
    max-width: 36ch;
    margin-top: 1.15rem;
    color: rgba(255, 255, 255, .68);
    font-size: .92rem;
}

.social-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: .55rem;
    margin-top: 1rem;
    color: var(--lime);
    font-weight: 700;
}

.footer-links,
.footer-contact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .55rem;
}

.footer-links h2,
.footer-contact h2 {
    margin-bottom: .5rem;
    font-size: 1rem;
}

.footer-links a,
.footer-contact a {
    min-height: 36px;
    color: rgba(255, 255, 255, .7);
    font-size: .9rem;
    transition: color .2s;
}

.footer-links a:hover,
.footer-contact a:hover {
    color: #fff;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 3rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line-light);
    color: rgba(255, 255, 255, .53);
    font-size: .78rem;
}

/* Shared page language */
.section-heading {
    display: flex;
    max-width: 800px;
    flex-direction: column;
    gap: .65rem;
    margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.section-heading--split {
    max-width: none;
    flex-direction: row;
    align-items: end;
    justify-content: space-between;
    gap: 1.5rem;
}

.section-heading h2 {
    max-width: 17ch;
    font-size: clamp(2rem, 4vw, 3.65rem);
    font-weight: 900;
    letter-spacing: -.045em;
    line-height: 1.18;
    text-wrap: balance;
}

.section-heading p {
    max-width: 58ch;
    color: var(--ink-soft);
}

.breadcrumbs {
    margin-bottom: 1.15rem;
    color: var(--ink-muted);
    font-size: .82rem;
}

.breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    list-style: none;
}

.breadcrumbs li {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.breadcrumbs li:not(:last-child)::after {
    content: "/";
    color: #a3a69e;
}

.breadcrumbs a:hover {
    color: var(--ink);
    text-decoration: underline;
    text-underline-offset: .25em;
}

.page-hero {
    padding-block: clamp(2.5rem, 6vw, 5.5rem) clamp(2rem, 4vw, 3.5rem);
}

.page-hero--compact {
    padding-bottom: 2rem;
}

.page-hero__row {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.page-hero h1,
.static-hero h1,
.search-hero h1 {
    max-width: 18ch;
    font-size: clamp(2.6rem, 6vw, 5.2rem);
    font-weight: 900;
    letter-spacing: -.05em;
    line-height: 1.05;
    text-wrap: balance;
}

.page-hero__row p {
    max-width: 52ch;
    margin-top: 1rem;
    color: var(--ink-soft);
}

.result-count {
    flex: 0 0 auto;
    padding: .55rem 1rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, .55);
    color: var(--ink-soft);
    font-size: .84rem;
    font-weight: 700;
}

.page-hero__symbol {
    display: grid;
    width: clamp(5rem, 10vw, 8.5rem);
    aspect-ratio: 1;
    place-items: center;
    border-radius: 58% 42% 62% 38%;
    background: var(--lime);
    color: var(--forest);
    transform: rotate(-8deg);
}

.page-hero__symbol .icon {
    width: 42%;
    height: 42%;
}

.empty-state {
    display: flex;
    width: 100%;
    min-height: 330px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .75rem;
    padding: clamp(2rem, 6vw, 4rem);
    border: 1px dashed rgba(23, 25, 18, .22);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .48);
    text-align: center;
}

.empty-state__icon {
    display: grid;
    width: 4.5rem;
    height: 4.5rem;
    place-items: center;
    border-radius: 52% 48% 60% 40%;
    background: var(--lime-soft);
    color: var(--forest);
}

.empty-state__icon .icon {
    width: 2rem;
    height: 2rem;
}

.empty-state h2 {
    font-size: clamp(1.4rem, 3vw, 2rem);
}

.empty-state p {
    max-width: 54ch;
    color: var(--ink-soft);
}

.empty-state .button {
    margin-top: .5rem;
}

.inline-empty {
    padding: 1rem 1.15rem;
    border: 1px dashed var(--line);
    border-radius: var(--radius-sm);
    background: var(--surface-soft);
    color: var(--ink-soft);
}

/* Home */
.home-hero {
    position: relative;
    margin-top: -6.1rem;
    padding: clamp(9.5rem, 13vw, 12rem) 0 clamp(3rem, 7vw, 6.5rem);
    overflow: hidden;
    background:
        radial-gradient(circle at 88% 38%, rgba(186, 241, 63, .24), transparent 28%),
        radial-gradient(circle at 9% 18%, rgba(254, 219, 214, .5), transparent 20%),
        var(--surface-soft);
}

.home-hero::before {
    position: absolute;
    inset: 15% -5rem auto auto;
    width: 13rem;
    aspect-ratio: 1;
    border: 2.4rem solid rgba(255, 255, 255, .52);
    border-radius: 50%;
    content: "";
    filter: blur(1px);
}

.home-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 5rem);
    direction: ltr;
}

.home-hero__copy,
.home-hero__visual {
    direction: rtl;
}

.home-hero__copy {
    position: relative;
    z-index: 2;
}

.home-hero h1 {
    max-width: 12ch;
    font-size: clamp(3rem, 6.35vw, 6rem);
    font-weight: 950;
    letter-spacing: -.055em;
    line-height: 1.08;
    text-wrap: balance;
}

.home-hero h1 span {
    color: var(--berry);
}

.home-hero__copy > p {
    max-width: 59ch;
    margin-top: 1.55rem;
    color: var(--ink-soft);
    font-size: clamp(1rem, 1.45vw, 1.15rem);
    line-height: 2;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 2rem;
}

.home-hero__microcopy {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.5rem;
    margin-top: 1.7rem;
    color: var(--ink-soft);
    font-size: .84rem;
    font-weight: 650;
}

.home-hero__microcopy span {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.home-hero__microcopy .icon {
    width: 1.1rem;
    height: 1.1rem;
    color: var(--forest);
}

.home-hero__visual {
    position: relative;
    min-width: 0;
    margin: 0;
    isolation: isolate;
    animation: hero-settle .9s var(--ease-out) both;
}

.home-hero__visual > img {
    position: relative;
    z-index: 1;
    width: 116%;
    max-width: none;
    margin-inline-start: -11%;
    filter: drop-shadow(0 32px 34px rgba(62, 49, 32, .17));
}

.home-hero__halo {
    position: absolute;
    inset: 12% 8% 8%;
    border-radius: 50%;
    background: rgba(255, 255, 255, .7);
    filter: blur(35px);
}

.home-hero__pack-brand {
    position: absolute;
    z-index: 3;
    top: 42%;
    left: 80.5%;
    display: flex;
    width: clamp(4.1rem, 7.2vw, 6.7rem);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: var(--forest);
    line-height: 1.25;
    text-align: center;
    transform: translate(-50%, -50%) rotate(.8deg);
}

.home-hero__pack-brand > span {
    display: grid;
    width: clamp(1.05rem, 1.8vw, 1.6rem);
    height: clamp(1.05rem, 1.8vw, 1.6rem);
    place-items: center;
    margin-bottom: .22rem;
    border-radius: 55% 45% 60% 40%;
    background: var(--lime);
}

.home-hero__pack-brand .icon {
    width: 63%;
    height: 63%;
    stroke-width: 2;
}

.home-hero__pack-brand strong {
    font-size: clamp(.62rem, 1.22vw, 1rem);
    font-weight: 950;
    letter-spacing: -.04em;
}

.home-hero__pack-brand small {
    margin-top: .18rem;
    color: rgba(21, 60, 47, .74);
    font-size: clamp(.38rem, .7vw, .58rem);
    font-weight: 650;
}

.hero-note {
    position: absolute;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: .6rem;
    border: 1px solid rgba(255, 255, 255, .82);
    background: rgba(255, 253, 250, .9);
    box-shadow: var(--shadow-md);
    backdrop-filter: blur(10px);
}

.hero-note--texture {
    inset: auto auto 4% 3%;
    padding: .65rem .8rem;
    border-radius: 16px;
}

.hero-note--texture > span {
    display: grid;
    width: 2.3rem;
    height: 2.3rem;
    place-items: center;
    border-radius: 50%;
    background: var(--lime-soft);
    color: var(--forest);
}

.hero-note--texture strong,
.hero-note--texture small {
    display: block;
    line-height: 1.45;
}

.hero-note--texture strong {
    font-size: .8rem;
}

.hero-note--texture small {
    color: var(--ink-muted);
    font-size: .68rem;
}

.hero-note--weight {
    inset: 7% 4% auto auto;
    width: 6.5rem;
    height: 6.5rem;
    justify-content: center;
    flex-direction: column;
    border-radius: 50%;
    background: var(--lime);
    color: var(--forest-deep);
    text-align: center;
    transform: rotate(7deg);
}

.hero-note--weight .icon {
    width: 1.25rem;
    height: 1.25rem;
}

.hero-note--weight span {
    font-size: .83rem;
    font-weight: 850;
    line-height: 1.35;
}

.home-rail {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: -2rem;
    padding: 1rem .75rem;
    border: 1px solid rgba(255, 255, 255, .85);
    border-radius: var(--radius-lg);
    background: rgba(255, 253, 250, .95);
    box-shadow: var(--shadow-md);
}

.home-rail > div {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    padding: .75rem 1rem;
}

.home-rail > div:not(:last-child) {
    border-inline-end: 1px solid var(--line);
}

.home-rail .icon {
    width: 1.7rem;
    height: 1.7rem;
    flex: 0 0 auto;
    color: var(--forest);
}

.home-rail strong,
.home-rail small {
    display: block;
    line-height: 1.5;
}

.home-rail strong {
    font-size: .84rem;
}

.home-rail small {
    color: var(--ink-muted);
    font-size: .72rem;
}

.family-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.2rem;
}

.family-card {
    position: relative;
    display: flex;
    min-height: 540px;
    overflow: hidden;
    flex-direction: column;
    border-radius: var(--radius-lg);
    isolation: isolate;
}

.family-card--puffy {
    background: var(--mango);
}

.family-card--cubes {
    background: var(--rose);
}

.family-card--dried {
    background: var(--kiwi);
}

.family-card__copy {
    position: relative;
    z-index: 2;
    padding: clamp(1.5rem, 3vw, 2.2rem);
}

.family-card__badge {
    display: inline-flex;
    padding: .32rem .7rem;
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, .58);
    color: var(--forest-deep);
    font-size: .7rem;
    font-weight: 800;
}

.family-card h3 {
    margin-top: .75rem;
    font-size: clamp(2rem, 3.4vw, 3rem);
    font-weight: 900;
    letter-spacing: -.04em;
    line-height: 1.15;
}

.family-card__tagline {
    margin-top: .35rem;
    font-weight: 800;
}

.family-card__copy > p:not(.family-card__tagline) {
    max-width: 38ch;
    margin-top: .75rem;
    color: rgba(23, 25, 18, .68);
    font-size: .88rem;
    line-height: 1.85;
}

.family-card .text-link {
    margin-top: .85rem;
    font-size: .84rem;
}

.family-card__visual {
    min-height: 230px;
    flex: 1;
    margin-top: auto;
}

.family-card__visual img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
    transform: scale(1.06);
    transition: transform .55s var(--ease-out);
}

.family-card__placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: rgba(21, 60, 47, .55);
}

.family-card__placeholder .icon {
    width: 5rem;
    height: 5rem;
    stroke-width: 1;
}

.family-card:hover .family-card__visual img {
    transform: scale(1.1) translateY(-4px);
}

.freeze-section {
    padding-top: 0;
}

.freeze-section__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
    padding: clamp(1.25rem, 3vw, 2.25rem);
    border-radius: calc(var(--radius-lg) + 6px);
    background: var(--surface-soft);
}

.freeze-section__visual {
    position: relative;
    margin: 0;
}

.freeze-section__visual img {
    width: 100%;
    aspect-ratio: 1.5;
    border-radius: var(--radius-md);
    object-fit: cover;
}

.freeze-section__visual figcaption {
    position: absolute;
    inset: auto 1rem 1rem;
    padding: .7rem .9rem;
    border: 1px solid rgba(255, 255, 255, .75);
    border-radius: 14px;
    background: rgba(255, 253, 250, .88);
    box-shadow: var(--shadow-sm);
    backdrop-filter: blur(10px);
    color: var(--ink-soft);
    font-size: .76rem;
}

.freeze-section__copy {
    padding: clamp(.5rem, 2vw, 1.5rem);
}

.freeze-section__copy > h2 {
    max-width: 13ch;
    font-size: clamp(2.3rem, 4.5vw, 4.2rem);
    font-weight: 900;
    letter-spacing: -.05em;
    line-height: 1.12;
}

.freeze-section__copy > p {
    max-width: 58ch;
    margin-top: 1.2rem;
    color: var(--ink-soft);
    line-height: 1.95;
}

.process-steps {
    margin-top: 1.6rem;
    list-style: none;
}

.process-steps li {
    display: grid;
    grid-template-columns: 2.7rem 1fr;
    gap: .85rem;
    padding-block: .85rem;
    border-bottom: 1px solid var(--line);
}

.process-steps li > span {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border-radius: 50%;
    background: var(--lime);
    color: var(--forest-deep);
    font-size: .74rem;
    font-weight: 850;
}

.process-steps h3 {
    font-size: 1rem;
}

.process-steps p {
    margin-top: .15rem;
    color: var(--ink-muted);
    font-size: .8rem;
    line-height: 1.7;
}

.use-rail {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    padding: .7rem;
    border: 1px solid rgba(255, 255, 255, .8);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.use-rail > div {
    display: flex;
    min-height: 84px;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    padding: .75rem 1rem;
}

.use-rail > div:not(:last-child) {
    border-inline-end: 1px solid var(--line);
}

.use-rail span {
    display: grid;
    width: 2.7rem;
    height: 2.7rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: var(--lime-soft);
    color: var(--forest);
    font-size: .7rem;
    font-weight: 850;
}

.use-rail strong {
    font-size: .82rem;
}

.products-showcase {
    padding-bottom: 0;
}

.carousel {
    position: relative;
}

.carousel__controls {
    display: flex;
    gap: .45rem;
    margin-bottom: .9rem;
}

.carousel__controls button,
.product-card__add,
.product-card__open,
.product-gallery__thumbs button {
    display: grid;
    width: 46px;
    height: 46px;
    flex: 0 0 auto;
    padding: 0;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: #fff;
    transition: background-color .2s, border-color .2s, transform .2s;
}

.carousel__controls button:hover:not(:disabled),
.product-card__add:hover,
.product-card__open:hover {
    border-color: var(--forest);
    background: var(--lime);
    transform: translateY(-2px);
}

.carousel__controls button:disabled {
    opacity: .35;
}

.carousel__controls [data-carousel-next] .icon {
    transform: rotate(180deg);
}

.journal-band {
    padding-bottom: 0;
}

.journal-band__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
    gap: 1rem;
}

.journal-band__lead {
    position: relative;
    display: flex;
    min-height: 380px;
    overflow: hidden;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(2rem, 5vw, 4rem);
    border-radius: var(--radius-lg);
    background: var(--forest);
    color: #fff;
    isolation: isolate;
}

.journal-band__lead::before {
    position: absolute;
    inset: -9rem auto auto -7rem;
    width: 23rem;
    aspect-ratio: 1;
    border: 5rem solid rgba(186, 241, 63, .08);
    border-radius: 50%;
    content: "";
    z-index: -1;
}

.journal-band__lead h2 {
    max-width: 17ch;
    font-size: clamp(2rem, 4vw, 3.7rem);
    font-weight: 900;
    letter-spacing: -.045em;
    line-height: 1.18;
}

.journal-band__lead p {
    max-width: 54ch;
    margin-top: 1rem;
    color: rgba(255, 255, 255, .68);
}

.journal-band__lead .text-link {
    margin-top: 1rem;
}

.journal-band__art {
    display: grid;
    width: clamp(7rem, 14vw, 12rem);
    aspect-ratio: 1;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 50%;
    background: var(--lime);
    color: var(--forest-deep);
    transform: rotate(-8deg);
}

.journal-band__art .icon {
    width: 42%;
    height: 42%;
    stroke-width: 1;
}

.journal-band__list {
    display: flex;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: #fff;
}

.journal-band__list > a {
    display: flex;
    min-height: 108px;
    flex: 1;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.35rem;
    border-bottom: 1px solid var(--line);
    font-weight: 780;
}

.journal-band__list > a:last-child {
    border-bottom: 0;
}

.journal-band__list > a:hover {
    background: var(--lime-soft);
}

.journal-band__empty {
    display: flex;
    flex: 1;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    padding: 2rem;
}

.journal-band__empty span {
    margin-top: .45rem;
    color: var(--ink-muted);
    font-size: .84rem;
}

.closing-banner {
    padding-bottom: 0;
}

.closing-banner__inner {
    display: flex;
    min-height: 240px;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(2rem, 5vw, 4rem);
    border-radius: var(--radius-lg);
    background: var(--lime-soft);
}

.closing-banner h2 {
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 900;
    letter-spacing: -.045em;
}

.closing-banner p {
    max-width: 52ch;
    margin-top: .5rem;
    color: var(--ink-soft);
}

@keyframes hero-settle {
    from { opacity: .4; transform: translateY(16px) scale(.985); filter: blur(5px); }
    to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

/* Product cards and catalog */
.product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.product-grid--carousel {
    display: flex;
    overflow-x: auto;
    padding: .15rem .15rem 1rem;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: var(--kiwi) transparent;
}

.product-grid--carousel .product-card {
    width: min(300px, 82vw);
    flex: 0 0 min(300px, 82vw);
    scroll-snap-align: start;
}

.product-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(23, 25, 18, .09);
    border-radius: var(--radius-md);
    background: #fff;
    transition: box-shadow .3s, transform .3s var(--ease-out);
}

.product-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
}

.product-card__visual {
    position: relative;
    display: grid;
    overflow: hidden;
    aspect-ratio: 1 / .93;
    place-items: center;
    background: var(--card-tint, var(--surface-soft));
}

.product-card__visual img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform .5s var(--ease-out);
}

.product-card:hover .product-card__visual img {
    transform: scale(1.045);
}

.product-card__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .65rem;
    padding: 1rem;
    color: var(--ink-muted);
    text-align: center;
    font-size: .72rem;
}

.product-card__placeholder .icon {
    width: 2.4rem;
    height: 2.4rem;
    color: var(--forest);
}

.product-card__badge {
    position: absolute;
    inset: .8rem .8rem auto auto;
    padding: .3rem .65rem;
    border-radius: var(--radius-pill);
    background: var(--lime);
    color: var(--forest-deep);
    font-size: .67rem;
    font-weight: 850;
}

.product-card__body {
    padding: 1rem 1rem 1.1rem;
}

.product-card__family,
.post-card__category {
    color: var(--berry);
    font-size: .7rem;
    font-weight: 800;
}

.product-card h3 {
    margin-top: .2rem;
    font-size: 1.02rem;
    font-weight: 850;
    line-height: 1.45;
}

.product-card h3 a::after {
    position: absolute;
    inset: 0;
    content: "";
}

.product-card__description {
    display: -webkit-box;
    overflow: hidden;
    margin-top: .45rem;
    color: var(--ink-muted);
    font-size: .78rem;
    line-height: 1.7;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.product-card__footer {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: 48px;
    align-items: end;
    justify-content: space-between;
    gap: .75rem;
    margin-top: .9rem;
}

.product-card__price {
    display: flex;
    flex-direction: column;
    line-height: 1.5;
}

.product-card__price strong {
    font-size: .9rem;
}

.product-card__price del,
.product-card__price span {
    color: var(--ink-muted);
    font-size: .7rem;
}

.product-card__add,
.product-card__open {
    position: relative;
    z-index: 3;
}

.product-card__add {
    border-color: transparent;
    background: var(--forest);
    color: #fff;
}

.product-card__open .icon {
    width: 1.1rem;
    height: 1.1rem;
}

.catalog-layout {
    display: grid;
    grid-template-columns: minmax(230px, .27fr) minmax(0, 1fr);
    align-items: start;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    padding-bottom: var(--section-space);
}

.catalog-sidebar {
    position: sticky;
    top: 6.5rem;
}

.filter-panel {
    padding: 1.2rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, .65);
}

.filter-panel__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 1.25rem;
}

.filter-panel__heading h2 {
    font-size: 1rem;
}

.filter-panel__heading a {
    color: var(--berry);
    font-size: .72rem;
    font-weight: 750;
}

.field {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    color: var(--ink-soft);
    font-size: .82rem;
    font-weight: 700;
}

.field small {
    font-weight: 450;
}

.field input,
.field select,
.field textarea {
    width: 100%;
    min-height: 48px;
    padding: .65rem .8rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    outline: none;
    background: #fff;
    color: var(--ink);
    transition: border-color .2s, box-shadow .2s;
}

.field textarea {
    min-height: 110px;
    resize: vertical;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
    border-color: var(--forest);
    box-shadow: 0 0 0 3px rgba(21, 60, 47, .13);
}

.field__control {
    display: flex;
    min-height: 48px;
    align-items: center;
    gap: .4rem;
    padding-inline: .75rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
}

.field__control:focus-within {
    border-color: var(--forest);
    box-shadow: 0 0 0 3px rgba(21, 60, 47, .13);
}

.field__control input {
    min-width: 0;
    min-height: 44px;
    flex: 1;
    padding-inline: .2rem;
    border: 0;
    box-shadow: none;
}

.field__control input:focus {
    box-shadow: none;
}

.field__control .icon {
    width: 1.1rem;
    height: 1.1rem;
    color: var(--ink-muted);
}

.filter-group {
    display: grid;
    gap: .3rem;
    margin-block: 1.25rem;
    padding: 1.1rem 0;
    border: 0;
    border-block: 1px solid var(--line);
}

.filter-group legend {
    margin-bottom: .55rem;
    font-size: .82rem;
    font-weight: 800;
}

.radio-row {
    display: flex;
    min-height: 40px;
    align-items: center;
    gap: .55rem;
    color: var(--ink-soft);
    font-size: .8rem;
}

.radio-row input,
.choice-card input,
.terms-check input {
    width: 1.15rem;
    height: 1.15rem;
    flex: 0 0 auto;
    accent-color: var(--forest);
}

.filter-panel > .button {
    margin-top: 1rem;
}

.filter-chips {
    display: flex;
    overflow-x: auto;
    gap: .45rem;
    margin-bottom: 1.25rem;
    padding-bottom: .35rem;
    scrollbar-width: none;
}

.filter-chips::-webkit-scrollbar {
    display: none;
}

.filter-chips a {
    display: inline-flex;
    min-height: 44px;
    flex: 0 0 auto;
    align-items: center;
    padding: .45rem .9rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, .6);
    color: var(--ink-soft);
    font-size: .78rem;
    font-weight: 700;
}

.filter-chips a:hover,
.filter-chips a.is-active {
    border-color: var(--forest);
    background: var(--forest);
    color: #fff;
}

.store-pagination {
    margin-top: 2.5rem;
}

.store-pagination nav {
    display: flex;
    align-items: center;
    justify-content: center;
}

.store-pagination nav > div {
    display: flex;
    align-items: center;
    gap: .45rem;
}

.store-pagination :is(a, span) {
    display: inline-grid;
    min-width: 44px;
    min-height: 44px;
    place-items: center;
    border-radius: 10px;
}

.store-pagination a {
    border: 1px solid var(--line);
    background: #fff;
}

.store-pagination [aria-current="page"] span {
    background: var(--forest);
    color: #fff;
}

/* Product detail */
.product-breadcrumbs {
    padding-top: 2.5rem;
}

.product-detail {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
    align-items: start;
    gap: clamp(2rem, 5vw, 5rem);
    padding-bottom: clamp(4rem, 8vw, 7rem);
}

.product-gallery__main {
    overflow: hidden;
    border-radius: var(--radius-lg);
    background: var(--surface-soft);
}

.product-gallery__main figure {
    margin: 0;
}

.product-gallery__main img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: contain;
}

.product-gallery__thumbs {
    display: flex;
    overflow-x: auto;
    gap: .65rem;
    margin-top: .75rem;
    padding: .15rem;
}

.product-gallery__thumbs button {
    width: 76px;
    height: 76px;
    overflow: hidden;
    border-radius: 14px;
}

.product-gallery__thumbs button[aria-selected="true"] {
    border: 2px solid var(--forest);
}

.product-gallery__thumbs img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-gallery__empty {
    display: flex;
    min-height: 560px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .75rem;
    border-radius: var(--radius-lg);
    background: var(--surface-soft);
    color: var(--ink-muted);
}

.product-gallery__empty .icon {
    width: 3rem;
    height: 3rem;
    color: var(--forest);
}

.product-summary {
    position: sticky;
    top: 7rem;
    padding-top: 1.25rem;
}

.product-summary__family {
    color: var(--berry);
    font-size: .8rem;
    font-weight: 850;
}

.product-summary h1 {
    max-width: 14ch;
    margin-top: .45rem;
    font-size: clamp(2.5rem, 5vw, 4.7rem);
    font-weight: 950;
    letter-spacing: -.05em;
    line-height: 1.08;
}

.product-summary__lead {
    max-width: 58ch;
    margin-top: 1.1rem;
    color: var(--ink-soft);
}

.product-summary__price {
    display: flex;
    align-items: baseline;
    gap: .75rem;
    margin-top: 1.6rem;
}

.product-summary__price strong {
    font-size: 1.35rem;
}

.product-summary__price del,
.product-summary__price span {
    color: var(--ink-muted);
    font-size: .9rem;
}

.purchase-form {
    margin-top: 1.5rem;
}

.purchase-form__actions {
    display: flex;
    gap: .65rem;
    margin-top: 1rem;
}

.quantity-control {
    display: inline-grid;
    min-height: 50px;
    grid-template-columns: 44px 3.2rem 44px;
    align-items: center;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-pill);
    background: #fff;
}

.quantity-control button {
    display: grid;
    width: 44px;
    height: 48px;
    padding: 0;
    place-items: center;
    border: 0;
    background: transparent;
}

.quantity-control button:hover {
    background: var(--lime-soft);
}

.quantity-control input {
    width: 100%;
    height: 48px;
    padding: 0;
    border: 0;
    outline: none;
    background: transparent;
    text-align: center;
    appearance: textfield;
}

.quantity-control input::-webkit-outer-spin-button,
.quantity-control input::-webkit-inner-spin-button {
    margin: 0;
    appearance: none;
}

.availability-note {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-top: 1.5rem;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--surface-soft);
    color: var(--ink-soft);
    font-size: .84rem;
}

.product-facts {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .55rem;
    margin-top: 1.75rem;
}

.product-facts > div {
    padding: .8rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(255, 255, 255, .62);
}

.product-facts dt {
    color: var(--ink-muted);
    font-size: .68rem;
}

.product-facts dd {
    margin-top: .1rem;
    font-size: .82rem;
    font-weight: 800;
}

.product-info {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .42fr);
    gap: clamp(1.5rem, 4vw, 3.5rem);
    padding: clamp(2rem, 4vw, 3rem);
    border-radius: var(--radius-lg);
    background: var(--surface-soft);
}

.product-info h2 {
    font-size: 1.35rem;
}

.product-info p {
    max-width: 70ch;
    margin-top: .8rem;
    color: var(--ink-soft);
}

.product-info aside {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    padding: 1.2rem;
    border-radius: var(--radius-md);
    background: var(--lime-soft);
}

.product-info aside > .icon {
    margin-top: .2rem;
    color: var(--forest);
}

.related-products,
.related-posts {
    padding-bottom: 0;
}

/* Journal */
.blog-layout {
    padding-bottom: var(--section-space);
}

.featured-post {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    overflow: hidden;
    border-radius: var(--radius-lg);
    background: var(--forest);
    color: #fff;
}

.featured-post__visual {
    min-height: 500px;
    background: var(--kiwi);
}

.featured-post__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.featured-post__visual > span {
    display: grid;
    height: 100%;
    place-items: center;
    color: var(--forest);
}

.featured-post__visual .icon {
    width: 8rem;
    height: 8rem;
    stroke-width: .8;
}

.featured-post__copy {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    padding: clamp(2rem, 5vw, 4rem);
}

.featured-post__copy .post-card__category {
    color: var(--lime);
}

.featured-post__copy h2 {
    margin-top: .6rem;
    font-size: clamp(2rem, 4vw, 3.7rem);
    font-weight: 900;
    letter-spacing: -.045em;
    line-height: 1.2;
}

.featured-post__copy > p:not(.post-card__category) {
    margin-top: 1rem;
    color: rgba(255, 255, 255, .7);
}

.featured-post__copy .text-link {
    margin-top: 1rem;
    color: #fff;
}

.post-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1rem;
    margin-top: .8rem;
    color: var(--ink-muted);
    font-size: .72rem;
}

.featured-post .post-meta {
    color: rgba(255, 255, 255, .55);
}

.post-meta > *:not(:last-child)::after {
    content: "·";
    margin-inline-start: 1rem;
}

.blog-categories {
    margin-top: 2.5rem;
}

.post-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.post-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: #fff;
}

.post-card__visual {
    display: grid;
    aspect-ratio: 1.35;
    place-items: center;
    background: var(--surface-soft);
    color: var(--forest);
}

.post-card__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s var(--ease-out);
}

.post-card:hover .post-card__visual img {
    transform: scale(1.04);
}

.post-card__visual > span .icon {
    width: 3rem;
    height: 3rem;
}

.post-card__body {
    padding: 1.25rem;
}

.post-card h2 {
    margin-top: .35rem;
    font-size: 1.2rem;
    line-height: 1.55;
}

.post-card h2 a:hover {
    text-decoration: underline;
    text-underline-offset: .25em;
}

.post-card__body > p:not(.post-card__category) {
    display: -webkit-box;
    overflow: hidden;
    margin-top: .55rem;
    color: var(--ink-muted);
    font-size: .82rem;
    line-height: 1.8;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.post-card--compact .post-card__body {
    min-height: 260px;
}

.post-card--compact .text-link {
    margin-top: 1rem;
}

.article__header {
    max-width: 920px;
    padding-block: clamp(3rem, 7vw, 6rem) 2.5rem;
    text-align: center;
}

.article__header .breadcrumbs {
    display: flex;
    justify-content: center;
}

.article__header .post-card__category {
    margin-top: 1.25rem;
}

.article__header h1 {
    margin-top: .75rem;
    font-size: clamp(2.6rem, 6vw, 5.4rem);
    font-weight: 950;
    letter-spacing: -.055em;
    line-height: 1.15;
    text-wrap: balance;
}

.article__lead {
    max-width: 62ch;
    margin: 1.1rem auto 0;
    color: var(--ink-soft);
    font-size: clamp(1rem, 1.6vw, 1.2rem);
}

.post-meta--article {
    justify-content: center;
    margin-top: 1.25rem;
}

.article__hero {
    margin: 0 auto;
}

.article__hero img {
    width: 100%;
    max-height: 720px;
    border-radius: var(--radius-lg);
    object-fit: cover;
}

.article__hero figcaption {
    margin-top: .65rem;
    color: var(--ink-muted);
    font-size: .76rem;
    text-align: center;
}

.article__body {
    width: min(760px, calc(100% - 48px));
    margin: clamp(3rem, 7vw, 5.5rem) auto 0;
}

.prose {
    color: var(--ink-soft);
    font-size: 1.02rem;
    line-height: 2.05;
}

.prose > * + * {
    margin-top: 1.35em;
}

.prose h2,
.prose h3,
.prose h4 {
    margin-top: 2.1em;
    color: var(--ink);
    font-weight: 900;
    line-height: 1.4;
}

.prose h2 {
    font-size: clamp(1.65rem, 3vw, 2.3rem);
}

.prose h3 {
    font-size: 1.35rem;
}

.prose :is(ul, ol) {
    padding-inline-start: 1.4rem;
}

.prose li + li {
    margin-top: .4rem;
}

.prose a {
    color: var(--forest);
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: .25em;
}

.prose blockquote {
    margin-inline: 0;
    padding: 1.1rem 1.3rem;
    border: 0;
    border-radius: var(--radius-md);
    background: var(--lime-soft);
    color: var(--forest-deep);
    font-size: 1.15rem;
    font-weight: 700;
}

.prose img {
    width: 100%;
    border-radius: var(--radius-md);
}

/* Cart and checkout */
.cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, .38fr);
    align-items: start;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    padding-bottom: var(--section-space);
}

.cart-layout > .empty-state {
    grid-column: 1 / -1;
}

.cart-items {
    display: grid;
    gap: .8rem;
}

.cart-line {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr) auto;
    grid-template-areas:
        "image details pricing"
        "image actions actions";
    align-items: center;
    gap: .8rem 1.1rem;
    padding: .85rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: #fff;
}

.cart-line__image {
    display: grid;
    grid-area: image;
    overflow: hidden;
    width: 132px;
    aspect-ratio: 1;
    place-items: center;
    border-radius: 16px;
    background: var(--surface-soft);
    color: var(--forest);
}

.cart-line__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.cart-line__image .icon {
    width: 2.5rem;
    height: 2.5rem;
}

.cart-line__details {
    grid-area: details;
}

.cart-line__details > p,
.cart-line__details > span {
    color: var(--ink-muted);
    font-size: .74rem;
}

.cart-line__details h2 {
    font-size: 1rem;
}

.cart-line__pricing {
    display: flex;
    grid-area: pricing;
    align-items: flex-end;
    flex-direction: column;
    white-space: nowrap;
}

.cart-line__pricing span {
    color: var(--ink-muted);
    font-size: .7rem;
}

.cart-line__pricing strong {
    font-size: .9rem;
}

.cart-line__actions {
    display: flex;
    grid-area: actions;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.cart-line__quantity {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.cart-line__quantity .quantity-control {
    min-height: 42px;
    grid-template-columns: 40px 2.8rem 40px;
}

.cart-line__quantity .quantity-control :is(button, input) {
    height: 40px;
}

.text-button,
.remove-button {
    min-height: 44px;
    padding: .45rem .65rem;
    border: 0;
    background: transparent;
    font-size: .76rem;
    font-weight: 750;
}

.text-button {
    color: var(--forest);
}

.remove-button {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--error);
}

.remove-button .icon {
    width: 1rem;
    height: 1rem;
}

.status-text {
    display: block;
    margin-top: .25rem;
    font-size: .72rem;
}

.status-text--error,
.field-error {
    color: var(--error);
}

.order-summary {
    position: sticky;
    top: 6.5rem;
    padding: 1.35rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.order-summary h2 {
    margin-bottom: 1rem;
    font-size: 1.15rem;
}

.order-summary dl {
    display: grid;
    gap: .75rem;
}

.order-summary dl > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--ink-soft);
    font-size: .82rem;
}

.order-summary dd {
    text-align: end;
}

.order-summary__total {
    margin-top: .35rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
    color: var(--ink) !important;
    font-size: .95rem !important;
    font-weight: 850;
}

.order-summary > .button {
    margin-top: 1.25rem;
}

.form-note {
    margin-top: .7rem;
    color: var(--ink-muted);
    font-size: .72rem;
    line-height: 1.7;
}

.order-summary__continue {
    margin-top: .8rem;
    font-size: .76rem;
}

.summary-warnings {
    display: grid;
    gap: .35rem;
    margin-top: 1rem;
    padding: .8rem 1.7rem .8rem .8rem;
    border-radius: 12px;
    background: var(--error-soft);
    color: var(--error);
    font-size: .72rem;
}

.checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(310px, .4fr);
    align-items: start;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    padding-bottom: var(--section-space);
}

.checkout-layout--empty {
    grid-template-columns: 1fr;
}

.checkout-form {
    display: grid;
    gap: 1rem;
}

.checkout-block {
    min-width: 0;
    margin: 0;
    padding: 1.35rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: #fff;
}

.checkout-block legend {
    padding-inline: .4rem;
    font-size: 1rem;
    font-weight: 850;
}

.checkout-block:disabled {
    opacity: .58;
}

.checkout-block--disabled {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    background: var(--error-soft);
}

.checkout-block--disabled h2 {
    font-size: 1rem;
}

.checkout-block--disabled p {
    margin-top: .25rem;
    color: var(--error);
    font-size: .8rem;
}

.checkout-block--disabled .empty-state__icon {
    width: 3.5rem;
    height: 3.5rem;
    flex: 0 0 auto;
    background: #fff;
    color: var(--error);
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.form-grid__wide {
    grid-column: 1 / -1;
}

.field-error {
    display: block;
    font-size: .72rem;
    font-weight: 650;
}

.address-options,
.choice-list {
    display: grid;
    gap: .65rem;
    margin-bottom: 1rem;
}

.address-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.choice-card {
    display: flex;
    min-height: 66px;
    align-items: center;
    gap: .75rem;
    padding: .75rem .9rem;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
    cursor: pointer;
}

.choice-card:has(input:checked) {
    border-color: var(--forest);
    background: var(--lime-soft);
}

.choice-card > span {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
}

.choice-card strong {
    font-size: .82rem;
}

.choice-card small {
    color: var(--ink-muted);
    font-size: .7rem;
}

.choice-card > b {
    font-size: .78rem;
    white-space: nowrap;
}

.terms-check {
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: .65rem;
    color: var(--ink-soft);
    font-size: .8rem;
}

.terms-check a {
    color: var(--forest);
    font-weight: 800;
    text-decoration: underline;
}

.checkout-submit {
    min-height: 58px;
}

.checkout-items {
    display: grid;
    gap: .7rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--line);
    list-style: none;
}

.checkout-items li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--ink-soft);
    font-size: .76rem;
}

/* Static and search */
.static-hero {
    padding-block: clamp(3rem, 8vw, 7rem);
    background: var(--surface-soft);
}

.static-hero__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.static-hero__inner > div {
    max-width: 760px;
}

.static-hero p {
    max-width: 60ch;
    margin-top: 1rem;
    color: var(--ink-soft);
    font-size: 1.05rem;
}

.static-hero figure {
    width: min(42%, 480px);
    flex: 0 0 auto;
    margin: 0;
}

.static-hero figure img {
    width: 100%;
    aspect-ratio: 1.35;
    border-radius: var(--radius-lg);
    object-fit: cover;
}

.static-hero__mark {
    display: grid;
    width: clamp(7rem, 15vw, 12rem);
    aspect-ratio: 1;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 42% 58% 45% 55%;
    background: var(--lime);
    color: var(--forest);
    transform: rotate(-8deg);
}

.static-hero__mark .icon {
    width: 44%;
    height: 44%;
}

.static-content {
    width: min(840px, var(--shell));
    padding-block: clamp(3rem, 7vw, 6rem);
}

.content-updated {
    margin-top: 3rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
    color: var(--ink-muted);
    font-size: .72rem;
}

.search-hero {
    padding-block: clamp(3rem, 7vw, 6rem);
    background: var(--surface-soft);
}

.search-hero h1 {
    max-width: 22ch;
}

.search-page__form {
    max-width: 780px;
    margin-top: 1.8rem;
}

.search-page__form > label {
    display: block;
    margin-bottom: .45rem;
    color: var(--ink-soft);
    font-size: .8rem;
    font-weight: 700;
}

.search-field--large {
    min-height: 62px;
    padding: .3rem .5rem;
    box-shadow: var(--shadow-sm);
}

.search-field--large .button {
    min-height: 50px;
}

.search-results {
    padding-block: clamp(2.5rem, 6vw, 5rem);
}

.search-results__count {
    margin-bottom: 1.5rem;
    color: var(--ink-muted);
    font-size: .84rem;
}

.search-group + .search-group {
    margin-top: clamp(3rem, 7vw, 6rem);
    padding-top: clamp(3rem, 7vw, 6rem);
    border-top: 1px solid var(--line);
}

.search-post-list {
    display: grid;
    gap: .7rem;
}

.search-post-list article {
    display: flex;
    min-height: 128px;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.25rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: #fff;
}

.search-post-list h3 {
    margin-top: .2rem;
    font-size: 1.1rem;
}

.search-post-list h3 a:hover {
    text-decoration: underline;
    text-underline-offset: .25em;
}

.search-post-list article p:not(.post-card__category) {
    max-width: 70ch;
    margin-top: .35rem;
    color: var(--ink-muted);
    font-size: .78rem;
}

/* Progressive enhancement */
.reveal-enabled [data-reveal] {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .65s var(--ease-out), transform .65s var(--ease-out);
}

.reveal-enabled [data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Tablet */
@media (max-width: 1100px) {
    :root {
        --shell: min(100% - 36px, 1040px);
    }

    .desktop-nav {
        gap: 1.1rem;
    }

    .desktop-nav a {
        font-size: .82rem;
    }

    .home-hero__grid {
        gap: 1rem;
    }

    .home-hero h1 {
        font-size: clamp(3rem, 6.9vw, 4.8rem);
    }

    .home-rail > div {
        padding-inline: .55rem;
    }

    .home-rail small {
        display: none;
    }

    .family-card {
        min-height: 510px;
    }

    .product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .footer-grid {
        grid-template-columns: 1.3fr repeat(2, 1fr);
    }

    .footer-contact {
        grid-column: 1 / -1;
        padding-top: 1.5rem;
        border-top: 1px solid var(--line-light);
    }
}

/* Mobile/tablet navigation */
@media (max-width: 900px) {
    :root {
        --shell: min(100% - 32px, 820px);
        --section-space: clamp(3.75rem, 9vw, 6rem);
    }

    .site-header__surface {
        grid-template-columns: 1fr auto;
    }

    .desktop-nav,
    .desktop-account {
        display: none;
    }

    .menu-toggle {
        display: grid;
    }

    .home-hero {
        margin-top: -6.1rem;
        padding-top: 9.5rem;
    }

    .home-hero__grid {
        grid-template-columns: 1fr;
        gap: 1.2rem;
        direction: rtl;
    }

    .home-hero__copy {
        max-width: 720px;
    }

    .home-hero h1 {
        max-width: 11ch;
        font-size: clamp(3.25rem, 11vw, 5.5rem);
    }

    .home-hero__copy > p {
        max-width: 58ch;
    }

    .home-hero__visual {
        width: min(760px, 100%);
        justify-self: center;
    }

    .home-hero__visual > img {
        width: 105%;
        margin-inline-start: -2.5%;
    }

    .home-hero__pack-brand {
        left: 81.5%;
    }

    .home-rail {
        grid-template-columns: repeat(2, 1fr);
    }

    .home-rail > div:nth-child(2) {
        border-inline-end: 0;
    }

    .home-rail > div:nth-child(-n+2) {
        border-bottom: 1px solid var(--line);
    }

    .family-grid {
        grid-template-columns: 1fr;
    }

    .family-card {
        display: grid;
        min-height: 360px;
        grid-template-columns: minmax(0, .95fr) minmax(260px, 1.05fr);
    }

    .family-card__visual {
        min-height: 320px;
        grid-column: 2;
        grid-row: 1;
    }

    .family-card__copy {
        grid-column: 1;
        grid-row: 1;
        align-self: center;
    }

    .freeze-section__grid {
        grid-template-columns: 1fr;
    }

    .freeze-section__copy {
        padding: 1rem .4rem .4rem;
    }

    .use-rail {
        grid-template-columns: repeat(2, 1fr);
    }

    .use-rail > div:nth-child(2) {
        border-inline-end: 0;
    }

    .use-rail > div:nth-child(-n+2) {
        border-bottom: 1px solid var(--line);
    }

    .journal-band__grid,
    .featured-post {
        grid-template-columns: 1fr;
    }

    .journal-band__lead {
        min-height: 330px;
    }

    .journal-band__list {
        min-height: 260px;
    }

    .featured-post__visual {
        min-height: 380px;
    }

    .post-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .catalog-layout,
    .product-detail,
    .cart-layout,
    .checkout-layout {
        grid-template-columns: 1fr;
    }

    .catalog-sidebar,
    .product-summary,
    .order-summary {
        position: static;
    }

    .catalog-sidebar {
        order: 0;
    }

    .catalog-results {
        order: 1;
    }

    .filter-panel {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
    }

    .filter-panel__heading,
    .filter-group,
    .filter-panel > .button {
        grid-column: 1 / -1;
    }

    .filter-group {
        grid-template-columns: repeat(3, 1fr);
    }

    .filter-group legend {
        grid-column: 1 / -1;
    }

    .product-detail {
        gap: 1.5rem;
    }

    .product-summary {
        padding-top: 0;
    }

    .product-info {
        grid-template-columns: 1fr;
    }

    .checkout-layout .order-summary {
        grid-row: 1;
    }

    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-brand {
        grid-column: 1 / -1;
    }
}

/* Phones */
@media (max-width: 640px) {
    :root {
        --shell: calc(100% - 24px);
        --radius-lg: 24px;
        --radius-md: 18px;
    }

    body {
        font-size: .95rem;
    }

    .site-header {
        padding-block: .55rem;
    }

    .site-header__surface {
        min-height: 60px;
        padding-inline: .65rem;
        border-radius: 18px;
    }

    .brand {
        font-size: 1.28rem;
    }

    .brand__mark {
        width: 2rem;
        height: 2rem;
    }

    .header-actions {
        gap: 0;
    }

    .header-actions .icon-button,
    .menu-toggle {
        width: 44px;
        height: 44px;
    }

    .header-search {
        padding: .8rem;
    }

    .header-search label {
        margin-inline: .35rem;
    }

    .search-field {
        display: grid;
        grid-template-columns: auto 1fr;
        border-radius: 16px;
    }

    .search-field .button {
        grid-column: 1 / -1;
        width: 100%;
        border-radius: 12px;
    }

    .home-hero {
        margin-top: -5.2rem;
        padding-top: 8rem;
        padding-bottom: 3.5rem;
    }

    .home-hero h1 {
        max-width: 10ch;
        font-size: clamp(2.7rem, 13.1vw, 4rem);
        line-height: 1.12;
    }

    .home-hero__copy > p {
        margin-top: 1.1rem;
        font-size: .92rem;
        line-height: 1.9;
    }

    .hero-actions {
        display: grid;
        margin-top: 1.35rem;
    }

    .hero-actions .button {
        width: 100%;
    }

    .home-hero__microcopy {
        display: grid;
        gap: .45rem;
        margin-top: 1.25rem;
    }

    .home-hero__visual {
        margin-top: .5rem;
    }

    .home-hero__visual > img {
        width: 118%;
        margin-inline-start: -9%;
    }

    .hero-note--weight {
        width: 5.3rem;
        height: 5.3rem;
    }

    .hero-note--texture {
        inset-inline-start: 0;
    }

    .home-rail {
        margin-top: -1.3rem;
        padding: .45rem;
        border-radius: 20px;
    }

    .home-rail > div {
        min-height: 82px;
        justify-content: flex-start;
        padding: .55rem;
    }

    .home-rail .icon {
        width: 1.4rem;
        height: 1.4rem;
    }

    .home-rail strong {
        font-size: .72rem;
    }

    .section-heading--split,
    .page-hero__row,
    .closing-banner__inner,
    .static-hero__inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .section-heading h2 {
        font-size: clamp(2rem, 10vw, 3rem);
    }

    .section-heading--split .button {
        width: 100%;
    }

    .family-card {
        display: flex;
        min-height: 540px;
    }

    .family-card__copy {
        grid-column: auto;
        grid-row: auto;
    }

    .family-card__visual {
        min-height: 255px;
        grid-column: auto;
        grid-row: auto;
    }

    .freeze-section__grid {
        width: calc(100% - 16px);
        padding: .8rem;
    }

    .freeze-section__visual figcaption {
        position: static;
        margin-top: .55rem;
        background: #fff;
    }

    .freeze-section__copy > h2 {
        font-size: 2.5rem;
    }

    .use-rail {
        padding: .35rem;
    }

    .use-rail > div {
        min-height: 78px;
        justify-content: flex-start;
        padding: .55rem;
    }

    .use-rail strong {
        font-size: .7rem;
        line-height: 1.55;
    }

    .journal-band__lead {
        min-height: 400px;
        align-items: flex-start;
        flex-direction: column;
    }

    .journal-band__art {
        align-self: flex-end;
    }

    .closing-banner__inner {
        min-height: 280px;
    }

    .closing-banner__inner .button {
        width: 100%;
    }

    .page-hero {
        padding-top: 2.2rem;
    }

    .page-hero h1,
    .static-hero h1,
    .search-hero h1 {
        font-size: clamp(2.35rem, 12vw, 3.7rem);
    }

    .page-hero__symbol,
    .static-hero__mark {
        display: none;
    }

    .filter-panel {
        display: block;
    }

    .filter-panel .field + .field {
        margin-top: 1rem;
    }

    .filter-group {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }

    .product-grid,
    .post-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .65rem;
    }

    .product-card__body {
        padding: .8rem;
    }

    .product-card h3 {
        font-size: .9rem;
    }

    .product-card__description {
        display: none;
    }

    .product-card__price strong {
        font-size: .75rem;
    }

    .product-card__price span,
    .product-card__price del {
        font-size: .62rem;
    }

    .product-card__add,
    .product-card__open {
        width: 44px;
        height: 44px;
    }

    .product-gallery__empty {
        min-height: 360px;
    }

    .product-summary h1 {
        font-size: 2.7rem;
    }

    .purchase-form__actions {
        flex-direction: column;
    }

    .quantity-control {
        width: 100%;
        grid-template-columns: 48px 1fr 48px;
    }

    .product-facts {
        grid-template-columns: 1fr;
    }

    .featured-post__visual {
        min-height: 280px;
    }

    .featured-post__copy {
        padding: 1.5rem;
    }

    .featured-post__copy h2 {
        font-size: 2rem;
    }

    .post-card__body {
        padding: .9rem;
    }

    .post-card h2 {
        font-size: .95rem;
    }

    .post-card__body > p:not(.post-card__category) {
        -webkit-line-clamp: 2;
    }

    .article__body {
        width: var(--shell);
    }

    .article__header h1 {
        font-size: clamp(2.35rem, 11vw, 3.6rem);
    }

    .cart-line {
        grid-template-columns: 86px minmax(0, 1fr);
        grid-template-areas:
            "image details"
            "pricing pricing"
            "actions actions";
    }

    .cart-line__image {
        width: 86px;
    }

    .cart-line__pricing {
        align-items: center;
        justify-content: space-between;
        flex-direction: row;
        padding-top: .65rem;
        border-top: 1px solid var(--line);
    }

    .cart-line__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .cart-line__quantity {
        justify-content: space-between;
    }

    .cart-line__quantity .quantity-control {
        width: auto;
    }

    .remove-button {
        width: 100%;
        justify-content: center;
    }

    .form-grid,
    .address-options {
        grid-template-columns: 1fr;
    }

    .form-grid__wide {
        grid-column: auto;
    }

    .static-hero figure {
        width: 100%;
    }

    .search-field--large {
        grid-template-columns: auto 1fr;
        border-radius: 16px;
    }

    .search-post-list article {
        align-items: flex-start;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 2rem 1rem;
    }

    .footer-contact {
        grid-column: 1 / -1;
    }

    .footer-bottom {
        flex-direction: column;
    }
}

@media (max-width: 370px) {
    .product-grid,
    .post-grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }

    .reveal-enabled [data-reveal] {
        opacity: 1;
        transform: none;
    }
}

@media (forced-colors: active) {
    .button,
    .icon-button,
    .menu-toggle,
    .product-card,
    .family-card,
    .choice-card {
        border: 1px solid ButtonText;
    }
}

@media print {
    *,
    *::before,
    *::after {
        box-shadow: none !important;
        filter: none !important;
    }

    body {
        background: #fff;
        color: #000;
    }

    .site-header,
    .site-footer,
    .hero-actions,
    .carousel__controls,
    .catalog-sidebar,
    .button,
    .flash-message {
        display: none !important;
    }

    .store-shell,
    .article__body {
        width: 100%;
    }

    .home-hero,
    .static-hero,
    .search-hero {
        margin: 0;
        padding: 1rem 0;
        background: #fff;
    }
}

/* Reference composition: full-bleed fruit scene, quiet copy on the left.
   One responsive layer replaces the earlier density experiments. */
.store-home { background: #faf8f5; }
.store-home .site-header { position: absolute; inset: 0 0 auto; padding: 16px 0; z-index: 110; }
.store-home .site-header__surface { min-height: 72px; border-radius: 24px; background: rgba(255,253,250,.74); box-shadow: none; }
.store-home .home-hero { margin: 0; padding: 0; min-height: 680px; background: #eee6dd; isolation: isolate; }
.store-home .home-hero::before { display: none; }
.store-home .home-hero__grid { position: static; display: flex; min-height: 680px; padding: 90px 0 60px; direction: ltr; }
.store-home .home-hero__copy { width: 43%; direction: rtl; z-index: 3; }
.store-home .home-hero h1 { max-width: none; font-size: clamp(2.7rem,4.45vw,4.05rem); line-height: 1.28; letter-spacing: -.045em; text-wrap: initial; }
.store-home .home-hero h1 span { color: var(--ink); }
.store-home .home-hero__copy > p { font-size: 1rem; margin-top: 22px; line-height: 2; }
.store-home .hero-actions { margin-top: 28px; gap: 12px; }
.store-home .hero-actions .button { min-height: 48px; font-size: .86rem; padding-inline: 24px; }
.store-home .hero-actions .button--ghost { background: transparent; border-color: #17191288; font-weight: 600; }
.store-home .hero-actions .button__round-icon { width: 24px; height: 24px; border: 1px solid currentColor; background: transparent; }
.store-home .hero-actions .button__round-icon .icon { width: 14px; height: 14px; }
.store-home .home-hero__microcopy { margin-top: 28px; font-size: .78rem; gap: 12px 24px; }
.store-home .home-hero__visual { position: absolute; inset: 0; width: 100%; height: 100%; animation: none; z-index: 0; }
.store-home .home-hero__visual > img { width: 100%; height: 100%; margin: 0; object-fit: cover; object-position: center; filter: none; }
.store-home .home-hero__halo, .store-home .hero-note { display: none; }
.store-home .home-rail { min-height: 102px; margin-top: -36px; padding: 12px; border-radius: 32px; box-shadow: 0 12px 35px #584d3610; }
.store-home .home-rail > div { padding: 12px; }
.store-home .home-rail strong { font-size: .87rem; }
.store-home .home-rail small { font-size: .76rem; }
.store-home .page-section { padding-block: 28px; }
.store-home .section-heading { margin-bottom: 18px; gap: 7px; }
.store-home .section-heading h2 { max-width: none; font-size: clamp(1.4rem,2.35vw,2rem); line-height: 1.5; }
.store-home .section-heading p { font-size: .86rem; }
.store-home .families-section > .store-shell > .section-heading { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.store-home .family-grid { gap: 16px; direction: ltr; }
.store-home .family-card { height: 260px; min-height: 260px; flex-direction: row; border-radius: 26px; }
.store-home .family-card__copy { width: 52%; padding: 22px 18px; direction: rtl; text-align: right; }
.store-home .family-card h3 { font-size: clamp(1.4rem,2.2vw,2rem); line-height: 1.3; margin-top: 10px; }
.store-home .family-card__badge { font-size: .7rem; padding: 4px 8px; }
.store-home .family-card__tagline { font-size: .8rem; font-weight: 600; margin-top: 6px; }
.store-home .family-card__copy > p:not(.family-card__tagline) { font-size: .78rem; line-height: 1.8; margin-top: 8px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.store-home .family-card__link { margin-top: 14px; min-height: 44px; font-size: .78rem; padding: 8px 16px; background: transparent; border-color: #17191288; font-weight: 500; }
.store-home .family-card__visual { width: 48%; min-height: 0; margin: 0; overflow: hidden; }
.store-home .family-card__visual img { height: 100%; width: 100%; object-fit: cover; object-position: center; transform: none; }
.store-home .family-card:hover .family-card__visual img { transform: scale(1.035); }
.store-home .freeze-section { padding-top: 0; }
.store-home .freeze-section__grid { padding: 0; gap: 30px; direction: ltr; background: transparent; min-height: 270px; }
.store-home .freeze-section__visual { height: 270px; }
.store-home .freeze-section__visual img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; border-radius: 28px; }
.store-home .freeze-section__visual figcaption { position: static; width: 1px; height: 1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); }
.store-home .freeze-section__copy { padding: 8px 0; direction: rtl; }
.store-home .freeze-section__copy > h2 { max-width: none; font-size: clamp(1.5rem,2.4vw,2.15rem); line-height: 1.45; }
.store-home .freeze-section__copy > h2 br { display: none; }
.store-home .freeze-section__copy > p { margin-top: 12px; font-size: .88rem; line-height: 1.9; }
.store-home .process-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 16px; }
.store-home .process-steps li { display: flex; gap: 8px; align-items: center; padding: 10px; border: 2px solid #fff; border-radius: 30px; background: #f2f2ee; min-width: 0; }
.store-home .process-steps li > span { width: 26px; height: 26px; flex: 0 0 auto; }
.store-home .process-steps h3 { font-size: .8rem; }
.store-home .process-steps p { font-size: .67rem; line-height: 1.5; }
.store-home .use-rail { border-radius: 28px; box-shadow: none; border: 2px solid #fff; background: transparent; padding: 8px; }
.store-home .use-rail > div { min-height: 60px; }
.store-home .use-rail span { width: 36px; height: 36px; }
.store-home .use-rail strong { font-size: .82rem; }
.store-home .products-showcase { padding-bottom: 22px; }
.store-home .product-grid--carousel { gap: 12px; }
.store-home .product-grid--carousel .product-card { width: calc((100% - 48px)/5); flex-basis: calc((100% - 48px)/5); }
.store-home .product-card { border: 2px solid #fff; background: #fbfaf7; }
.store-home .product-card__visual { aspect-ratio: 1.05; background: #fbfaf7; }
.store-home .product-card__visual img { object-fit: contain; }
.store-home .product-card__badge { font-size: .62rem; padding: 4px 7px; background: rgba(255,255,255,.85); color: var(--ink-soft); }
.store-home .product-card__body { padding: 10px 12px; }
.store-home .product-card h3 { font-size: .94rem; text-align: center; }
.store-home .product-card__family, .store-home .product-card__description { display: none; }
.store-home .product-card__footer { margin-top: 8px; min-height: 38px; }
.store-home .product-card__price span { font-size: .7rem; }
.store-home .carousel__controls { display: none; }
.store-home .home-bottom-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 16px; direction: ltr; }
.store-home .home-bottom-grid > section { min-width: 0; padding: 0; }
.store-home .journal-band__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 8px; }
.store-home .journal-band__lead { min-height: 172px; padding: 18px; direction: rtl; border-radius: 24px; }
.store-home .journal-band__lead h2 { font-size: 1.22rem; max-width: none; }
.store-home .journal-band__lead p { font-size: .75rem; line-height: 1.8; }
.store-home .journal-band__lead .text-link { font-size: .78rem; min-height: 44px; margin-top: 8px; }
.store-home .journal-band__art { display: none; }
.store-home .journal-band__list { min-height: 172px; border-radius: 24px; direction: rtl; }
.store-home .journal-band__list > a { min-height: 54px; padding: 8px 12px; font-size: .75rem; line-height: 1.7; }
.store-home .journal-band__list > a .icon { width: 16px; height: 16px; flex-shrink: 0; }
.store-home .closing-banner { direction: rtl; }
.store-home .closing-banner__inner { min-height: 172px; height: 100%; padding: 24px; gap: 16px; border-radius: 24px; }
.store-home .closing-banner h2 { font-size: 1.65rem; line-height: 1.5; }
.store-home .closing-banner p { font-size: .83rem; }
.store-home .closing-banner .button { font-size: .8rem; flex-shrink: 0; }
.store-home .site-footer { margin-top: 40px; padding-top: 36px; }
.store-home .footer-grid { gap: 28px; }
.store-home .footer-brand > p, .store-home .footer-contact > p { font-size: .82rem; margin-top: 12px; }
.store-home .footer-links, .store-home .footer-contact { gap: 0; }
.store-home .footer-links a, .store-home .footer-contact a { min-height: 44px; font-size: .82rem; }
.store-home .footer-bottom { margin-top: 20px; }
@media (min-width: 1550px) {
    .store-home .home-hero, .store-home .home-hero__grid { min-height: 760px; }
}
@media (max-width: 1000px) {
    .store-home .home-hero, .store-home .home-hero__grid { min-height: 570px; }
    .store-home .home-hero h1 { font-size: 2.6rem; }
    .store-home .home-hero__copy { width: 46%; }
    .store-home .hero-actions .button { padding-inline: 16px; font-size: .76rem; }
    .store-home .home-hero__copy > p { font-size: .86rem; }
    .store-home .home-hero__microcopy { font-size: .7rem; }
    .store-home .family-card { height: 240px; min-height: 240px; }
    .store-home .family-card__copy { padding: 16px 12px; }
    .store-home .family-card h3 { font-size: 1.45rem; }
    .store-home .family-card__copy > p:not(.family-card__tagline) { display: none; }
    .store-home .freeze-section__grid { gap: 20px; }
    .store-home .process-steps p { display: none; }
    .store-home .home-bottom-grid { grid-template-columns: 1fr; }
    .store-home .product-grid--carousel .product-card { flex-basis: calc((100% - 36px)/4); width: calc((100% - 36px)/4); }
    .store-home .carousel__controls { display: flex; }
}
@media (max-width: 900px) {
    .store-home .site-header { position: relative; padding: 12px 0; background: #f8f3ec; }
    .store-home .site-header__surface { min-height: 60px; }
    .store-home .home-hero { min-height: 0; overflow: hidden; background: #f8f3ec; }
    .store-home .home-hero__grid { display: flex; flex-direction: column; min-height: 0; padding: 26px 0 0; gap: 0; width: 100%; }
    .store-home .home-hero__copy { width: min(540px,calc(100% - 40px)); text-align: center; }
    .store-home .home-hero h1 { font-size: clamp(2.2rem,6.5vw,3rem); max-width: none; }
    .store-home .home-hero__copy > p { margin: 14px auto 0; font-size: .92rem; }
    .store-home .hero-actions { justify-content: center; margin-top: 20px; }
    .store-home .hero-actions .button { font-size: .82rem; padding-inline: 20px; min-height: 46px; }
    .store-home .home-hero__microcopy { justify-content: center; font-size: .74rem; margin: 18px 0 0; }
    .store-home .home-hero__visual { position: relative; height: 330px; margin-top: 12px; }
    .store-home .home-hero__visual > img { width: 100%; height: 100%; object-fit: cover; object-position: 84% center; }
    .store-home .home-rail { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: -10px; border-radius: 24px; padding: 6px; }
    .store-home .home-rail > div { padding: 12px 6px; gap: 8px; }
    .store-home .home-rail strong { font-size: .74rem; }
    .store-home .home-rail small { font-size: .67rem; }
    .store-home .home-rail > div:nth-child(2) { border-inline-end: 0; }
    .store-home .home-rail .icon { width: 23px; height: 23px; }
    .store-home .family-grid { grid-template-columns: 1fr; gap: 14px; }
    .store-home .family-card { height: 225px; min-height: 225px; }
    .store-home .family-card__copy { width: 50%; padding: 18px 20px; }
    .store-home .family-card h3 { font-size: 1.9rem; }
    .store-home .family-card__visual { width: 50%; }
    .store-home .family-card__copy > p:not(.family-card__tagline) { display: -webkit-box; font-size: .8rem; }
    .store-home .family-card__link { margin-top: 6px; font-size: .82rem; }
    .store-home .freeze-section__grid { grid-template-columns: 1fr; gap: 18px; }
    .store-home .freeze-section__visual { height: auto; }
    .store-home .freeze-section__visual img { height: auto; aspect-ratio: 2; }
    .store-home .freeze-section__copy { padding: 0; }
    .store-home .freeze-section__copy > h2 { font-size: 1.75rem; }
    .store-home .freeze-section__copy > p { font-size: .88rem; }
    .store-home .process-steps li { justify-content: center; }
    .store-home .use-rail { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .store-home .use-rail > div { min-height: 58px; padding: 8px; gap: 8px; }
    .store-home .use-rail > div:nth-child(2) { border-inline-end: 0; }
    .store-home .use-rail strong { font-size: .75rem; }
    .store-home .product-grid--carousel .product-card { flex-basis: 68%; width: 68%; }
    .store-home .section-heading--split { flex-direction: row; align-items: center; gap: 12px; }
    .store-home .section-heading--split .button { min-height: 44px; font-size: .72rem; padding-inline: 12px; }
    .store-home .products-showcase .section-heading p { display: none; }
    .store-home .journal-band__grid { grid-template-columns: 1fr; }
    .store-home .journal-band__lead, .store-home .journal-band__list { min-height: 0; }
    .store-home .journal-band__lead h2 { font-size: 1.5rem; }
    .store-home .journal-band__lead p { font-size: .88rem; }
    .store-home .journal-band__list > a { font-size: .84rem; }
    .store-home .closing-banner__inner { min-height: 176px; padding: 24px; flex-direction: column; align-items: flex-start; }
    .store-home .footer-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
    .store-home .footer-brand, .store-home .footer-contact { grid-column: 1/-1; }
}
@media (max-width: 390px) {
    .store-home .hero-actions { gap: 8px; }
    .store-home .hero-actions .button { padding-inline: 14px; font-size: .77rem; }
    .store-home .family-card__copy { padding: 16px; }
    .store-home .family-card h3 { font-size: 1.6rem; }
}
