:root {
    --min-screen-width: 320px;
    --max-screen-width: 1440px;

    /* Brand */
    --brand-primary: #C8864A;
    --brand-subtle: #f5e6d8;
    --background-page: #FFFFFF;
    --background-section: #F8F7F4;
    --background-inverse: #1A1A1A;
    --text-primary: #1A1A1A;
    --text-secondary: #6b6b6b;
    --text-inverse: #ffffff;
    --text-inverse-soft: #F0ECE8;
    --neutral-border: #EBEBEB;
    --status-sale: #b85c38;

    /* Fonts */
    --font-body: "Inter", sans-serif;
    --font-heading: "Playfair Display", serif;

    /* Layout foundation */
    --container-max: 1440px;

    /* Space scale */
    --space-2xs: clamp(0.5rem, 0.46rem + 0.12vw, 0.65rem);
    --space-xs: clamp(0.75rem, 0.66rem + 0.26vw, 1rem);
    --space-s: clamp(1rem, 0.86rem + 0.45vw, 1.35rem);
    --space-m: clamp(1.25rem, 1.05rem + 0.7vw, 1.9rem);
    --space-l: clamp(1.75rem, 1.35rem + 1.3vw, 2.8rem);
    --space-xl: clamp(2.5rem, 1.8rem + 2vw, 4.2rem);
    --space-2xl: clamp(3rem, 2rem + 3vw, 5.8rem);

    /* Header foundation */
    --space-header-inline: clamp(1rem, 4vw, 5rem);
    --space-header-nav-gap: clamp(18px, 2.4vw, 34px);
    --size-header-logo-width: clamp(10rem, 13vw, 16rem);

    /* Type scale foundation */
    --text-xs: clamp(0.72rem, 0.7rem + 0.08vw, 0.78rem);
    --text-s: clamp(0.82rem, 0.8rem + 0.1vw, 0.9rem);
    --text-m: clamp(1rem, 0.96rem + 0.14vw, 1.0625rem);
    --text-l: clamp(1.05rem, 0.96rem + 0.4vw, 1.25rem);
    --text-xl: clamp(1.35rem, 1.1rem + 0.9vw, 1.9rem);
    --text-2xl: clamp(1.8rem, 1.35rem + 1.5vw, 2.8rem);

    /* Layout semantic */
    --layout-page-inline: clamp(20px, 4vw, 80px);
    --layout-page-shell-space: clamp(20px, 3vw, 28px);
    --layout-page-shell-gap: clamp(24px, 4vw, 40px);
    --layout-site-main-offset: calc(var(--header-height) + 40px);
    --layout-footer-margin-top: clamp(40px, 8vw, 80px);
    --layout-footer-space-y: 24px;

    /* Header semantic */
    --header-height: 68px;
    --header-inline-padding: var(--space-header-inline);
    --header-inner-gap: clamp(12px, 2vw, 24px);
    --header-actions-gap: clamp(2px, 0.4vw, 4px);
    --header-nav-gap: var(--space-header-nav-gap);
    --header-logo-width: var(--size-header-logo-width);
    --header-logo-fallback-size: clamp(1.35rem, 0.8rem + 1.2vw, 1.55rem);
    --header-nav-font-size: clamp(0.82rem, 0.7rem + 0.2vw, 0.875rem);
    --header-icon-button-size: 40px;
    --header-icon-size: 20px;
    --header-divider-margin: clamp(4px, 1vw, 8px);
    --cart-badge-size: 0.62rem;

    /* Page semantic */
    --page-title-size: clamp(1.7rem, 1rem + 2.5vw, 2.4rem);
    --page-item-title-size: clamp(1.2rem, 0.9rem + 1vw, 1.6rem);
    --page-copy-size: var(--text-m);
    --footer-copy-size: 0.9rem;

    /* Mobile semantic */
    --mobile-panel-padding-top: clamp(16px, 3vw, 24px);
    --mobile-panel-padding-bottom: clamp(20px, 4vw, 32px);
    --mobile-section-label-size: 0.66rem;
    --mobile-nav-font-size: 1rem;

    /* Search semantic */
    --search-panel-max-width: 920px;
    --search-panel-padding-top: clamp(20px, 3vw, 32px);
    --search-panel-padding-bottom: clamp(28px, 4vw, 42px);
    --search-input-wrap-padding-y: clamp(10px, 1.2vw, 14px);
    --search-input-wrap-gap: clamp(8px, 1.5vw, 16px);
    --search-icon-size: clamp(20px, 2.4vw, 24px);
    --search-input-size: clamp(1.15rem, 0.8rem + 1.6vw, 1.8rem);
    --search-close-size: 0.78rem;
    --search-esc-size: 0.7rem;
    --search-section-title-size: 0.7rem;
    --search-recent-size: 0.88rem;
    --search-popular-size: 0.82rem;
    --search-result-label-size: 0.66rem;
    --search-result-title-size: 1rem;
    --search-result-meta-size: 0.82rem;
    --search-empty-title-size: 1.25rem;
    --search-empty-copy-size: 0.9rem;

    /* Radius */
    --radius-xs: 4px;
    --radius-s: 8px;
    --radius-m: 12px;
    --radius-l: 20px;
    --radius-xl: 32px;
    --radius-full: 999rem;

    /* Shadow */
    --shadow-primary: rgba(26, 26, 26, 0.08);
    --shadow-xs: 0 1px 2px var(--shadow-primary);
    --shadow-s: 0 2px 6px var(--shadow-primary);
    --shadow-m: 0 4px 16px var(--shadow-primary);

    /* Motion */
    --transition-fast: 0.2s ease;
    --transition-medium: 0.28s ease;
}
