/* Storefront only: Manrope's weights provide hierarchy without a second display family.
   Loaded after storefront assets so legacy font-serif utility hooks remain compatible. */
.storefront {
    --store-font: 'Manrope', 'Helvetica Neue', Arial, sans-serif;
    font-family: var(--store-font);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.65;
    letter-spacing: 0;
}
.storefront :is(button, input, select, textarea),
.storefront .font-serif,
.storefront .font-mono,
.storefront .referral-page h1,
.storefront .referral-copy-row input {
    font-family: var(--store-font);
}
/* Keep original wording/case; do not force prose and prices into display capitals. */
.storefront .font-serif { font-weight: 700; letter-spacing: -.025em; text-transform: none; }
.storefront :is(h1, h2, h3, h4) { font-family: var(--store-font); text-wrap: balance; }
.storefront h1 { font-weight: 800; line-height: 1.1; letter-spacing: -.045em; }
.storefront h2 { font-weight: 700; line-height: 1.2; letter-spacing: -.035em; }
.storefront :is(h3, h4) { font-weight: 700; line-height: 1.35; letter-spacing: -.02em; }
.storefront .store-hero h1 { font-weight: 800; line-height: 1.04; letter-spacing: -.05em; }
.storefront .brim-page-header h1,
.storefront .referral-page h1 { font-size: clamp(2rem, 4.5vw, 3.25rem); font-weight: 800; line-height: 1.12; letter-spacing: -.04em; }
.storefront #store-content p { text-wrap: pretty; }
.storefront .store-header .capify-nav-link,
.storefront .store-header .capify-mobile-link { font-weight: 700; letter-spacing: .035em; }
.storefront .store-header .announcement-item { font-weight: 600; letter-spacing: .045em; }
.storefront .capify-taxonomy-title { font-weight: 700; letter-spacing: -.02em; }
.storefront .capify-taxonomy-parent strong { font-weight: 700; font-size: .875rem; line-height: 1.45; }
.storefront .capify-taxonomy-children a { font-weight: 500; letter-spacing: 0; line-height: 1.5; }
.storefront .store-product-card > div:last-child > div:first-child > a,
.storefront .store-cart article a.truncate { font-family: var(--store-font); font-weight: 700; font-size: .9375rem; line-height: 1.45; letter-spacing: -.015em; text-transform: none; }
.storefront .store-product-card > div:last-child p,
.storefront :is(.store-cart, .store-checkout) .font-serif:not(h1):not(h2):not(h3),
.storefront .referral-stats strong { font-variant-numeric: lining-nums tabular-nums; letter-spacing: -.02em; }
.storefront #store-content :is(button, a)[class*="tracking-"] { letter-spacing: .045em; }
.storefront #store-content button,
.storefront .capify-select-trigger { font-weight: 700; line-height: 1.45; }
.storefront #store-content label[for] { font-size: .8125rem; font-weight: 600; line-height: 1.5; letter-spacing: .015em; text-transform: none; }
.storefront :is(input, select, textarea) { font-weight: 400; letter-spacing: 0; line-height: 1.5; }
.storefront .capify-select-options [role="option"],
.storefront .capify-multi-panel { font-weight: 500; letter-spacing: 0; line-height: 1.5; }
.storefront #store-content [aria-label="Breadcrumb"] { font-size: .75rem; font-weight: 500; letter-spacing: .025em; line-height: 1.65; }
.storefront :is(.referral-eyebrow, .referral-badge) { font-weight: 700; letter-spacing: .035em; }
.storefront .referral-stats strong { font-weight: 800; }
.storefront .referral-copy-row input { font-weight: 500; letter-spacing: .015em; }
.storefront .store-footer h3 { font-weight: 700; font-size: .8125rem; letter-spacing: .07em; line-height: 1.4; }
.storefront .store-footer :is(p, nav, address) { line-height: 1.7; }
.storefront .store-footer nav a { font-weight: 500; }
@media (max-width: 767px) {
    .storefront :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), textarea, select) { font-size: 1rem; }
    .storefront .store-product-card > div:last-child > div:first-child > a { font-size: .875rem; }
    .storefront .store-hero h1 { letter-spacing: -.035em; line-height: 1.08; }
}

/* Editorial scale: large campaign headlines, quieter transactional headings. */
.storefront .store-home .store-hero h1 {
    font-size: clamp(3rem, 7.5vw, 6rem);
    line-height: 1.04;
    letter-spacing: -.045em;
}
.storefront .store-home h2.font-serif {
    font-size: clamp(1.875rem, 4vw, 3.5rem);
    line-height: 1.15;
    letter-spacing: -.035em;
}
.storefront .store-product #product-title {
    font-size: clamp(1.875rem, 3.4vw, 3.25rem);
    font-weight: 700;
    line-height: 1.18;
    letter-spacing: -.03em;
    overflow-wrap: anywhere;
}
.storefront :is(.store-cart, .store-checkout) h2.font-serif,
.storefront .referral-page h2 {
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    font-weight: 700;
    line-height: 1.3;
}
.storefront :is(h5, h6) {
    font-family: var(--store-font);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -.01em;
}

/* Prices stay easy to compare; crossed-out prices remain secondary. */
.storefront .store-product-card > div:last-child p:not(.line-through)[class*="font-"] {
    font-size: 1.125rem;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: -.02em;
    font-variant-numeric: lining-nums tabular-nums;
}
.storefront .store-product-info p.font-serif.text-3xl {
    font-size: clamp(1.625rem, 2.5vw, 2rem);
    font-weight: 800;
    line-height: 1.25;
    font-variant-numeric: lining-nums tabular-nums;
}
.storefront #store-content .line-through {
    font-size: .8125rem;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.5;
    font-variant-numeric: lining-nums tabular-nums;
}
.storefront :is(.store-cart, .store-checkout) :is(p, span, dd).font-serif:not(.truncate) {
    font-weight: 700;
    line-height: 1.35;
    font-variant-numeric: lining-nums tabular-nums;
}

/* Shared filled/link buttons, including auth, order and sticky purchase actions.
   Target existing visual button hooks without changing their behavior. */
.storefront #store-content :is(button, a):is(.brim-button, [class*="rounded-full"][class*="px-"][class*="bg-"], [type="submit"]),
.storefront .store-footer button,
.storefront .referral-page button {
    font-size: .875rem;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: .025em;
}
.storefront #store-content .store-product-card > div:last-child > :is(button, a) {
    font-size: .8125rem;
    letter-spacing: .025em;
}
.storefront #store-content :is(p, span, a, label).uppercase[class*="tracking-"] {
    letter-spacing: .06em;
}
.storefront #store-content .brim-kicker {
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .1em;
}

/* Readable menus and supporting copy across customer pages and overlays. */
.storefront :is(.capify-select-trigger, .capify-select-options [role="option"], .capify-multi-options label, .capify-mobile-categories a) {
    font-size: .875rem;
    line-height: 1.5;
    letter-spacing: 0;
}
.storefront :is(.capify-multi-options small, .capify-taxonomy-parent small, .capify-clear-selection, .capify-selected-filters button) {
    font-size: .75rem;
    line-height: 1.5;
    letter-spacing: 0;
}
.storefront :is(.category-card, .capify-category-card) :is(h2, h3) {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -.015em;
}
.storefront .store-assistance p,
.storefront :is(.referral-share, .referral-history) p {
    font-size: .875rem;
    line-height: 1.7;
}
.storefront .store-assistance :is(strong, a) {
    font-weight: 700;
    letter-spacing: 0;
}
.storefront :is(input, textarea)::placeholder {
    font-weight: 400;
    letter-spacing: 0;
}
.storefront .swal2-popup {
    font-family: var(--store-font);
    font-size: 1rem;
    line-height: 1.6;
}
.storefront .swal2-title {
    font-size: clamp(1.375rem, 3vw, 1.75rem);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.025em;
}
.storefront .swal2-html-container { font-size: 1rem; line-height: 1.65; }
.storefront .swal2-actions button { font-size: .875rem; font-weight: 700; letter-spacing: .025em; }
.storefront .store-footer :is(p, nav, address) { font-size: .875rem; }

@media (max-width: 767px) {
    .storefront .store-home .store-hero h1 {
        font-size: clamp(2.75rem, 10vw, 4.5rem);
        line-height: 1.08;
        letter-spacing: -.035em;
    }
    .storefront .store-home .store-hero h1 + p { font-size: 1rem; line-height: 1.65; }
    .storefront .store-header .capify-mobile-link { font-size: .875rem; letter-spacing: .025em; }
    .storefront .capify-select-trigger { font-size: 1rem; }
}

/* Cards retain enough width for two legible, equal-height actions. */
.storefront #store-content .grid:has(> .store-product-card) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.5rem), 1fr));
}
.storefront #store-content .store-product-card { min-width: 0; }
.storefront #store-content .store-product-card > div:last-child > .store-product-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
    margin-top: auto;
    margin-bottom: 0;
    padding-top: .875rem;
    align-items: stretch;
}
.storefront #store-content .store-product-actions > :is(a, button) {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    width: 100%;
    min-width: 0;
    min-height: 2.75rem;
    margin: 0;
    padding: .65rem .4rem;
    border-radius: .75rem;
    font-family: var(--store-font);
    font-size: .8125rem;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0;
    text-transform: none;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
}
.storefront #store-content .store-product-actions > a.store-product-details-link {
    border: 1px solid #d6cfc5;
    background: #fffdf9;
    color: #292522;
}
.storefront .store-product-details-link svg { display: none; }
.storefront #store-content .store-product-actions > a.store-product-details-link:hover {
    background: #f5eee4;
    border-color: #a98a6d;
}
.storefront .store-product-actions > :is(a, button):focus-visible { outline: 2px solid #a74c29; outline-offset: 3px; }
/* Trust statements wrap as whole labels, never as uneven fragments. */
.storefront #store-content .store-checkout-trust {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .625rem 1rem;
    padding-block: .5rem;
    color: #62574f;
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0;
    text-align: center;
    text-transform: none;
}
.storefront .store-checkout-trust > span { white-space: nowrap; }

/* Match homepage collections: responsive card widths, at most four columns. */
.storefront #store-content .store-home .grid:has(> .store-product-card) {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, max(15.5rem, calc((100% - 3rem) / 4))), 1fr));
}


/* Keep catalog card dimensions independent of the filtered result count.
   Empty tracks remain reserved; narrow screens still use one fluid column. */
.storefront #store-content .store-catalog .grid:has(> .store-product-card) {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr));
    align-items: start;
}
