/* Topo, menu lateral e rodapé iguais aos do site principal (frprimeimoveis.com.br): cores, medidas e fonte de lá.
   Se o site principal mudar, atualizar aqui e em app/views/layout.php. */
.fr-container { max-width: 1210px; margin: 0 auto; padding: 0 20px; }
[id] { scroll-margin-top: 150px; }

/* Topo */
.fr-topo { background: #2d2d2d; color: #fff; padding: 1.5rem 0; position: sticky; top: 0; z-index: 40; }
.fr-topo-linha { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.fr-logo { display: block; line-height: 0; }
.fr-logo img { display: block; width: 200px; height: auto; max-height: 80px; }
.fr-topo-acoes { display: flex; align-items: center; gap: 1.5rem; }
.fr-abre-menu { background: none; border: 0; padding: 6px; margin: -6px; cursor: pointer; display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
.fr-abre-menu svg { width: 25px; height: 25px; }
.fr-abre-menu svg path { stroke: #fff; }
.fr-abre-menu:hover svg path, .fr-abre-menu:focus-visible svg path { stroke: #eebf60; }

/* Menu lateral */
.fr-menu { position: fixed; inset: 0; z-index: 95; display: flex; justify-content: flex-end; color: #fff; }
.fr-menu[hidden] { display: none; }
.fr-menu-fundo { position: absolute; inset: 0; background: rgba(0, 0, 0, .38); cursor: pointer; }
.fr-menu-painel { position: relative; height: 100%; width: 90%; max-width: 340px; background: #2d2d2d; padding: 1.5rem 2.5rem; overflow-y: auto; animation: fr-menu-entra .2s ease-out; }
@keyframes fr-menu-entra { from { transform: translateX(100%); } to { transform: none; } }
.fr-menu-cabeca { display: flex; align-items: center; justify-content: space-between; }
.fr-menu-cabeca img { display: block; width: 150px; height: auto; }
.fr-menu-fechar { background: none; border: 0; color: #fff; padding: 10px; margin-right: -10px; cursor: pointer; }
.fr-menu-fechar:hover { color: #eebf60; }
.fr-menu ul { list-style: none; margin: 3rem 0 0; padding: 0; }
.fr-menu li { display: block; }
.fr-menu li a { display: inline-block; padding: .5rem 0; font-size: .85rem; color: #fff; text-decoration: none; }
.fr-menu li a:hover { color: #eebf60; }
.fr-menu li a strong { font-weight: 700; }
.fr-menu-titulo { padding: 1.5rem 0 .5rem; font-weight: 700; font-size: .85rem; }
.fr-menu-destaque { padding-top: 1.5rem; }
.fr-menu ul > li:first-child { padding-top: 0; }

/* Rodapé */
.fr-rodape { background: #ebeceb; color: #3d4042; padding: 3rem 0; font-size: 16px; }
.fr-rodape h2 { font-weight: 700; font-size: 1rem; margin: 0 0 1.2rem; color: #3d4042; line-height: 1.3; }
.fr-rodape ul { list-style: none; margin: 0 0 2.5rem; padding: 0; }
.fr-rodape li { margin-bottom: 1rem; font-size: .8rem; line-height: 1.3; }
.fr-rodape a { color: #3d4042; text-decoration: none; }
.fr-rodape a:hover { color: #eebf60; }
.fr-rodape-colunas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 1.5rem; }
.fr-rodape-caixa { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 2rem; background: #3d4042; color: #fff; padding: 2rem; border-radius: 28px; }
.fr-rodape-caixa a { color: #fff; }
.fr-rodape-caixa a:hover { color: #eebf60; }
.fr-rodape-sobre { display: flex; gap: 2.2rem; align-items: center; }
.fr-rodape-sobre a { flex: none; }
.fr-rodape-sobre img { display: block; width: 87px; height: auto; }
.fr-rodape-sobre p { font-size: .8rem; line-height: 1.5; margin: 0; }
.fr-rodape-caixa h2 { color: #fff; margin: 0 0 .8rem; }
.fr-rodape-unidades { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; font-size: .8rem; }
.fr-rodape-unidades address { font-style: normal; line-height: 1.5; }
.fr-rodape-unidades ul { margin: .4rem 0; }
.fr-rodape-unidades li { margin: .5rem 0; }
.fr-rodape-unidades li a, .fr-rodape-unidades li .fr-rodape-fone { display: inline-flex; align-items: center; gap: .35rem; margin: 0; }
.fr-rodape-unidades li svg { width: 18px; height: 18px; flex: none; }
.fr-rodape-unidades li svg path { fill: #fff; }
.fr-rodape-unidades li a:hover svg path { fill: #eebf60; }
.fr-rodape-unidades span { display: block; margin-top: .55rem; }
.fr-rodape-final { display: flex; flex-wrap: wrap; gap: .8rem 1.5rem; justify-content: center; margin: 1.5rem 0 0 !important; }
.fr-rodape-final li { margin: 0; }
.fr-rodape-legal { text-align: center; font-size: .75rem; line-height: 1.5; color: #55595c; margin: 1rem auto 0; max-width: 820px; }

/* WhatsApp flutuante (no site principal fica no mesmo lugar) */

@media (max-width: 980px) {
  .fr-rodape-colunas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fr-rodape-caixa { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .fr-topo { padding: 1.2rem 0; }
  .fr-logo img { width: 135px; }
  [id] { scroll-margin-top: 110px; }
  .fr-rodape-caixa { padding: 1.6rem; }
  .fr-rodape-sobre { flex-direction: column; align-items: flex-start; gap: 1.6rem; }
  .fr-rodape-unidades { grid-template-columns: 1fr; }
}
