html {
    font-size: 16px;
}

html.noriva-font-large {
    font-size: 19px;
}

body {
    line-height: 1.6;
}

.text-xs {
    font-size: .875rem !important;
    line-height: 1.35rem !important;
}

.text-sm,
.label,
.table {
    font-size: 1rem !important;
    line-height: 1.55rem !important;
}

.table th {
    font-size: .875rem !important;
    line-height: 1.25rem !important;
}

input,
select,
textarea {
    font-size: 1rem !important;
}

.noriva-font-control {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 90;
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 15px;
    border: 1px solid #b9cbc9;
    border-radius: 14px;
    color: #134e4a;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 10px 30px rgba(15, 45, 55, .18);
    cursor: pointer;
    font: 800 .875rem/1 "Manrope", system-ui, sans-serif;
}

.noriva-font-control:hover,
.noriva-font-control:focus-visible {
    border-color: #0f766e;
    outline: 3px solid rgba(15, 118, 110, .2);
    outline-offset: 2px;
}

.noriva-font-control strong {
    font-size: 1.2rem;
}

/* Página pública */
.landing-brand strong { font-size: 1.05rem !important; }
.landing-brand small { font-size: .78rem !important; }
.landing-nav,
.landing-button { font-size: .9rem !important; }
.landing-eyebrow { font-size: .75rem !important; }
.budget-hero-copy > p:not(.budget-trial),
.landing-section-heading > p,
.budget-resources > div > div > p,
.budget-final-card > p,
.budget-faq-grid > div:first-child > p { font-size: 1rem !important; }
.budget-trial { font-size: .875rem !important; }
.budget-flow-grid p,
.budget-price-card > p,
.budget-price-card li,
.budget-faq summary { font-size: .9rem !important; }
.budget-faq details p,
.budget-resources li strong { font-size: .85rem !important; }
.budget-resources li small,
.budget-footer p,
.budget-footer nav { font-size: .78rem !important; }
.preview-topbar,
.preview-title > span,
.preview-metrics strong,
.preview-list-head { font-size: .72rem !important; }
.preview-title small,
.preview-metrics small,
.preview-metrics em,
.preview-row,
.preview-status { font-size: .66rem !important; }

/* Demonstração */
.demo-brand strong { font-size: 1rem !important; }
.demo-shell small,
.demo-modal small { font-size: .75rem !important; line-height: 1.15rem !important; }
.demo-mode { font-size: .72rem !important; }
.demo-nav button,
.demo-primary,
.demo-secondary { font-size: .88rem !important; }
.demo-sidebar-card strong,
.demo-card-title strong,
.demo-notice strong { font-size: .9rem !important; }
.demo-sidebar-card p,
.demo-notice p,
.demo-section-heading p,
.demo-card-title small,
.demo-followup-mini,
.mini-task,
.catalog-item p,
.followup-card p { font-size: .78rem !important; }
.demo-notice > small,
.demo-metrics > article > small,
.demo-metrics em,
.badge,
.catalog-item small,
.followup-card > span { font-size: .72rem !important; }
.demo-metrics strong { font-size: 1.35rem !important; }
.demo-table-wrap table { font-size: .85rem !important; }
.demo-table-wrap th { font-size: .75rem !important; }
.demo-table-wrap td span small,
.demo-table-wrap td > small { font-size: .72rem !important; }
.demo-table-wrap td > button,
.catalog-item button,
.demo-card-title button,
.followup-card > button { font-size: .8rem !important; }
.catalog-item h3,
.followup-card h3 { font-size: 1rem !important; }
.catalog-item strong { font-size: .9rem !important; }
.chart-scale,
.chart-bars small,
.chart-legend,
.status-list { font-size: .68rem !important; }
.demo-modal-panel > p,
.demo-modal dt,
.demo-modal dd,
.budget-items,
.budget-total { font-size: .82rem !important; }

@media (max-width: 700px) {
    .noriva-font-control {
        right: 12px;
        bottom: 12px;
        min-height: 44px;
        padding: 0 12px;
    }
}

/* Alinhamento e legibilidade dos cartões inferiores da demonstração */
.demo-panels-lower {
    align-items: stretch;
}

.demo-panels-lower > .demo-card {
    min-height: 100%;
}

.demo-panels-lower > .demo-card:first-child {
    overflow: hidden;
}

.demo-panels-lower > .demo-card:first-child .demo-card-title {
    min-height: 72px;
    padding: 18px 20px;
}

.demo-panels-lower > .demo-card:first-child .demo-table-wrap {
    border-top: 1px solid #edf1f3;
}

.demo-followup-mini {
    display: flex;
    flex-direction: column;
    padding: 18px 20px !important;
}

.demo-followup-mini .demo-card-title {
    min-height: 54px;
}

.demo-followup-mini .demo-card-title strong {
    font-size: 1rem !important;
    line-height: 1.4 !important;
}

.demo-followup-mini .demo-card-title small {
    font-size: .875rem !important;
    line-height: 1.4 !important;
}

.demo-followup-mini .mini-task {
    grid-template-columns: 40px minmax(0, 1fr) auto;
    gap: 12px;
    padding: 18px 0;
}

.demo-followup-mini .mini-task > i {
    width: 36px;
    height: 36px;
    font-size: .9rem;
}

.demo-followup-mini .mini-task strong {
    font-size: .9rem !important;
    line-height: 1.4 !important;
}

.demo-followup-mini .mini-task small {
    font-size: .82rem !important;
    line-height: 1.4 !important;
}

.demo-followup-mini .mini-task > span {
    font-size: .78rem !important;
    line-height: 1.3 !important;
}

@media (max-width: 700px) {
    .demo-panels-lower > .demo-card:first-child .demo-card-title,
    .demo-followup-mini {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}
