/* ==========================================================================
   ZAREK — REUSABLE COMPONENTS
   Buttons, badges, labels, container
   ========================================================================== */

/* --------------------------------------------------------------------------
   CONTAINER — centers content with max-width
   -------------------------------------------------------------------------- */
.container {
    width: 100%;
    max-width: var(--container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

.container-fluid {
    width: 100%;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

.container-narrow {
    width: 100%;
    max-width: 880px;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

/* --------------------------------------------------------------------------
   BUTTON — base
   -------------------------------------------------------------------------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    padding: 14px 32px;
    font-family: var(--font-sans);
    font-size: var(--font-sm);
    font-weight: var(--weight-medium);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-nav);
    text-decoration: none;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: var(--transition);
    white-space: nowrap;
    user-select: none;
}

.btn:disabled,
.btn.is-disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

/* --------------------------------------------------------------------------
   BUTTON — PRIMARY (black solid, inverts on hover)
   -------------------------------------------------------------------------- */
.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    padding: 14px 32px;
    font-family: var(--font-sans);
    font-size: var(--font-sm);
    font-weight: var(--weight-medium);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-nav);
    text-decoration: none;
    color: var(--color-white);
    background-color: var(--color-text);
    border: 1px solid var(--color-text);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: var(--transition);
    white-space: nowrap;
    user-select: none;
}

.btn-primary:hover,
.btn-primary:focus {
    color: var(--color-text);
    background-color: var(--color-white);
    border-color: var(--color-text);
}

/* --------------------------------------------------------------------------
   BUTTON — OUTLINE (transparent w/ black border, inverts on hover)
   -------------------------------------------------------------------------- */
.btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    padding: 14px 32px;
    font-family: var(--font-sans);
    font-size: var(--font-sm);
    font-weight: var(--weight-medium);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-nav);
    text-decoration: none;
    color: var(--color-text);
    background-color: transparent;
    border: 1px solid var(--color-text);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: var(--transition);
    white-space: nowrap;
    user-select: none;
}

.btn-outline:hover,
.btn-outline:focus {
    color: var(--color-white);
    background-color: var(--color-text);
    border-color: var(--color-text);
}

/* --------------------------------------------------------------------------
   BUTTON — SALE (accent red — promotional CTAs)
   -------------------------------------------------------------------------- */
.btn-sale {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    padding: 14px 32px;
    font-family: var(--font-sans);
    font-size: var(--font-sm);
    font-weight: var(--weight-semibold);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-nav);
    text-decoration: none;
    color: var(--color-white);
    background-color: var(--color-accent);
    border: 1px solid var(--color-accent);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: var(--transition);
    white-space: nowrap;
    user-select: none;
}

.btn-sale:hover,
.btn-sale:focus {
    color: var(--color-accent);
    background-color: var(--color-white);
    border-color: var(--color-accent);
}

/* --------------------------------------------------------------------------
   BUTTON — SIZE MODIFIERS
   -------------------------------------------------------------------------- */
.btn-sm {
    padding: 10px 20px;
    font-size: var(--font-xs);
}

.btn-lg {
    padding: 18px 40px;
    font-size: var(--font-base);
}

.btn-block {
    display: flex;
    width: 100%;
}

/* --------------------------------------------------------------------------
   BADGE — small tag (e.g., NEW, BESTSELLER)
   -------------------------------------------------------------------------- */
.badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    font-family: var(--font-sans);
    font-size: var(--font-xs);
    font-weight: var(--weight-semibold);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-label);
    color: var(--color-white);
    background-color: var(--color-text);
    border-radius: var(--radius-sm);
    white-space: nowrap;
}

/* --------------------------------------------------------------------------
   BADGE — SALE (red accent) for product cards
   -------------------------------------------------------------------------- */
.badge-sale {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    font-family: var(--font-sans);
    font-size: var(--font-xs);
    font-weight: var(--weight-semibold);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-label);
    color: var(--color-white);
    background-color: var(--color-accent);
    border-radius: var(--radius-sm);
    white-space: nowrap;
}

.badge-new {
    background-color: var(--color-text);
    color: var(--color-white);
}

.badge-outline {
    color: var(--color-text);
    background-color: transparent;
    border: 1px solid var(--color-text);
}

/* --------------------------------------------------------------------------
   SECTION LABEL — small uppercase muted text above titles
   e.g. "OUR BESTSELLERS"
   -------------------------------------------------------------------------- */
.section-label {
    display: block;
    font-family: var(--font-sans);
    font-size: var(--font-xs);
    font-weight: var(--weight-medium);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-label);
    color: var(--color-text-muted);
    margin-bottom: var(--space-md);
}

/* --------------------------------------------------------------------------
   SECTION TITLE — large serif heading
   -------------------------------------------------------------------------- */
.section-title {
    font-family: var(--font-serif);
    font-size: var(--font-2xl);
    font-weight: var(--weight-regular);
    line-height: var(--line-height-tight);
    letter-spacing: var(--letter-spacing-tight);
    color: var(--color-text);
    margin-bottom: var(--space-lg);
}

.section-title--italic {
    font-style: italic;
    font-weight: var(--weight-regular);
}

.section-title--lg {
    font-size: var(--font-3xl);
}

/* --------------------------------------------------------------------------
   SECTION HEADER — wraps label + title + optional subtitle
   -------------------------------------------------------------------------- */
.section-header {
    margin-bottom: var(--space-2xl);
}

.section-header--center {
    text-align: center;
}

.section-subtitle {
    font-family: var(--font-sans);
    font-size: var(--font-base);
    font-weight: var(--weight-light);
    line-height: var(--line-height-loose);
    color: var(--color-text-muted);
    max-width: 600px;
    margin-top: var(--space-md);
}

.section-header--center .section-subtitle {
    margin-left: auto;
    margin-right: auto;
}

/* --------------------------------------------------------------------------
   RESPONSIVE — section title scales down on mobile
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
    .section-title {
        font-size: var(--font-xl);
    }

    .section-title--lg {
        font-size: var(--font-2xl);
    }

    .container,
    .container-fluid,
    .container-narrow {
        padding-left: var(--space-md);
        padding-right: var(--space-md);
    }

    /* Section header bottom margin tighter on mobile */
    .section-header {
        margin-bottom: var(--space-xl);
    }

    .section-subtitle {
        font-size: var(--font-sm);
    }

    /* All primary CTAs become full-width on mobile (icon-btn / chips
       / quantity / variant buttons keep their compact sizing because
       they use their own classes, not .btn-*) */
    .btn,
    .btn-primary,
    .btn-outline,
    .btn-sale {
        display: flex;
        width: 100%;
        padding: 16px 24px;
    }
}

@media (max-width: 480px) {
    .section-title {
        font-size: var(--font-lg);
    }

    .section-title--lg {
        font-size: var(--font-xl);
    }
}
