/* Municipal Base 1.0.0 — no external fonts, scripts, frameworks or trackers. */
:root { color-scheme: light; }
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.mb-site { --mb-primary:#17446a; --mb-accent:#b0762f; --mb-text:#203040; --mb-bg:#fff; --mb-surface:#f4f7f9; --mb-width:1200px; --mb-sidebar:280px; --mb-logo:72px; margin:0; background:var(--mb-bg); color:var(--mb-text); font:400 1rem/1.6 system-ui,-apple-system,"Segoe UI",Arial,sans-serif; overflow-wrap:break-word; }
body.mb-large { font-size:1.18rem; }
img, svg, video { max-width:100%; height:auto; }
iframe { max-width:100%; }
button, input, select, textarea { font:inherit; }
a { color:var(--mb-primary); text-underline-offset:.18em; }
a:hover { color:var(--mb-accent); }
:focus-visible { outline:3px solid var(--mb-accent); outline-offset:3px; }
.mb-container { width:min(calc(100% - 2.5rem),var(--mb-width)); margin-inline:auto; }
.mb-skip { position:absolute; z-index:100; top:-10rem; left:1rem; display:inline-block; padding:.6rem 1rem; background:#fff; color:#172c40; border:2px solid #172c40; }
.mb-skip:focus { top:1rem; }
.mb-topbar { background:var(--mb-primary); color:#fff; padding:.5rem 0; font-size:.9em; }
.mb-topbar a { color:#fff; }
.mb-header { background:var(--mb-bg); border-bottom:1px solid #d8e0e5; }
.mb-sticky .mb-header { position:sticky; top:0; z-index:50; box-shadow:0 2px 12px rgb(0 0 0 / .07); }
.mb-header-inner { min-height:6rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding-block:1rem; }
.mb-brand { display:inline-flex; align-items:center; gap:1rem; min-width:0; text-decoration:none; color:var(--mb-text); }
.mb-brand:hover { color:var(--mb-primary); }
.mb-logo { width:var(--mb-logo); height:auto; max-height:6rem; object-fit:contain; flex:none; }
.mb-brand-text { display:grid; line-height:1.3; }
.mb-brand-text strong { font-size:clamp(1.1rem,2.5vw,1.75rem); }
.mb-brand-text span { margin-top:.2rem; font-size:.88em; }
.mb-header-right { margin-left:auto; }
.mb-nav { background:var(--mb-primary); color:#fff; }
.mb-nav .mb-container { overflow-x:auto; }
.mb-nav a { color:#fff; display:inline-block; padding:.8rem .95rem; text-decoration:none; }
.mb-nav a:hover, .mb-nav a:focus-visible, .mb-nav .active > a, .mb-nav .current > a { background:rgb(255 255 255 / .16); text-decoration:underline; }
.mb-nav ul { padding:0; margin:0; list-style:none; display:flex; flex-wrap:wrap; gap:0; }
.mb-nav li { position:relative; }
.mb-nav li ul { display:none; position:absolute; top:100%; left:0; z-index:60; min-width:13rem; background:var(--mb-primary); box-shadow:0 6px 18px rgb(0 0 0 / .2); }
.mb-nav li:hover > ul, .mb-nav li:focus-within > ul { display:block; }
.mb-nav li ul li { display:block; }
.mb-nav li ul a { display:block; }
.mb-breadcrumbs { padding-block:.85rem; font-size:.9em; }
.mb-breadcrumbs ol, .mb-breadcrumbs ul { margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.4rem; list-style:none; }
.mb-breadcrumbs li + li::before { content:"/"; color:#647687; margin-right:.4rem; }
.mb-main { padding-block:2rem 4rem; min-height:45vh; }
.mb-section { margin-bottom:2rem; }
.mb-section > .moduletable, .mb-section > .mod-custom, .mb-sidebar > .moduletable { min-width:0; }
.mb-section h2, .mb-sidebar h2, .mb-footer h2 { margin-top:0; }
.mb-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:2rem; }
.mb-layout-right { grid-template-columns:minmax(0,1fr) minmax(0,var(--mb-sidebar)); }
.mb-layout-left { grid-template-columns:minmax(0,var(--mb-sidebar)) minmax(0,1fr); }
.mb-layout-left .mb-sidebar { grid-row:1; grid-column:1; }
.mb-layout-left .mb-content { grid-row:1; grid-column:2; }
.mb-content { min-width:0; }
.mb-sidebar { min-width:0; padding:1.2rem; background:var(--mb-surface); align-self:start; }
.mb-sidebar > * + * { margin-top:1.5rem; }
.mb-footer { border-top:3px solid var(--mb-primary); background:var(--mb-surface); padding:2.5rem 0; }
.mb-footer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.mb-footer-bottom, .mb-copyright { display:block; margin-top:1.5rem; border-top:1px solid #cbd5db; padding-top:1rem; }
.mb-copyright { font-size:.86em; }
.mb-footer-bottom + .mb-copyright { margin-top:.5rem; border:0; padding-top:0; }
/* Lightweight defaults for Joomla's core content and forms. */
.mb-content h1 { font-size:clamp(1.7rem,3vw,2.4rem); line-height:1.2; }
.mb-content h2 { line-height:1.25; }
.mb-content :where(p,ul,ol) { max-width:78ch; }
.mb-content table { width:100%; border-collapse:collapse; }
.mb-content th, .mb-content td { padding:.6rem; border:1px solid #cbd5db; text-align:start; }
.mb-content th { background:var(--mb-surface); }
.mb-content .table-responsive { overflow-x:auto; }
.mb-content :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { max-width:100%; border:1px solid #8999a6; border-radius:.2rem; padding:.55rem .7rem; background:var(--mb-bg); color:var(--mb-text); }
.mb-content :where(button,.btn,input[type="submit"]) { cursor:pointer; display:inline-block; padding:.6rem .9rem; border:1px solid var(--mb-primary); border-radius:.2rem; background:var(--mb-primary); color:#fff; text-decoration:none; }
.mb-content :where(button,.btn,input[type="submit"]):hover { filter:brightness(1.12); color:#fff; }
.mb-content .pagination, .mb-content .pagination__wrapper { display:flex; flex-wrap:wrap; gap:.35rem; }
.mb-content .pagination li { list-style:none; }
.mb-component { padding-block:1.5rem; }
[hidden] { display:none !important; }
@media (max-width:900px) { .mb-layout-right, .mb-layout-left { grid-template-columns:minmax(0,1fr); } .mb-layout-left .mb-sidebar, .mb-layout-left .mb-content { grid-row:auto; grid-column:auto; } .mb-layout-left .mb-sidebar { order:2; } .mb-layout-left .mb-content { order:1; } }
@media (max-width:650px) { .mb-container { width:min(calc(100% - 1.5rem),var(--mb-width)); } .mb-header-inner { align-items:flex-start; flex-direction:column; gap:1rem; } .mb-header-right { margin:0; } .mb-nav ul { display:block; width:auto; } .mb-nav li ul { display:block; position:static; padding-inline-start:1rem; box-shadow:none; } .mb-nav li a { display:block; } .mb-footer-grid { grid-template-columns:1fr; } .mb-main { padding-block:1.5rem 3rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
