/* Flash Sistemas: folha de estilo unica do site.
   Medidas e cores tiradas do site da Wix (1280 px). Quebra para celular em 1130 px (menu em hamburguer). */

:root {
  --texto: #103f54;
  --azul: #1c4864;
  --faixa: #666664;
  --ficha: #f5f4f2;
  --caixa: #4c4c4c;
  --menu-cinza: #b2b1b1;
  --menu-hover: #e5ac02;
  --fonte-texto: "Jost", "Futura", "Century Gothic", "Trebuchet MS", sans-serif;
  --fonte-botao: "Anton", "Impact", "Arial Narrow", sans-serif;
  --fonte-rodape: "Nunito Sans", "Avenir Next", "Avenir", "Segoe UI", Arial, sans-serif;
  --fonte-menu: Verdana, Geneva, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: #fff; color: var(--texto);
  font-family: var(--fonte-texto); font-weight: 300; font-size: 17px; line-height: 22px;
}
img { max-width: 100%; }
a { color: inherit; }
ul { list-style: none; margin: 0; padding: 0; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: absolute; left: -9999px; top: 0; background: #fff; padding: 8px 12px; z-index: 100; }
.pular:focus { left: 8px; top: 8px; }

/* ------------------------------------------------------------------ cabecalho */
.cab {
  position: relative; z-index: 20; height: 118px;
  background: #1c4864 linear-gradient(to bottom, rgba(255,255,255,.26) 0, rgba(255,255,255,.137) 118px);
  box-shadow: inset 0 1px 1px rgba(255,255,255,.6), inset 0 -1px 1px rgba(0,0,0,.6), 0 0 5px rgba(0,0,0,.6);
}
.cab-in {
  position: relative; height: 118px; width: 1118px;
  margin-left: max(8px, min(calc((100% - 980px) / 2 + 11px), calc(100% - 1118px)));
}
.logo {
  position: absolute; left: 0; top: 25px; width: 183px; height: 66px; display: block;
  border-radius: 5px; box-shadow: 0 1px 4px rgba(0,0,0,.6);
  background: #f5dd0a linear-gradient(to bottom, rgba(255,255,255,.35) 0, rgba(255,255,255,.35) 47%, rgba(255,255,255,0) 53%);
}
.logo img { position: absolute; left: 0; top: 2px; width: 180px; height: 62px; object-fit: cover; }
.menu { position: absolute; left: 191px; top: 42px; }
.menu > ul { display: flex; }
.menu > ul > li { position: relative; height: 34px; width: var(--w, auto); }
.menu > ul > li + li { border-left: 1px solid var(--menu-cinza); }
.menu > ul > li > a {
  display: block; height: 34px; line-height: 34px; padding: 0 17px; text-align: center; text-decoration: none; white-space: nowrap;
  font: 400 12px/34px var(--fonte-menu); color: var(--menu-cinza);
}
.menu > ul > li.ativo > a { color: #fff; }
.menu > ul > li:hover > a, .menu > ul > li:focus-within > a { color: var(--menu-hover); }
.abrir-sub { display: none; }
.sub {
  display: none; position: absolute; left: 50%; top: 41px; width: 182px; margin-left: -91px;
  background: var(--azul); box-shadow: 0 0 5px rgba(0,0,0,.6); z-index: 30;
}
.tem-sub:hover > .sub, .tem-sub:focus-within > .sub { display: block; }
.tem-sub:hover::after { content: ""; position: absolute; left: -10px; right: -10px; top: 30px; height: 14px; }
.sub li + li { border-top: 1px solid var(--menu-cinza); }
.sub a {
  display: block; height: 27px; line-height: 27px; padding: 0 6px; text-decoration: none; white-space: nowrap;
  font: 400 12px/27px var(--fonte-menu); color: var(--menu-cinza);
}
.sub li.ativo a { color: #fff; }
.sub a:hover, .sub a:focus { color: #fff; background: rgba(255,255,255,.08); }

.cab .redes { position: absolute; left: 981px; top: 42px; display: flex; gap: 10px; }
.redes li { width: 39px; height: 39px; }
.redes a, .redes span { display: block; width: 39px; height: 39px; }
.redes svg { width: 39px; height: 39px; display: block; }
.cab-tel, .cab-email, .menu-btn { display: none; }

/* ------------------------------------------------------------------ corpo */
main { display: block; max-width: 980px; margin: 0 auto; padding: 18px 0 33px; }
main > :last-child { margin-bottom: 0; }
.pag-inicio { max-width: none; padding: 0; }
.t-pagina {
  margin: 0 0 22px; padding-left: 10px; font: 500 35px/47px var(--fonte-texto); color: var(--texto);
  letter-spacing: 0;
}
.texto { padding: 0 13px; margin: 0 0 20px; }
.texto p { margin: 0 0 22px; font-size: 17px; line-height: 22px; font-weight: 300; }
.texto p:last-child { margin-bottom: 0; }
.texto b, .texto strong { font-weight: 500; }
/* Link dentro de texto: na Wix nao e sublinhado nem muda de cor (fica igual ao resto do texto, geralmente em negrito).
   O sublinhado so aparece ao passar o mouse ou focar, para a pessoa saber que e link. */
.texto a { color: inherit; text-decoration: none; }
.texto a:hover, .texto a:focus-visible { text-decoration: underline; }
.texto.largo p { letter-spacing: .1em; }
.texto.centro { text-align: center; }
.texto.pequeno p { font-size: 15px; line-height: 24px; }
.texto.grande p { font-size: 20px; line-height: 28px; }   /* 20 px: o tamanho do HTML da Wix e a largura da frase na captura (831 px) com a Jost */
.espaco { display: block; }
.foto { margin: 0 auto 20px; }
.foto img { display: block; width: 100%; height: auto; }
.foto figcaption { padding: 6px 13px; font-size: 15px; }
.video { margin: 0 auto 20px; width: 100%; background: #000; }
.video iframe, .video video { display: block; width: 100%; height: 100%; border: 0; }
.mapa { margin: 0 auto 20px; width: 100%; }
.mapa iframe, .incorporado iframe { width: 100%; height: 100%; border: 0; display: block; }
.incorporado { margin: 0 auto 20px; width: 100%; }

/* botao "Ver mais" (Anton, azul escuro, sombra curva embaixo) */
.botoes { margin: 0 0 20px; display: flex; flex-wrap: wrap; gap: 16px; padding: 0 13px; }
.botoes.centro { justify-content: center; }
.botao {
  position: relative; display: inline-block; width: 153px; height: 40px; text-align: center; text-decoration: none;
  background: var(--texto); color: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.6);
  font: 400 22px/40px var(--fonte-botao); letter-spacing: 0; z-index: 1;
}
.botao span { position: relative; z-index: 2; }
.botao::before, .botao::after {
  content: ""; position: absolute; top: 40px; width: 165px; height: 26px; z-index: -1;
  background: url(/assets/sombra-botao.png) no-repeat; pointer-events: none;
}
.botao::before { left: -20px; background-position: 0 0; }
.botao::after { left: 8px; background-position: 100% 0; }
.botao:hover, .botao:focus-visible { background: #0b2f40; }
.botoes .botao { margin-bottom: 26px; }
/* largura automatica: acompanha o texto, nunca menor que os 153 px do botao padrao */
.botao.botao-auto { width: auto; min-width: 153px; padding: 0 22px; }
.botao.botao-auto::after { left: auto; right: -20px; }

/* colunas */
.colunas { display: flex; gap: 24px; margin: 0 0 20px; padding: 0 10px; }
.colunas.alinhar-centro { align-items: center; }
.coluna { flex: var(--larg, 1) 1 0; min-width: 0; }

/* ------------------------------------------------------------------ galerias */
.galeria { margin: 0 0 20px; background: var(--caixa); border-radius: 10px; box-shadow: 0 3px 4px rgba(0,0,0,.6); }
.slideshow { padding: 22px 17px 23px; overflow: hidden; }
.palco { position: relative; height: 430px; }
.palco img.ativa, .palco img.reserva {
  position: absolute; left: 50%; top: 0; height: 100%; width: auto; max-width: 100%; object-fit: contain;
  transform: translateX(-50%); transition: opacity 1s ease;
}
.palco img.ativa { cursor: zoom-in; opacity: 1; }
.palco img.reserva { opacity: 0; pointer-events: none; }
.palco.trocando img.ativa { opacity: 0; }
.palco.trocando img.reserva { opacity: 1; }
.seta {
  position: absolute; top: 50%; width: 36px; height: 56px; margin-top: -28px; border: 0; cursor: pointer;
  background: rgba(0,0,0,.45); color: #fff; opacity: 0; transition: opacity .2s;
}
.seta::before { content: ""; position: absolute; left: 13px; top: 21px; width: 12px; height: 12px; border: solid #fff; border-width: 0 0 3px 3px; }
.seta.ant { left: 0; } .seta.ant::before { transform: rotate(45deg); left: 15px; }
.seta.prox { right: 0; } .seta.prox::before { transform: rotate(-135deg); left: 9px; }
.palco:hover .seta, .seta:focus-visible { opacity: 1; }
.tira { display: flex; gap: 10px; margin-top: 7px; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; padding: 2px; margin-left: -2px; }
.tira::-webkit-scrollbar { display: none; }
.mini { flex: 0 0 auto; width: 88px; height: 50px; display: block; border: 0; outline: 2px solid transparent; outline-offset: -2px; }
.mini img { display: block; width: 88px; height: 50px; object-fit: cover; }
.mini[aria-current="true"] { outline-color: #e9e9e9; }
.mini[aria-current="true"] img { box-shadow: inset 0 0 0 2px #e9e9e9; }

.matriz {
  display: grid; grid-template-columns: repeat(var(--cols, 3), 250px); gap: 22px 59px; justify-content: center;
  align-items: center; padding: 42px 20px 44px;
}
/* matriz com altura de celula (campo altura_celula): linhas altas, foto centrada na vertical (como a Wix em /sider-para-trem-e-vagao) */
.matriz.com-altura { row-gap: 0; padding: 32px 20px 34px; align-items: stretch; }
.matriz.com-altura .celula { height: var(--alt-cel); display: flex; align-items: center; }
.celula { display: block; cursor: zoom-in; }
.celula img { display: block; width: 250px; height: auto; }

/* lightbox (aberto pelo JS) */
.lb {
  position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center;
  background: rgba(16,24,30,.92);
}
.lb.aberto { display: flex; }
.lb img { max-width: 94vw; max-height: 88vh; object-fit: contain; }
.lb button {
  position: absolute; border: 0; background: rgba(255,255,255,.12); color: #fff; width: 48px; height: 48px;
  font: 400 28px/48px var(--fonte-menu); cursor: pointer; border-radius: 4px;
}
.lb button:hover, .lb button:focus-visible { background: rgba(255,255,255,.3); }
.lb .fechar { top: 16px; right: 16px; }
.lb .lb-ant { left: 16px; top: 50%; margin-top: -24px; }
.lb .lb-prox { right: 16px; top: 50%; margin-top: -24px; }
.lb .lb-legenda { position: absolute; bottom: 14px; left: 0; right: 0; text-align: center; color: #ddd; font-size: 14px; }

/* ------------------------------------------------------------------ pagina inicial: vitrine */
.vitrine { border-bottom: 5px solid var(--faixa); }
.linha { display: grid; grid-template-columns: 50% 50%; border-top: 5px solid var(--faixa); }
.ficha { display: grid; grid-template-columns: 256px 1fr; }
.linha .ficha + .ficha { border-left: 6px solid var(--faixa); }
.ficha-txt {
  position: relative; background: var(--ficha); min-height: calc(var(--alt) - 5px); text-align: center; color: var(--texto);
}
.ficha-txt h2 {
  position: absolute; left: 0; right: 0; top: var(--ty); margin: 0; font: 400 30px/var(--lt, 41px) var(--fonte-texto); letter-spacing: 0;
}
.ficha-txt .desc { position: absolute; top: calc(var(--dy) - 3px); left: var(--dx); width: var(--dw); }
.ficha-txt .desc p { margin: 0; font: 300 var(--td, 15px)/var(--ld, 25px) var(--fonte-texto); }
.ficha-txt .botao { position: absolute; left: var(--bx); bottom: var(--bb); width: var(--bw); }
.ficha-foto { position: relative; min-height: calc(var(--alt) - 5px); background: var(--fundo-foto, #f7f5e1); overflow: hidden; }
.ficha-foto img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.ficha-foto.fija img { height: var(--altf); }
.ficha-foto.inteira img { object-fit: contain; }

/* ------------------------------------------------------------------ slides de produtos (/produtos-flash) */
/* Medidas da Wix: caixa de 980 x 414 com borda de 5 px (#5f5f5f), cantos de 10 px, sombra 0 5 3; foto 730 x 403 a esquerda e
   painel branco de 240 px (padding 10) a direita; titulo 20/28, descricao 15/21, cor #2f2e2e; troca com fade de 1 s. */
.slides {
  position: relative; margin: -5px 0 20px; border: 5px solid #5f5f5f; border-radius: 10px; background: #fff; overflow: hidden;
  box-shadow: 0 5px 3px rgba(0,0,0,.5); font-family: var(--fonte-rodape);
}
.slides-palco { display: grid; }
.slide {
  grid-area: 1 / 1; display: grid; grid-template-columns: 1fr 240px; height: 404px; color: #2f2e2e; text-decoration: none;
  opacity: 0; pointer-events: none; transition: opacity 1s cubic-bezier(.37, 0, .63, 1);
}
.slide.ativo { opacity: 1; pointer-events: auto; z-index: 1; }
.slide-foto { display: block; min-width: 0; overflow: hidden; background: #ddd; }
.slide-foto img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.slide-painel { display: block; padding: 10px; background: #fff; text-align: left; }
.slide-titulo { display: block; font: 700 20px/28px var(--fonte-rodape); color: #2f2e2e; }
.slide-desc { display: block; font: 700 15px/21px var(--fonte-rodape); color: #2f2e2e; }
.slide:focus-visible { outline: 3px solid var(--menu-hover); outline-offset: -3px; }
.slides-setas { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.slides .seta { z-index: 3; opacity: 0; transition: opacity .5s; pointer-events: auto; }   /* como na Wix: setas so aparecem com o mouse em cima */
.slides .seta.ant { left: 20px; }
.slides .seta.prox { right: 260px; }
.slides:hover .seta, .slides:focus-within .seta { opacity: .4; }
.slides .seta:hover, .slides .seta:focus-visible { opacity: 1; }
.slides-pausa {
  position: absolute; right: 10px; bottom: 10px; z-index: 3; width: 24px; height: 24px; padding: 0; border: 0; background: transparent; cursor: pointer;
}
.slides-pausa i { position: absolute; left: 8px; top: 6px; width: 8px; height: 12px; border-left: 2px solid #2f2e2e; border-right: 2px solid #2f2e2e; }
.slides-pausa[aria-pressed="true"] i { width: 0; height: 0; border: 6px solid transparent; border-left: 10px solid #2f2e2e; border-right: 0; left: 8px; top: 6px; }
.slides-pausa:focus-visible { outline: 2px solid #2f2e2e; }

/* ------------------------------------------------------------------ vitrine de um submenu (/projetos-especiais) */
.cartoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin: 0 0 20px; }
.cartao {
  display: flex; flex-direction: column; width: calc((100% - 32px) / 3); border: 5px solid var(--faixa); background: var(--ficha);
  color: var(--texto); text-decoration: none;
}
.cartao-foto { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #f7f5e1; }
.cartao-foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cartao-txt { display: flex; flex-direction: column; align-items: center; flex: 1; padding: 16px 18px 6px; text-align: center; }
.cartao-nome { display: block; font: 400 26px/32px var(--fonte-texto); }
.cartao-desc { display: block; margin-top: 10px; font: 300 15px/25px var(--fonte-texto); }
.cartao-desc b, .cartao-desc strong { font-weight: 500; }
.cartao-nome { margin-bottom: 0; }
.cartao-desc { margin-bottom: 22px; }
.cartao .botao-cartao { margin: auto 0 34px; align-self: center; flex: none; }
.cartao:hover .botao-cartao, .cartao:focus-visible .botao-cartao { background: #0b2f40; }
.cartao:focus-visible { outline: 3px solid var(--menu-hover); outline-offset: 2px; }

/* ------------------------------------------------------------------ canais de contato (no lugar do formulario) */
.canais { max-width: 330px; margin: 0 auto 20px; padding: 18px 16px 22px; background: var(--ficha); }
.canais h2 { margin: 0 0 14px; text-align: center; font: 400 22px/28px Georgia, "Times New Roman", serif; letter-spacing: 0; color: var(--texto); }
.canal { display: flex; align-items: center; gap: 12px; margin: 0 0 10px; padding: 10px 12px; min-height: 56px; border-radius: 6px;
  color: #fff; text-decoration: none; font-family: var(--fonte-texto); transition: filter .15s; }
.canal:last-child { margin-bottom: 0; }
.canal:hover, .canal:focus-visible { filter: brightness(1.12); }
.canal-whatsapp { background: #1fa855; }
.canal-telefone { background: var(--azul); }
.canal-email { background: #2b2a4c; }
.canal-icone { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; }
.canal-icone svg { width: 28px; height: 28px; }
.canal-txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.canal-txt b { font-size: 17px; font-weight: 600; }
.canal-txt span { font-size: 14px; overflow-wrap: anywhere; }

/* ------------------------------------------------------------------ formulario de contato (visual do original) */
.formulario {
  max-width: 330px; margin: 0 auto 20px; padding: 18px 16px 26px; background: var(--ficha); font-family: Georgia, "Times New Roman", serif;
}
.formulario h2 { margin: 0 0 14px; text-align: center; font: 400 22px/28px Georgia, "Times New Roman", serif; letter-spacing: 0; }
.formulario .campo { display: block; margin: 0 0 10px; }
.formulario .duplo { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.formulario input, .formulario textarea {
  width: 100%; border: 1px solid #333; background: #fff; padding: 7px 8px; font: italic 400 12px Georgia, serif; color: #333; border-radius: 0;
}
.formulario textarea { height: 56px; resize: vertical; }
.formulario .enviar {
  display: block; width: 100%; margin-top: 12px; border: 0; padding: 10px; background: #2b2a4c; color: #fff; cursor: pointer;
  font: 400 14px Georgia, serif;
}
.formulario .retorno { margin-top: 14px; text-align: center; font: 400 14px/20px var(--fonte-texto); color: var(--texto); }
.formulario .retorno p { margin: 0 0 6px; }
.formulario .links { display: flex; gap: 12px; justify-content: center; }
.formulario .links a { padding: 6px 14px; background: var(--texto); color: #fff; text-decoration: none; font-weight: 500; }

/* ------------------------------------------------------------------ rodape */
.rod { background: var(--azul); color: #fff; height: 135px; font-family: var(--fonte-rodape); }
.rod-in { max-width: 1280px; margin: 0 auto; text-align: center; padding-top: 5px; }
.rod .end { margin: 0; font: 700 18px/25px var(--fonte-rodape); }
.rod .redes { display: flex; justify-content: center; gap: 10px; margin-top: 11px; }
.rod .contato { display: flex; justify-content: center; gap: 41px; margin-top: 15px; padding-left: 82px; font: 700 20px/32px var(--fonte-rodape); }
.rod .contato a { text-decoration: none; margin-left: 19px; }
.rod .contato a:hover { text-decoration: underline; }

/* ------------------------------------------------------------------ botao flutuante do WhatsApp */
/* Fixo no canto inferior direito, sem animacao. Fica ABAIXO do lightbox (z-index 1000) e some enquanto ele esta aberto. */
.whats {
  position: fixed; right: 18px; bottom: 18px; z-index: 40; width: 56px; height: 56px; border-radius: 50%;
  display: block; background: #25d366; box-shadow: 0 2px 6px rgba(0,0,0,.35);
}
.whats svg { display: block; width: 56px; height: 56px; padding: 13px; }
.whats:hover, .whats:focus-visible { background: #1fb855; }
.whats:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 5px #103f54; }
.lb-aberto .whats { display: none; }

/* ------------------------------------------------------------------ celular e tablet */
@media (max-width: 1130px) {
  .cab { height: auto; min-height: 118px; }
  .cab-in { width: auto; height: auto; margin: 0; padding: 12px 16px 12px; display: grid; grid-template-columns: 1fr auto; align-items: center; row-gap: 10px; }
  .logo { position: relative; left: auto; top: auto; width: 168px; height: 60px; grid-column: 1; grid-row: 1; }
  .logo img { width: 165px; height: 57px; top: 1px; }
  .menu-btn {
    display: block; grid-column: 2; grid-row: 1; width: 48px; height: 42px; padding: 0; background: #000; border: 1px solid #fff; cursor: pointer;
    position: relative;
  }
  .menu-btn i { position: absolute; left: 12px; right: 12px; height: 3px; background: #fff; }
  .menu-btn i:nth-child(1) { top: 12px; } .menu-btn i:nth-child(2) { top: 19px; } .menu-btn i:nth-child(3) { top: 26px; }
  .cab .redes { position: static; grid-column: 1; grid-row: 2; gap: 14px; }
  .cab .redes li, .cab .redes a, .cab .redes span, .cab .redes svg { width: 35px; height: 35px; }
  .cab-tel {
    display: block; grid-column: 2; grid-row: 2; font: 700 16px/35px var(--fonte-rodape); color: #fff; text-decoration: none; text-align: right;
  }
  .cab-email { display: block; grid-column: 1 / -1; grid-row: 3; text-align: center; font: 700 16px/22px var(--fonte-rodape); color: #fff; text-decoration: none; }
  .menu { position: static; grid-column: 1 / -1; grid-row: 4; display: none; margin: 0 -16px -12px; }
  .menu.aberto { display: block; }
  .menu > ul { display: block; background: var(--azul); }
  .menu > ul > li { width: auto; height: auto; border-left: 0 !important; border-top: 1px solid rgba(255,255,255,.35); display: flex; flex-wrap: wrap; }
  .menu > ul > li > a { flex: 1; height: 44px; line-height: 44px; padding: 0 18px; font-size: 14px; text-align: left; }
  .abrir-sub { display: block; width: 52px; height: 44px; border: 0; border-left: 1px solid rgba(255,255,255,.2); background: transparent; position: relative; cursor: pointer; }
  .abrir-sub::before { content: ""; position: absolute; left: 20px; top: 15px; width: 9px; height: 9px; border: solid var(--menu-cinza); border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .2s; }
  .abrir-sub[aria-expanded="true"]::before { transform: rotate(-135deg); top: 19px; }
  .tem-sub:hover::after { display: none; }
  .sub { display: none !important; position: static; width: 100%; margin: 0; flex-basis: 100%; box-shadow: none; background: rgba(0,0,0,.18); }
  .tem-sub.aberto > .sub { display: block !important; }
  .sub li + li { border-top: 1px solid rgba(255,255,255,.18); }
  .sub a { height: 40px; line-height: 40px; padding: 0 30px; font-size: 13px; }

  main { padding: 14px 0 28px; }
  .t-pagina { padding-left: 16px; padding-right: 16px; font-size: 30px; line-height: 38px; }
  .texto { padding: 0 16px; }
  .galeria { margin-left: 0; margin-right: 0; border-radius: 0; }
  .slideshow { padding: 14px 10px 14px; }
  .palco { height: auto; aspect-ratio: 3 / 2; }
  .mini, .mini img { width: 70px; height: 40px; }
  .matriz { grid-template-columns: repeat(2, 1fr); gap: 14px; padding: 16px 14px 18px; }
  .matriz.com-altura { row-gap: 14px; padding: 16px 14px 18px; align-items: center; }
  .matriz.com-altura .celula { height: auto; display: block; }
  .texto.grande p { font-size: 18px; line-height: 26px; }
  .celula img { width: 100%; }
  .colunas { flex-direction: column; padding: 0 16px; }
  .video, .mapa, .incorporado { width: calc(100% - 32px); }

  .pag-inicio > .texto { padding: 0 16px !important; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
  .pag-inicio > .texto.largo p { letter-spacing: .08em; font-size: 17px; }
  .linha { grid-template-columns: 1fr; }
  .ficha { grid-template-columns: 1fr; }
  .linha .ficha + .ficha { border-left: 0; border-top: 5px solid var(--faixa); }
  .ficha-txt { min-height: 0; padding: 14px 20px 22px; display: flex; flex-direction: column; align-items: center; }
  .ficha-txt h2 { position: static; line-height: 1.2 !important; margin: 0 0 12px; white-space: normal !important; }
  .ficha-txt .desc { position: static; width: auto; }
  .ficha-txt .desc p { font-size: 15px; line-height: 24px; }
  .ficha-txt .botao { position: relative; left: auto; bottom: auto; margin: 20px 0 34px; width: 153px; }
  .ficha-foto { min-height: 0; background: #fff; }
  .ficha-foto img { position: static; height: auto; }
  .ficha-foto.fija img { height: auto; }

  .rod { height: auto; padding-bottom: 76px; } /* sobra espaco embaixo: o botao do WhatsApp nao cobre o contato */
  .whats { right: 16px; bottom: 16px; width: 52px; height: 52px; }
  .whats svg { width: 52px; height: 52px; padding: 12px; }
  .rod-in { padding: 10px 14px 0; }
  .rod .end { font-size: 16px; line-height: 22px; }
  .rod .contato { padding-left: 0; flex-wrap: wrap; gap: 4px 20px; font-size: 18px; line-height: 28px; margin-top: 12px; }
  .rod .contato a { margin-left: 0; }
}
@media (max-width: 820px) {
  .slides { margin: 0 0 20px; border-left: 0; border-right: 0; border-radius: 0; }
  .slide { grid-template-columns: 1fr; height: auto; }
  .slide-foto { aspect-ratio: 730 / 403; }
  .slide-painel { padding: 12px 16px 38px; }
  .slides-setas { inset: auto; left: 0; right: 0; top: 0; aspect-ratio: 730 / 403; }
  .slides .seta { opacity: 1; }
  .slides .seta.ant { left: 8px; }
  .slides .seta.prox { right: 8px; }
  .cartoes { flex-direction: column; flex-wrap: nowrap; padding: 0 16px; gap: 20px; }
  .cartao { width: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .slide { transition: none; }
  .palco img.ativa, .palco img.reserva { transition: none; }
}
