/* Correções compartilhadas; carregar depois de style.min.css. */
:root { --header-h: 146px; }
*, *::before, *::after { box-sizing: border-box; }
img, video { height: auto; }
button { font: inherit; }
:focus-visible { outline: 3px solid #1c3e38; outline-offset: 4px; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 2000; padding: 12px; background: white; color: #1c3e38; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.include-fallback { padding: 16px 20px; display: flex; flex-wrap: wrap; gap: 20px; }
#site-header > .include-fallback { position: fixed; top: 0; width: 100%; background: #77afa8; z-index: 1000; }
.include-fallback a { text-decoration: underline; }
.header { position: relative; }
.header-menu a, .menu-tratamentos-toggle { color: #e6eae9; }
.submenu-tratamentos a { color: #545c5c; }
.menu-tratamentos-toggle { display: flex; align-items: center; gap: 8px; padding: 16px 0; border: 0; background: transparent; cursor: pointer; }
.menu-tratamentos-toggle::after { display: none; }
.tem-submenu:not(.submenu-aberto) .submenu-tratamentos { display: none; }
.tem-submenu.submenu-aberto .submenu-tratamentos { display: flex; }
.submenu-tratamentos a { min-height: 44px; white-space: normal; }
.header-menu a:hover { color: #e6eae9; text-decoration: none; }
.header-menu a:after { background: currentColor; }
.titulo-bg { margin-top: 0; padding-top: 40px; }
.titulo > p { color: #545c5c; }
.bicicleta p { text-transform: none; }
.bicicleta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bicicleta > *, .introducao > *, .sobrenos > *, .footer > * { min-width: 0; }
.bicicleta-conteudo h2 { font-size: 1rem; line-height: 1.5; }
.bicicleta-imagens img { min-width: 0; max-width: 100%; }
.cta-tratamento { grid-column: 1 / -1; }
.botao { max-width: 100%; text-align: center; overflow-wrap: anywhere; }
.cor-6 { color: #545c5c; }
.introducao h1, .introducao p, .introducao h1 span,
.sobrenos-conteudo > h2, .sobrenos-conteudo > p,
.bicicleta-ficha, .bicicleta-informacoes h3, .bicicleta-informacoes p,
.footer h3, .footer li, .footer-copy { color: #e6eae9; }
.introducao p, .sobrenos-conteudo > p, .bicicleta-informacoes p { color: #c4dcdc; }
.footer a:hover { color: #fff; }
.seo-eyebrow { color: #426c66; }
.seo-local-points li { display: block; }
.seo-local-points li::before { margin-right: 8px; vertical-align: middle; }
.footer-redes a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.footer-redes img { width: 32px; height: 32px; }
.footer > img { height: auto; }
.footer-mapa iframe { width: 100%; display: block; }
.footer { padding-bottom: 100px; }
.breadcrumb { margin-bottom: 20px; font-size: .875rem; color: #545c5c; }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; list-style: none; }
.breadcrumb a { text-decoration: underline; }
.breadcrumb li + li::before { content: '›'; margin-right: 8px; }
.arrow, .arrowDepo, .arrowSobre { border: 0; width: 44px; height: 44px; }
.servicos-lista ul, .depoimentos-lista ul { overflow-x: auto; scroll-snap-type: x proximity; }
.servicos-lista li, .depoimentos-lista li { scroll-snap-align: start; }
.sobreTeste-lista img, .servicos-lista img, .depoimentos-lista img { height: auto !important; object-fit: contain; }
.sobreTeste-lista ul { aspect-ratio: 3 / 4; }
.sobreTeste-lista img { width: 100%; }
/* Vídeo alinhado à foto de abertura e preenchendo a altura da seção. */
.sobrenos-imagem { margin: 0 !important; }
.sobrenos-imagem video { display: block; height: auto !important; max-height: none; object-fit: contain !important; }
@media (min-width: 801px) {
  .sobrenos-imagem { position: relative; align-self: stretch; margin-top: 24px !important; }
  .sobrenos-imagem video { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center; }
}
@media (max-width: 800px) {
  .sobrenos-imagem { display: block; margin-bottom: 32px !important; }
  .sobrenos-conteudo { padding-bottom: 0; }
}
.faq-item { border-bottom: 1px solid #dbe8e6; padding: 12px 0; }
.faq-item summary, .service-qa summary { cursor: pointer; min-height: 44px; padding: 10px 0; color: #545c5c; }
.faq-item p { margin: 12px 0; }
.faq-section { margin-bottom: 32px; }
.contato-recebido-body, .erro-body { padding-top: 0; }
.contato-recebido-bg { min-height: 100vh; padding-top: 40px; }
@media (max-width: 800px) {
  :root { --header-h: calc(clamp(120px, 18vw, 210px) * 290 / 483 + 20px); }
  .header { flex-wrap: nowrap; }
  .header > nav { position: absolute; top: 100%; left: 0; width: 100%; max-height: calc(100dvh - var(--header-h)); max-height: calc(100vh - var(--header-h)); overflow-y: auto; padding: 4px 20px 20px; background: #77afa8; box-shadow: 0 8px 12px #0002; }
  @supports (height: 100dvh) { .header > nav { max-height: calc(100dvh - var(--header-h)); } }
  .menu-mobile-toggle span { background: #e6eae9; }
  .header-menu > li > .menu-tratamentos-toggle { width: 100%; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid #1c3e3833; }
  .submenu-tratamentos { min-width: 0; }
  .submenu-tratamentos a { color: #e6eae9; }
  .introducao-bg { padding-top: 32px; }
  .introducao-imagem img { max-height: none !important; }
  .bicicleta { grid-template-columns: minmax(0, 1fr); padding-left: 0; padding-right: 0; }
  .bicicleta-imagens { grid-row: auto; }
  .bicicleta-conteudo { grid-row: 1; }
  .titulo-bg { padding-top: 32px; }
  .servicos-lista li, .depoimentos-lista li { flex: 0 0 min(280px, calc(100vw - 40px)); min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html, .servicos-lista ul, .depoimentos-lista ul { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Cores claras da referência visual aprovada. */
:root {
  --marca-aqua: #77afa8;
  --marca-clara: #e6eae9;
  --marca-texto: #1c3e38;
  --marca-titulo: #e6eae9;
  --marca-cinza: #545c5c;
}
.introducao h1, .introducao h1 span, .sobrenos-conteudo > h2 { color: var(--marca-titulo); }
.header-menu > li > a, .menu-tratamentos-toggle { position: relative; }
.header-menu > li > a::after, .menu-tratamentos-toggle::after {
  content: ''; display: block; position: absolute; bottom: 8px; left: 0;
  width: 0; height: 2px; margin: 0; background: currentColor; transition: width .2s ease;
}
.header-menu > li > a:hover::after, .menu-tratamentos-toggle:hover::after { width: 100%; }
.header-menu a:focus-visible::after, .menu-tratamentos-toggle:focus-visible::after { width: 0; }
.submenu-tratamentos a:hover { background: #e6eae9; color: #545c5c; }
.submenu-tratamentos a::after { display: none; }

/* Logo à esquerda, contato com mapa no centro e informações à direita. */
.footer {
  grid-template-columns: 2fr 5fr 4fr;
  align-items: start; gap: 40px; padding-top: 60px; padding-bottom: 32px; color: #c4dcdc;
}
.footer-marca .logo { width: 180px; margin: 0; }
.footer h3 { color: #e6eae9; font-size: 1.5rem; line-height: 1.5; font-weight: 600; letter-spacing: 0; margin-bottom: 24px; }
.footer ul { font-size: 1.125rem; line-height: 1.4; }
.footer li { color: #c4dcdc; margin-bottom: 12px; }
.footer-contato ul { margin-bottom: 16px; }
.footer-contato li::after { display: none !important; }
.footer-endereco { align-items: start; gap: 8px; }
.footer-endereco .icon-mapa { margin-top: 2px; }
.footer-horario { padding-left: 32px; }
.footer-redes { gap: 20px; margin: 24px 0 0; }
.footer-redes a { background: transparent; }
.footer-redes img { width: 32px; height: 32px; }
.footer-informacoes a { display: inline-block; padding: 4px 0; }
.footer-mapa { margin: 0; border: 0; border-radius: 6px; overflow: hidden; background: #e6eae9; }
.footer-mapa iframe { width: 100%; height: 200px; display: block; border: 0; }
.footer-legal { grid-column: 1 / -1; border: 0; padding: 28px 76px 0 0; }
.footer-copy { color: #c4dcdc; margin: 0 0 6px; font-size: 1rem; line-height: 1.6; }
.footer-responsavel { color: #c4dcdc; font-size: .875rem; line-height: 1.6; }

/* Oculta apenas as barras; mantém rolagem por toque, teclado e setas. */
.servicos-lista ul, .depoimentos-lista ul, .sobrenos-servicos-lista ul,
.sobreTeste-lista ul, .galeria-trilho { scrollbar-width: none; }
.servicos-lista ul::-webkit-scrollbar, .depoimentos-lista ul::-webkit-scrollbar,
.sobrenos-servicos-lista ul::-webkit-scrollbar, .sobreTeste-lista ul::-webkit-scrollbar,
.galeria-trilho::-webkit-scrollbar { display: none; }
/* Tratamentos: imagens em destaque ao lado do conteúdo. */
.galeria-tratamento { min-width: 0; }
.galeria-titulo { display: none; }
.galeria-tratamento .bicicleta-imagens {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start; gap: 20px;
}
.galeria-tratamento .bicicleta-imagens img {
  width: 100%; min-width: 0; max-width: 100%; height: auto; object-fit: contain;
}
.galeria-tratamento .bicicleta-imagens img:first-child { grid-column: 1 / -1; }
@media (min-width: 801px) {
  .bicicleta { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; padding-left: 0; padding-right: 0; }
  .bicicleta-conteudo { min-width: 0; width: 100%; margin: 0; }
}
@media (max-width: 800px) {
  .galeria-tratamento { grid-row: 1; }
  .bicicleta-conteudo { grid-row: 2; }
  .galeria-tratamento .bicicleta-imagens { gap: 12px; }
}
@media (max-width: 1000px) and (min-width: 801px) {
  .footer { grid-template-columns: 1fr 2fr 1.3fr; gap: 24px; }

  .footer-mapa { max-width: 560px; }
}
@media (max-width: 800px) {
  .header-menu > li > a::after, .menu-tratamentos-toggle::after { display: none; }
  .submenu-tratamentos a:hover { background: transparent; color: #e6eae9; }
  .footer { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 32px; }
  .footer-marca .logo { width: 140px; }
  .footer-informacoes ul { display: flex; flex-wrap: wrap; column-gap: 20px; row-gap: 0; }
  .footer-informacoes a { min-height: 44px; }
  .footer-legal { padding-right: 0; padding-bottom: 64px; }
}

/* A03: somente textos reprovados sobre #77afa8; sem mudar a paleta ou o menu.
   Texto grande: #4b5754 (3,04:1). Texto normal: #2f3d3b (4,58:1). */
.introducao h1, .introducao h1 span,
.sobrenos-conteudo > h2, .sobrenos-conteudo > h2 span,
.footer-contato > h3, .footer-informacoes > h3 {
  color: #4b5754;
}
.introducao p, .introducao p a,
.sobrenos-conteudo > p,
.footer-contato li, .footer-contato li a,
.footer-informacoes li a,
.footer-copy, .footer-responsavel {
  color: #2f3d3b;
}
/* Acima de 1200px estes parágrafos têm 24px: WCAG exige 3:1. */
@media (min-width: 1201px) {
  .introducao p, .introducao p a, .sobrenos-conteudo > p {
    color: #4b5754;
  }
}
