.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.skip-link{position:absolute;top:-40px;left:0;background:#667eea;color:#fff;padding:.75rem 1.5rem;text-decoration:none;font-weight:600;border-radius:0 0 8px;z-index:10000;transition:top .3s ease}.skip-link:focus{top:0}.accessibility-toolbar{position:fixed;right:1rem;top:4.5rem;z-index:9999;display:flex;flex-direction:column;align-items:center}.accessibility-toggle{background:#ffffffe6;color:#2d3748;border:2px solid #e2e8f0;border-radius:50%;width:3rem;height:3rem;padding:0;font-size:1.25rem;cursor:pointer;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.accessibility-toggle:hover,.accessibility-toggle:focus{transform:scale(1.05);background:#f5f5f5f2}.accessibility-toggle:focus{outline:3px solid #667eea;outline-offset:2px}.accessibility-menu{position:absolute;right:100%;top:0;background:#fff;border-radius:8px 0 0 8px;box-shadow:-4px 4px 20px #00000026;padding:1.5rem;min-width:300px;max-width:350px;opacity:0;visibility:hidden;transform:translate(20px);transition:all .3s ease}@media(max-width:768px){.accessibility-toolbar{right:.75rem;top:3.65rem}.accessibility-toggle{width:2.5rem;height:2.5rem;font-size:1rem}.accessibility-menu{right:100%;top:0;min-width:260px}}.accessibility-menu.show{opacity:1;visibility:visible;transform:translate(0)}.accessibility-menu h3{color:#2d3748;font-size:1.125rem;font-weight:600;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid #e2e8f0}.accessibility-group{margin-bottom:1.5rem}.accessibility-group label{display:block;color:#4a5568;font-weight:600;font-size:.875rem;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.accessibility-controls{display:flex;gap:.5rem;align-items:center}.btn-accessibility{background:#f7fafc;border:2px solid #e2e8f0;border-radius:6px;padding:.5rem 1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;color:#4a5568;display:flex;align-items:center;gap:.5rem}.btn-accessibility:hover{background:#edf2f7;border-color:#667eea;transform:translateY(-2px)}.btn-accessibility:focus{outline:3px solid #667eea;outline-offset:2px}.btn-accessibility:active{transform:translateY(0)}.btn-toggle{flex:1;justify-content:center}.btn-toggle[aria-checked=true]{background:#667eea;color:#fff;border-color:#667eea}.font-size-display{display:inline-block;padding:.5rem .75rem;background:#edf2f7;border-radius:6px;font-weight:600;color:#2d3748;font-size:.875rem;margin-top:.5rem}.accessibility-info{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.accessibility-info p{color:#718096;font-size:.875rem;margin-bottom:.5rem}.accessibility-info ul{list-style:none;padding:0;margin:0}.accessibility-info li{color:#718096;font-size:.8rem;padding:.25rem 0;display:flex;align-items:center}.accessibility-info kbd{background:#f7fafc;border:1px solid #cbd5e0;border-radius:4px;padding:.125rem .375rem;font-size:.75rem;font-family:monospace;margin:0 .25rem}body.high-contrast{background-color:#000;color:#fff}body.high-contrast header{background:#000;border-bottom:3px solid #fff}body.high-contrast nav a{color:#fff;border:2px solid #fff;margin:.25rem}body.high-contrast nav a:hover,body.high-contrast nav a:focus,body.high-contrast nav a.active{background-color:#fff;color:#000}body.high-contrast main{background-color:#000}body.high-contrast .hero,body.high-contrast .card,body.high-contrast .dados-faro-section,body.high-contrast section,body.high-contrast .search-filter-section,body.high-contrast .info-item{background-color:#000;color:#fff;border:2px solid #fff}body.high-contrast h1,body.high-contrast h2,body.high-contrast h3,body.high-contrast h4,body.high-contrast h5,body.high-contrast h6,body.high-contrast p,body.high-contrast a,body.high-contrast li,body.high-contrast label,body.high-contrast .info-label,body.high-contrast .info-value,body.high-contrast .card p{color:#fff}body.high-contrast a:hover,body.high-contrast a:focus{color:#ff0;text-decoration:underline}body.high-contrast .card:hover{background-color:#1a1a1a;border-color:#ff0}body.high-contrast .btn,body.high-contrast .btn-primary,body.high-contrast button{background-color:#fff;color:#000;border:2px solid #fff}body.high-contrast .btn:hover,body.high-contrast .btn:focus,body.high-contrast button:hover,body.high-contrast button:focus{background-color:#ff0;color:#000;border-color:#ff0}body.high-contrast footer{background:#000;border-top:3px solid #fff}body.high-contrast .search-input,body.high-contrast input,body.high-contrast select,body.high-contrast textarea{background-color:#000;color:#fff;border:2px solid #fff}body.high-contrast .search-input:focus,body.high-contrast input:focus,body.high-contrast select:focus,body.high-contrast textarea:focus{border-color:#ff0;outline:3px solid #ffff00}body.high-contrast .accessibility-toolbar{background:#000}body.high-contrast .accessibility-toggle{background:#fff;color:#000;border:2px solid #fff}body.high-contrast .accessibility-toggle:hover,body.high-contrast .accessibility-toggle:focus{background:#ff0;color:#000;border-color:#ff0}body.high-contrast .accessibility-menu{background:#000;border:3px solid #fff}body.high-contrast .accessibility-menu h3{color:#fff;border-bottom-color:#fff}body.high-contrast .accessibility-group label{color:#fff}body.high-contrast .btn-accessibility{background:#000;color:#fff;border-color:#fff}body.high-contrast .btn-accessibility:hover,body.high-contrast .btn-accessibility:focus{background:#ff0;color:#000;border-color:#ff0}body.high-contrast .btn-toggle[aria-checked=true]{background:#ff0;color:#000;border-color:#ff0}body.high-contrast .font-size-display{background:#000;color:#fff;border:2px solid #fff}body.high-contrast .accessibility-info{border-top-color:#fff}body.high-contrast .accessibility-info p,body.high-contrast .accessibility-info li{color:#fff}body.high-contrast .accessibility-info kbd{background:#000;color:#fff;border-color:#fff}body.keyboard-navigation a:focus,body.keyboard-navigation button:focus,body.keyboard-navigation input:focus,body.keyboard-navigation select:focus,body.keyboard-navigation textarea:focus,body.keyboard-navigation [tabindex]:focus,body.keyboard-navigation [role=button]:focus,body.keyboard-navigation [role=menuitem]:focus{outline:3px solid #667eea;outline-offset:2px}body.high-contrast.keyboard-navigation a:focus,body.high-contrast.keyboard-navigation button:focus,body.high-contrast.keyboard-navigation input:focus,body.high-contrast.keyboard-navigation select:focus,body.high-contrast.keyboard-navigation textarea:focus,body.high-contrast.keyboard-navigation [tabindex]:focus,body.high-contrast.keyboard-navigation [role=button]:focus,body.high-contrast.keyboard-navigation [role=menuitem]:focus{outline:3px solid #ffff00;outline-offset:2px}body a{color:#5568d3}body a:hover{color:#667eea}.card h3{color:#1a202c}.card p{color:#4a5568}@media(max-width:768px){.accessibility-toolbar{right:.75rem;top:3.65rem}.accessibility-menu{right:100%;top:0;border-radius:8px 0 0 8px;max-width:calc(100vw - 3.5rem)}.accessibility-menu.show{transform:translate(0)}.accessibility-toggle{border-radius:50%}}@media(max-width:480px){.accessibility-menu{padding:1rem;min-width:280px}.accessibility-menu h3{font-size:1rem}.btn-accessibility{padding:.4rem .75rem;font-size:.9rem}.accessibility-info{font-size:.75rem}}body{line-height:1.6}h1,h2,h3,h4,h5,h6{line-height:1.3}p{max-width:75ch;margin-bottom:1em}ul,ol{padding-left:1.5em}li{margin-bottom:.5em}a{text-decoration-skip-ink:auto}button:not(.inline),input[type=submit],input[type=button],input[type=checkbox],input[type=radio],.btn,.btn-favorite,.btn-accessibility,[role=button]:not(a){min-height:44px;min-width:44px}.btn-accessibility,.btn-favorite,.accessibility-toggle{display:inline-flex;align-items:center;justify-content:center}#dark-mode-toggle{position:fixed;top:1rem;right:1rem;z-index:9998;background:#ffffffe6;border:2px solid #e2e8f0;border-radius:50%;width:3rem;height:3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:all .3s ease;box-shadow:0 2px 8px #0000001a}#dark-mode-toggle:hover{transform:scale(1.1) rotate(15deg);box-shadow:0 4px 12px #0003}#dark-mode-toggle:focus{outline:3px solid #667eea;outline-offset:2px}body.dark-mode{background-color:#1a202c;color:#e2e8f0}body.dark-mode header{background:linear-gradient(135deg,#2d3748,#1a202c)}body.dark-mode main{background-color:#1a202c}body.dark-mode .hero,body.dark-mode .card,body.dark-mode .dados-faro-section,body.dark-mode #mapa-section{background-color:#2d3748;color:#e2e8f0;border-color:#4a5568}body.dark-mode .hero h2,body.dark-mode .card h3,body.dark-mode section h2,body.dark-mode .dados-municipio h3,body.dark-mode .favorite-title{color:#f7fafc}body.dark-mode .hero p,body.dark-mode .card p,body.dark-mode p{color:#cbd5e0}body.dark-mode .info-item{background:#1a202c;border-left-color:#667eea}body.dark-mode .info-label{color:#a0aec0}body.dark-mode .info-value{color:#e2e8f0}body.dark-mode .card{border-color:#4a5568}body.dark-mode .card:hover{border-color:#667eea;background-color:#374151}body.dark-mode nav a:not(.active):not([aria-current=page]){color:#fff}body.dark-mode footer{background:linear-gradient(135deg,#2d3748,#1a202c)}body.dark-mode .btn-secondary{background-color:#4a5568;color:#e2e8f0;border-color:#718096}body.dark-mode .search-input-wrapper,body.dark-mode .search-input,body.dark-mode .search-results{background-color:#2d3748;color:#e2e8f0;border-color:#4a5568}body.dark-mode .search-result-item:hover{background-color:#374151}body.dark-mode .favorite-item{background-color:#2d3748;border-color:#4a5568}body.dark-mode .favorite-item:hover{background-color:#374151}body.dark-mode .empty-favorites{background-color:#2d3748}body.dark-mode #dark-mode-toggle{background:#2d3748f2;border-color:#4a5568}body.dark-mode .premium-notice{background:linear-gradient(135deg,#667eea33,#764ba233);border-left-color:#667eea}.scroll-to-top{position:fixed;bottom:2rem;right:2rem;z-index:9997;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:50%;width:3.5rem;height:3.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 4px 12px #0003;opacity:0;transform:translateY(100px);transition:all .3s ease;pointer-events:none}.scroll-to-top.show{opacity:1;transform:translateY(0);pointer-events:auto}.scroll-to-top:hover{transform:translateY(-5px) scale(1.1);box-shadow:0 6px 20px #667eea66}.scroll-to-top:focus{outline:3px solid #ffd54f;outline-offset:2px}.scroll-icon{font-weight:700}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-on-scroll{opacity:0}.animate-on-scroll.animate-fade-in{animation:fadeIn .6s ease-out forwards}.cards-grid .card:nth-child(1).animate-fade-in{animation-delay:.1s}.cards-grid .card:nth-child(2).animate-fade-in{animation-delay:.2s}.cards-grid .card:nth-child(3).animate-fade-in{animation-delay:.3s}.cards-grid .card:nth-child(4).animate-fade-in{animation-delay:.4s}.cards-grid .card:nth-child(5).animate-fade-in{animation-delay:.5s}.cards-grid .card:nth-child(6).animate-fade-in{animation-delay:.6s}.cards-grid .card:nth-child(7).animate-fade-in{animation-delay:.7s}.cards-grid .card:nth-child(8).animate-fade-in{animation-delay:.8s}.cards-grid .card:nth-child(9).animate-fade-in{animation-delay:.9s}.animate-hover{transition:transform .3s ease,box-shadow .3s ease}.animate-hover:hover{transform:translateY(-3px)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading{animation:pulse 1.5s ease-in-out infinite}.filter-container{margin-bottom:2rem;text-align:center}.filter-buttons{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:1rem}.filter-btn{padding:.625rem 1.25rem;background-color:#fff;color:#4a5568;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .3s ease;font-family:inherit}.filter-btn:hover{border-color:#667eea;background-color:#f7fafc;transform:translateY(-2px);box-shadow:0 2px 8px #667eea33}.filter-btn:focus{outline:3px solid #667eea;outline-offset:2px}.filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea;box-shadow:0 4px 12px #667eea4d}body.dark-mode .filter-btn{background-color:#2d3748;color:#e2e8f0;border-color:#4a5568}body.dark-mode .filter-btn:hover{background-color:#374151;border-color:#667eea}body.dark-mode .filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.fade-in{animation:fadeIn .4s ease-out}@media(max-width:768px){#dark-mode-toggle{top:.75rem;right:.75rem;width:2.5rem;height:2.5rem;font-size:1.25rem}.scroll-to-top{bottom:1.5rem;right:1.5rem;width:3rem;height:3rem;font-size:1.25rem}.filter-buttons{gap:.5rem}.filter-btn{padding:.5rem 1rem;font-size:.875rem}}@media(max-width:480px){#dark-mode-toggle{width:2.25rem;height:2.25rem;font-size:1rem}.scroll-to-top{bottom:1rem;right:1rem;width:2.5rem;height:2.5rem;font-size:1rem}.filter-btn{padding:.4rem .875rem;font-size:.8rem}}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.voice-nav-toggle{position:fixed;right:1rem;top:8rem;z-index:9998;background:#ffffffe6;color:#2d3748;border:2px solid #e2e8f0;border-radius:50%;width:3rem;height:3rem;padding:0;font-size:1.25rem;cursor:pointer;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.voice-nav-toggle:hover,.voice-nav-toggle:focus{transform:scale(1.05);background:#f5f5f5f2}.voice-nav-toggle:focus{outline:3px solid #667eea;outline-offset:2px}.voice-nav-toggle.active{background:#667eea;color:#fff;border-color:#667eea}.voice-nav-toggle.listening{background:#f56565;color:#fff;border-color:#f56565;animation:pulse-voice 1.5s ease-in-out infinite}@keyframes pulse-voice{0%,to{transform:scale(1);box-shadow:0 2px 8px #0000001a}50%{transform:scale(1.1);box-shadow:0 4px 16px #f5656566}}.voice-nav-overlay{position:fixed;inset:0;background:#000000b3;z-index:9997;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .3s ease}.voice-nav-overlay.show{opacity:1;visibility:visible}.voice-nav-modal{background:#fff;border-radius:16px;padding:2rem;max-width:500px;width:90%;box-shadow:0 10px 40px #0000004d;text-align:center}.voice-nav-modal h2{margin-top:0;color:#2d3748;font-size:1.5rem}.voice-mic-icon{font-size:4rem;margin:1.5rem 0;display:inline-block}.voice-mic-icon.listening{animation:mic-bounce .8s ease-in-out infinite}@keyframes mic-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.voice-status{font-size:1.125rem;color:#4a5568;margin:1rem 0;min-height:1.5rem}.voice-status.listening{color:#f56565;font-weight:600}.voice-status.success{color:#48bb78;font-weight:600}.voice-transcript{background:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;padding:1rem;margin:1rem 0;min-height:3rem;font-size:1rem;color:#2d3748;font-style:italic}.voice-commands-help{background:#edf2f7;border-radius:8px;padding:1rem;margin-top:1.5rem;text-align:left}.voice-commands-help h3{margin-top:0;font-size:1rem;color:#2d3748}.voice-commands-help ul{list-style:none;padding:0;margin:.5rem 0 0}.voice-commands-help li{padding:.5rem 0;color:#4a5568;font-size:.875rem}.voice-commands-help code{background:#cbd5e0;padding:.125rem .5rem;border-radius:4px;font-family:Courier New,monospace;font-size:.875rem}.voice-controls{margin-top:1.5rem;display:flex;gap:1rem;justify-content:center}.voice-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.voice-btn-primary{background:#667eea;color:#fff}.voice-btn-primary:hover{background:#5a67d8}.voice-btn-secondary{background:#e2e8f0;color:#2d3748}.voice-btn-secondary:hover{background:#cbd5e0}.voice-btn-danger{background:#f56565;color:#fff}.voice-btn-danger:hover{background:#e53e3e}.voice-btn:focus{outline:3px solid #667eea;outline-offset:2px}.voice-btn:disabled{opacity:.5;cursor:not-allowed}.voice-help-section{margin-top:1rem}.voice-help-toggle{background:none;border:none;color:#667eea;text-decoration:underline;cursor:pointer;font-size:.875rem}.voice-help-toggle:hover{color:#5a67d8}.voice-toast{position:fixed;top:6rem;left:50%;transform:translate(-50%);background:#fff;border-radius:8px;padding:1rem 1.5rem;box-shadow:0 4px 12px #00000026;z-index:10000;opacity:0;visibility:hidden;transition:all .3s ease}.voice-toast.show{opacity:1;visibility:visible}.voice-toast.success{border-left:4px solid #48bb78}.voice-toast.error{border-left:4px solid #f56565}.voice-toast.info{border-left:4px solid #4299e1}.dark-mode .voice-nav-toggle{background:#2d3748e6;color:#e2e8f0;border-color:#4a5568}.dark-mode .voice-nav-toggle.active{background:#667eea;color:#fff}.dark-mode .voice-nav-modal{background:#2d3748;color:#e2e8f0}.dark-mode .voice-nav-modal h2{color:#e2e8f0}.dark-mode .voice-status{color:#a0aec0}.dark-mode .voice-transcript{background:#1a202c;border-color:#4a5568;color:#e2e8f0}.dark-mode .voice-commands-help{background:#1a202c}.dark-mode .voice-commands-help h3{color:#e2e8f0}.dark-mode .voice-commands-help li{color:#a0aec0}.dark-mode .voice-commands-help code,.dark-mode .voice-btn-secondary{background:#4a5568;color:#e2e8f0}.dark-mode .voice-btn-secondary:hover{background:#718096}.dark-mode .voice-toast{background:#2d3748;color:#e2e8f0}.high-contrast .voice-nav-toggle{background:#000;color:#fff;border:3px solid #fff}.high-contrast .voice-nav-toggle.listening{background:#ff0;color:#000;border-color:#000}.high-contrast .voice-nav-modal{background:#000;color:#fff;border:3px solid #fff}.high-contrast .voice-transcript{background:#000;border-color:#fff;color:#fff}@media(max-width:768px){.voice-nav-toggle{width:2.5rem;height:2.5rem;font-size:1rem;right:.75rem;top:6.65rem;bottom:auto}.voice-nav-modal{width:95%;padding:1.5rem}.voice-mic-icon{font-size:3rem}.voice-controls{flex-direction:column}.voice-btn{width:100%}}@media(prefers-reduced-motion:reduce){.voice-nav-toggle,.voice-nav-overlay,.voice-toast{transition:none}.voice-nav-toggle.listening,.voice-mic-icon.listening{animation:none}@keyframes pulse-voice{0%,to{transform:none}}@keyframes mic-bounce{0%,to{transform:none}}}
