/* edMercel UI layer: modern fonts + mobile/tablet responsiveness. Loaded after edmercel.css. */
:root {
    --serif: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font-family: var(--sans); font-size: 16px; line-height: 1.65; overflow-x: hidden; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, legend, .brand b, .tile b, .stat b, .acc summary, .next b { font-family: var(--serif); letter-spacing: -.01em; }
h1 { font-weight: 800; } h2, h3 { font-weight: 700; }
img, svg, video, iframe { max-width: 100%; height: auto; }
a, p, li, h1, h2, h3 { overflow-wrap: break-word; } td, th { overflow-wrap: normal; word-break: normal; }
input, select, textarea { max-width: 100%; font-family: inherit; }

/* Grids that can never be wider than the screen */
.g2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.g3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.g4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.feat-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.cols2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.tiles { grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); }
.cols > *, .work > *, .split > *, .cols2 > * { min-width: 0; }
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-wrap table { min-width: 620px; }

@media (max-width: 960px) {
    .nav > li > a, .nav > li > button { padding: 13px 4px; font-size: 16px; width: 100%; text-align: left; border-bottom: 1px solid var(--line); }
    .mega { display: block !important; }
    .mega .col { margin-bottom: 10px; }
    .work { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 700px) {
    body { font-size: 16px; }
    .container { padding-left: 16px; padding-right: 16px; }
    .utility .container > span:first-child { display: none; }
    .utility .container { justify-content: flex-end; }
    .site-header .container { min-height: 62px; }
    .brand b { font-size: 24px; } .brand small { font-size: 11px; }
    #navToggle { padding: 9px 16px; border-radius: 8px; }

    h1 { font-size: 27px; } h2 { font-size: 22px; } h3 { font-size: 18px; }
    .hero { padding: 34px 0 30px; } .hero h1, .page-hero h1 { font-size: 28px; }
    .hero p.lead, .page-hero .lead { font-size: 16px; }
    .page-hero { padding: 32px 0 28px; }
    .hero .actions .btn { flex: 1 1 100%; text-align: center; }
    .hero-search { padding: 8px; } .hero-search > * { flex: 1 1 100% !important; }
    .band { padding: 34px 0; }
    .sec-head h2 { font-size: 24px; }

    /* forms: stack, 16px text avoids iOS zoom, comfortable tap targets */
    .row > * { flex: 1 1 100%; }
    input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], input[type=search], select, textarea { font-size: 16px; padding: 12px; width: 100%; }
    .btn, button.btn { padding: 12px 18px; }
    fieldset { padding: 4px 12px 14px; }
    .decl, .choice { padding: 12px; }
    .rate label { padding: 8px 14px; }

    .card { padding: 14px; } .panel .pbody { padding: 4px 12px 10px; }
    .cta-band { padding: 22px 18px; flex-direction: column; align-items: flex-start; }
    .cta-band .btn { width: 100%; text-align: center; margin: 4px 0; }
    .pill-stats { grid-template-columns: 1fr 1fr; gap: 10px; }
    .tiles { grid-template-columns: 1fr 1fr; gap: 10px; } .tile { padding: 12px 14px; } .tile b { font-size: 26px; }
    .paper-row { padding: 12px 14px; }
    .paper-row .btn { margin-bottom: 4px; }
    .next { padding: 14px; }
    .tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; -webkit-overflow-scrolling: touch; }
    .tabs a { white-space: nowrap; }
    .admin-nav .container { flex-wrap: nowrap; overflow-x: auto; }
    .admin-nav a { white-space: nowrap; }
    .timeline li { padding-left: 52px; }
    .acc summary { padding: 13px 14px; font-size: 16px; }
    .jcard .links .btn { flex: 1 1 100%; text-align: center; }
    .page-title { flex-wrap: wrap; } .page-title .btn { margin-left: 0 !important; }
    .stepper .st { font-size: 0; } .stepper .st.current { font-size: 0; }
    .panel .rowitem { flex-direction: column; }
    .site-footer { padding-top: 30px; }
}
@media (max-width: 380px) {
    .tiles, .pill-stats { grid-template-columns: 1fr; }
    .brand small { display: none; }
}
