/* Express Care Pharmacy — global professional sizing & responsiveness */

/* Base typography scale */
html {
    font-size: 15px;
}

@media (max-width: 640px) {
    html { font-size: 14px; }
}

body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 0.95rem;
    line-height: 1.55;
    color: #1f2937;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
    line-height: 1.25;
    font-weight: 600;
    margin-bottom: 0.6rem;
}

h1 { font-size: 1.75rem; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.25rem; }
h4 { font-size: 1.1rem; }
h5 { font-size: 1rem; }
h6 { font-size: 0.95rem; }

@media (min-width: 768px) {
    h1 { font-size: 2rem; }
    h2 { font-size: 1.65rem; }
    h3 { font-size: 1.35rem; }
    h4 { font-size: 1.15rem; }
}

/* Paragraph / text */
p, li, span, div, label, td, th {
    font-size: 0.95rem;
    line-height: 1.6;
}

small, .text-sm { font-size: 0.82rem; }
.text-xs { font-size: 0.75rem; }
.text-lg { font-size: 1.05rem; }
.text-xl { font-size: 1.15rem; }

/* Buttons — medium, professional */
button, .btn, [class*="btn-"], input[type="submit"], input[type="button"] {
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    padding: 0.65rem 1.25rem !important;
    border-radius: 0.5rem !important;
}

/* Inputs & form fields */
input, select, textarea {
    font-size: 0.95rem !important;
    padding: 0.65rem 0.85rem !important;
    border-radius: 0.4rem !important;
    min-height: 2.5rem;
}

input::placeholder, textarea::placeholder {
    font-size: 0.85rem;
    opacity: 0.7;
}

/* Cards & containers */
.card, .box, [class*="card"], [class*="box"] {
    border-radius: 0.75rem;
    padding: 1.25rem;
}

/* Modals & overlays */
.modal, [class*="modal"], .overlay, [class*="overlay"] {
    max-width: 92vw !important;
    width: auto !important;
}

@media (min-width: 640px) {
    .modal, [class*="modal"] {
        max-width: 480px !important;
    }
}

@media (min-width: 1024px) {
    .modal, [class*="modal"] {
        max-width: 560px !important;
    }
}

.modal-content, [class*="modal-content"] {
    padding: 1.25rem !important;
    border-radius: 0.75rem !important;
    max-height: 90vh;
    overflow-y: auto;
}

/* Tables */
table, .table, [class*="table"] {
    font-size: 0.88rem;
}

td, th {
    padding: 0.65rem 0.75rem;
}

/* Responsive images */
img {
    max-width: 100%;
    height: auto;
}

/* Utility: prevent overflow on mobile */
body {
    overflow-x: hidden;
}

/* Reduce excessive padding on mobile */
@media (max-width: 640px) {
    .container, [class*="container"], section, main {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    h1 { font-size: 1.55rem; }
    h2 { font-size: 1.35rem; }
    h3 { font-size: 1.15rem; }

    .card, .box, [class*="card"], [class*="box"] {
        padding: 1rem;
    }

    .modal-content, [class*="modal-content"] {
        padding: 1rem !important;
    }
}
