/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
* {
    box-sizing: content-box;
}
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
html {
    scroll-behavior: smooth;
}
:root {
    --active: rgba(100,226,0,0.2);
    --inactive: hsla(14, 100%, 44%, 0.2);
    --validated: #DCEFFF;
    --primary:#FFD600;
    --primary-light: #FFF4BB;
    --review1: #F17A54;
    --review2: #FBB851;
    --review3: #F6D757;
    --review4: #B7EA83;
    --review5: #76DB98;
    --error: #FFC8BB;
    --success: #22a557;
    --fail: #ec4029;
    --lightest-gray:#f7f7f7;
    --lighter-gray-text: #999;
    --lighter-gray:#666;
    --gray:#ccc;
    --darker-gray:#333;
    --black10: rgba(0, 0, 0, 0.10);
    --black20: rgba(0, 0, 0, 0.20);
    --black60: rgba(0, 0, 0, 0.60);
    --white20: rgba(255, 255, 255, 0.20);
    --white60: rgba(255, 255, 255, 0.60);
    --white80: rgba(255, 255, 255, 0.80);
    --base-unit: 4px;
}
::selection {
    background: var(--primary);
    color: black;
    text-shadow: none;
}
@font-face {
  font-family: 'Inter';
  src: url(/assets/Inter-VariableFont_slnt,wght-e40a2b7dcac62851907c5261bde951cedfd68ef30b8f68bdad983f7cd3b1a230.ttf) format('truetype');
  font-display: swap;
}
input[type="search"], input[type="text"], input[type="email"], textarea {
  border: 2px solid var(--black10);
  padding: calc(var(--base-unit)*3);
  border-radius: var(--base-unit);
  color: black;
  font-family: 'Inter',sans-serif;
  font-variation-settings: 'wght' 700;
}
input[type="search"]:focus, input[type="text"]:focus, input[type="email"]:focus, textarea:focus {
  outline: 0;
  border-color: var(--gray);
  background-color: var(--lightest-gray);
}
input[type="search"] {
  background-image: url('data:image/svg+xml;utf8,<svg width="14" height="15" viewBox="0 0 14 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.86951 10.3696L12.9999 13.5" stroke="black" stroke-width="1.5" strokeLinecap="round" stroke-linejoin="round"/><path d="M5.95652 11.413C8.69393 11.413 10.913 9.19393 10.913 6.45652C10.913 3.71911 8.69393 1.5 5.95652 1.5C3.21911 1.5 1 3.71911 1 6.45652C1 9.19393 3.21911 11.413 5.95652 11.413Z" stroke="black" stroke-width="1.5" strokeLinecap="round" stroke-linejoin="round"/></svg>');
  background-position: right calc(var(--base-unit)*3) center;
  background-repeat: no-repeat;
  padding-right: calc(var(--base-unit)*10);

}
input:focus.invalid {
  border-color: red !important;
  background-color: var(--inactive);
}
input:focus.valid {
  border-color: green !important;
  background-color: var(--active);
}
input::placeholder, textarea::placeholder {
  color: var(--gray);
  font-variation-settings: 'wght' 300;
}
body {
    font-family: 'Inter', sans-serif;
    color: var(--lighter-gray);
}
body.paddingBottom {
  padding-bottom: calc(var(--base-unit)*20);
}
.container {
  max-width: 1080px;
  margin: 0 auto;
}
p strong {
    color: var(--darker-gray);
    font-weight: 700;
}
p.fix_feedback {
    padding: var(--base-unit) calc(var(--base-unit)*2);
    border: 1px solid var(--black10);
    border-radius: calc(var(--base-unit)*10);
    display: inline-flex;
    column-gap: calc(var(--base-unit)*2);
    align-items: center;
    font-size: 80%;
    color: black;
}
p.correct {
    background: var(--active);
}
p.incorrect {
    background: var(--inactive);
}
p.validated {
    background: var(--validated);
}
a {
    text-decoration: none;
}
small {
    font-size: 90%;
}
h1,h2,h3,.h1,.h2,.h3 {
    font-weight: 600;
    color: black;
    letter-spacing: -0.05rem;
    position: relative;
    margin: calc(var(--base-unit)*14) 0 calc(var(--base-unit)*5);
}
h1, .h1 {
    font-size: 180%;
}
h1:has(strong) {
    font-weight: 500;
}
h1 strong {
    font-weight: 700;
}
h2, .h2 {
    font-size: 150%;
    margin-bottom: calc(var(--base-unit)*5);
}
h3, .h3 {
    font-size: 125%;
}
main h2 {
    border-left: var(--base-unit) solid var(--primary);
    padding-left: calc(var(--base-unit)*3);
}
.reported {
    padding: calc(var(--base-unit)*8);
    background-color: var(--primary-light);
    color: var(--darker-gray);
    border: 1px solid var(--black10);
    border-radius: var(--base-unit);
    margin-bottom: calc(var(--base-unit)*4);
}
.columns-1fr_300px {
    display: grid;
    grid-template-columns: 1fr 300px;
    grid-gap: calc(var(--base-unit)*8);
}
.columns-300px_1fr {
    display: grid;
    grid-template-columns: 300px 2fr;
    grid-gap: calc(var(--base-unit)*8);
}
.columns-200px_1fr {
    display: grid;
    grid-template-columns: 200px 2fr;
    grid-gap: calc(var(--base-unit)*8);
}
.columns-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: calc(var(--base-unit)*8);
}
.columns-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-gap: calc(var(--base-unit)*8);
}
.home .topo {
    margin-bottom: 0;
}
.home .hero {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    gap: calc(var(--base-unit)*5);
    background-color: var(--primary);
    padding: calc(var(--base-unit)*20) 0;
}
.home .hero h1, .hero h2 {
    margin: 0;
}
.home .hero h1, .hero h2 {
    padding: 0 calc(var(--base-unit)*10);
    text-align: center;
}
.home .hero ul.container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: calc(var(--base-unit)*3);
    row-gap: calc(var(--base-unit)*5);
}
.home .hero ul.container a {
    border: 1px solid var(--black20);
    padding: var(--base-unit) calc(var(--base-unit)*2);
    border-radius: var(--base-unit);
}
.home .hero ul.container a:hover {
    background-color: white;
    border-color: var(--black20);
    color: black;
}
.home .lists li {
    margin-bottom: calc(var(--base-unit)*3);
}
nav#breadcrumbs ol {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    line-height: 2;
    font-size: 90%;
    margin-bottom: calc(var(--base-unit)*8);
}
nav#breadcrumbs ol li:not(:last-child)::after {
    content: "/";
    color: var(--gray);
    margin: 0 calc(var(--base-unit)*2) ;
}
body:has(#breadcrumbs) h1 {
    margin-top: calc(var(--base-unit)*5);
}
main p, aside p {
    line-height: 1.5;
    margin-bottom: calc(var(--base-unit)*3);
}
section a, #breadcrumbs a {
    border-bottom: 2px solid var(--primary);
    padding-bottom: 2px;
    color: black;
    font-weight: 500;
}
section a:hover, #breadcrumbs a:hover {
    border-color: transparent;
    background-color: var(--primary);
}
/* aside {
    height: 100dvh;
} */
aside #inside_aside {
    position: sticky;
    top: calc(var(--base-unit)*8);
}
.expand_list {
    position: absolute;
    bottom: 0;
    width: 100%;
    text-align: center;
    background: rgba(255, 255, 255, 1);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 80%);
    padding: calc(var(--base-unit)*5) 0;
    margin-bottom: 0;
}
.expand_list button {
    cursor: pointer;
}
aside ul.preview {
    height: calc(var(--base-unit)*170);
    overflow: hidden;
    display: block;
    position: relative;
}
aside li, #autocomplete li {
    margin-bottom: calc(var(--base-unit)*3);
}
.pagination {
    background-color: var(--lightest-gray);
    color: var(--lighter-gray);
    text-align: center;
    border-radius: var(--base-unit);
    padding: calc(var(--base-unit)*2) 0;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--black10);
    /* column-gap: calc(var(--base-unit)*5); */
}
.pagination span {
    color: var(--gray);
    font-weight: 700;
    padding: calc(var(--base-unit)*3);
}
.pagination a {
    padding: calc(var(--base-unit)*3);
    color:var(--lighter-gray);
    border: 0;
    border-radius: var(--base-unit);
}
.pagination a:hover {
    color:var(--darker-gray);
    background-color: var(--primary);
}
.pag_entries {
    color: var(--black60);
    text-align: center;
    padding:calc(var(--base-unit)*4) 0;
}
.map {
    background:url(/assets/map-f8f62adf72f9f8f98ab58af717b3afba562ef83a6b3b28dc8cfd79c4cd90ac93.webp) no-repeat;
    background-size: cover;
    aspect-ratio: 16/9;
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: calc(var(--base-unit)*5);
    margin-bottom: calc(var(--base-unit)*5);
    border: 1px solid var(--black10);
}
button, .btn {
    border: 2px solid var(--black10);
    border-radius: var(--base-unit);
    padding: calc(var(--base-unit)*2) calc(var(--base-unit)*3);
    cursor: pointer;
    font-family: 'Inter',sans-serif;
    font-variation-settings: 'wght' 600;
    background-color: var(--primary);
    color: black;
    display: inline-block;
}
button svg, .btn svg {
    color: var(--black60);
    fill: var(--black60);
}
button:hover svg, .btn:hover svg {
    color: black;
    fill: black;
}
button:hover, .btn:hover {
    border-color: var(--black20);
}
button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    background-color: var(--gray);
    color: black;
}
.secondary {
    background-color: white;
    color: var(--black60);
}
.secondary:hover {
    color: black;
}
body.single, body.reviews {
    background-color: var(--lightest-gray);
}
.review_snippet {
    background-color: var(--darker-gray);
    color: var(--lightest-gray);
    padding: calc(var(--base-unit)*4);
    border-radius: var(--base-unit);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--base-unit);
    transition: 0.25s all;
}
.review_snippet .rating {
    font-weight: 900;
    font-size: 200%;
}
.review_snippet a {
    color: var(--lightest-gray);
    background-color: var(--white20);
    border-radius: var(--base-unit);
    padding: var(--base-unit);
    border: 0;
    font-size: 80%;
}
.review_snippet a:hover {
    background-color: var(--black60);
    transition: 0.25s all;
}
.review_snippet .empty_stars {
    color: var(--lighter-gray) !important;
}
.info {
    background-color: white;
    padding: calc(var(--base-unit)*8);
    border-radius: var(--base-unit);
}
footer {
    margin-top: calc(var(--base-unit)*20);
    padding-top: calc(var(--base-unit)*5);
    border-top: var(--base-unit) solid var(--primary);
    background-color: var(--darker-gray);
}
footer .container > p, footer .recent_blog_posts > p:not(.h3) {
    color: var(--gray);
    line-height: 1.5;
}
footer div:not(.very_last) li {
    margin-bottom: calc(var(--base-unit)*3);
}
footer .h2, footer .h3, footer strong {
    color: white;
}
footer .h2 {
    font-weight: 400;
}
footer .h3 {
    font-weight: 500;
    margin: calc(var(--base-unit)*8) 0 calc(var(--base-unit)*5);
}
footer strong {
    font-weight: 600;
}
footer a {
    color: var(--white60);
}
footer a:hover {
    color: var(--primary);
}
footer .very_last {
    margin-top: calc(var(--base-unit)*14);
    background-color: var(--black20);
    padding: calc(var(--base-unit)*5) 0;
}
footer .very_last nav ul {
    display: flex;
    gap: calc(var(--base-unit)*10);
    justify-content: center;
    font-size: 85%;
}
.recent_blog_posts li a {
    border: 1px solid var(--white20);
    padding: calc(var(--base-unit)*5);
    border-radius: var(--base-unit);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--base-unit)*2);
}
.recent_blog_posts li a span:last-child {
    font-weight: 900;
    color: var(--white20);
}
.recent_blog_posts li a:hover {
    background-color: white;
    color: var(--darker-gray);
    box-shadow: 0 calc(var(--base-unit)*5) calc(var(--base-unit)*5) var(--black60);
}
.recent_blog_posts li a:hover span:last-child {
    color: var(--primary);
}
.recent_blog_posts p a {
    text-decoration: underline;
}
.recent_blog_posts p a:hover {
    text-decoration: none;
}
.cookie_alert {
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 5;
    width: 100vw;
    background-color: var(--white80);
    backdrop-filter: blur(calc(var(--base-unit)*2));
    -webkit-backdrop-filter: blur(calc(var(--base-unit)*2));
    padding: calc(var(--base-unit)*2);
    text-align: center;
}
.cookie_alert p {
    text-align: left;
    display: inline;
    font-size: 90%;
    margin-bottom: 0;
}
.cookie_alert p a {
    text-decoration: underline;
    color: black;
}
.cookie_alert button {
    width: fit-content;
    margin-left: var(--base-unit);
    font-size: 70%;
    text-transform: uppercase;
    border: 2px solid var(--black10);
    background-color: var(--primary);
    border-radius: var(--base-unit);
    padding: calc(var(--base-unit)*2) calc(var(--base-unit)*3);
    cursor: pointer;
    font-family: 'Inter',sans-serif;
    font-variation-settings: 'wght' 600;
    color: var(--darker-gray);
}
.notice {
    margin: calc(var(--base-unit)*4) 0;
    background-color: var(--primary-light);
    border: 1px solid var(--black10);
    padding: calc(var(--base-unit)*5);
    border-radius: var(--base-unit);
    color: var(--black60);
}
.alert {
    background-color: var(--error) !important;
}
.list li {
    background-color: white;
    border: 1px solid var(--black10);
    padding: calc(var(--base-unit)*3);
    margin-bottom: calc(var(--base-unit)*3);
    border-radius: var(--base-unit);
}
.list li svg {
    fill: var(--black20);
    color: var(--black20);
}
.list .adsbygoogle {
    margin-bottom: calc(var(--base-unit)*3)
}
.single .adsbygoogle {
    margin: calc(var(--base-unit)*3) 0;
}
.list h3, .list p {
    margin: 0;
}
.list p {
    display: flex;
    align-items: center;
    column-gap: calc(var(--base-unit)*2);
}
.list a {
    border: 0;
    padding-bottom: 0;
}
.list li > div {
    display: flex;
    column-gap: calc(var(--base-unit)*2);
    margin: calc(var(--base-unit)*2) 0;
}
.list li .nota {
    border-radius: var(--base-unit);
    background-color: var(--darker-gray);
    padding: calc(var(--base-unit)*2) var(--base-unit);
    color: var(--lightest-gray);
    width: calc(var(--base-unit)*9);
    font-weight: 900;
    text-align: center;
}
.list li .direita {
    display: flex;
    column-gap: var(--base-unit);
    align-items: center;
}
.list li h3 a {
    font-weight: 600;
}
.list li .direita p, .list li .direita a {
    color: black;
    font-size: 90%;
}
.list li .zero {
    background-color: var(--lightest-gray);
    color: var(--black20);
}
.review_snippet.zero {
    background-color: var(--black10);
    color: var(--black20);
}
.review_snippet.zero a {
    background-color: var(--black20);
}
#search_city, #search_neighborhood {
    background-color: var(--primary);
    color: var(--darker-gray);
    border-radius: var(--base-unit);
    padding: calc(var(--base-unit)* 4) calc(var(--base-unit)* 6);
    margin-bottom: calc(var(--base-unit)*3);
    position: relative;
}
#search_city label, #search_neighborhood label {
    display: block;
    margin-bottom: calc(var(--base-unit)*2);
}
#search_city input, #search_neighborhood input {
    width: -webkit-fill-available;
}
#search_city input:focus {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
#search_city #autocomplete, #search_neighborhood #autocomplete {
    position: absolute;
    left: calc(var(--base-unit)* 6);
    border: 2px solid var(--gray);
    background-color: var(--lightest-gray);
    padding: calc(var(--base-unit)* 4);
    box-sizing: content-box;
    z-index: 999;
}
.hero #search_city {
    max-width: 1080px;
    width: 80%;
    margin: 0 auto;
}
.hero #search_city label {
    text-align: center;
}
.hero #search_city #city {
    width: -webkit-fill-available;
}
.d-none {
    display: none !important;
}
.d-flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.d-flex:has(h2) {
    margin: calc(var(--base-unit)* 9) 0 calc(var(--base-unit)* 5);
}
.d-flex:has(h2) h2 {
    margin: calc(var(--base-unit)* 5) 0;
}
body.reviews main h2 {
    margin-top: 0;
}
/* CHAMADA PARA BANNERS */
.ads {
    background-color: var(--lightest-gray);
    margin: calc(var(--base-unit)* 5) 0;
    text-align: center;
    border-radius: var(--base-unit);
    font-size: 80%;
    padding: calc(var(--base-unit)* 5);
    border: 1px solid var(--black10);
}
.ads a,.ads a:hover {
    border: none;
    background-color: transparent;
}
.ads img {
    max-width: 360px;
    height: auto;
    aspect-ratio: 1;
}

/* CHAMADA PARA BANNERS */

.review {
    border: 1px solid var(--black10);
    background-color: white;
    border-radius: var(--base-unit);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    row-gap: calc(var(--base-unit)*2);
    margin-bottom: calc(var(--base-unit)*2);
    min-height: calc(var(--base-unit)*35);
    max-height: calc(var(--base-unit)*70);
    overflow: hidden;
    position: relative;
}
.review .left {
    display: flex;
    column-gap: calc(var(--base-unit)*2);
}
.review .left img {
    border-radius: var(--base-unit);
    border: 1px solid var(--black10);
}
.review p {
    margin-bottom: 0;
}
.review .details {
    color: var(--lighter-gray-text);
    font-size: 80%;
}
.review .author {
    margin-bottom: calc(var(--base-unit)*3);
}
.review .content {
    display: grid;
    grid-template-columns:50px 1fr;
    grid-gap: calc(var(--base-unit)*3);
    padding: calc(var(--base-unit)*4) calc(var(--base-unit)*2);
}
.review .message p {
    margin-bottom: calc(var(--base-unit)*4);
}
.review .aspects {
    display: flex;
    justify-content: space-between;
    column-gap: calc(var(--base-unit)*2);
    margin-top: calc(var(--base-unit)*2);
}
.review .aspects .aspect {
    background-color: var(--lightest-gray);
    border: 1px solid var(--black10);
    border-radius: calc(var(--base-unit)*2);
    padding: calc(var(--base-unit)*3);
    text-align: center;
    flex: 1;
}
.review .aspects .aspect p {
    margin-bottom: 0;
}
.reviews label:has(input[type='radio']) {
    border: 1px solid var(--black10);
    border-radius: calc(var(--base-unit)*2);
    padding: calc(var(--base-unit)*3);
    background-color: var(--lightest-gray);
    display: inline-block;
    cursor: pointer;
}
.reviews fieldset input[type="search"], .reviews fieldset input[type="text"], .reviews fieldset input[type="email"], .reviews fieldset textarea {
    font-size: 110%;
}
.reviews label:has(input[type='radio']:checked) {
    border: 1px solid var(--black20);
    font-weight: bold;
}
.reviews fieldset .columns-2 input {
    width: -webkit-fill-available;
}
.reviews .new_review p.label, .reviews .new_review label[for] {
    margin-bottom: calc(var(--base-unit)*2);
    display: inline-block;
}
.reviews p.label {
    margin-top: calc(var(--base-unit)*3);
}
#review_block h3 {
    margin: calc(var(--base-unit)* 5) 0;
}
div[data-action="expandAspects"] {
    display: inline;
    cursor: pointer;
    position: relative;
}
div[data-action="expandAspects"] .aspects {
    display: none;
    cursor: default;
    position: absolute;
    bottom: 0;
    transform: translateY(100%);
    left: 0;
    width: max-content;
    background-color: var(--darker-gray);
    border-radius: var(--base-unit);
    padding: calc(var(--base-unit)*2);
    box-shadow: var(--base-unit) var(--base-unit) calc(var(--base-unit)*2) var(--black20);
}
div[data-action="expandAspects"]:hover .aspects {
    display: flex;
    /* flex-direction: column; */
    gap: calc(var(--base-unit)*2);
    z-index: 10;
}
.review.expanded div[data-action="expandReview"] {
    display: none;
}
div[data-action="expandReview"] {
    position: absolute;
    bottom: 0;
    width: 100%;
    text-align: center;
    background: rgba(255, 255, 255, 1);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 80%);
    padding: calc(var(--base-unit)*5) 0;
}
div[data-action="expandReview"] button {
    display: none;
}
body.reviews:has(form[method="POST"]) {
    background-color: var(--lightest-gray);
    padding-bottom: calc(var(--base-unit)*15);
}
body.reviews:has(form[method="POST"]) fieldset {
    padding: calc(var(--base-unit)*5);
    background-color: white;
    border-radius: var(--base-unit);
    border: 1px solid var(--black10);
    margin-bottom: calc(var(--base-unit)*4);
}
body.reviews:has(form[method="POST"]) textarea {
    display: block;
    width: -webkit-fill-available;
}
body.reviews:has(form[method="POST"]) h2 {
    margin-top: 0;
}
body.reviews:has(form[method="POST"]) p:has(small) {
    margin-top: calc(var(--base-unit)*2);
}
body.reviews:has(form[method="POST"]) #contagem {
    margin-top: var(--base-unit);
    padding: var(--base-unit) calc(var(--base-unit)*2);
    border-radius: calc(var(--base-unit)*5);
    display: inline-flex;
    align-items: center;
    column-gap: var(--base-unit);
    border: 1px solid var(--black10);
    background-color: var(--lightest-gray);
    font-size: 80%;
}
body.reviews:has(form[method="POST"]) #contagem.valid {
    border-color: green;
    background-color: var(--active);
}
body.reviews:has(form[method="POST"]) #contagem.invalid {
    border-color: red;
    background-color: var(--inactive);
}
body.reviews:has(form[method="POST"]) #contagem.invalid span {
    background-color: red;
    border-radius: calc(var(--base-unit)*4);
    padding: var(--base-unit) calc(var(--base-unit)*2);
    color: white;
    font-size: 80%;
}
.star-rating {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-start;
    font-size: 2rem;
    width: fit-content;
}
.star-rating input[type="radio"] {
    display: none;
}
.star-rating label {
    cursor: pointer;
    color: #ddd;
}
.star-rating input[type="radio"]:checked ~ label {
    color: var(--review2);
}
.star-rating label:hover, .star-rating label:hover ~ label {
    color: var(--review2);
}
.aspect-rating {
    margin: 1rem 0;
}
.aspect-rating .stars {
    display: flex;
    align-items: center;
    justify-content: flex-start; /* Garantir alinhamento à esquerda */
}
.aspect-rating .stars {
    font-size: 1.15rem;
    margin-right: 0.15rem;
}
.stars .empty {
    color: var(--black20);
}
.review_snippet .stars .empty {
    color: var(--white20);
}
.stars .filled {
    color: var(--review2);
}
.aspect-rating p {
    margin: 0.5rem 0 0;
}
.options {
    display: flex;
    flex-wrap: wrap;
    column-gap: calc(var(--base-unit)*2);
}
.radio-option {
    display: flex;
    align-items: center;
    margin: 0.5rem 0;
}

.aspects li {
    border: 1px solid var(--black10);
    border-radius: var(--base-unit);
    padding: calc(var(--base-unit)*3);
    display: flex;
    gap: calc(var(--base-unit)*2);
    align-items: center;
    background-color: white;
}
.aspects li .rating {
    font-size: 150%;
    font-weight: 900;
    color: black;
    border-bottom: var(--base-unit) solid white;
    border-radius: var(--base-unit);
    padding-bottom: var(--base-unit);
}
.aspects li .rating.review_5 {
    border-color: var(--review5);
}
.aspects li .rating.review_4 {
    border-color: var(--review4);
}
.aspects li .rating.review_3 {
    border-color: var(--review3);
}
.aspects li .rating.review_2 {
    border-color: var(--review2);
}
.aspects li .rating.review_1 {
    border-color: var(--review1);
}
.aspects li .right {
    display: flex;
    flex-direction: column;
    gap: var(--base-unit);
}
.aspects li .right .name {
    color: var(--lighter-gray);
    font-size: 85%;
}

/* Style for radio inputs and labels */
.radio-option input[type="radio"], input[name="review[recomenda]"] {
    display: none;
}
.radio-option label {
    cursor: pointer;
    display: flex !important;
    align-items: center;
    border-radius: var(--base-unit);
    padding: calc(var(--base-unit)*2);
    background-color: var(--lightest-gray);
    border: 1px solid var(--black10);
}

/* Style for images */
.radio-option img {
    width: 32px; /* Adjust size as needed */
    height: auto;
    margin-right: 0.5rem;
}

/* Style for selected option */
.radio-option input[type="radio"]:checked + label {
    background-color: var(--primary-light);
    border-color: var(--black20);
    font-weight: bold;
    color: #000;
}
#submitForm {
    display: flex;
    align-items: center;
    justify-content: end;
    column-gap: calc(var(--base-unit)*4);
}
#submitForm button {
    font-size: 110%;
}

#visitedList li {
    border:1px solid var(--black20);
    border-radius: var(--base-unit);
    padding: calc(var(--base-unit)*3)
}

/* ADMIN */
.review .extra {
    background-color: var(--black10);
    border-bottom-left-radius: calc(var(--base-unit)-1);
    border-bottom-right-radius: calc(var(--base-unit)-1);
    padding: calc(var(--base-unit)*3);
    display: none;
    align-items: center;
    justify-content: center;
    column-gap: calc(var(--base-unit)*2);
}
.review:hover .extra {
    display: flex;
}
.review .extra p {
    margin-bottom: 0;
}
.review .extra button {
    background-color: white;
}
label:has(input[data-recommend="yes"]) svg, .recomenda_1 svg {
    color: #2F8121;
    fill: #2F8121;
}
.recomenda_0 svg {
    color: #983721;
    fill: #983721;
    transform: rotate(-180deg);
}
.review .extra button[data-action="deleteReview"]:hover, .report .extra button[data-action="deleteReport"]:hover, label:has(input[data-recommend="no"]:checked) {
    color:red;
    background-color: var(--error);
}
.review .extra button[data-action="approveReview"]:hover, .report .extra button[data-action="approveReport"]:hover, label:has(input[data-recommend="yes"]:checked) {
    color:white;
    background-color: var(--success);
}
button[data-action="phone_success"] {
    background: var(--success);
    color: white;
}
button[data-action="phone_fail"] {
    background: var(--fail);
    color: white;
}
label:has(input[data-recommend="yes"]:checked) svg {
    color: white;
    fill: white;
}
body:not(.admin) .review .extra p:has(a) {
    display: none;
}
body.admin .review .extra p:has(a) {
    display: block;
}

.modal {
    width: 100vw;
    height: 100vh;
    position: relative;
    top: 0;
    left: 0;
    z-index: 9999999;
}
.modal_content {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    z-index: 9999998;
    background: white;
    border: 1px solid var(--black10);
    border-radius: calc(var(--base-unit)*4);
    padding: calc(var(--base-unit)*5);
    width:calc(var(--base-unit)*90);
}
.modal_background {
    width: 100vw;
    height: 100vh;
    top: 0;
    left: 0;
    position: fixed;
    z-index: 9999997;
    background: var(--black20);
    backdrop-filter: blur(calc(var(--base-unit)*2));
    -webkit-backdrop-filter: blur(calc(var(--base-unit)*2));
}
.modal .h2 {
    margin-top: 0;
}
.modal .h3 {
    margin: calc(var(--base-unit)*5) 0 0 0;
}
.modal .modal_content > button[role='close'] {
    background: transparent;
    position: absolute;
    top: 0;
    right: 0;
    padding: 0;
    transform: translate(30%, -30%);
    border: none;
    cursor: pointer;
    z-index: 1000;
}
.modal .modal_content > button[role='close'] {
    cursor: pointer;
}
.modal input {
    width: -webkit-fill-available;
    margin-bottom: calc(var(--base-unit)*3);
}
    /* ADMIN */


@media screen and (min-width: 1025px) {
    /* header input {
        width:calc(var(--base-unit)*100);
    } */
}
@media screen and (max-width: 1024px) {
    html {
        touch-action: manipulation;
    }
    .bordered {
        padding: 0 calc(var(--base-unit)*4);
    }
    .home .hero {
        padding: calc(var(--base-unit)*10) 0;
    }
    #autocomplete li {
        margin-bottom: calc(var(--base-unit)*5);
    }
    .columns-1fr_300px {
      display: block;
    }
    .columns-300px_1fr {
      display: flex;
      flex-direction: column-reverse;
    }
    .review_snippet {
        padding: var(--base-unit);
    }
    .columns-200px_1fr {
        grid-template-columns: 120px 1fr;
        grid-gap: calc(var(--base-unit)*2);
    }
    .columns-2 {
      display: block;
    }
    .columns-3 {
      display: block;
    }
    .pagination {
        display: grid;
    }
    .pagination span.page, .pagination span:not(.page):has(a) a {
        padding: calc(var(--base-unit)*1);
    }
    .options label[for], .options .radio-option {
        margin-bottom: 0;
    }
    .reviews label[for="email"] {
        margin-top: 1rem;
    }
    #submitForm {
        flex-direction: column;
        row-gap: calc(var(--base-unit)*4);
    }
    .d-flex:has(h2#reviews) {
        flex-direction: column;
    }
    .d-flex:has(h2#reviews) h2 {
        align-self:flex-start
    }
    input, textarea, select {
        font-size: 16px; 
    }
    .modal_content {
        width:80vw;
    }
}
/* Fatos da página da autoescola */
dl.fatos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: calc(var(--base-unit)*4);
    margin-top: calc(var(--base-unit)*6);
}
dl.fatos > div {
    border: 1px solid var(--black10);
    border-radius: var(--base-unit);
    padding: calc(var(--base-unit)*4);
    background-color: var(--lightest-gray);
}
dl.fatos dt {
    font-size: 85%;
    color: var(--lighter-gray);
    margin-bottom: calc(var(--base-unit)*2);
}
dl.fatos dd span {
    display: block;
    font-size: 85%;
    color: var(--lighter-gray);
    margin-top: calc(var(--base-unit)*2);
}
ul.categorias {
    display: flex;
    flex-wrap: wrap;
    gap: calc(var(--base-unit)*2);
}
ul.categorias li {
    background-color: white;
    border: 1px solid var(--black10);
    border-radius: var(--base-unit);
    padding: var(--base-unit) calc(var(--base-unit)*2);
}
ul.atividades li {
    margin-bottom: var(--base-unit);
}
ul.atividades li::before {
    content: "· ";
}

/* Sugestão de telefone */
.modal .suggest label {
    display: block;
    margin: calc(var(--base-unit)*3) 0 var(--base-unit);
    font-weight: bold;
}
.modal .suggest input[name=suggestion] {
    width: -webkit-fill-available;
    font-size: 110%;
}
.modal .suggest input[aria-invalid="true"] {
    border-color: var(--fail);
}
p.aviso-telefone {
    background-color: var(--primary-light);
    border-left: var(--base-unit) solid var(--primary);
    padding: calc(var(--base-unit)*3);
    border-radius: var(--base-unit);
}
p.erro-telefone {
    color: var(--fail);
    margin-top: var(--base-unit);
}

/* Avaliação em etapas */
.avaliacao-etapas {
    background-color: white;
    border: 1px solid var(--black10);
    border-radius: var(--base-unit);
    padding: calc(var(--base-unit)*5);
}
.avaliacao-etapas [hidden] {
    display: none !important;
}
.avaliacao-etapas fieldset {
    border: 0;
    padding: 0;
    margin: 0 0 calc(var(--base-unit)*4);
}
.avaliacao-etapas.em-etapas fieldset {
    margin-bottom: 0;
}
.avaliacao-etapas legend {
    margin-bottom: calc(var(--base-unit)*3);
}
.avaliacao-etapas label[for] {
    display: block;
    margin-bottom: calc(var(--base-unit)*2);
}
.avaliacao-etapas textarea, .avaliacao-etapas input[type=text], .avaliacao-etapas input[type=email] {
    width: -webkit-fill-available;
    width: 100%;
    box-sizing: border-box;
}
.avaliacao-etapas .escolhas {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: calc(var(--base-unit)*2);
}
.avaliacao-etapas label.escolha {
    cursor: pointer;
    border: 1px solid var(--black10);
    border-radius: var(--base-unit);
    padding: calc(var(--base-unit)*3) calc(var(--base-unit)*4);
    background-color: var(--lightest-gray);
}
.avaliacao-etapas label.escolha:hover {
    border-color: var(--black20);
}
.avaliacao-etapas label.escolha:has(input:checked) {
    background-color: var(--primary-light);
    border-color: var(--black20);
    font-weight: bold;
}
.avaliacao-etapas label.escolha input {
    margin-right: var(--base-unit);
}
.avaliacao-etapas .star-rating label {
    font-size: 2.5rem;
    padding: 0 var(--base-unit);
}
.avaliacao-etapas .etapa-dica {
    font-size: 85%;
    color: var(--lighter-gray);
    margin-top: calc(var(--base-unit)*2);
}
.avaliacao-etapas .etapa-dica.ok {
    color: var(--success);
}
.avaliacao-etapas .etapas-topo {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 85%;
    color: var(--lighter-gray);
    margin-bottom: calc(var(--base-unit)*2);
}
.avaliacao-etapas .etapas-barra {
    height: var(--base-unit);
    background-color: var(--lightest-gray);
    border-radius: var(--base-unit);
    margin-bottom: calc(var(--base-unit)*5);
    overflow: hidden;
}
.avaliacao-etapas .etapas-barra span {
    display: block;
    height: 100%;
    background-color: var(--primary);
    transition: width .2s;
}
.avaliacao-etapas button.link {
    background: none;
    border: 0;
    padding: calc(var(--base-unit)*2) 0;
    color: var(--lighter-gray);
    text-decoration: underline;
    font-variation-settings: 'wght' 400;
}
.avaliacao-etapas .d-flex {
    justify-content: flex-start;
    gap: calc(var(--base-unit)*3);
    align-items: center;
    margin-top: calc(var(--base-unit)*3);
}
.avaliacao-etapas .preco {
    display: flex;
    align-items: center;
    gap: calc(var(--base-unit)*2);
    font-size: 120%;
}
.avaliacao-etapas .preco input {
    font-size: 100%;
    width: 10ch;
}
.avaliacao-etapas .etapa-envio {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: calc(var(--base-unit)*4);
    margin-top: calc(var(--base-unit)*3);
}
.avaliacao-etapas .etapa-envio button {
    font-size: 110%;
}

/* Perto de mim */
.perto { --tinta: #1d1d1d; --suave: #5f5f5f; --linha: rgba(0,0,0,0.08); color: var(--tinta); }
.perto svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.perto-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 1fr);
    gap: calc(var(--base-unit)*10);
    align-items: center;
    padding: calc(var(--base-unit)*10);
    border-radius: calc(var(--base-unit)*5);
    background-color: var(--primary);
    background-image:
        radial-gradient(circle at 85% 20%, rgba(255,255,255,0.45), transparent 45%),
        linear-gradient(rgba(0,0,0,0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0,0,0,0.045) 1px, transparent 1px);
    background-size: auto, 28px 28px, 28px 28px;
    margin-bottom: calc(var(--base-unit)*10);
}
.perto-kicker { display: inline-block; font-size: 0.78em; letter-spacing: 0.05em; text-transform: uppercase; font-variation-settings: 'wght' 700; background: var(--tinta); color: var(--primary); border-radius: 99px; padding: 4px 10px; }
.perto .perto-hero h1 { font-size: clamp(2em, 4.4vw, 3em); line-height: 1.06; letter-spacing: -0.03em; margin: calc(var(--base-unit)*4) 0 calc(var(--base-unit)*4); font-weight: 750; text-wrap: balance; }
.perto-lead { font-size: 1.15em; line-height: 1.55; color: #2b2b2b; max-width: 46ch; margin: 0 0 calc(var(--base-unit)*6); }
.perto-vantagens { display: grid; gap: calc(var(--base-unit)*2.5); }
.perto-vantagens li { display: flex; align-items: center; gap: calc(var(--base-unit)*3); font-variation-settings: 'wght' 550; color: #2b2b2b; }
.perto-vantagens svg { width: 18px; height: 18px; padding: 7px; background: rgba(255,255,255,0.7); border-radius: 50%; }

.perto-busca {
    background: white;
    border-radius: calc(var(--base-unit)*4);
    padding: calc(var(--base-unit)*7);
    box-shadow: 0 24px 48px -24px rgba(0,0,0,0.45);
}
.perto-busca-titulo { font-size: 1.25em; font-variation-settings: 'wght' 700; letter-spacing: -0.01em; margin: 0 0 calc(var(--base-unit)*4); }
.perto-gps {
    display: flex; align-items: center; gap: calc(var(--base-unit)*3);
    width: 100%; box-sizing: border-box; text-align: left;
    padding: calc(var(--base-unit)*3) calc(var(--base-unit)*4);
    border: 0; border-radius: calc(var(--base-unit)*3);
    background: var(--tinta); color: white; cursor: pointer; font: inherit;
}
.perto-gps:hover { background: black; }
.perto-gps[hidden], .perto-ou[hidden] { display: none; }
.perto-gps-icone { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--primary); color: var(--tinta); flex: none; }
.perto-gps strong { display: block; font-size: 1.05em; font-variation-settings: 'wght' 700; color: white; }
.perto-gps small { display: block; font-size: 0.82em; color: rgba(255,255,255,0.7); margin-top: 2px; }
.perto-ou { display: flex; align-items: center; gap: calc(var(--base-unit)*3); margin: calc(var(--base-unit)*5) 0 calc(var(--base-unit)*3); color: var(--suave); font-size: 0.85em; }
.perto-ou::before, .perto-ou::after { content: ""; flex: 1; height: 1px; background: var(--linha); }
.perto-cep-rotulo { display: block; font-size: 0.88em; color: var(--suave); margin-bottom: calc(var(--base-unit)*2); }
.perto-ou:not([hidden]) + .perto-cep-rotulo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.perto-cep { display: flex; border: 2px solid rgba(0,0,0,0.14); border-radius: calc(var(--base-unit)*3); overflow: hidden; }
.perto-cep:focus-within { border-color: var(--tinta); }
.perto .perto-cep input { flex: 1; min-width: 0; border: 0; padding: calc(var(--base-unit)*3.5) calc(var(--base-unit)*4); font: inherit; font-size: 1.1em; font-variation-settings: 'wght' 600; letter-spacing: 0.04em; outline: 0; background: white; }
.perto .perto-cep button { border: 0; border-radius: 0; background: var(--primary); color: var(--tinta); padding: 0 calc(var(--base-unit)*6); font: inherit; font-variation-settings: 'wght' 700; cursor: pointer; }
.perto .perto-cep button:hover { background: #ffcc00; }
.perto-categorias { border: 0; padding: 0; margin: calc(var(--base-unit)*5) 0 0; display: flex; flex-wrap: wrap; gap: calc(var(--base-unit)*2); }
.perto-categorias legend { font-size: 0.88em; color: var(--suave); margin-bottom: calc(var(--base-unit)*2); padding: 0; }
.perto-categorias label { position: relative; cursor: pointer; }
.perto-categorias input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.perto-categorias span { display: inline-block; padding: 7px 13px; border-radius: 99px; border: 1px solid rgba(0,0,0,0.14); font-size: 0.9em; color: #333; white-space: nowrap; }
.perto-categorias b { font-variation-settings: 'wght' 750; color: var(--tinta); }
.perto-categorias label:hover span { border-color: var(--tinta); }
.perto-categorias input:checked + span { background: var(--tinta); border-color: var(--tinta); color: white; }
.perto-categorias input:checked + span b { color: var(--primary); }
.perto-categorias input:focus-visible + span { outline: 3px solid var(--primary); outline-offset: 2px; }
.perto-privacidade { display: flex; gap: calc(var(--base-unit)*2); align-items: flex-start; margin: calc(var(--base-unit)*5) 0 0; font-size: 0.8em; line-height: 1.45; color: var(--suave); }
.perto-privacidade svg { width: 15px; height: 15px; margin-top: 1px; }

.status-perto { margin: 0 0 calc(var(--base-unit)*5); padding: calc(var(--base-unit)*3) calc(var(--base-unit)*4); border-radius: calc(var(--base-unit)*2); background: var(--lightest-gray); color: #333; }
.status-perto.ocupado::before {
    content: ""; display: inline-block; width: 0.9em; height: 0.9em; margin-right: calc(var(--base-unit)*2);
    border: 2px solid var(--gray); border-top-color: var(--darker-gray); border-radius: 50%;
    vertical-align: -0.1em; animation: girar 0.8s linear infinite;
}
@keyframes girar { to { transform: rotate(360deg); } }
.resultados-perto { scroll-margin-top: calc(var(--base-unit)*5); }
.perto-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: calc(var(--base-unit)*10); align-items: start; }
.perto-cabecalho { margin-bottom: calc(var(--base-unit)*5); }
.perto .perto-cabecalho h2 { margin: 0 0 calc(var(--base-unit)*2); font-size: 1.6em; line-height: 1.2; letter-spacing: -0.02em; border: 0; padding: 0; }
.perto-cabecalho p { margin: 0; color: var(--suave); line-height: 1.5; }
.perto-aviso { padding: calc(var(--base-unit)*3) calc(var(--base-unit)*4); border-radius: calc(var(--base-unit)*2); background: var(--primary-light); color: #333; line-height: 1.5; margin: 0 0 calc(var(--base-unit)*4); }
.carregando { color: var(--suave); margin: 0 0 calc(var(--base-unit)*4); }

.perto-lista { list-style: none; padding: 0; margin: 0; display: grid; gap: calc(var(--base-unit)*3); }
.perto-item {
    position: relative;
    display: grid; grid-template-columns: 68px minmax(0, 1fr) auto; gap: calc(var(--base-unit)*5); align-items: center;
    padding: calc(var(--base-unit)*4) calc(var(--base-unit)*5) calc(var(--base-unit)*4) calc(var(--base-unit)*4);
    background: white; border: 1px solid var(--linha); border-radius: calc(var(--base-unit)*4);
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.perto-item:hover { border-color: rgba(0,0,0,0.25); box-shadow: 0 10px 24px -16px rgba(0,0,0,0.35); }
.perto-item:hover .perto-seta { transform: translateX(3px); color: var(--tinta); }
.perto-distancia { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 68px; border-radius: calc(var(--base-unit)*3); background: var(--primary-light); line-height: 1; }
.perto-distancia strong { font-size: 1.35em; font-variation-settings: 'wght' 800; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.perto-distancia span { font-size: 0.75em; color: var(--suave); margin-top: 4px; font-variation-settings: 'wght' 600; }
.perto-lista li:first-child .perto-distancia { background: var(--primary); }
.perto .perto-info h3 { margin: 0 0 4px; font-size: 1.08em; line-height: 1.3; letter-spacing: -0.01em; }
.perto .perto-info h3 a { color: var(--tinta); border: 0; padding: 0; background: none; font-weight: 650; }
.perto .perto-info h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.perto .perto-info h3 a:focus-visible { outline: none; }
.perto-item:has(h3 a:focus-visible) { outline: 3px solid var(--tinta); outline-offset: 2px; }
.perto-endereco { margin: 0 0 calc(var(--base-unit)*2.5); font-size: 0.92em; color: var(--suave); line-height: 1.4; }
.perto-meta { display: flex; flex-wrap: wrap; align-items: center; gap: calc(var(--base-unit)*2) calc(var(--base-unit)*3); font-size: 0.85em; }
.perto-nota-item { color: var(--suave); }
.perto-nota-item b { color: var(--tinta); font-variation-settings: 'wght' 700; margin-right: 2px; }
.perto-nota-item b { background: var(--tinta); color: white; border-radius: 6px; padding: 2px 7px; }
.perto-nota-item.sem { color: #8a8a8a; }
.perto-cats { display: inline-flex; gap: 3px; }
.perto-cats i { font-style: normal; font-size: 0.85em; font-variation-settings: 'wght' 700; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 6px; border: 1px solid rgba(0,0,0,0.15); color: #333; }
.perto-aprox { color: #8a8a8a; }
.perto-aprox::before { content: "≈ "; }
.perto-seta { font-size: 1.8em; color: #b5b5b5; line-height: 1; transition: transform 0.15s, color 0.15s; }
.perto-item.esqueleto { min-height: 100px; background: linear-gradient(90deg, var(--lightest-gray) 25%, #eee 50%, var(--lightest-gray) 75%); background-size: 200% 100%; animation: brilho 1.2s ease-in-out infinite; border-color: transparent; }
@keyframes brilho { to { background-position: -200% 0; } }
.perto-nota { font-size: 0.82em; line-height: 1.5; color: var(--suave); margin: calc(var(--base-unit)*5) 0 0; }

.perto-lateral { position: sticky; top: calc(var(--base-unit)*5); display: grid; gap: calc(var(--base-unit)*4); }
.perto-cartao { display: block; border-radius: calc(var(--base-unit)*4); padding: calc(var(--base-unit)*6); background: var(--lightest-gray); color: var(--tinta); }
.perto-cartao-rotulo { display: block; font-size: 0.75em; letter-spacing: 0.05em; text-transform: uppercase; font-variation-settings: 'wght' 700; color: var(--suave); margin: 0 0 calc(var(--base-unit)*3); }
.perto .perto-custo { background: var(--tinta); color: white; border: 0; padding: calc(var(--base-unit)*6); }
.perto .perto-custo:hover { background: black; }
.perto-custo .perto-cartao-rotulo { color: rgba(255,255,255,0.65); }
.perto-custo strong { display: block; font-size: 1.25em; line-height: 1.25; font-variation-settings: 'wght' 700; margin-bottom: calc(var(--base-unit)*2); color: white; }
.perto-custo strong.perto-custo-valor { font-size: 2.1em; letter-spacing: -0.03em; font-variation-settings: 'wght' 800; color: var(--primary); }
.perto-custo span:not(.perto-cartao-rotulo) { display: block; font-size: 0.9em; line-height: 1.45; color: rgba(255,255,255,0.8); }
.perto-custo .perto-cartao-link { margin-top: calc(var(--base-unit)*4); color: white !important; font-variation-settings: 'wght' 650; }
.perto-dicas ol { list-style: none; padding: 0; margin: 0; counter-reset: dica; display: grid; gap: calc(var(--base-unit)*3.5); }
.perto-dicas li { counter-increment: dica; position: relative; padding-left: 34px; font-size: 0.9em; line-height: 1.45; color: #444; }
.perto-dicas li::before { content: counter(dica); position: absolute; left: 0; top: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--primary); display: grid; place-items: center; font-size: 0.82em; font-variation-settings: 'wght' 750; color: var(--tinta); }
.perto-dicas strong { color: var(--tinta); font-weight: 650; }

@media screen and (max-width: 960px) {
    .perto-hero { grid-template-columns: 1fr; gap: calc(var(--base-unit)*7); padding: calc(var(--base-unit)*7); }
    .perto-layout { grid-template-columns: 1fr; }
    .perto-lateral { position: static; grid-template-columns: 1fr 1fr; }
}
@media screen and (max-width: 600px) {
    .perto-hero { margin: 0 calc(var(--base-unit)*-4) calc(var(--base-unit)*8); border-radius: 0; padding: calc(var(--base-unit)*6) calc(var(--base-unit)*4); gap: calc(var(--base-unit)*6); }
    .perto-vantagens { display: none; }
    .perto-lead { margin-bottom: 0; font-size: 1.05em; }
    .perto-busca { padding: calc(var(--base-unit)*5); }
    .perto .perto-cep input { font-size: 16px; }
    .perto-lateral { grid-template-columns: 1fr; }
    .perto-item { grid-template-columns: 56px minmax(0, 1fr); gap: calc(var(--base-unit)*3.5); padding: calc(var(--base-unit)*3.5); }
    .perto-distancia { height: 56px; }
    .perto-distancia strong { font-size: 1.15em; }
    .perto-seta { display: none; }
    .perto .perto-cabecalho h2 { font-size: 1.35em; }
}

/* Quanto custa a CNH */
.custo {
    --ouro: #A67C00;
    --tinta: #1d1d1d;
    --suave: #5f5f5f;
    --linha: rgba(0, 0, 0, 0.08);
    color: var(--tinta);
    line-height: 1.6;
}
.custo .numero, .custo .valor { font-variant-numeric: tabular-nums; }
.custo h2 {
    font-size: 1.45em;
    line-height: 1.25;
    margin: calc(var(--base-unit)*14) 0 calc(var(--base-unit)*2);
    letter-spacing: -0.01em;
}
.custo p { margin-bottom: calc(var(--base-unit)*3); }
.custo .intro { color: var(--suave); max-width: 62ch; margin-bottom: calc(var(--base-unit)*5); }
.custo svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }

/* topo */
.custo-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr);
    gap: calc(var(--base-unit)*8);
    align-items: center;
    padding: calc(var(--base-unit)*4) 0 calc(var(--base-unit)*2);
}
.custo-hero .kicker {
    display: inline-block;
    font-size: 0.8em;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-variation-settings: 'wght' 650;
    color: var(--suave);
    margin-bottom: calc(var(--base-unit)*3);
}
.custo-hero h1 { font-size: clamp(1.9em, 4vw, 2.7em); line-height: 1.12; letter-spacing: -0.02em; margin-bottom: calc(var(--base-unit)*4); }
.custo-hero .lead { font-size: 1.15em; color: #333; max-width: 52ch; margin: 0; }
.custo-hero .lead strong { background: linear-gradient(transparent 60%, var(--primary) 60%); padding: 0 2px; }
.custo-hero .total {
    background: var(--primary);
    border-radius: calc(var(--base-unit)*4);
    padding: calc(var(--base-unit)*7);
    box-shadow: 0 12px 32px -18px rgba(0,0,0,0.45);
}
.custo-hero .total.pendente { background: var(--primary-light); }
.custo-hero .rotulo, .custo-cartoes .rotulo, .destaques .rotulo {
    display: block;
    font-size: 0.8em;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    font-variation-settings: 'wght' 650;
    color: rgba(0,0,0,0.62);
}
.custo-hero .total .numero { display: block; font-size: 2.9em; line-height: 1.1; letter-spacing: -0.03em; font-variation-settings: 'wght' 800; margin: calc(var(--base-unit)*2) 0 calc(var(--base-unit)*5); }
.custo-hero .total dl { margin: 0; border-top: 1px solid rgba(0,0,0,0.15); }
.custo-hero .total dl div { display: flex; justify-content: space-between; gap: 1em; padding: calc(var(--base-unit)*2) 0; border-bottom: 1px solid rgba(0,0,0,0.15); }
.custo-hero .total dd { margin: 0; font-variation-settings: 'wght' 650; font-variant-numeric: tabular-nums; }
.custo-hero .total .posicao { margin: calc(var(--base-unit)*4) 0 0; font-size: 0.9em; }
.custo-hero .total .btn { margin-top: calc(var(--base-unit)*2); background: white; }
.destaques { display: grid; gap: calc(var(--base-unit)*3); }
.destaques > div { border: 1px solid var(--linha); border-radius: calc(var(--base-unit)*3); padding: calc(var(--base-unit)*4) calc(var(--base-unit)*5); background: var(--lightest-gray); }
.destaques > div:first-child { background: var(--primary); border-color: transparent; }
.destaques .numero { display: block; font-size: 1.7em; line-height: 1.2; font-variation-settings: 'wght' 750; letter-spacing: -0.02em; }
.destaques a, .destaques span:last-child { font-size: 0.9em; color: var(--suave); }

/* cartões */
.custo-cartoes { list-style: none; padding: 0; margin: calc(var(--base-unit)*5) 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(var(--base-unit)*3); }
.custo-cartoes li { border: 1px solid var(--linha); border-radius: calc(var(--base-unit)*3); padding: calc(var(--base-unit)*5); background: white; display: flex; flex-direction: column; gap: calc(var(--base-unit)*2); }
.custo-cartoes li.destaque { background: var(--primary-light); border-color: transparent; }
.custo-cartoes svg { color: var(--ouro); width: 26px; height: 26px; }
.custo-cartoes strong { font-size: 1.45em; line-height: 1.2; font-variation-settings: 'wght' 750; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.custo-cartoes p { margin: 0; font-size: 0.9em; color: var(--suave); line-height: 1.45; }

/* itens e ranking: barras horizontais, uma cor só */
.custo-itens, .custo-ranking { list-style: none; padding: 0; margin: calc(var(--base-unit)*4) 0; }
.custo-itens li, .custo-ranking a {
    display: grid;
    grid-template-columns: minmax(0, 15em) minmax(0, 1fr) 7em;
    align-items: center;
    gap: calc(var(--base-unit)*4);
    padding: calc(var(--base-unit)*2.5) 0;
    border-bottom: 1px solid var(--linha);
}
.custo-itens .nome { font-size: 0.95em; line-height: 1.35; }
.custo-itens em { font-style: normal; font-size: 0.75em; text-transform: uppercase; letter-spacing: 0.04em; color: var(--suave); border: 1px solid var(--linha); border-radius: 99px; padding: 1px 7px; margin-left: 4px; white-space: nowrap; }
.barra { display: block; height: 10px; background: var(--lightest-gray); border-radius: 4px; overflow: hidden; }
.barra span { display: block; height: 100%; background: var(--ouro); border-radius: 4px; min-width: 4px; }
.custo-itens li.opcional .barra span { background: #cfcfcf; }
.custo-itens li.opcional .nome, .custo-itens li.opcional .valor { color: var(--suave); }
.custo-itens .valor, .custo-ranking .valor { text-align: right; font-variation-settings: 'wght' 600; white-space: nowrap; }
.custo-itens li.soma { grid-template-columns: 1fr auto; border-bottom: none; border-top: 2px solid var(--tinta); margin-top: -1px; padding-top: calc(var(--base-unit)*3); font-variation-settings: 'wght' 700; }
.custo-ranking a { grid-template-columns: 2.4em minmax(0, 11em) minmax(0, 1fr) 7em; color: inherit; text-decoration: none; border-radius: 6px; padding-left: calc(var(--base-unit)*2); padding-right: calc(var(--base-unit)*2); }
.custo-ranking a:hover { background: var(--lightest-gray); }
.custo-ranking a:hover .nome { text-decoration: underline; }
.custo-ranking .pos { color: var(--suave); font-size: 0.85em; font-variant-numeric: tabular-nums; }
.custo-ranking.com-destaque .barra span { background: #d4d4d4; }
.custo-ranking li.atual a { background: var(--primary-light); font-variation-settings: 'wght' 700; }
.custo-ranking li.atual .barra span { background: var(--ouro); }
.custo .fonte { display: flex; gap: calc(var(--base-unit)*2); align-items: flex-start; font-size: 0.88em; color: var(--suave); }
.custo .fonte svg { color: var(--success); width: 18px; height: 18px; margin-top: 2px; }
.custo .pendentes { font-size: 0.92em; color: var(--suave); margin-top: calc(var(--base-unit)*4); }

/* passos */
.custo-passos { list-style: none; padding: 0; margin: calc(var(--base-unit)*5) 0 0; counter-reset: passo; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--base-unit)*6) calc(var(--base-unit)*5); }
.custo-passos li { counter-increment: passo; position: relative; padding-top: calc(var(--base-unit)*12); }
.custo-passos li::before {
    content: counter(passo);
    position: absolute; top: 0; left: 0;
    width: 36px; height: 36px; border-radius: 50%;
    display: grid; place-items: center;
    background: var(--tinta); color: var(--primary);
    font-variation-settings: 'wght' 750;
}
.custo-passos li::after { content: ""; position: absolute; top: 18px; left: 46px; right: 0; height: 2px; background: var(--linha); }
.custo-passos strong { display: block; margin-bottom: var(--base-unit); }
.custo-passos span { display: block; font-size: 0.92em; color: var(--suave); line-height: 1.5; }

/* perguntas */
.custo-faq { margin-top: calc(var(--base-unit)*4); border-top: 1px solid var(--linha); }
.custo-faq details { border-bottom: 1px solid var(--linha); }
.custo-faq summary { cursor: pointer; list-style: none; padding: calc(var(--base-unit)*4) calc(var(--base-unit)*8) calc(var(--base-unit)*4) 0; font-variation-settings: 'wght' 650; position: relative; }
.custo-faq summary::-webkit-details-marker { display: none; }
.custo-faq summary::after { content: "+"; position: absolute; right: calc(var(--base-unit)*2); top: 50%; transform: translateY(-50%); font-size: 1.4em; color: var(--suave); }
.custo-faq details[open] summary::after { content: "−"; }
.custo-faq details p { color: #333; max-width: 68ch; margin: 0 0 calc(var(--base-unit)*5); }

/* chamada */
.custo-cta {
    margin-top: calc(var(--base-unit)*14);
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: calc(var(--base-unit)*5);
    background: var(--tinta); color: white;
    border-radius: calc(var(--base-unit)*4);
    padding: calc(var(--base-unit)*8);
}
.custo-cta .h3 { color: white; font-size: 1.35em; margin-bottom: calc(var(--base-unit)*2); }
.custo-cta p { color: rgba(255,255,255,0.78); margin: 0; max-width: 52ch; }
.custo-cta .botoes { display: flex; flex-wrap: wrap; gap: calc(var(--base-unit)*3); }
.custo-cta .btn { text-decoration: none; }
.custo-cta .btn.secundario { background: transparent; color: white; border-color: rgba(255,255,255,0.35); }

/* outros estados */
.custo-estados { list-style: none; padding: 0; margin: calc(var(--base-unit)*4) 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: calc(var(--base-unit)*2); }
.custo-estados a { display: flex; justify-content: space-between; gap: 0.5em; padding: calc(var(--base-unit)*2.5) calc(var(--base-unit)*3); border: 1px solid var(--linha); border-radius: calc(var(--base-unit)*2); color: inherit; text-decoration: none; font-size: 0.92em; }
.custo-estados a:hover { border-color: var(--tinta); }
.custo-estados b { font-variation-settings: 'wght' 600; color: var(--suave); font-variant-numeric: tabular-nums; }
.link-custo { margin-top: calc(var(--base-unit)*2); }

@media screen and (max-width: 900px) {
    .custo-hero { grid-template-columns: 1fr; gap: calc(var(--base-unit)*6); }
    .custo-cartoes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .custo-passos { grid-template-columns: 1fr 1fr; }
}
@media screen and (max-width: 560px) {
    .custo-cartoes, .custo-passos { grid-template-columns: 1fr; }
    .custo-itens li { grid-template-columns: minmax(0, 1fr) auto; row-gap: var(--base-unit); }
    .custo-itens li .barra { grid-column: 1 / -1; grid-row: 2; }
    .custo-ranking a { grid-template-columns: 2em minmax(0, 1fr) auto; row-gap: var(--base-unit); }
    .custo-ranking .barra { grid-column: 2 / -1; grid-row: 2; }
    .custo-hero .total { padding: calc(var(--base-unit)*5); }
    .custo-cta { padding: calc(var(--base-unit)*6); }
}

/* Topo */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.topo {
    background: var(--primary);
    color: #1d1d1d;
    margin-bottom: calc(var(--base-unit)*5);
    position: relative;
    z-index: 50;
    box-shadow: inset 0 -1px 0 rgba(0,0,0,0.08);
}
.topo-barra { display: flex; align-items: center; gap: calc(var(--base-unit)*6); min-height: 64px; }
.topo-logo { display: inline-flex; align-items: center; gap: calc(var(--base-unit)*2.5); color: #1d1d1d; font-size: 1.12em; letter-spacing: -0.02em; white-space: nowrap; flex: none; }
.topo-logo strong { font-variation-settings: 'wght' 750; font-weight: 750; }
.topo-marca { color: rgba(0,0,0,0.62); }
.topo-marca strong { color: #1d1d1d; }
.topo-semaforo { display: inline-flex; flex-direction: column; justify-content: space-between; width: 12px; height: 28px; padding: 3px; background: #1d1d1d; border-radius: 7px; box-sizing: content-box; }
.topo-semaforo i { display: block; width: 8px; height: 8px; margin: 0 auto; border-radius: 50%; background: #ec4029; }
.topo-semaforo i:nth-child(2) { background: #ffb300; }
.topo-semaforo i:nth-child(3) { background: #3ccf6e; }
.topo-logo:hover .topo-semaforo i:nth-child(3) { box-shadow: 0 0 6px #3ccf6e; }
.topo-menu { display: flex; align-items: center; gap: calc(var(--base-unit)*3); flex: 1; min-width: 0; }
.topo-menu nav { flex: 1; }
.topo-links { display: flex; align-items: center; gap: var(--base-unit); }
.topo-link {
    display: inline-flex; align-items: center; gap: 6px;
    padding: calc(var(--base-unit)*2) calc(var(--base-unit)*3);
    border-radius: 99px;
    color: #1d1d1d; background: transparent; border: 0;
    font: inherit; font-size: 0.95em; font-variation-settings: 'wght' 550;
    cursor: pointer; white-space: nowrap;
}
.topo-link:hover, .topo.cidades-aberto [data-cidades], .topo .topo-link[aria-current] { background: rgba(0,0,0,0.08); color: black; }
.topo-link svg { transition: transform 0.15s; }
.topo.cidades-aberto [data-cidades] svg { transform: rotate(180deg); }
.topo-cidades { position: relative; }
.topo-painel {
    display: none;
    position: absolute; top: calc(100% + 10px); left: 0;
    width: 380px;
    background: white; color: #1d1d1d;
    border-radius: calc(var(--base-unit)*3);
    box-shadow: 0 18px 40px -16px rgba(0,0,0,0.35), 0 0 0 1px rgba(0,0,0,0.06);
    padding: calc(var(--base-unit)*4);
}
.topo-painel::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.topo.cidades-aberto .topo-painel { display: block; }
@media (hover: hover) and (min-width: 961px) {
    .topo-cidades:hover .topo-painel { display: block; }
}
.topo-painel p { font-size: 0.75em; text-transform: uppercase; letter-spacing: 0.05em; color: #5f5f5f; font-variation-settings: 'wght' 650; margin: 0 0 calc(var(--base-unit)*2) calc(var(--base-unit)*2); }
.topo-painel ul { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.topo-painel a { display: block; padding: calc(var(--base-unit)*2); border-radius: calc(var(--base-unit)*2); color: #1d1d1d; font-size: 0.95em; }
.topo-painel a:hover { background: var(--primary-light); }
.topo-busca { position: relative; }
.topo .topo-busca input[type="search"] {
    width: 230px;
    border: 0;
    border-radius: 99px;
    padding: calc(var(--base-unit)*2.5) calc(var(--base-unit)*10) calc(var(--base-unit)*2.5) calc(var(--base-unit)*4);
    background-color: rgba(255,255,255,0.92);
    font-variation-settings: 'wght' 500;
    font-size: 0.92em;
    transition: width 0.2s, box-shadow 0.2s;
}
.topo .topo-busca input[type="search"]:focus { background-color: white; width: 290px; box-shadow: 0 0 0 3px rgba(0,0,0,0.18); }
.topo .topo-busca input::placeholder { color: #8a8a8a; font-variation-settings: 'wght' 450; }
.topo-perto {
    display: inline-flex; align-items: center; gap: 6px;
    background: #1d1d1d; color: white;
    border-radius: 99px;
    padding: calc(var(--base-unit)*2.5) calc(var(--base-unit)*4);
    font-size: 0.92em; font-variation-settings: 'wght' 650;
    white-space: nowrap;
}
.topo-perto svg { color: var(--primary); }
.topo-perto:hover, .topo-perto[aria-current] { background: black; color: var(--primary); }
.topo-atalhos { display: none; }
.topo-icone {
    display: grid; place-items: center;
    width: 44px; height: 44px; padding: 0;
    border: 0; border-radius: 50%;
    background: transparent; color: #1d1d1d; cursor: pointer;
}
.topo-icone:hover, .topo-icone[aria-expanded="true"] { background: rgba(0,0,0,0.08); }
.topo-icone path { transition: transform 0.2s, opacity 0.2s; transform-box: view-box; transform-origin: 12px 12px; }
.topo.aberto .topo-icone .l1 { transform: translateY(5px) rotate(45deg); }
.topo.aberto .topo-icone .l2 { opacity: 0; }
.topo.aberto .topo-icone .l3 { transform: translateY(-5px) rotate(-45deg); }

@media screen and (max-width: 960px) {
    .topo-barra { flex-wrap: wrap; gap: 0; min-height: 60px; padding: 0 calc(var(--base-unit)*2) 0 calc(var(--base-unit)*4); }
    .topo-logo { flex: 1; font-size: 1.05em; }
    .topo-atalhos { display: flex; gap: var(--base-unit); }
    .topo-menu {
        display: none;
        flex: 1 1 100%;
        flex-direction: column; align-items: stretch;
        gap: calc(var(--base-unit)*4);
        padding: calc(var(--base-unit)*2) calc(var(--base-unit)*2) calc(var(--base-unit)*6);
    }
    .topo.aberto .topo-menu { display: flex; }
    .topo-busca { order: -1; }
    .topo .topo-busca input[type="search"], .topo .topo-busca input[type="search"]:focus { width: 100%; box-sizing: border-box; font-size: 16px; padding-top: calc(var(--base-unit)*3.5); padding-bottom: calc(var(--base-unit)*3.5); }
    .topo-perto { justify-content: center; padding: calc(var(--base-unit)*3.5); font-size: 1em; order: -1; }
    .topo-links { flex-direction: column; align-items: stretch; gap: 0; background: white; border-radius: calc(var(--base-unit)*3); overflow: hidden; }
    .topo-links > li + li { border-top: 1px solid rgba(0,0,0,0.07); }
    .topo-links > .topo-cidades { order: 3; border-top: 1px solid rgba(0,0,0,0.07); }
    .topo-links > li:nth-child(2) { border-top: 0; }
    .topo-links .topo-link { width: 100%; box-sizing: border-box; justify-content: space-between; border-radius: 0; padding: calc(var(--base-unit)*4); font-size: 1em; }
    .topo-links a.topo-link::after { content: "›"; font-size: 1.4em; line-height: 1; color: #9a9a9a; }
    .topo-links .topo-link:hover, .topo .topo-link[aria-current] { background: var(--primary-light); }
    [data-cidades] { pointer-events: none; padding-bottom: 0 !important; }
    [data-cidades] svg { display: none; }
    .topo-cidades .topo-painel { display: block; position: static; width: auto; box-shadow: none; padding: calc(var(--base-unit)*2) calc(var(--base-unit)*4) calc(var(--base-unit)*4); }
    .topo-painel::before, .topo-painel p { display: none; }
    .topo-painel ul { display: flex; flex-wrap: wrap; gap: calc(var(--base-unit)*2); }
    .topo-painel a { background: var(--lightest-gray); border-radius: 99px; padding: calc(var(--base-unit)*2) calc(var(--base-unit)*3); font-size: 0.9em; }
}

/* ===== Visual novo: base comum ===== */
:root { --tinta: #1d1d1d; --suave: #5f5f5f; --linha: rgba(0,0,0,0.08); }
body { color: #3a3a3a; background: white; }
h1, .h1 { font-weight: 750; letter-spacing: -0.03em; line-height: 1.1; text-wrap: balance; }
h2, .h2 { font-weight: 700; letter-spacing: -0.02em; line-height: 1.2; }
h3, .h3 { font-weight: 650; letter-spacing: -0.01em; line-height: 1.3; }
main h2 { border-left: 0; padding-left: 0; }
.kicker { display: inline-block; font-size: 0.75rem; letter-spacing: 0.05em; text-transform: uppercase; font-variation-settings: 'wght' 700; background: var(--tinta); color: var(--primary); border-radius: 99px; padding: 4px 10px; line-height: 1.4; }
.lead { font-size: 1.12em; line-height: 1.55; color: #333; max-width: 62ch; }
.lead strong { color: var(--tinta); }
.cartao { background: white; border: 1px solid var(--linha); border-radius: calc(var(--base-unit)*4); padding: calc(var(--base-unit)*6); }
.cartao-escuro { background: var(--tinta); border-color: transparent; color: rgba(255,255,255,0.82); }
.cartao-escuro .h3, .cartao-escuro h2, .cartao-escuro strong { color: white; }
.cartao-link { font-variation-settings: 'wght' 650; }

button, .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    border: 1px solid transparent; border-radius: calc(var(--base-unit)*3);
    padding: calc(var(--base-unit)*2.5) calc(var(--base-unit)*4.5);
    background-color: var(--primary); color: var(--tinta);
    font-variation-settings: 'wght' 650; font-size: 0.95em; line-height: 1.2;
    transition: background-color 0.15s, border-color 0.15s;
}
button:hover, .btn:hover { border-color: transparent; background-color: #ffcc00; }
section a.btn, section a.btn:hover { border-bottom: 1px solid transparent; padding-bottom: calc(var(--base-unit)*2.5); color: var(--tinta); }
.btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; color: inherit; }
.btn:hover svg { color: inherit; fill: none; }
.secondary, section a.btn.secondary { background-color: white; color: var(--tinta); border-color: rgba(0,0,0,0.16); }
.secondary:hover, section a.btn.secondary:hover { background-color: var(--lightest-gray); border-color: var(--tinta); color: var(--tinta); }
.btn-escuro, section a.btn-escuro { background-color: var(--tinta); color: white; }
.btn-escuro:hover, section a.btn-escuro:hover { background-color: black; color: var(--primary); }
.btn-escuro svg { color: var(--primary); }
button:disabled { background-color: #e5e5e5; color: #777; }
.notice { border: 0; border-radius: calc(var(--base-unit)*3); padding: calc(var(--base-unit)*4) calc(var(--base-unit)*5); color: #333; line-height: 1.5; }
.alert { background-color: #ffe6df !important; }
nav#breadcrumbs ol { margin-bottom: calc(var(--base-unit)*5); }
nav#breadcrumbs a { border-bottom-width: 1px; font-weight: 500; }
input[type="search"], input[type="text"], input[type="email"], textarea { border-radius: calc(var(--base-unit)*3); border: 2px solid rgba(0,0,0,0.12); font-variation-settings: 'wght' 500; }
input[type="search"]:focus, input[type="text"]:focus, input[type="email"]:focus, textarea:focus { border-color: var(--tinta); background-color: white; }
.ads { background: var(--lightest-gray); border-radius: calc(var(--base-unit)*3); padding: calc(var(--base-unit)*5); text-align: center; color: #999; font-size: 0.85em; margin: calc(var(--base-unit)*4) 0; }

/* cartão de autoescola nas listas */
.list { list-style: none; padding: 0; }
.list li.ae-item {
    position: relative;
    display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: calc(var(--base-unit)*4); align-items: center;
    padding: calc(var(--base-unit)*4) calc(var(--base-unit)*5) calc(var(--base-unit)*4) calc(var(--base-unit)*4);
    margin: 0 0 calc(var(--base-unit)*3);
    background: white; border: 1px solid var(--linha); border-radius: calc(var(--base-unit)*4);
    transition: border-color 0.15s, box-shadow 0.15s;
}
.list li.ae-item:hover { border-color: rgba(0,0,0,0.25); box-shadow: 0 10px 24px -16px rgba(0,0,0,0.35); }
.list li.ae-item:hover .ae-item-seta { transform: translateX(3px); color: var(--tinta); }
.ae-item-nota { display: flex; align-items: center; justify-content: center; gap: 2px; height: 56px; border-radius: calc(var(--base-unit)*3); background: var(--tinta); color: white; line-height: 1; }
.ae-item-nota strong { color: white; font-size: 1.2em; font-variation-settings: 'wght' 800; letter-spacing: -0.02em; }
.ae-item-nota span { color: var(--primary); font-size: 0.8em; }
.ae-item-nota.zero { background: var(--lightest-gray); }
.ae-item-nota.zero .sem { color: #c9c9c9; font-size: 1.3em; }
.list li.ae-item > div { display: block; margin: 0; }
.list li.ae-item > div.ae-item-nota { display: flex; }
.list .ae-item-info h3 { margin: 0 0 4px; font-size: 1.05em; line-height: 1.3; }
.list .ae-item-info h3 a { color: var(--tinta); font-weight: 650; border: 0; padding: 0; background: none; }
.list .ae-item-info h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.list .ae-item-info h3 a:focus-visible { outline: none; }
.list li.ae-item:has(h3 a:focus-visible) { outline: 3px solid var(--tinta); outline-offset: 2px; }
.list p.ae-item-endereco { display: block; margin: 0 0 calc(var(--base-unit)*2); font-size: 0.9em; line-height: 1.4; color: var(--suave); }
.ae-item-meta { display: flex; flex-wrap: wrap; align-items: center; gap: calc(var(--base-unit)*2) calc(var(--base-unit)*3); font-size: 0.85em; }
.ae-item-aval { display: inline-flex; align-items: center; gap: 6px; color: var(--suave); }
.ae-item-aval.sem { color: #8a8a8a; }
.list .ae-item-aval a { position: relative; z-index: 1; color: var(--tinta); font-weight: 500; border-bottom: 1px solid var(--primary); }
.ae-cats { display: inline-flex; gap: 3px; }
.ae-cats i { font-style: normal; font-size: 0.85em; font-variation-settings: 'wght' 700; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 6px; border: 1px solid rgba(0,0,0,0.15); color: #333; }
.ae-item-seta { font-size: 1.8em; color: #b5b5b5; line-height: 1; transition: transform 0.15s, color 0.15s; }
.list .adsbygoogle, .list .ads { margin: 0 0 calc(var(--base-unit)*3); }

/* topo das páginas internas */
.pagina-topo {
    padding: calc(var(--base-unit)*9) calc(var(--base-unit)*10);
    border-radius: calc(var(--base-unit)*5);
    background-color: var(--primary);
    background-image: radial-gradient(circle at 90% 10%, rgba(255,255,255,0.45), transparent 40%), linear-gradient(rgba(0,0,0,0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,0.045) 1px, transparent 1px);
    background-size: auto, 28px 28px, 28px 28px;
    margin-bottom: calc(var(--base-unit)*6);
}
body:has(#breadcrumbs) .pagina-topo h1, .pagina-topo h1 { font-size: clamp(1.9em, 4vw, 2.6em); margin: calc(var(--base-unit)*4) 0 calc(var(--base-unit)*3); }
.pagina-topo .lead { margin: 0; color: #2b2b2b; }
.pagina-topo-atalhos { display: flex; flex-wrap: wrap; gap: calc(var(--base-unit)*2); margin-top: calc(var(--base-unit)*5); }
section a.chip-link, .chip-link {
    display: inline-flex; align-items: center; gap: 8px;
    padding: calc(var(--base-unit)*2) calc(var(--base-unit)*4); border-radius: 99px;
    background: rgba(255,255,255,0.75); color: var(--tinta); border: 0; font-size: 0.9em; font-weight: 500;
}
section a.chip-link:hover { background: white; }
section a.chip-link.destaque { background: var(--tinta); color: white; }
section a.chip-link.destaque b { color: var(--primary); }
section a.chip-link.destaque:hover { background: black; }
.chip-link svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.chip-link.destaque svg { color: var(--primary); }
.link-custo { margin-top: 0; }

/* listagens */
.listagem .columns-300px_1fr { grid-template-columns: 280px minmax(0, 1fr); gap: calc(var(--base-unit)*8); }
.listagem main > h2 { font-size: 1.35em; margin: 0 0 calc(var(--base-unit)*4); }
.listagem aside #inside_aside { top: calc(var(--base-unit)*5); display: grid; gap: calc(var(--base-unit)*4); }
.listagem aside .filtros-lateral, .listagem aside #inside_aside > h2 { margin: 0; }
.listagem aside .filtros-lateral { background: var(--lightest-gray); border-radius: calc(var(--base-unit)*4); padding: calc(var(--base-unit)*5); }
.listagem aside .filtros-lateral p small { color: var(--suave); line-height: 1.45; display: block; }
.listagem aside .filtros-lateral ul { margin-bottom: calc(var(--base-unit)*2) !important; }
.listagem aside .filtros-lateral p[style] { margin-bottom: 0 !important; }
.listagem aside h2.h3 { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--suave); margin: 0 0 calc(var(--base-unit)*3); font-weight: 700; }
.listagem aside .filtros-lateral ul { display: flex; flex-wrap: wrap; gap: calc(var(--base-unit)*2); }
.listagem aside .filtros-lateral li { margin: 0; }
.listagem aside .filtros-lateral li a, .listagem aside .filtros-lateral li strong { display: inline-block; padding: 6px 12px; border-radius: 99px; font-size: 0.85em; border: 1px solid rgba(0,0,0,0.14); background: white; color: #333; font-weight: 500; }
.listagem aside .filtros-lateral li a:hover { border-color: var(--tinta); background: white; }
.listagem aside .filtros-lateral li strong { background: var(--tinta); border-color: var(--tinta); color: white; }
.listagem aside #inside_aside > h2.h3 { padding: 0 calc(var(--base-unit)*1); margin-top: calc(var(--base-unit)*2); }
.listagem aside #inside_aside > ul { padding: 0 calc(var(--base-unit)*1); }
.listagem aside #inside_aside > ul li { margin-bottom: calc(var(--base-unit)*2.5); }
.listagem aside #inside_aside > ul a { border-bottom: 0; color: #333; font-weight: 450; }
.listagem aside #inside_aside > ul a:hover { background: none; color: black; text-decoration: underline; text-decoration-color: var(--primary); text-decoration-thickness: 2px; }
.listagem #search_city, .listagem #search_neighborhood { background: var(--lightest-gray); border-radius: calc(var(--base-unit)*4); padding: calc(var(--base-unit)*4); margin: 0; }
.listagem #search_city label, .listagem #search_neighborhood label { font-size: 0.85em; color: var(--suave); }
.filtros-compacto { background: var(--lightest-gray); border-radius: calc(var(--base-unit)*3); padding: calc(var(--base-unit)*3) calc(var(--base-unit)*4); font-size: 0.92em; line-height: 1.9; }
.expand_list button { background: var(--tinta); color: white; border-radius: 99px; }
.pagination { background: none; border: 0; gap: 4px; flex-wrap: wrap; margin-top: calc(var(--base-unit)*6); }
.pagination span, .pagination a { border-radius: 99px; min-width: 40px; box-sizing: border-box; padding: calc(var(--base-unit)*2.5) calc(var(--base-unit)*3) !important; font-weight: 600; }
.pagination a { color: #333; border: 1px solid var(--linha); }
.pagination a:hover { background: var(--primary); border-color: var(--primary); color: var(--tinta); }
.pagination .current { background: var(--tinta); color: white; }
.pag_entries { font-size: 0.85em; color: var(--suave); }

/* home */
.home .topo { margin-bottom: 0; box-shadow: none; }
.home .hero.home-hero {
    display: block; padding: calc(var(--base-unit)*14) 0 calc(var(--base-unit)*16);
    background-color: var(--primary);
    background-image: radial-gradient(circle at 80% 20%, rgba(255,255,255,0.5), transparent 40%), linear-gradient(rgba(0,0,0,0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,0.045) 1px, transparent 1px);
    background-size: auto, 28px 28px, 28px 28px;
}
.home-hero-grade { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, 1fr); gap: calc(var(--base-unit)*12); align-items: center; padding: 0 calc(var(--base-unit)*4); }
.home .hero .home-hero-texto h1 { text-align: left; padding: 0; margin: calc(var(--base-unit)*5) 0 calc(var(--base-unit)*4); font-size: clamp(2.2em, 5vw, 3.4em); line-height: 1.04; font-weight: 600; }
.home .hero .home-hero-texto h1 strong { font-weight: 800; }
.home-hero-texto .lead { font-size: 1.2em; color: #2b2b2b; margin: 0; max-width: 44ch; }
.home-busca { background: white; border-radius: calc(var(--base-unit)*4); padding: calc(var(--base-unit)*7); box-shadow: 0 24px 48px -24px rgba(0,0,0,0.45); color: var(--tinta); }
.home-busca-titulo { font-size: 1.25em; font-variation-settings: 'wght' 700; letter-spacing: -0.01em; margin: 0 0 calc(var(--base-unit)*3); }
.home .hero .home-busca #search_city { background: none; padding: 0; margin: 0; width: auto; max-width: none; }
.home .hero .home-busca #search_city label { text-align: left; font-size: 0.88em; color: var(--suave); margin-bottom: calc(var(--base-unit)*2); }
.home .hero .home-busca #search_city input { font-size: 1.05em; padding: calc(var(--base-unit)*3.5) calc(var(--base-unit)*4); box-sizing: border-box; width: 100%; }
.home .hero .home-busca #search_city #autocomplete { left: 0; right: 0; border-radius: 0 0 calc(var(--base-unit)*3) calc(var(--base-unit)*3); box-sizing: border-box; background: white; box-shadow: 0 18px 30px -18px rgba(0,0,0,0.4); }
.home-busca .perto-ou { display: flex; align-items: center; gap: calc(var(--base-unit)*3); margin: calc(var(--base-unit)*5) 0; color: var(--suave); font-size: 0.85em; }
.home-busca .perto-ou::before, .home-busca .perto-ou::after { content: ""; flex: 1; height: 1px; background: var(--linha); }
.home-busca a.perto-gps { display: flex; align-items: center; gap: calc(var(--base-unit)*3); padding: calc(var(--base-unit)*3) calc(var(--base-unit)*4); border-radius: calc(var(--base-unit)*3); background: var(--tinta); color: white; border: 0; }
.home-busca a.perto-gps:hover { background: black; }
.home-busca .perto-gps-icone { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--primary); color: var(--tinta); flex: none; }
.home-busca .perto-gps-icone svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; }
.home-busca .perto-gps strong { display: block; color: white; font-variation-settings: 'wght' 700; }
.home-busca .perto-gps small { display: block; font-size: 0.82em; color: rgba(255,255,255,0.7); margin-top: 2px; }
.home-corpo { padding-top: calc(var(--base-unit)*2); }
.atalhos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--base-unit)*4); margin-top: calc(var(--base-unit)*-10); position: relative; }
section .atalhos a { display: flex; flex-direction: column; gap: calc(var(--base-unit)*2); height: 100%; box-sizing: border-box; padding: calc(var(--base-unit)*6); background: white; border: 1px solid var(--linha); border-radius: calc(var(--base-unit)*4); color: #444; font-weight: 400; box-shadow: 0 14px 30px -24px rgba(0,0,0,0.5); }
section .atalhos a:hover { background: white; border-color: var(--tinta); }
.atalhos strong { color: var(--tinta); font-size: 1.1em; font-variation-settings: 'wght' 700; }
.atalhos span:last-child { font-size: 0.92em; line-height: 1.45; color: var(--suave); }
.atalho-icone { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--primary-light); color: var(--tinta); margin-bottom: calc(var(--base-unit)*2); }
.atalho-icone svg, .ae-topo svg, .ae-selos svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.secao-titulo { font-size: 1.5em; margin: calc(var(--base-unit)*14) 0 calc(var(--base-unit)*5); }
.estados-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: calc(var(--base-unit)*2); }
section .estados-grade a { display: flex; align-items: center; gap: calc(var(--base-unit)*3); padding: calc(var(--base-unit)*2.5) calc(var(--base-unit)*3); border: 1px solid var(--linha); border-radius: calc(var(--base-unit)*3); color: #333; font-weight: 450; font-size: 0.95em; }
section .estados-grade a:hover { border-color: var(--tinta); background: white; }
.estados-grade b { display: grid; place-items: center; width: 30px; height: 26px; border-radius: 6px; background: var(--primary); color: var(--tinta); font-size: 0.78em; font-variation-settings: 'wght' 750; flex: none; }
.home-rankings { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--base-unit)*4); margin-top: calc(var(--base-unit)*14); align-items: start; }
.home-rankings h2.h3 { margin: 0 0 calc(var(--base-unit)*4); font-size: 1.1em; }
.ranking-lista { list-style: none; padding: 0; margin: 0; counter-reset: rk; }
.ranking-lista li { counter-increment: rk; }
section .ranking-lista a { display: grid; grid-template-columns: 1.8em minmax(0, 1fr) auto; align-items: center; gap: calc(var(--base-unit)*2); padding: calc(var(--base-unit)*2) 0; border: 0; border-bottom: 1px solid var(--linha); color: #333; font-weight: 450; font-size: 0.95em; }
.ranking-lista li:last-child a { border-bottom: 0; }
section .ranking-lista a::before { content: counter(rk); color: #9a9a9a; font-size: 0.85em; font-variant-numeric: tabular-nums; }
section .ranking-lista a:hover { background: none; color: black; }
section .ranking-lista a:hover span { text-decoration: underline; text-decoration-color: var(--primary); text-decoration-thickness: 2px; }
.ranking-lista small { color: #9a9a9a; font-size: 0.8em; }
.ranking-lista b { font-variant-numeric: tabular-nums; font-variation-settings: 'wght' 650; color: var(--tinta); font-size: 0.9em; }
.home-rankings .sobre p { line-height: 1.55; font-size: 0.95em; margin-bottom: calc(var(--base-unit)*3); }
section .cartao-escuro a { color: white; border-bottom-color: rgba(255,214,0,0.6); }
section .cartao-escuro a:hover { color: var(--tinta); }
section .cartao-escuro a.cartao-link { border: 0; color: var(--primary); }
section .cartao-escuro a.cartao-link:hover { background: none; text-decoration: underline; }

/* página da autoescola */
body.single, body.reviews { background-color: #f6f6f4; }
.ae-topo { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: calc(var(--base-unit)*8); align-items: stretch; padding: calc(var(--base-unit)*9) calc(var(--base-unit)*10); border-radius: calc(var(--base-unit)*5); background-color: var(--primary); background-image: radial-gradient(circle at 70% 0%, rgba(255,255,255,0.45), transparent 40%), linear-gradient(rgba(0,0,0,0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,0.045) 1px, transparent 1px); background-size: auto, 28px 28px, 28px 28px; margin-bottom: calc(var(--base-unit)*6); }
body:has(#breadcrumbs) .ae-topo h1, .ae-topo h1 { font-size: clamp(1.9em, 4vw, 2.7em); margin: calc(var(--base-unit)*4) 0 calc(var(--base-unit)*3); }
.ae-topo-endereco { display: flex; align-items: flex-start; gap: 6px; color: #2b2b2b; margin: 0 0 calc(var(--base-unit)*4); line-height: 1.45; }
.ae-topo-endereco svg { width: 18px; height: 18px; margin-top: 2px; }
.ae-selos { display: flex; flex-wrap: wrap; gap: calc(var(--base-unit)*2); margin-bottom: calc(var(--base-unit)*6); }
.ae-selos li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 99px; background: rgba(255,255,255,0.75); font-size: 0.88em; color: #333; }
.ae-selos svg { width: 16px; height: 16px; }
.ae-selos b { color: var(--tinta); font-variation-settings: 'wght' 700; }
.ae-selos li.positivo svg { color: #1f7a3a; }
.ae-acoes { display: flex; flex-wrap: wrap; gap: calc(var(--base-unit)*2); }
.ae-topo .ae-acoes .btn:not(.btn-escuro):not(.secondary) { background: white; }
.ae-topo .ae-acoes .btn:not(.btn-escuro):not(.secondary):hover { background: var(--lightest-gray); }
.ae-topo .ae-acoes .secondary { background: transparent; border-color: rgba(0,0,0,0.3); }
.ae-topo .review_snippet { background: var(--tinta); border-radius: calc(var(--base-unit)*4); padding: calc(var(--base-unit)*6) calc(var(--base-unit)*4); gap: calc(var(--base-unit)*2); box-shadow: 0 24px 40px -24px rgba(0,0,0,0.6); }
.ae-topo .review_snippet.zero { background: rgba(29,29,29,0.92); }
.review_snippet-rotulo { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; color: rgba(255,255,255,0.6); font-variation-settings: 'wght' 700; }
.ae-topo .review_snippet .rating { font-size: 3.2em; line-height: 1; letter-spacing: -0.04em; color: white; font-weight: 800; }
.ae-topo .review_snippet .stars { font-size: 1.2em; }
.ae-topo .review_snippet a { background: rgba(255,255,255,0.12); border-radius: 99px; padding: 6px 12px; font-size: 0.82em; color: white; border: 0; }
.ae-topo .review_snippet a:hover { background: var(--primary); color: var(--tinta); }
.ae-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: calc(var(--base-unit)*8); align-items: start; }
.ae-layout > main { display: grid; gap: calc(var(--base-unit)*5); min-width: 0; }
.ae-layout > main > * { margin: 0; }
.ae-pagina .info, .ae-bloco, .ae-pagina .avaliacao-etapas, .ae-pagina .avaliacao-etapas.bordered { background: white; border: 1px solid var(--linha); border-radius: calc(var(--base-unit)*4); padding: calc(var(--base-unit)*7); }
.ae-pagina .info > p { font-size: 1.02em; line-height: 1.65; }
.ae-pagina .bordered { padding: 0; }
.ae-bloco > h2, .ae-bloco .d-flex h2 { font-size: 1.3em; margin: 0 0 calc(var(--base-unit)*4); }
.ae-pagina .ae-bloco .d-flex { margin-top: 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: calc(var(--base-unit)*3); margin-bottom: calc(var(--base-unit)*2); }
.ae-bloco .d-flex h2 { margin: 0; }
.ae-pagina dl.fatos { gap: calc(var(--base-unit)*3); }
.ae-pagina dl.fatos > div { border: 0; border-radius: calc(var(--base-unit)*3); background: var(--lightest-gray); }
.ae-pagina dl.fatos dt { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; font-variation-settings: 'wght' 700; color: var(--suave); }
.ae-pagina dl.fatos dd strong { font-size: 1.15em; }
.ae-pagina ul.categorias li { border-radius: 99px; padding: 4px 10px; font-size: 0.9em; }
#onde-fica { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: calc(var(--base-unit)*6); align-items: start; }
#onde-fica address { font-style: normal; line-height: 1.6; }
#onde-fica address p { margin-bottom: calc(var(--base-unit)*2); }
.ae-pagina .map { border-radius: calc(var(--base-unit)*3); overflow: hidden; border: 0; margin: 0; gap: calc(var(--base-unit)*2); flex-wrap: wrap; padding: calc(var(--base-unit)*3); }
.ae-pagina .map.embed { padding: 0; aspect-ratio: auto; }
.ae-pagina .map button:not(.secondary) { background: var(--tinta); color: white; }
.ae-pagina .map button svg { color: currentColor; fill: currentColor; stroke: none; width: 12px; height: 12px; }
#telefone-bloco p { line-height: 1.6; }
.ae-relacionadas { margin: 0 0 calc(var(--base-unit)*4); }
.ae-lateral { position: sticky; top: calc(var(--base-unit)*5); display: grid; gap: calc(var(--base-unit)*4); }
.ae-lateral .perto-cartao { background: white; border: 1px solid var(--linha); }
.ae-lateral a.perto-cartao { border-bottom: 1px solid var(--linha); padding-bottom: calc(var(--base-unit)*6); font-weight: 400; }
.perto a.perto-cartao.ae-perto strong { display: block; font-size: 1.1em; color: var(--tinta); margin-bottom: calc(var(--base-unit)*3); font-variation-settings: 'wght' 700; line-height: 1.3; }
.perto a.perto-cartao.ae-perto .perto-cartao-link { font-variation-settings: 'wght' 650; color: var(--tinta); }
.perto a.perto-cartao.ae-perto:hover { border-color: var(--tinta); background: white; }
.ae-lateral .perto-cartao.perto-custo { background: var(--tinta); border: 0; }

/* avaliações */
.review { background: white; border: 1px solid var(--linha); border-radius: calc(var(--base-unit)*4); margin-bottom: calc(var(--base-unit)*3); position: relative; overflow: hidden; }
.review .content { padding: calc(var(--base-unit)*5); }
.review .left img { border-radius: 50%; }
.review .author p { margin-bottom: 4px; }
.review .details { font-size: 0.85em; color: var(--suave); }
.ae-avaliacoes .columns-300px_1fr { grid-template-columns: 240px minmax(0, 1fr); gap: calc(var(--base-unit)*6); }
.ae-avaliacoes #review_block h3 { margin: 0 0 calc(var(--base-unit)*3); font-size: 1em; }
.ae-avaliacoes .aspects { display: grid; gap: calc(var(--base-unit)*2); }
.ae-avaliacoes .aspects li { border-radius: calc(var(--base-unit)*3); background: var(--lightest-gray); border: 0; }
.ae-pagina .avaliacao-etapas { scroll-margin-top: calc(var(--base-unit)*5); }
.ae-pagina .avaliacao-etapas legend.h3 { font-size: 1.3em; font-weight: 700; }
.avaliacao-etapas label.escolha, .radio-option label { border-radius: 99px; background: white; border-color: rgba(0,0,0,0.14); }
.avaliacao-etapas label.escolha:has(input:checked), .radio-option input[type="radio"]:checked + label { background: var(--tinta); color: white; border-color: var(--tinta); }
.avaliacao-etapas .etapas-barra { height: 6px; border-radius: 99px; }
body.reviews .container > h1 { margin-bottom: calc(var(--base-unit)*4); }

/* páginas estáticas */
.estatica .artigo { max-width: 720px; margin: 0 auto; padding-top: calc(var(--base-unit)*6); }
.estatica .artigo.artigo-largo { max-width: none; }
.estatica .artigo h1 { font-size: clamp(2em, 4.4vw, 2.8em); margin: calc(var(--base-unit)*4) 0 calc(var(--base-unit)*8); }
.estatica .artigo h2 { font-size: 1.35em; margin: calc(var(--base-unit)*12) 0 calc(var(--base-unit)*3); }
.estatica .artigo p { font-size: 1.05em; line-height: 1.75; color: #333; margin-bottom: calc(var(--base-unit)*4); }
.estatica .artigo p.lead { font-size: 1.2em; }
.estatica .artigo hr { border: 0; border-top: 1px solid var(--linha); margin: calc(var(--base-unit)*12) 0 calc(var(--base-unit)*4); }
.estatica .artigo a { overflow-wrap: anywhere; }
.estatica .artigo .notice { margin: 0 0 calc(var(--base-unit)*4); }
.erro-404 { text-align: left; padding-bottom: calc(var(--base-unit)*20); }
.erro-404 .ae-acoes { margin-top: calc(var(--base-unit)*6); }

/* rodapé */
footer.rodape { margin-top: calc(var(--base-unit)*24); padding-top: calc(var(--base-unit)*14); border-top: 0; background: var(--tinta); color: rgba(255,255,255,0.7); }
.rodape-topo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: calc(var(--base-unit)*6); padding-bottom: calc(var(--base-unit)*10); border-bottom: 1px solid rgba(255,255,255,0.1); }
.rodape-topo p { max-width: 52ch; line-height: 1.55; margin: calc(var(--base-unit)*3) 0 0; color: rgba(255,255,255,0.65); }
footer .rodape-logo { color: white; }
footer .rodape-logo .topo-marca { color: rgba(255,255,255,0.6); }
footer .rodape-logo .topo-marca strong { color: white; }
footer .rodape-logo .topo-semaforo { background: #000; box-shadow: 0 0 0 1px rgba(255,255,255,0.15); }
footer a.rodape-perto { background: var(--primary); color: var(--tinta); }
footer a.rodape-perto svg { color: var(--tinta); }
footer a.rodape-perto:hover { background: white; color: var(--tinta); }
.rodape-colunas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--base-unit)*10); padding: calc(var(--base-unit)*10) 0 calc(var(--base-unit)*12); }
.rodape-titulo { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; font-variation-settings: 'wght' 700; color: var(--primary); margin: 0 0 calc(var(--base-unit)*4); }
.rodape-colunas ul + .rodape-titulo { margin-top: calc(var(--base-unit)*8); }
footer .rodape-colunas li { margin-bottom: calc(var(--base-unit)*2.5); }
footer .rodape-colunas a { color: rgba(255,255,255,0.72); font-size: 0.93em; }
footer .rodape-colunas a:hover { color: var(--primary); }
footer .recent_blog_posts li a { border: 1px solid rgba(255,255,255,0.12); border-radius: calc(var(--base-unit)*3); padding: calc(var(--base-unit)*4); color: rgba(255,255,255,0.85); line-height: 1.4; }
footer .recent_blog_posts li a:hover { background: white; color: var(--tinta); box-shadow: none; }
footer .recent_blog_posts p a { text-decoration: none; color: var(--primary); }
footer .very_last { margin-top: 0; background: rgba(0,0,0,0.35); padding: calc(var(--base-unit)*5) 0; }
footer .very_last .container { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: calc(var(--base-unit)*3); font-size: 0.82em; }
footer .very_last p { margin: 0; color: rgba(255,255,255,0.5); }
footer .very_last nav ul { gap: calc(var(--base-unit)*6); font-size: 1em; }
.cookie_alert { background: rgba(29,29,29,0.94); color: rgba(255,255,255,0.85); padding: calc(var(--base-unit)*3) calc(var(--base-unit)*4); box-sizing: border-box; }
.cookie_alert p a { color: var(--primary); }
.cookie_alert button { border: 0; border-radius: 99px; padding: calc(var(--base-unit)*2) calc(var(--base-unit)*4); font-size: 0.75em; }

@media screen and (max-width: 960px) {
    .home-hero-grade { grid-template-columns: 1fr; gap: calc(var(--base-unit)*8); }
    .atalhos { grid-template-columns: 1fr; margin-top: calc(var(--base-unit)*-8); }
    .home-rankings { grid-template-columns: 1fr 1fr; }
    .home-rankings .sobre { grid-column: 1 / -1; }
    .ae-topo { grid-template-columns: 1fr; padding: calc(var(--base-unit)*7); }
    .ae-topo .review_snippet { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; padding: calc(var(--base-unit)*4) calc(var(--base-unit)*5); gap: calc(var(--base-unit)*3); }
    .ae-topo .review_snippet .rating { font-size: 2.2em; }
    .review_snippet-rotulo { width: 100%; }
    .ae-layout { grid-template-columns: 1fr; }
    .ae-lateral { position: static; grid-template-columns: 1fr 1fr; }
    .ae-lateral .perto-dicas { grid-column: 1 / -1; }
    .listagem .columns-300px_1fr { display: flex; flex-direction: column-reverse; }
    .rodape-colunas { grid-template-columns: 1fr 1fr; }
}
@media screen and (max-width: 600px) {
    .home .hero.home-hero { padding: calc(var(--base-unit)*8) 0 calc(var(--base-unit)*14); }
    .home-hero-grade { padding: 0 calc(var(--base-unit)*4); gap: calc(var(--base-unit)*6); }
    .home-busca { padding: calc(var(--base-unit)*5); }
    .home .hero .home-busca #search_city input { font-size: 16px; }
    .home-rankings { grid-template-columns: 1fr; }
    .estados-grade { grid-template-columns: 1fr 1fr; }
    section .estados-grade a { font-size: 0.88em; padding: calc(var(--base-unit)*2); gap: calc(var(--base-unit)*2); }
    section .atalhos a { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: calc(var(--base-unit)*3); row-gap: 2px; padding: calc(var(--base-unit)*4); }
    .atalhos .atalho-icone { grid-row: span 2; margin: 0; }
    .atalhos { gap: calc(var(--base-unit)*3); }
    .pagina-topo, .ae-topo { margin-left: calc(var(--base-unit)*-4); margin-right: calc(var(--base-unit)*-4); border-radius: 0; padding: calc(var(--base-unit)*6) calc(var(--base-unit)*4); }
    .ae-pagina .info, .ae-bloco, .ae-pagina .avaliacao-etapas, .ae-pagina .avaliacao-etapas.bordered { padding: calc(var(--base-unit)*5); }
    .ae-pagina { padding: 0 calc(var(--base-unit)*4); }
    #onde-fica { grid-template-columns: 1fr; }
    .ae-lateral { grid-template-columns: 1fr; }
    .ae-avaliacoes .columns-300px_1fr { display: flex; flex-direction: column; }
    .list li.ae-item { grid-template-columns: 50px minmax(0, 1fr); gap: calc(var(--base-unit)*3.5); padding: calc(var(--base-unit)*3.5); }
    .ae-item-nota { height: 50px; }
    .ae-item-seta { display: none; }
    .rodape-colunas { grid-template-columns: 1fr; gap: calc(var(--base-unit)*8); }
    .rodape-topo .topo-perto { width: 100%; justify-content: center; padding: calc(var(--base-unit)*3.5); }
    .estatica .artigo { padding-top: calc(var(--base-unit)*2); }
}

/* janela do telefone */
.modal_content { width: min(460px, calc(100vw - 32px)); box-sizing: border-box; padding: calc(var(--base-unit)*7); border-radius: calc(var(--base-unit)*5); }
.modal .d-flex { flex-wrap: wrap; justify-content: flex-start; gap: calc(var(--base-unit)*2.5); margin-top: calc(var(--base-unit)*4); }
.modal .d-flex button { flex: 1 1 auto; white-space: nowrap; padding: calc(var(--base-unit)*3) calc(var(--base-unit)*4); }
.modal .result button { margin-top: calc(var(--base-unit)*3); }
@media screen and (max-width: 600px) {
    .modal_content { width: calc(100vw - 32px); padding: calc(var(--base-unit)*5); }
    .modal .modal_content > button[role='close'] { transform: none; top: calc(var(--base-unit)*2); right: calc(var(--base-unit)*2); }
    .modal .modal_content .h2 { padding-right: calc(var(--base-unit)*8); }
}
/* ...



*/
