/* FREFTA storefront type system. Loaded after page styles; never used by admin.
   Outfit gives display headings a distinct voice; DM Sans keeps shopping UI readable. */
:root {
    --font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-display: 'Outfit', 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}
html { -webkit-text-size-adjust: 100%; }
body {
    font-family: var(--font-body) !important;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font-family: var(--font-body) !important; }
input, select, textarea { font-weight: 400; line-height: 1.5; }
body h1, body h2 {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    letter-spacing: -0.025em !important;
    line-height: 1.16;
    text-wrap: balance;
    overflow-wrap: break-word;
}
body h3, body h4, body h5, body h6 {
    font-family: var(--font-body) !important;
    font-weight: 600 !important;
    letter-spacing: -0.015em;
    line-height: 1.35;
    overflow-wrap: break-word;
}
body p, .section-copy, .copy, .policy-card li {
    font-weight: 400;
    line-height: 1.75;
    text-wrap: pretty;
}
body strong, body b { font-weight: 700; }
body label, body .form-group label { font-weight: 600; letter-spacing: 0; }
body button, body .btn, body .btn-primary, body .btn-secondary,
body .product-actions a, body .actions a, body .auth-submit {
    font-weight: 600;
    letter-spacing: 0;
}
body .frefta-public-header .site-nav-link,
body .mobile-site-menu .site-nav-link,
body .user-menu-btn { font-weight: 500 !important; letter-spacing: 0; }
body .frefta-public-header .site-nav-link.active { font-weight: 700 !important; }
body .eyebrow, body .kicker, body .section-kicker, body .policy-eyebrow,
body .panel-strip, body .category, body .badge {
    font-weight: 600 !important;
    letter-spacing: 0.07em;
    line-height: 1.45;
}
body .hero-card h1 { max-width: 18ch; font-size: clamp(2.15rem, 4.2vw, 3.8rem); }
body .hero-card > p, body .hero-band p, body .policy-hero p { max-width: 60ch; }
body .hero-stat strong {
    display: block;
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2vw, 1.7rem);
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.02em;
}
body .hero-stat span { font-weight: 400; line-height: 1.65; }
body .product-card .title, body .product-card .product-title,
body .product-card h3, body .product-card h4 {
    font-family: var(--font-body) !important;
    font-weight: 500 !important;
    letter-spacing: -0.01em !important;
    line-height: 1.45;
}
body .price, body .price-row strong, body .sticky-atc-price,
body .summary-total, body .order-total { font-variant-numeric: lining-nums tabular-nums; font-weight: 700; }
body .price-row del, body .price-row > span { font-weight: 400; }
body .site-footer p { font-weight: 400; line-height: 1.85; }
body .site-footer-column > strong { font-size: 0.9rem; font-weight: 600; letter-spacing: 0.025em; }
body .policy-card p, body .panel-body p { max-width: 70ch; }
body .panel-body p + p { margin-top: 1.1em; }
body .notification-message { font-weight: 500; }
body .auth-footnote { line-height: 1.6; }
:where(a, button, input, select, textarea):focus-visible {
    outline: 2px solid var(--primary, #c2410c);
    outline-offset: 3px;
}
@media (max-width: 768px) {
    body .hero-card h1 { font-size: clamp(2rem, 8.5vw, 2.8rem); line-height: 1.12; }
    body input, body select, body textarea { font-size: max(1rem, 16px); }
    body .hero-stat strong { font-size: 1.3rem; }
    body .section-copy { font-size: 0.95rem; }
}
