/* Stronger mobile scaling */
@media (max-width: 767.98px) {

    /*
     * Bootstrap normally uses 16px.
     * 13px gives approximately 19% reduction.
     */
    html {
        font-size: 13px;
    }

    body {
        font-size: 1rem;
        line-height: 1.4;
    }

    /* Headings */
    h1,
    .h1 {
        font-size: 2rem;
    }

    h2,
    .h2 {
        font-size: 1.7rem;
    }

    h3,
    .h3 {
        font-size: 1.45rem;
    }

    h4,
    .h4 {
        font-size: 1.25rem;
    }

    h5,
    .h5 {
        font-size: 1.1rem;
    }

    h6,
    .h6 {
        font-size: 1rem;
    }

    .lead {
        font-size: 1.15rem;
    }

    /* Buttons */
    .btn {
        --bs-btn-font-size: 1rem;
        --bs-btn-padding-x: 1rem;
        --bs-btn-padding-y: 0.55rem;
    }

    .btn-lg,
    .btn-group-lg > .btn {
        --bs-btn-font-size: 1.1rem;
        --bs-btn-padding-x: 1.15rem;
        --bs-btn-padding-y: 0.65rem;
    }

    .btn-sm,
    .btn-group-sm > .btn {
        --bs-btn-font-size: 0.9rem;
        --bs-btn-padding-x: 0.65rem;
        --bs-btn-padding-y: 0.35rem;
    }

    /* Keep inputs at 16px to prevent iPhone input zoom */
    .form-control,
    .form-select,
    .input-group-text {
        font-size: 16px;
        padding-top: 0.55rem;
        padding-bottom: 0.55rem;
    }

    .form-control {
        padding-left: 0.9rem;
        padding-right: 0.9rem;
    }

    .form-select {
        padding-left: 0.9rem;
        padding-right: 3rem;
        background-position: right 0.9rem center;
    }

    /* Navigation */
    .navbar {
        --bs-navbar-padding-y: 0.65rem;
    }

    .navbar-brand {
        font-size: 1.1rem;
    }

    .nav-link,
    .dropdown-menu {
        font-size: 1rem;
    }

    .dropdown-menu {
        --bs-dropdown-item-padding-x: 1.25rem;
        --bs-dropdown-item-padding-y: 0.45rem;
    }

    /* Cards */
    .card {
        --bs-card-spacer-y: 1rem;
        --bs-card-spacer-x: 1rem;
        --bs-card-title-spacer-y: 0.65rem;
        --bs-card-cap-padding-y: 0.65rem;
        --bs-card-cap-padding-x: 1rem;
        --bs-card-img-overlay-padding: 1rem;
    }

    /* Alerts */
    .alert {
        --bs-alert-padding-x: 1rem;
        --bs-alert-padding-y: 1rem;
    }

    /* List groups */
    .list-group {
        --bs-list-group-item-padding-x: 1rem;
        --bs-list-group-item-padding-y: 0.65rem;
    }

    /* Tables */
    .table {
        font-size: 0.9rem;
        margin-bottom: 1rem;
    }

    .table > :not(caption) > * > * {
        padding: 0.4rem;
    }

    /* Modal spacing */
    .modal {
        --bs-modal-padding: 1.25rem;
        --bs-modal-header-padding: 1.25rem;
    }

    /* Reduce common vertical spacing */
    p,
    ol,
    ul,
    dl {
        margin-bottom: 0.75rem;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    .h1,
    .h2,
    .h3,
    .h4,
    .h5,
    .h6 {
        margin-bottom: 0.7rem;
    }
}

/* more gutter on mobile cards */
@media (max-width: 767.98px) {
    .container,
    .container-fluid,
    .container-sm,
    .container-md,
    .container-lg,
    .container-xl,
    .container-xxl,
    .row {
        --bs-gutter-x: 32px;
    }
}