/* F02. Estilos locais; logotipo, cabeçalho e rodapé continuam no shell oficial. */
body{margin:0;background:#f6f9fc;color:#17324d;font-family:Nunito,system-ui,sans-serif;line-height:1.6}
.map-page *{box-sizing:border-box}.map-page{width:min(1160px,calc(100% - 32px));margin:28px auto 52px}.map-page [hidden]{display:none!important}
.map-page h1,.map-page h2,.map-page h3{color:#0b1c3c;line-height:1.18;overflow-wrap:anywhere}
.map-hero{padding:clamp(22px,4vw,40px);background:#0b2854;border-radius:24px;color:white;margin-bottom:28px}
.map-hero h1{color:white;font-size:clamp(30px,4.6vw,52px);max-width:850px;margin:12px 0 18px;letter-spacing:-.025em}.map-hero p{max-width:78ch;color:#e2edf9}
.map-eyebrow{font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#b9ddff}.map-entry{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.map-entry a{min-height:48px;padding:11px 17px;border-radius:12px;background:white;color:#123457;font-weight:800;text-decoration:none;display:inline-flex;align-items:center}
.map-entry .secondary{background:transparent;border:1px solid #adc4dd;color:white}.map-section{margin:34px 0;scroll-margin-top:90px}.map-section h2{font-size:clamp(25px,3vw,34px);margin:0 0 12px}
.map-search{display:grid;grid-template-columns:minmax(160px,1fr) minmax(150px,.65fr) auto auto;gap:10px;align-items:end;padding:18px;border:1px solid #cbd9e8;border-radius:16px;background:white}.map-search label{display:block;font-weight:800;margin-bottom:6px}
.map-search input,.map-search select,.map-search button,.map-empty button{font:inherit;font-size:16px;min-height:46px;border:1px solid #849ab3;border-radius:9px;padding:10px;max-width:100%;width:100%;color:#17324d;background:white}
.map-search button,.map-empty button{cursor:pointer;background:#165b94;color:white;border-color:#165b94;font-weight:800}.map-search .secondary{background:#fff;color:#165486}
.map-result{color:#344f68;font-weight:700;margin:16px 0}.map-topics{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.map-topics li{min-width:0;border:1px solid #cedce8;border-radius:15px;background:white;display:flex}
.map-topics a{display:flex;flex-direction:column;width:100%;padding:18px;text-decoration:none;color:#0b2854;min-height:135px;gap:9px}.map-topics a:hover{background:#edf6fc;border-radius:15px}.map-topics strong{font-size:18px;line-height:1.35;overflow-wrap:anywhere}.map-topics small{color:#4c6174}.map-topics span:last-child{font-weight:800;font-size:14px;color:#145b88;margin-top:auto}
.map-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.map-routes details{border:1px solid #cedce8;border-radius:14px;padding:14px 18px;background:white;min-width:0}.map-routes summary{font-weight:800;min-height:44px;cursor:pointer;padding:9px 0;color:#17324d}.map-routes a{display:inline-block;min-height:44px;padding:8px 0;color:#145b88;text-underline-offset:3px}.map-routes ol{margin:8px 0;padding-left:24px}
.map-page :is(a,button,input,select,summary):focus-visible,.map-result:focus{outline:3px solid #b56700;outline-offset:4px}.map-empty{padding:18px;border:1px solid #d8bb7b;border-radius:12px;background:#fff8e5}.map-empty button{width:auto}
@media(max-width:850px){.map-topics{grid-template-columns:repeat(2,minmax(0,1fr))}.map-search{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:500px){.map-page{width:calc(100% - 24px);margin-top:16px}.map-topics,.map-routes,.map-search{grid-template-columns:1fr}.map-search input,.map-search select{min-width:0}.map-topics a{min-height:112px}}
@media print{.map-search,.map-entry{display:none!important}.map-topics li[hidden]{display:flex!important}.map-topics{grid-template-columns:1fr 1fr}.map-topics li{break-inside:avoid}.map-hero{background:white;color:#111}.map-hero h1,.map-hero p{color:#111}}
