/* Font Weight Utility Classes */
.ub-font-light {
    font-weight: 300;
}

.ub-font-regular {
    font-weight: 400;
}

.ub-font-medium {
    font-weight: 500;
}

.ub-font-semibold {
    font-weight: 600;
}

.ub-font-bold {
    font-weight: 700;
}

.fs-dialog-icon {
    font-size: 1.25rem;
}

/* New Typography System */
.ub-h1 {
    font-size: 3rem;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.ub-h2 {
    font-size: 2.25rem;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.ub-h3 {
    font-size: 1.75rem;
    line-height: 1.4;
}

.ub-h4 {
    font-size: 1.5rem;
    line-height: 1.4;
}

.ub-h5 {
    font-size: 1.25rem;
    line-height: 1.4;
}

.ub-h6 {
    font-size: 1.125rem;
    line-height: 1.4;
}

.ub-body {
    font-size: 1rem;
    line-height: 1.5;
}

.ub-label {
    font-size: 0.875rem;
    line-height: 1.4;
}

/* Common Typography Styles */
.responsive-title {
    font-size: clamp(1.25rem, 2.5vw, 2rem);
    line-height: 1.2;
    margin-bottom: 0.75rem;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.responsive-body {
    font-size: clamp(1rem, 1.75vw, 1.25rem);
    line-height: 1.5;
    margin-bottom: 1.25rem;
    opacity: 0.9;
}

/* Tablet Styles */
@media (max-width: 1024px) {
    .ub-h1 {
        font-size: 2.5rem;
    }

    .ub-h2 {
        font-size: 2rem;
    }

    .ub-h3 {
        font-size: 1.5rem;
    }

    .ub-h4 {
        font-size: 1.375rem;
    }

    .ub-h5 {
        font-size: 1.125rem;
    }

    .ub-h6 {
        font-size: 1rem;
    }

    .ub-body {
        font-size: 0.9375rem;
    }

    .ub-label {
        font-size: 0.8125rem;
    }

    .responsive-title {
        font-size: clamp(1.125rem, 2vw, 1.75rem);
        margin-bottom: 0.625rem;
    }

    .responsive-body {
        font-size: clamp(0.9375rem, 1.5vw, 1.125rem);
        margin-bottom: 1rem;
    }
}

/* Small Tablet Styles */
@media (max-width: 768px) {
    .ub-h1 {
        font-size: 2.25rem;
    }

    .ub-h2 {
        font-size: 1.75rem;
    }

    .ub-h3 {
        font-size: 1.375rem;
    }

    .ub-h4 {
        font-size: 1.25rem;
    }

    .ub-h5 {
        font-size: 1.125rem;
    }

    .ub-h6 {
        font-size: 1rem;
    }

    .ub-body {
        font-size: 0.875rem;
    }

    .ub-label {
        font-size: 0.75rem;
    }

    .responsive-title {
        font-size: clamp(1rem, 1.75vw, 1.5rem);
        margin-bottom: 0.5rem;
    }

    .responsive-body {
        font-size: clamp(0.875rem, 1.25vw, 1rem);
        margin-bottom: 0.875rem;
        line-height: 1.4;
    }
}

/* Mobile Styles */
@media (max-width: 480px) {
    .ub-h1 {
        font-size: 2rem;
    }

    .ub-h2 {
        font-size: 1.5rem;
    }

    .ub-h3 {
        font-size: 1.25rem;
    }

    .ub-h4 {
        font-size: 1.125rem;
    }

    .ub-h5 {
        font-size: 1rem;
    }

    .ub-h6 {
        font-size: 0.9375rem;
    }

    .ub-body {
        font-size: 0.875rem;
    }

    .ub-label {
        font-size: 0.75rem;
    }

    .responsive-title {
        font-size: clamp(0.9375rem, 1.5vw, 1.25rem);
        margin-bottom: 0.375rem;
    }

    .responsive-body {
        font-size: clamp(0.8125rem, 1.125vw, 0.9375rem);
        margin-bottom: 0.75rem;
        line-height: 1.4;
    }
}

/* ------------------------------------------------------------------ */
/* Billing / address card typography                                   */
/* Reusable text classes used by the checkout billing information card  */
/* (resources/views/frontend/checkout_page/billing_info_component.blade */
/* .php + the billing branch of address_card_1.blade.php) so the blade  */
/* files carry no inline font styles. Values are tuned to the billing   */
/* card reference design, which uses a neutral sans (Inter/Arial) rather */
/* than the theme font. The font family is applied here (scoped to the   */
/* billing-only ub-* classes), so other pages are unaffected.            */
/* ------------------------------------------------------------------ */

/* Shared neutral sans stack for the billing section. */


/* Section header: "Billing information" (bold, slightly larger, darker) */


/* Address card: customer name (~14–15px, regular weight, near-black).
   The `.address-line.*` selectors out-specify the shared `.address-line`
   rule (bold/black) in address-card-1.css regardless of stylesheet order. */
.ub-address-name,
.address-line.ub-address-name {
    font-size: 0.9375rem;      /* ~15px */
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0;
    color: #1f2937;
}

/* Address card: address lines (~12px, line-height ~17px, bluish dark-grey) */
.ub-address-text,
.address-line.ub-address-text {
    font-size: 0.75rem;        /* 12px */
    font-weight: 400;
    line-height: 1.4;          /* ~17px, compact */
    letter-spacing: 0;
    color: #475569;            /* bluish dark-grey (slate-600) */
}

/* Address card: phone line (same scale as address text) */
.ub-address-phone,
.address-line.ub-address-phone {
    font-size: 0.75rem;        /* 12px */
    font-weight: 400;
    line-height: 1.4;          /* ~17px, compact */
    letter-spacing: 0;
    color: #475569;
}

/* Small badges on the card: "Default" (~9–10px white text) */
.ub-badge-text {
    font-size: 0.625rem;       /* ~10px */
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.01em;
}

/* Header action button: "+ Add new" */
.ub-btn-text {
    font-size: 0.875rem;       /* ~14px */
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0;
}

/* Animation Styles */
.fade-in-up {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 0.6s ease forwards;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    .fade-in-up {
        animation: none;
        opacity: 1;
        transform: none;
    }
}

/* ------------------------------------------------------------------ */
/* Order summary typography                                            */
/* Reusable classes for the checkout "Order Summary" card. Applied via   */
/* CSS scoping in billing-address-info.css so the shared cart_summary    */
/* blade partial doesn't need inline font styles.                        */
/* ------------------------------------------------------------------ */

/* Summary row label: "Subtotal", "Tax", "Total Shipping" */
.ub-summary-label {
    line-height: 1.5;
    color: #374151;
}

/* Summary row value: "₹700.00", "₹0.00" */
.ub-summary-value {
    line-height: 1.5;
    color: #1f2937;
}

/* Summary TOTAL row (bold, slightly larger) */
.ub-summary-total {
    line-height: 1.4;
    color: #111827;
}

/* Small utility text: 12px (coupon codes, badges) */
.ub-caption {
    font-size: 0.75rem;        /* 12px */
    line-height: 1.4;
}

/* Extra-small utility text: 11px (coupon descriptions, tiny buttons) */
.ub-small {
    font-size: 0.6875rem;      /* 11px */
    line-height: 1.4;
}

