/* TEVO – estilos complementares ao theme.json (visual aprovado na prévia v9)
   1. Base  2. Cabeçalho  3. Topo (hero)  4. Botões  5. Seções e cards  6. Faixa escura
   7. Linhas (rows)  8. Estrada (road)  9. Avaliações  10. CTA final e b2b  11. Rodapé, formulário, avisos
   12. Movimento */

/* 1. Base */
:root {
  --tevo-radius: 14px; --tevo-shadow: 0 2px 12px rgba(19, 48, 42, .08);
  --tevo-suave: #4F6B63; --tevo-pad: var(--wp--style--root--padding-left, 16px);
  --tevo-wa-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2Zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.3-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3Z'/%3E%3C/svg%3E");
}
html { scroll-behavior: smooth; }
body { overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--wp--preset--color--verde-escuro); outline-offset: 3px; }
/* Em fundos escuros (topo com foto, seções escuras, rodapé) o contorno é menta (≥ 3:1 sobre #0E4D3F). */
.tevo-hero :focus-visible, .tevo-section--dark :focus-visible, .tevo-b2b :focus-visible, .tevo-footer :focus-visible { outline-color: var(--wp--preset--color--menta); }
/* O botão flutuante passa sobre fundos claros e escuros: anel duplo (branco + verde-escuro) visível nos dois. */
.tevo-footer .tevo-whatsapp-float:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 7px var(--wp--preset--color--verde-escuro); }
.wp-site-blocks > main { margin-block-start: 0; }
.wp-block-post-content > :first-child { margin-block-start: 0; }

/* 2. Cabeçalho fixo, translúcido, que encolhe ao rolar (.scrolled via JS) */
.wp-site-blocks > header.wp-block-template-part {
  position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 40;
  border-bottom: 1px solid var(--wp--preset--color--borda);
  margin-inline: calc(-1 * var(--tevo-pad)); padding-inline: var(--tevo-pad);
}
/* O desfoque fica num pseudo-elemento: backdrop-filter no próprio cabeçalho viraria o bloco de contenção
   do menu móvel (position: fixed) e o prenderia dentro dos 68px do cabeçalho. */
.wp-site-blocks > header.wp-block-template-part::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(255, 255, 255, .88); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); }
.tevo-header { max-width: 1200px; margin: 0 auto; height: 68px; padding: 0; gap: 24px; align-items: center; transition: height .3s ease; }
.tevo-header.scrolled { height: 56px; }
.tevo-logo img { display: block; height: 30px; width: auto; transition: height .3s ease; }
.tevo-header.scrolled .tevo-logo img { height: 26px; }
.tevo-nav { font-size: .92rem; font-weight: 600; }
.tevo-nav .wp-block-navigation__container { gap: .25rem 22px; flex-wrap: nowrap; }
.tevo-nav .wp-block-navigation-item { white-space: nowrap; }
.tevo-nav .wp-block-navigation-item__content { color: var(--wp--preset--color--texto); }
.tevo-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--verde); }
.tevo-nav .wp-block-navigation__submenu-container { border: 1px solid var(--wp--preset--color--borda) !important; border-radius: 12px; box-shadow: var(--tevo-shadow); }
.tevo-header__cta { background: var(--wp--preset--color--verde); color: #fff !important; padding: .6rem 1.1rem; border-radius: 999px; font-size: .9rem; font-weight: 700; text-decoration: none; white-space: nowrap; transition: background .2s, transform .2s; }
.tevo-header__cta:hover { background: var(--wp--preset--color--verde-escuro); transform: translateY(-1px); }
/* Abaixo de 1120px o menu vira o botão da navegação móvel do bloco (que nativamente só aparece < 600px). */
@media (max-width: 1119px) {
  .tevo-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .tevo-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
  .tevo-header { margin-left: auto; }
  .tevo-nav { margin-left: auto; }
}
@media (max-width: 960px) { .tevo-header__cta { display: none; } }
@media (max-width: 600px) { .tevo-logo img { height: 28px; } }

/* 3. Topo (hero) em largura total: foto (z 0) → degradê (z 1) → conteúdo e serras (z 2) */
.tevo-hero { position: relative; display: flex; align-items: flex-end; min-height: min(70vh, 620px); color: #fff; overflow: hidden; isolation: isolate; }
.tevo-hero--home { min-height: min(86vh, 760px); }
.tevo-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(100deg, rgba(9, 46, 38, .94) 0%, rgba(9, 46, 38, .78) 38%, rgba(9, 46, 38, .15) 72%), linear-gradient(0deg, rgba(9, 46, 38, .55), rgba(9, 46, 38, 0) 45%); }
.tevo-hero > .tevo-hero__bg { position: absolute; inset: 0; z-index: 0; margin: 0; }
.tevo-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 55%; }
.tevo-hero > .tevo-hero__content { position: relative; z-index: 2; width: 100%; max-width: var(--wp--style--global--wide-size, 1200px); margin: 0 auto; padding: 120px 0 110px; }
.tevo-hero--page > .tevo-hero__content { padding-top: 96px; }
.tevo-hero h1 { color: #fff; font-size: clamp(2.3rem, 5.4vw, 4.4rem); line-height: 1.04; max-width: 17ch; letter-spacing: -.02em; margin: 0; }
.tevo-hero--page h1 { font-size: clamp(2.1rem, 4.6vw, 3.6rem); max-width: 20ch; }
.tevo-hero .tevo-hero__lead { max-width: 46ch; margin: 22px 0 0; font-size: 1.15rem; color: #E3F1EC; }
.tevo-hero .wp-block-buttons { gap: 12px; margin: 30px 0 0; }
.tevo-facts { display: flex; flex-wrap: wrap; gap: 14px 36px; margin-top: 44px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .22); max-width: 640px; }
.tevo-fact { display: flex; align-items: center; gap: 10px; font-size: .95rem; color: #E3F1EC; }
.tevo-fact b { font-family: var(--wp--preset--font-family--lora); font-size: 1.5rem; color: #fff; font-weight: 600; }
.tevo-count { font-variant-numeric: tabular-nums; }
.tevo-fact svg { width: 18px; height: 18px; color: var(--wp--preset--color--menta); flex: none; }
.tevo-ridge { position: absolute; left: 0; right: 0; bottom: -1px; z-index: 2; display: block; width: 100%; height: clamp(48px, 7vw, 96px); margin: 0; }

/* 4. Botões em pílula com leve subida */
.wp-block-button__link { font-size: 1rem; display: inline-flex; align-items: center; gap: .55rem; border-radius: 999px; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.tevo-hero .tevo-btn-whatsapp .wp-block-button__link { background: var(--wp--preset--color--menta); color: var(--wp--preset--color--texto); }
.tevo-hero .tevo-btn-whatsapp .wp-block-button__link:hover { background: #6FE0B6; }
.tevo-hero .tevo-btn-whatsapp .wp-block-button__link::before { content: ""; width: 20px; height: 20px; flex: none; background: currentColor; -webkit-mask: var(--tevo-wa-icon) center / contain no-repeat; mask: var(--tevo-wa-icon) center / contain no-repeat; }
.tevo-hero .is-style-outline .wp-block-button__link { border: 1.5px solid rgba(255, 255, 255, .7); color: #fff; background: transparent; }
.tevo-hero .is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--verde-escuro); }
.is-style-outline .wp-block-button__link { border-width: 1.5px; }

/* 5. Seções e cards */
.tevo-section { padding-block: clamp(64px, 9vw, 120px); }
.tevo-section--soft { background: var(--wp--preset--color--fundo-suave); }
/* Faixas de largura total: o padding da raiz fica no body, então a faixa avança sobre ele e o devolve por dentro. */
.tevo-section.alignfull, .tevo-hero.alignfull { margin-inline: calc(-1 * var(--tevo-pad)); padding-inline: var(--tevo-pad); margin-block: 0; }
/* Texto na largura de leitura, alinhado à esquerda da grade ampla (e não centralizado sobre ela). */
.tevo-section.is-layout-constrained > :not(.alignwide):not(.alignfull):not(.tevo-abs), .wp-block-post-content > .tevo-notice { margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size)) / 2)) !important; margin-right: auto !important; }
.tevo-section > .alignwide { margin-block-start: clamp(32px, 4vw, 52px); }
.tevo-section .tevo-intro { max-width: 680px; margin-top: 16px; color: var(--tevo-suave); font-size: 1.1rem; }
/* Grades ocupam a largura disponível: 3 cards viram 3 colunas largas, sem coluna vazia. */
.tevo-grid.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr)); gap: 20px; }
.tevo-card { background: #fff; border: 1px solid var(--wp--preset--color--borda); border-radius: var(--tevo-radius); padding: 1.75rem 1.6rem; transition: border-color .25s ease; }
.tevo-card:hover { border-color: var(--wp--preset--color--menta); }
.tevo-card img { border-radius: 10px; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.tevo-card h3 { margin-top: .5rem; }
.tevo-card > :first-child { margin-top: 0; }
.tevo-card > .tevo-icon { margin-left: 0 !important; }
.tevo-icon { display: block; width: 34px; height: 34px; margin-bottom: 18px; color: var(--wp--preset--color--verde); }
.tevo-icon svg { display: block; width: 100%; height: 100%; }
.tevo-faq details { border-bottom: 1px solid var(--wp--preset--color--borda); padding-block: .9rem; }
.tevo-faq summary { cursor: pointer; font-weight: 700; color: var(--wp--preset--color--verde-escuro); }
.tevo-notice { display: flex; gap: 12px; align-items: flex-start; background: var(--wp--preset--color--fundo-suave); border-radius: 12px; padding: 16px 18px; font-size: .97rem; }
.tevo-notice.tevo-notice > * { margin: 0; }
.tevo-notice__icon svg { display: block; width: 22px; height: 22px; margin-top: 1px; color: var(--wp--preset--color--verde); }
.wp-block-post-content > .tevo-notice { margin-block: clamp(28px, 4vw, 48px) 0; max-width: var(--wp--style--global--wide-size); }

/* 6. Faixa escura com curvas de nível (cards dark) */
.tevo-section--dark { position: relative; overflow: hidden; background: var(--wp--preset--color--verde-escuro); color: #DCEBE6; }
.tevo-section--dark h2, .tevo-section--dark h3 { color: #fff; }
.tevo-section--dark .tevo-intro { color: #BFD8D0; }
.tevo-section--dark > :not(.tevo-topo) { position: relative; z-index: 1; }
.tevo-topo { position: absolute; right: -120px; top: -40px; z-index: 0; width: 760px; height: 560px; max-width: none; margin: 0; pointer-events: none; opacity: .9; }
.tevo-section--dark .tevo-grid.is-layout-grid { gap: 0; border-top: 1px solid rgba(255, 255, 255, .16); }
.tevo-section--dark .tevo-card { background: none; border: 0; border-radius: 0; padding: 30px 32px 6px 0; }
.tevo-section--dark .tevo-card + .tevo-card { padding-left: 32px; border-left: 1px solid rgba(255, 255, 255, .16); }
.tevo-section--dark .tevo-icon { color: var(--wp--preset--color--menta); }
.tevo-section--dark .tevo-card p { font-size: .98rem; }
.tevo-section--dark a { color: var(--wp--preset--color--menta); font-weight: 600; text-decoration: none; border-bottom: 1px solid currentColor; }
.tevo-section--dark a:hover { color: #fff; }
@media (max-width: 860px) {
  .tevo-section--dark .tevo-grid.is-layout-grid { grid-template-columns: 1fr; }
  .tevo-section--dark .tevo-card, .tevo-section--dark .tevo-card + .tevo-card { padding: 26px 0; border-left: 0; border-bottom: 1px solid rgba(255, 255, 255, .16); }
}

/* 7. Linhas com miniatura (rows) */
.tevo-rows.wp-block-columns { column-gap: clamp(28px, 5vw, 72px); align-items: center; }
.tevo-rows > .wp-block-column:first-child { flex-grow: 1.05; }
.tevo-rows__photo { margin: 0; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3.4; }
.tevo-rows__photo img { width: 100%; height: 100%; object-fit: cover; }
.tevo-rows__list { border-top: 1px solid var(--wp--preset--color--borda); }
.tevo-rows__list.tevo-rows__list > .tevo-row { margin: 0; }
.tevo-row { position: relative; display: grid; grid-template-columns: 96px 1fr auto; gap: 20px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--wp--preset--color--borda); }
.tevo-row.tevo-row > *, .tevo-row__body.tevo-row__body > * { margin: 0; }
.tevo-row__thumb img { display: block; width: 96px; height: 72px; object-fit: cover; border-radius: 10px; }
.tevo-row h3 { font-size: 1.25rem; }
.tevo-row h3 a { color: inherit; text-decoration: none; transition: color .2s; }
.tevo-row h3 a::after, .tevo-stop h3 a::after { content: ""; position: absolute; inset: 0; }
.tevo-row__body.tevo-row__body > p { margin-top: 4px; font-size: .97rem; color: var(--tevo-suave); }
.tevo-row__go { width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid var(--wp--preset--color--borda); display: grid; place-items: center; color: var(--wp--preset--color--verde); transition: background .2s, border-color .2s, color .2s; }
.tevo-row__go svg { width: 18px; height: 18px; }
.tevo-row:hover .tevo-row__go { background: var(--wp--preset--color--verde); border-color: var(--wp--preset--color--verde); color: #fff; }
.tevo-row:hover h3 a { color: var(--wp--preset--color--verde); }
.tevo-rows .tevo-notice { margin-top: 28px; }
@media (max-width: 860px) { .tevo-row { grid-template-columns: 72px 1fr auto; } .tevo-row__thumb img { width: 72px; height: 56px; } }

/* 8. A estrada (road): trilho pontilhado, van e paradas */
.tevo-section .tevo-origin { margin-top: 10px; font-size: .95rem; color: var(--tevo-suave); }
.tevo-origin strong { color: var(--wp--preset--color--texto); }
.tevo-section > .tevo-road { position: relative; margin-top: 56px; }
.tevo-road.tevo-road > * { margin: 0; }
.tevo-road__track { position: absolute; left: 0; right: 0; top: 27px; height: 14px; pointer-events: none; }
.tevo-road__track::before { content: ""; position: absolute; left: 0; right: 0; top: 6px; border-top: 3px dashed var(--wp--preset--color--menta); }
.tevo-road__track .tevo-van { position: absolute; top: -14px; left: 0; width: 46px; height: 26px; color: var(--wp--preset--color--verde-escuro); transform: translateX(0); will-change: transform; }
.tevo-road.go .tevo-road__track .tevo-van { transition: transform 3.2s cubic-bezier(.45, .05, .35, 1); transform: translateX(calc(var(--roadw, 100%) - 46px)); }
.tevo-stops { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.tevo-stops.tevo-stops > .tevo-stop { margin: 0; }
.tevo-stop { position: relative; }
.tevo-stop.tevo-stop > *, .tevo-stop__media.tevo-stop__media > * { margin: 0; }
.tevo-stop__pin { display: flex; align-items: center; height: 68px; }
.tevo-stop__km { position: relative; border: 1.5px solid var(--wp--preset--color--borda); border-left: 4px solid var(--wp--preset--color--menta); background: #fff; padding: 3px 10px; border-radius: 6px; font-size: .82rem; font-weight: 600; color: var(--tevo-suave); }
.tevo-stop__media { position: relative; border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 5; transition: box-shadow .3s ease, transform .3s ease; }
.tevo-stop__media figure, .tevo-stop__media img { width: 100%; height: 100%; }
.tevo-stop__media img { display: block; object-fit: cover; transition: transform .6s ease; }
.tevo-stop__ico { position: absolute; left: 12px; top: 12px; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .92); display: grid; place-items: center; color: var(--wp--preset--color--verde-escuro); }
.tevo-stop__ico svg { width: 28px; height: 28px; }
.tevo-stop.tevo-stop > h3 { margin-top: 16px; }
.tevo-stop h3 a { color: inherit; text-decoration: none; }
.tevo-stop.tevo-stop > p { margin-top: 6px; font-size: .95rem; color: var(--tevo-suave); }
.tevo-stop:hover .tevo-stop__media { box-shadow: 0 14px 30px -14px rgba(14, 77, 63, .45); transform: translateY(-3px); }
.tevo-stop:hover .tevo-stop__media img { transform: scale(1.04); }
.tevo-stop:hover h3 a { color: var(--wp--preset--color--verde); }
.tevo-road.armed .tevo-stop { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.tevo-road.armed.go .tevo-stop { opacity: 1; transform: none; }
@media (max-width: 980px) { .tevo-stops { grid-template-columns: repeat(2, 1fr); } .tevo-road__track { display: none; } }
@media (max-width: 520px) { .tevo-stops { grid-template-columns: 1fr; } .tevo-stop__media { aspect-ratio: 16 / 10; } }

/* 9. Avaliações: carrossel sem bibliotecas (scroll-snap). 3 cartões ≥1024px, 2 entre 768 e 1023, 1 abaixo.
   Sem JS: lista com rolagem horizontal (botões e pontos só aparecem com .is-ready). */
.tevo-reviews.alignwide { margin-top: 28px; }
.tevo-carousel { --gap: 20px; position: relative; }
.tevo-carousel__track { display: flex; gap: var(--gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding: 4px 0 14px; margin-top: -4px; scrollbar-width: thin; }
.tevo-carousel.is-ready .tevo-carousel__track { scrollbar-width: none; }
.tevo-carousel.is-ready .tevo-carousel__track::-webkit-scrollbar { display: none; }
.tevo-carousel__track:focus-visible { outline: 2px solid var(--wp--preset--color--verde); outline-offset: -2px; border-radius: var(--tevo-radius); }
.tevo-carousel__slide { box-sizing: border-box; flex: 0 0 86%; scroll-snap-align: start; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--wp--preset--color--borda); border-left: 3px solid var(--wp--preset--color--menta); border-radius: var(--tevo-radius); padding: 1.5rem 1.4rem 1.3rem; }
@media (min-width: 768px) { .tevo-carousel__slide { flex-basis: calc((100% - var(--gap)) / 2); } }
@media (min-width: 1024px) { .tevo-carousel__slide { flex-basis: calc((100% - 2 * var(--gap)) / 3); } }
.tevo-carousel__slide > * { margin: 0; }
.tevo-stars { display: flex; gap: 3px; color: #E6B100; }
.tevo-stars svg { width: 18px; height: 18px; }
.tevo-review-card__quote { margin: 14px 0 0; padding: 0; border: 0; flex: 1; }
.tevo-review-card__quote p { margin: 0; font-family: var(--wp--preset--font-family--lora); font-size: 1.08rem; line-height: 1.5; color: var(--wp--preset--color--verde-escuro); }
.tevo-carousel__slide .tevo-review__who { margin-top: 16px; font-size: .92rem; }
.tevo-review__who { color: var(--tevo-suave); }
.tevo-review__who strong { color: var(--wp--preset--color--texto); font-weight: 600; }
.tevo-carousel__nav { display: none; align-items: center; justify-content: center; gap: 14px; margin-top: 14px; }
.tevo-carousel.is-ready .tevo-carousel__nav { display: flex; }
.tevo-carousel__btn { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--wp--preset--color--borda); background: #fff; color: var(--wp--preset--color--verde-escuro); cursor: pointer; transition: border-color .2s ease, background-color .2s ease; }
.tevo-carousel__btn svg { width: 20px; height: 20px; }
.tevo-carousel__prev svg { transform: scaleX(-1); }
.tevo-carousel__btn:hover:not(:disabled) { border-color: var(--wp--preset--color--menta); background: var(--wp--preset--color--fundo-suave, #F3F8F6); }
.tevo-carousel__btn:disabled { opacity: .4; cursor: default; }
.tevo-carousel__btn:focus-visible, .tevo-carousel__dot:focus-visible { outline: 2px solid var(--wp--preset--color--verde); outline-offset: 2px; }
.tevo-carousel__dots { display: flex; flex-wrap: wrap; justify-content: center; }
.tevo-carousel__dot { width: 28px; height: 28px; padding: 0; border: 0; background: none; cursor: pointer; display: grid; place-items: center; border-radius: 999px; }
.tevo-carousel__dots[hidden] { display: none; }
/* Ponto inativo #738D86: 3,6:1 sobre branco e 3,3:1 sobre o fundo suave (mínimo 3:1 para componentes). */
.tevo-carousel__dot::before { content: ""; width: 9px; height: 9px; border-radius: 999px; background: #738D86; transition: background-color .2s ease, width .2s ease; }
.tevo-carousel__dot[aria-current="true"]::before { width: 22px; background: var(--wp--preset--color--verde); }
.tevo-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (prefers-reduced-motion: no-preference) { .tevo-carousel__track { scroll-behavior: smooth; } }
.tevo-section > .tevo-review__all { margin-top: 24px; font-weight: 600; }

/* 10. CTA final (com serras em traço menta) e faixa b2b */
.tevo-cta-final { position: relative; }
.tevo-skyline { position: absolute; left: 0; right: 0; bottom: 100%; display: block; width: 100%; height: 56px; max-width: none; margin: 0 0 -1px; color: var(--wp--preset--color--menta); pointer-events: none; }
.tevo-cta.wp-block-columns { column-gap: 40px; align-items: center; }
.tevo-cta > .wp-block-column:first-child { flex-grow: 1.2; }
.tevo-cta p { max-width: 48ch; margin-top: 14px; color: var(--tevo-suave); font-size: 1.1rem; }
.tevo-cta .wp-block-buttons { gap: 12px; justify-content: flex-end; }
.tevo-cta .is-style-outline .wp-block-button__link { color: var(--wp--preset--color--verde); border-color: var(--wp--preset--color--verde); }
.tevo-cta .is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--verde); color: #fff; }
@media (max-width: 781px) { .tevo-cta .wp-block-buttons { justify-content: flex-start; } }
.tevo-b2b { background: var(--wp--preset--color--verde-escuro); color: #fff; border-radius: var(--tevo-radius); padding: clamp(1.5rem, 3vw, 2.25rem); margin-block: 2rem !important; }
.tevo-b2b.is-layout-constrained > * { margin-left: 0 !important; }
.tevo-b2b h2, .tevo-b2b h3, .tevo-b2b a:not(.wp-block-button__link) { color: #fff; }
.tevo-b2b .wp-block-button__link { background: var(--wp--preset--color--menta); color: var(--wp--preset--color--texto); }
.tevo-b2b .wp-block-button__link:hover { background: #6FE0B6; }

/* 11. Rodapé, formulário, WhatsApp flutuante e aviso de cookies */
.tevo-footer { background: var(--wp--preset--color--verde-escuro); color: #E9F2EF; padding-block: 3rem 6rem; margin-top: 0; margin-inline: calc(-1 * var(--tevo-pad)); padding-inline: var(--tevo-pad); }
.wp-site-blocks > footer.wp-block-template-part { margin-block-start: 0; }
.tevo-footer a { color: #fff; }
.tevo-footer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
@media (max-width: 760px) { .tevo-footer__grid { grid-template-columns: 1fr; } }
.tevo-footer__name, .tevo-footer__title { font-family: var(--wp--preset--font-family--lora); font-size: 1.35rem; color: #fff; font-weight: 600; }
.tevo-footer__legal { font-size: .85rem; opacity: .85; margin-top: 2rem; }
.tevo-form { display: grid; gap: .75rem; }
.tevo-form label { display: grid; gap: .25rem; font-weight: 600; font-size: .95rem; }
.tevo-form input, .tevo-form select, .tevo-form textarea { font: inherit; padding: .7rem .8rem; border: 1px solid var(--wp--preset--color--borda); border-radius: 8px; background: #fff; color: var(--wp--preset--color--texto); width: 100%; box-sizing: border-box; }
.tevo-form .tevo-form__check { display: flex; gap: .5rem; align-items: flex-start; font-weight: 400; }
.tevo-form .tevo-form__check input { width: auto; margin-top: .3rem; }
.tevo-form button { font: inherit; font-weight: 700; background: var(--wp--preset--color--menta); color: var(--wp--preset--color--texto); border: 0; border-radius: 999px; padding: .85rem 1.4rem; cursor: pointer; transition: background .2s, transform .2s; }
.tevo-form button:hover { background: #6FE0B6; transform: translateY(-1px); }
.tevo-form__hp { position: absolute !important; left: -9999px !important; }
.tevo-form__ok, .tevo-form__erro { padding: .8rem 1rem; border-radius: 8px; font-weight: 600; }
.tevo-form__ok { background: #E9F7F1; color: var(--wp--preset--color--verde-escuro); }
.tevo-form__erro { background: #FDECEC; color: #8A1C1C; }
.tevo-footer .tevo-form label { color: #fff; }
/* #0E7C5F com texto branco: 5,2:1 (o verde do WhatsApp #25D366 com branco fica em 2:1). Sobe acima do aviso de cookies enquanto ele está aberto (--tevo-consent-h via JS). */
.tevo-whatsapp-float { position: fixed; right: 16px; bottom: calc(16px + var(--tevo-consent-h, 0px)); z-index: 50; background: var(--wp--preset--color--verde); color: #fff !important; font-weight: 700; padding: .85rem 1.1rem; border-radius: 999px; box-shadow: 0 4px 16px rgba(0, 0, 0, .2); text-decoration: none; }
@media (min-width: 961px) { .tevo-whatsapp-float { display: none; } }
.tevo-consent { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 60; max-width: 640px; margin: 0 auto; background: #fff; color: var(--wp--preset--color--texto); border: 1px solid var(--wp--preset--color--borda); border-radius: var(--tevo-radius); box-shadow: var(--tevo-shadow); padding: 1rem; font-size: .9rem; }
.tevo-consent[hidden] { display: none; }
.tevo-consent__actions { display: flex; gap: .5rem; margin-top: .75rem; flex-wrap: wrap; }
.tevo-consent button { font: inherit; border-radius: 999px; padding: .55rem 1rem; cursor: pointer; border: 1px solid var(--wp--preset--color--verde); }
.tevo-consent button[data-consent="granted"] { background: var(--wp--preset--color--verde); color: #fff; }
.tevo-consent button[data-consent="denied"] { background: #fff; color: var(--wp--preset--color--verde); }
.tevo-footer__cookies { font: inherit; color: inherit; background: none; border: 0; padding: 0; text-decoration: underline; cursor: pointer; }

/* 12. Movimento: entrada do topo, revelação ao rolar (.js + .tevo-reveal/.in via JS), estrada */
@media (prefers-reduced-motion: no-preference) {
  .tevo-hero h1, .tevo-hero .tevo-hero__lead, .tevo-hero .wp-block-buttons, .tevo-facts { animation: tevo-rise .9s cubic-bezier(.2, .7, .2, 1) both; }
  .tevo-hero .tevo-hero__lead { animation-delay: .12s; }
  .tevo-hero .wp-block-buttons { animation-delay: .22s; }
  .tevo-facts { animation-delay: .34s; }
  @keyframes tevo-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
}
.js .tevo-reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1), border-color .25s ease; transition-delay: var(--d, 0s); }
.js .tevo-reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .tevo-reveal, .tevo-road.armed .tevo-stop { opacity: 1 !important; transform: none !important; transition: none !important; }
  .tevo-road__track .tevo-van { display: none; }
  .tevo-header, .tevo-logo img, .wp-block-button__link, .tevo-stop__media, .tevo-stop__media img { transition: none; }
}
.tevo-rows > .wp-block-column, .tevo-cta > .wp-block-column { align-self: center; }
/* No celular o texto ocupa a largura toda: degradê mais forte para manter o contraste do texto branco. */
@media (max-width: 781px) { .tevo-hero::before { background: linear-gradient(0deg, rgba(9, 46, 38, .94) 0%, rgba(9, 46, 38, .82) 55%, rgba(9, 46, 38, .6) 100%); } }
/* Topo com retrato (focus: "right", página Sobre): o rosto fica fora do degradê que protege o texto. */
.tevo-hero--focus-right { background: #092E26; }
.tevo-hero--focus-right .tevo-hero__bg img { object-position: 50% 30%; }
@media (min-width: 782px) {
  .tevo-hero--focus-right > .tevo-hero__bg { left: 46%; -webkit-mask-image: linear-gradient(90deg, transparent, #000 28%); mask-image: linear-gradient(90deg, transparent, #000 28%); }
  .tevo-hero--focus-right::before { background: linear-gradient(100deg, rgba(9, 46, 38, .94) 0%, rgba(9, 46, 38, .8) 42%, rgba(9, 46, 38, 0) 66%), linear-gradient(0deg, rgba(9, 46, 38, .55), rgba(9, 46, 38, 0) 40%); }
}
@media (max-width: 781px) {
  .tevo-hero--focus-right > .tevo-hero__bg { bottom: auto; height: 360px; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent); mask-image: linear-gradient(180deg, #000 70%, transparent); }
  .tevo-hero--focus-right::before { background: linear-gradient(180deg, rgba(9, 46, 38, .05) 0, rgba(9, 46, 38, .15) 180px, rgba(9, 46, 38, .94) 340px); }
  .tevo-hero--focus-right > .tevo-hero__content { padding-top: 300px; }
}
.tevo-nav .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; }
/* Espaço para as serras do CTA quando ele vem logo após uma caixa (b2b/aviso), e não após uma seção. */
:not(.tevo-section) + .tevo-cta-final.alignfull { margin-top: 72px; }

/* 13. Blog: lista de posts (home.html) e post (single.html) na largura de leitura (760px), centralizados. */
.tevo-blog > h1, .tevo-post__head h1 { font-size: clamp(2rem, 4.4vw, 3rem); line-height: 1.12; letter-spacing: -.01em; margin: 0; }
.tevo-blog > .tevo-intro { margin-top: 14px; color: var(--tevo-suave); font-size: 1.1rem; }
.tevo-blog__list { margin-top: clamp(32px, 4vw, 48px); }
.tevo-blog__list .wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.tevo-blog__list .wp-block-post { padding-block: 28px; border-top: 1px solid var(--wp--preset--color--borda); }
.tevo-blog__list .wp-block-post:last-child { border-bottom: 1px solid var(--wp--preset--color--borda); }
.tevo-blog__list .wp-block-post-title { font-size: clamp(1.35rem, 2.6vw, 1.7rem); margin: 0; }
.tevo-blog__list .wp-block-post-title a { color: var(--wp--preset--color--verde-escuro); text-decoration: none; }
.tevo-blog__list .wp-block-post-title a:hover { color: var(--wp--preset--color--verde); text-decoration: underline; }
.tevo-blog__list .wp-block-post-date, .tevo-post__head .wp-block-post-date { margin-top: 8px; font-size: .9rem; color: var(--tevo-suave); }
.tevo-blog__list .wp-block-post-excerpt { margin-top: 10px; }
.tevo-blog__list .wp-block-post-excerpt__more-link { font-weight: 600; color: var(--wp--preset--color--verde); }
.tevo-post__head { padding-block: clamp(40px, 6vw, 72px) 0; }
.tevo-post__back { margin: 0 0 18px; font-size: .92rem; }
.tevo-post__back a { color: var(--wp--preset--color--verde); font-weight: 600; text-decoration: none; }
.tevo-post__back a:hover { text-decoration: underline; }
/* No post, as seções de texto viram parágrafos corridos: sem faixas de 120px entre um intertítulo e outro. */
.tevo-post__content > .tevo-section:not(.tevo-section--soft) { padding-block: 0; }
.tevo-post__content > .tevo-section:not(.tevo-section--soft) > h2 { margin-top: clamp(36px, 5vw, 52px); }
.tevo-post__content > .tevo-section:first-child { padding-top: clamp(24px, 3vw, 36px); }
.tevo-post__content > .tevo-section:not(.tevo-section--soft):has(+ .tevo-cta-final) { padding-bottom: clamp(48px, 6vw, 72px); }
/* Cabeçalho do post alinhado à esquerda da grade ampla, como o texto das páginas e da lista do blog. */
.tevo-post__head.is-layout-constrained > * { margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size)) / 2)) !important; margin-right: auto !important; }
/* Contato: o formulário completo fica junto do seu título (seção de texto anterior), sem duas faixas de espaço. */
.tevo-section:has(+ .tevo-section #orcamento-completo) { padding-bottom: 0; }
.tevo-section:has(#orcamento-completo) { padding-top: 28px; }

/* 14. Menu móvel (abaixo de 1120px): painel com respiro, itens à esquerda e textos longos quebrando
   (no painel o nowrap do menu de desktop cortava "Táxi Executivo e Transfer…" no celular). */
.tevo-nav .wp-block-navigation__responsive-container.is-menu-open { --navigation-layout-justification-setting: flex-start; --navigation-layout-justify: flex-start; padding: 16px var(--tevo-pad) 40px; text-align: left; }
.tevo-nav .is-menu-open .wp-block-navigation__responsive-container-content { width: 100%; max-width: var(--wp--style--global--wide-size, 1200px); margin-inline: auto; padding-top: 40px; }
/* A ul também leva .items-justified-right (que redefine a variável de alinhamento): por isso a regra vai nela. */
.tevo-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content :is(.wp-block-navigation__container, .wp-block-navigation-item, .wp-block-navigation__submenu-container) { --navigation-layout-justification-setting: flex-start; --navigation-layout-justify: flex-start; align-items: flex-start; white-space: normal; }
.tevo-nav .is-menu-open .wp-block-navigation__submenu-container { padding: 8px 0 4px 1em !important; }
/* Com o menu aberto o botão flutuante do WhatsApp sairia por cima dos últimos itens. */
.has-modal-open .tevo-whatsapp-float { display: none; }

/* 15. Tablet (600–1119px). Desktop (≥ 1120) e celular (< 600) ficam como estão. */
@media (min-width: 961px) and (max-width: 1119px) {
  /* Botão do menu ao lado do botão de WhatsApp, e não solto no meio do cabeçalho. */
  .tevo-header > .tevo-header__cta { margin-left: auto; }
  .tevo-header > .tevo-nav { order: 3; margin-left: 8px; }
}
@media (min-width: 600px) and (max-width: 1119px) {
  /* Títulos com linhas equilibradas (sem uma palavra sozinha na última linha). */
  .tevo-blog > h1, .tevo-post__head h1, .wp-block-post-content h2, .tevo-cta h2 { text-wrap: balance; }
  /* CTA final empilhado: título na largura toda e botões lado a lado (em 1024 eles se espremiam um sobre o outro). */
  .tevo-cta.wp-block-columns { flex-wrap: wrap !important; row-gap: 24px; }
  .tevo-cta.wp-block-columns > .wp-block-column { flex-basis: 100% !important; }
  .tevo-cta .wp-block-buttons { justify-content: flex-start; }
  /* Estrada sem trilho (≤ 980): a placa de km encosta na foto, sem o vão de 68px reservado para a van. */
  .tevo-section > .tevo-road { margin-top: 40px; }
}
@media (min-width: 782px) and (max-width: 1119px) {
  /* O texto do topo chega a ~55% da largura: o degradê segura o tom escuro até ali (fotos claras à direita). */
  .tevo-hero:not(.tevo-hero--focus-right)::before { background: linear-gradient(100deg, rgba(9, 46, 38, .94) 0%, rgba(9, 46, 38, .84) 45%, rgba(9, 46, 38, .5) 66%, rgba(9, 46, 38, .12) 88%), linear-gradient(0deg, rgba(9, 46, 38, .55), rgba(9, 46, 38, 0) 45%); }
}
@media (min-width: 600px) and (max-width: 980px) {
  .tevo-stop__pin { height: auto; margin-bottom: 12px; }
  .tevo-stop__media { aspect-ratio: 1; }
}
@media (min-width: 600px) and (max-width: 781px) {
  /* Colunas empilhadas: fotos de texto e a foto das linhas não viram retratos de 1000px de altura. */
  .wp-block-columns > .wp-block-column > .wp-block-image img { width: 100%; max-height: 520px; object-fit: cover; object-position: 50% 30%; }
  .tevo-rows__photo { aspect-ratio: 16 / 10; }
  /* Topo com retrato (Sobre): foto mais alta para o rosto caber inteiro. */
  .tevo-hero--focus-right > .tevo-hero__bg { height: 520px; }
  .tevo-hero--focus-right .tevo-hero__bg img { object-position: 50% 22%; }
  .tevo-hero--focus-right::before { background: linear-gradient(180deg, rgba(9, 46, 38, .05) 0, rgba(9, 46, 38, .1) 400px, rgba(9, 46, 38, .94) 520px); }
  .tevo-hero--focus-right > .tevo-hero__content { padding-top: 470px; }
}
/* Grades de cards sem coluna órfã: com número ímpar de itens, o último fica centralizado (mesma largura dos demais). */
@media (min-width: 600px) and (max-width: 1023px) {
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid) > * { grid-column: span 2; }
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid) > :nth-child(odd):last-child { grid-column: 2 / span 2; }
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid) > :only-child:only-child { grid-column: 1 / -1; }
}
/* Seis cards (diferenciais): 3 + 3 em vez de 4 + 2 no desktop. */
@media (min-width: 1120px) {
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid):has(> :nth-child(6):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) and (max-width: 1119px) {
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid) > * { grid-column: span 2; }
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid) > :nth-child(3n+1):nth-last-child(2) { grid-column: 2 / span 2; }
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid) > :nth-child(3n+1):last-child { grid-column: 3 / span 2; }
  /* 2 e 4 itens: metades (2 × 2), como no desktop e no tablet em pé. */
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid):has(> :nth-child(2):last-child) > *,
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid):has(> :nth-child(4):last-child) > * { grid-column: span 3; }
  .tevo-grid.is-layout-grid:not(.tevo-section--dark .tevo-grid) > :only-child:only-child { grid-column: 1 / -1; }
}
/* Faixa escura: 4 itens viram 2 × 2 (e não 1 coluna longa nem 3 + 1); 5 itens viram 3 + 2 sem divisória solta. */
@media (min-width: 600px) and (max-width: 1023px) {
  .tevo-section--dark .tevo-grid.is-layout-grid:has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tevo-section--dark .tevo-grid.is-layout-grid:has(> :nth-child(4):last-child) > .tevo-card { padding: 28px 28px 22px 0; border: 0; }
  .tevo-section--dark .tevo-grid.is-layout-grid:has(> :nth-child(4):last-child) > .tevo-card:nth-child(even) { padding-left: 28px; border-left: 1px solid rgba(255, 255, 255, .16); }
  .tevo-section--dark .tevo-grid.is-layout-grid:has(> :nth-child(4):last-child) > .tevo-card:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .16); }
}
@media (min-width: 861px) and (max-width: 1119px) {
  .tevo-section--dark .tevo-grid.is-layout-grid:has(> :nth-child(5):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tevo-section--dark .tevo-grid.is-layout-grid:has(> :nth-child(5):last-child) > .tevo-card:nth-child(3n+1) { padding-left: 0; border-left: 0; }
  .tevo-section--dark .tevo-grid.is-layout-grid:has(> :nth-child(5):last-child) > .tevo-card:nth-child(n+4) { border-top: 1px solid rgba(255, 255, 255, .16); }
}

/* 16. Galeria de fotos reais (seção "gallery"): grade sem JS, fotos 4:3 com cantos arredondados.
   4 colunas no desktop e 2 no tablet (3 quando são 3 ou 6 fotos), 2 no celular; com número ímpar no celular,
   a primeira foto ocupa a linha toda para não sobrar coluna vazia. */
.tevo-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.tevo-gallery--n3, .tevo-gallery--n6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tevo-gallery > .tevo-gallery__item { margin: 0 !important; border-radius: 14px; overflow: hidden; background: var(--wp--preset--color--fundo-suave); }
.tevo-gallery__item img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .6s ease; }
.tevo-gallery__item:hover img { transform: scale(1.03); }
@media (max-width: 980px) { .tevo-gallery:not(.tevo-gallery--n3):not(.tevo-gallery--n6) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .tevo-gallery, .tevo-gallery--n3, .tevo-gallery--n6 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .tevo-gallery > :first-child:nth-last-child(odd) { grid-column: 1 / -1; }
  .tevo-gallery > .tevo-gallery__item { border-radius: 10px; }
}
@media (prefers-reduced-motion: reduce) { .tevo-gallery__item img { transition: none; } }
