/* =========================================================================
   ALVA — energia solar

   Petróleo escuro e âmbar sobre creme (nunca branco puro) correm por toda a
   página; o vídeo do hero é a única fotografia grande, o resto do peso
   visual está nos números do simulador.
   ========================================================================= */

:root{
  /* cor — noite (painel de resultados e rodapé) */
  --noite:        #0E1B24;
  --noite-2:      #162630;
  --noite-funda:  #081116;
  --branco-quente:      #F8F4EA;
  --branco-quente-meio: rgba(248,244,234,.76);
  --branco-quente-fraco:rgba(248,244,234,.52);
  --linha-escura: rgba(248,244,234,.14);

  /* cor — dia (o resto da página) */
  --creme:        #F4ECDC;
  --creme-forte:  #ECDEC0;
  --tinta:        #182229;
  --tinta-suave:  rgba(24,34,41,.66);
  --tinta-fraca:  rgba(24,34,41,.42);
  --linha-clara:  rgba(24,34,41,.14);

  /* cor — âmbar, o único acento em qualquer fundo */
  --ambar:        #E2963B;
  --ambar-vivo:   #F0AC55;
  --ambar-fosco:  rgba(226,150,59,.30);

  --alarme:       #C0532E;

  /* medida */
  --goteira:   clamp(1.25rem, 6vw, 5rem);
  --secao-pad: clamp(5rem, 10vw, 9rem);
  --medida:    60ch;

  /* tipo */
  --display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --corrido: "Instrument Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --mono:    "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  color-scheme: dark;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; background:var(--noite); overflow-x:hidden; }

body{
  margin:0;
  overflow-x:hidden;
  background:var(--creme);
  color:var(--tinta);
  font-family:var(--corrido);
  font-size:1.0625rem;
  font-weight:400;
  line-height:1.6;
  letter-spacing:.002em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img,video,canvas,iframe,svg{ display:block; max-width:100%; }
img{ height:auto; }

h1,h2,h3{
  font-family:var(--display);
  font-optical-sizing:auto;
  font-weight:500;
  line-height:1.12;
  letter-spacing:-.006em;
  margin:0;
  text-wrap:balance;
}

p{ margin:0; }
a{ color:inherit; }

:focus-visible{
  outline:2px solid var(--ambar);
  outline-offset:3px;
  border-radius:1px;
}

::selection{ background:var(--ambar); color:var(--noite); }

.envelope{
  width:min(1240px, 100% - 2 * var(--goteira));
  margin-inline:auto;
}

.secao{ padding-block:var(--secao-pad); position:relative; }

.salto{
  position:absolute; left:var(--goteira); top:.75rem;
  transform:translateY(-200%);
  background:var(--ambar); color:var(--noite);
  padding:.6rem 1rem; font-size:.8125rem; letter-spacing:.06em;
  z-index:500; transition:transform 180ms ease;
}
.salto:focus{ transform:none; }

/* números — sempre que um valor pode mudar (resultados do simulador), usa-se
   a mono tabular: a largura fixa evita que o resto do layout trema. */
.numero{
  font-family:var(--mono);
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
  letter-spacing:-.01em;
}

/* =========================================================================
   1. CABEÇALHO
   ========================================================================= */

.cabecalho{
  position:sticky; top:0; z-index:50;
  background:rgba(244,236,220,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--linha-clara);
}

.cabecalho__interior{
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem;
  min-height:4.25rem;
}

.marca{
  display:flex; align-items:baseline; gap:.55rem;
  font-family:var(--display);
  font-weight:600;
  font-size:1.1875rem;
  letter-spacing:.06em;
  text-decoration:none;
  color:var(--tinta);
}
.marca__ponto{
  width:.4rem; height:.4rem; border-radius:50%;
  background:var(--ambar);
  transform:translateY(-.55em);
}

.navegacao{
  display:flex; gap:clamp(1.25rem, 2.6vw, 2.25rem);
  font-size:.875rem;
  letter-spacing:.01em;
}

.navegacao a{
  text-decoration:none;
  color:var(--tinta-suave);
  padding-block:.35rem;
  border-bottom:1px solid transparent;
  transition:color 160ms ease, border-color 160ms ease;
}
.navegacao a:hover{ color:var(--tinta); border-bottom-color:var(--ambar); }

.cabecalho__cta{
  display:inline-flex; align-items:center;
  padding:.6rem 1.15rem;
  background:var(--tinta); color:var(--creme);
  font-size:.8125rem; font-weight:500; letter-spacing:.02em;
  text-decoration:none;
  transition:background-color 160ms ease;
}
.cabecalho__cta:hover{ background:var(--noite); }

@media (max-width:760px){
  .navegacao a:not(:last-child){ display:none; }
}

/* =========================================================================
   2. HERO — vídeo, com o nome a surgir ao centro
   ========================================================================= */

.hero{
  position:relative;
  height:88vh;
  min-height:30rem;
  max-height:52rem;
  overflow:hidden;
  background:var(--noite);
}

.hero__video{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%;
  object-fit:cover;
}

/* escurece o suficiente para o texto branco ter contraste AA, seja qual for
   o frame do vídeo por baixo */
.hero__veu{
  position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(70% 55% at 50% 45%, rgba(6,14,20,.34) 0%, rgba(6,14,20,.5) 60%, rgba(6,14,20,.62) 100%),
    linear-gradient(to bottom, rgba(6,14,20,.32) 0%, rgba(6,14,20,.08) 30%, rgba(6,14,20,.08) 60%, rgba(6,14,20,.5) 100%);
}

.hero__conteudo{
  position:absolute; inset:0; z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(2rem, 6vh, 3.5rem);
  padding:var(--goteira);
  text-align:center;
}

.hero__titulo{
  max-width:19ch;
  font-size:clamp(2.25rem, 5.4vw, 4.25rem);
  line-height:1.08;
  color:#fff;
  text-shadow:0 2px 30px rgba(0,0,0,.35);
  animation:condensar 1400ms 250ms cubic-bezier(.22,1,.36,1) both;
}

.hero__seta{
  display:grid; place-items:center;
  width:2.5rem; height:2.5rem;
  border:1px solid rgba(255,255,255,.4);
  border-radius:50%;
  color:#fff;
  animation:condensar 1200ms 700ms cubic-bezier(.22,1,.36,1) both, convidar 2400ms ease-in-out 2200ms infinite;
}
.hero__seta svg{ width:16px; height:16px; stroke:currentColor; stroke-width:1.6; fill:none; }
.hero__seta:hover{ border-color:#fff; }

@keyframes condensar{
  from{ opacity:0; filter:blur(10px); transform:translateY(8px); }
  to  { opacity:1; filter:blur(0); transform:none; }
}
@keyframes convidar{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(5px); }
}

/* =========================================================================
   3. SIMULADOR
   ========================================================================= */

.simulador{ background:var(--creme-forte); border-block:1px solid var(--linha-clara); }

.simulador__cabeca{ max-width:56ch; margin-bottom:clamp(2.75rem, 6vw, 4rem); }

.titulo{ font-size:clamp(1.75rem, 3.5vw, 2.65rem); max-width:20ch; }
.subtitulo{ margin-top:1rem; max-width:48ch; color:var(--tinta-suave); }

.simulador__corpo{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(2.5rem, 5vw, 3rem);
  align-items:start;
}

@media (min-width:960px){
  .simulador__corpo{ grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); }
}

.simulador__form{
  display:flex; flex-direction:column; gap:1.9rem;
  background:var(--creme);
  border:1px solid var(--linha-clara);
  padding:clamp(1.5rem, 3vw, 2.25rem);
}

.campo-simulador label{
  display:block;
  font-size:.8125rem; letter-spacing:.03em;
  color:var(--tinta-suave);
  margin-bottom:.65rem;
}

.campo-simulador--destaque{
  padding:1rem;
  margin-inline:-1rem;
  background:rgba(226,150,59,.1);
  border:1px solid var(--ambar-fosco);
}
.campo-simulador--destaque label{ color:var(--tinta); }

.campo-simulador__valor{
  font-family:var(--mono);
  font-variant-numeric:tabular-nums;
  color:var(--tinta);
}

input[type="range"]{
  width:100%; height:1px;
  background:var(--linha-clara);
  appearance:none; -webkit-appearance:none;
  accent-color:var(--ambar);
}
input[type="range"]::-webkit-slider-thumb{
  appearance:none; -webkit-appearance:none;
  width:16px; height:16px; border-radius:50%;
  background:var(--ambar);
  border:3px solid var(--creme);
  box-shadow:0 0 0 1px var(--ambar);
  cursor:pointer;
}
input[type="range"]::-moz-range-thumb{
  width:16px; height:16px; border-radius:50%;
  background:var(--ambar); border:3px solid var(--creme);
  box-shadow:0 0 0 1px var(--ambar); cursor:pointer;
}

.campo-simulador__faixa{
  display:flex; justify-content:space-between;
  margin-top:.5rem;
  font-size:.75rem; color:var(--tinta-fraca);
}

select.entrada-simulador{
  width:100%;
  font:inherit; font-size:.9375rem;
  color:var(--tinta);
  background:var(--creme);
  border:1px solid var(--linha-clara);
  padding:.7rem .8rem;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23182229' stroke-width='1.3' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .85rem center;
}
select.entrada-simulador:focus-visible{ border-color:var(--ambar); }

.orientacao__opcoes{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:.6rem;
}

.orientacao__opcao{ position:relative; }
.orientacao__opcao input{
  position:absolute; inset:0; opacity:0; margin:0; cursor:pointer;
}
.orientacao__rotulo{
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  padding:.85rem .5rem;
  border:1px solid var(--linha-clara);
  font-size:.8125rem; text-align:center; color:var(--tinta-suave);
  transition:border-color 160ms ease, color 160ms ease, background-color 160ms ease;
}
.orientacao__rotulo svg{ width:22px; height:22px; stroke:currentColor; stroke-width:1.3; fill:none; }
.orientacao__opcao input:checked + .orientacao__rotulo{
  border-color:var(--ambar); color:var(--tinta); background:rgba(226,150,59,.12);
}
.orientacao__opcao input:focus-visible + .orientacao__rotulo{
  outline:2px solid var(--ambar); outline-offset:2px;
}

.bateria{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding-top:.3rem;
}
.bateria__texto{ font-size:.875rem; color:var(--tinta-suave); }
.bateria__texto strong{ display:block; color:var(--tinta); font-weight:500; margin-bottom:.15rem; }

.interruptor{ position:relative; flex:none; }
.interruptor input{ position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; }
.interruptor__trilho{
  display:block; width:2.75rem; height:1.5rem;
  background:var(--linha-clara);
  border:1px solid var(--tinta-fraca);
  border-radius:1rem;
  transition:background-color 160ms ease, border-color 160ms ease;
}
.interruptor__trilho::before{
  content:""; display:block;
  width:1.05rem; height:1.05rem; margin:.15rem;
  background:var(--creme);
  border-radius:50%;
  transition:transform 180ms ease;
}
.interruptor input:checked + .interruptor__trilho{ background:var(--ambar); border-color:var(--ambar); }
.interruptor input:checked + .interruptor__trilho::before{ transform:translateX(1.25rem); }
.interruptor input:focus-visible + .interruptor__trilho{ outline:2px solid var(--ambar); outline-offset:2px; }

/* --- resultados --- */

.resultados{
  background:var(--noite);
  color:var(--branco-quente);
  padding:clamp(1.75rem, 3.5vw, 2.5rem);
  display:flex; flex-direction:column; gap:clamp(1.5rem, 3vw, 2rem);
}

.resultados__kwp .numero{
  font-size:clamp(2.25rem, 6vw, 3.5rem);
  line-height:1;
  color:var(--ambar-vivo);
}
.resultados__kwp span:not(.numero){
  display:block; margin-top:.4rem;
  font-size:.8125rem; letter-spacing:.03em;
  color:var(--branco-quente-fraco);
}

.cobertura__topo{
  display:flex; justify-content:space-between; align-items:baseline;
  font-size:.8125rem; color:var(--branco-quente-meio);
  margin-bottom:.5rem;
}
.cobertura__topo .numero{ color:var(--ambar-vivo); font-size:.9375rem; }
.cobertura__trilho{
  height:.5rem; border-radius:.25rem;
  background:var(--linha-escura); overflow:hidden;
}
.cobertura__preenchido{
  height:100%; border-radius:.25rem;
  background:var(--ambar);
  transition:width 320ms ease;
}

.resultados__grelha{
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  gap:1.25rem 1.5rem;
  padding-top:1.5rem;
  border-top:1px solid var(--linha-escura);
}
.resultados__item .numero{
  display:block;
  font-size:clamp(1.25rem, 2.6vw, 1.625rem);
}
.resultados__item span:not(.numero){
  display:block; margin-top:.3rem;
  font-size:.75rem; letter-spacing:.03em;
  color:var(--branco-quente-fraco);
}

.resultados__retorno{
  grid-column:1 / -1;
  padding-top:1.5rem;
  border-top:1px solid var(--linha-escura);
  display:flex; align-items:baseline; gap:.75rem; flex-wrap:wrap;
}
.resultados__retorno .numero{ font-size:clamp(1.5rem, 3vw, 2rem); color:var(--ambar-vivo); }
.resultados__retorno span:not(.numero){ font-size:.8125rem; color:var(--branco-quente-meio); }

.grafico-secao{ padding-top:.25rem; }
.grafico-secao__cabeca{
  display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:.5rem 1.5rem;
  margin-bottom:1rem;
}
.grafico-secao__titulo{ font-size:.9375rem; color:var(--branco-quente-meio); }
.grafico-legenda{ display:flex; gap:1.25rem; font-size:.75rem; color:var(--branco-quente-fraco); }
.grafico-legenda span{ display:inline-flex; align-items:center; gap:.4rem; }
.grafico-legenda i{ width:.65rem; height:.65rem; border-radius:50%; display:inline-block; }
.grafico-legenda i.pt-rede{ background:var(--branco-quente-fraco); }
.grafico-legenda i.pt-paineis{ background:var(--ambar); }

.grafico{ width:100%; height:auto; overflow:visible; }
.grafico .eixo{ stroke:var(--linha-escura); stroke-width:1; }
.grafico .rotulo-eixo{ fill:var(--branco-quente-fraco); font-family:var(--mono); font-size:10.5px; }
.grafico .linha-rede{ fill:none; stroke:var(--branco-quente-fraco); stroke-width:1.6; stroke-dasharray:3 3; }
.grafico .linha-paineis{ fill:none; stroke:var(--ambar); stroke-width:2; }
.grafico .area-poupanca{ fill:var(--ambar); opacity:.08; }
.grafico .ponto-retorno circle{ fill:var(--noite); stroke:var(--ambar); stroke-width:2; }
.grafico .ponto-retorno text{ fill:var(--ambar-vivo); font-family:var(--mono); font-size:11px; }

.grafico-nota{
  margin-top:.75rem;
  font-size:.75rem; line-height:1.55;
  color:var(--branco-quente-fraco);
  max-width:52ch;
}

/* a mesma nota discreta, mas para fora do painel escuro — sobre o creme */
.nota-secao{
  margin-top:1.5rem;
  max-width:70ch;
  font-size:.75rem; line-height:1.55;
  color:var(--tinta-fraca);
}

.oculto-visual{
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip-path:inset(50%); white-space:nowrap; border:0;
}

.tabela-oculta{
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip-path:inset(50%); white-space:nowrap; border:0;
}

/* =========================================================================
   4. COMO FUNCIONA
   ========================================================================= */

.metodo__lista{
  display:grid; grid-template-columns:minmax(0,1fr);
  gap:0;
  margin-top:clamp(2.75rem, 6vw, 4rem);
  counter-reset:passo;
}

@media (min-width:760px){
  .metodo__lista{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .metodo__item{ padding-inline:clamp(1.25rem, 2.4vw, 2.25rem); }
  .metodo__item:first-child{ padding-left:0; }
  .metodo__item:last-child{ padding-right:0; }
  .metodo__item + .metodo__item{ border-left:1px solid var(--ambar-fosco); }
}
@media (max-width:759px){
  .metodo__item + .metodo__item{ margin-top:2.25rem; padding-top:2.25rem; border-top:1px solid var(--ambar-fosco); }
}

.metodo__item{ counter-increment:passo; }
.metodo__passo{
  font-family:var(--mono);
  font-size:.8125rem;
  color:var(--ambar);
  margin-bottom:1rem;
}
.metodo__passo::before{ content:"0" counter(passo); }

.metodo__titulo{ font-size:1.1875rem; margin-bottom:.6rem; line-height:1.28; }
.metodo__item p:not(.metodo__passo){ color:var(--tinta-suave); font-size:.9375rem; line-height:1.6; }

/* =========================================================================
   5. FOTOGRAFIA
   ========================================================================= */

.foto{
  position:relative;
  overflow:hidden;
  margin:0;
  background:var(--creme-forte);
  border:1px solid var(--linha-clara);
}
.foto img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

.foto--galeria{ aspect-ratio:4 / 3; }

.foto figcaption{
  position:absolute; left:0; right:0; bottom:0; z-index:1;
  padding:.6rem .75rem;
  font-size:.75rem; letter-spacing:.02em;
  color:var(--branco-quente);
  background:linear-gradient(to top, rgba(8,17,22,.72), rgba(8,17,22,0));
}

/* =========================================================================
   6. GALERIA
   ========================================================================= */

.galeria__grelha{
  display:grid; grid-template-columns:minmax(0,1fr);
  gap:1.25rem;
  margin-top:clamp(2.5rem, 6vw, 4rem);
}
@media (min-width:640px){ .galeria__grelha{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (min-width:960px){ .galeria__grelha{ grid-template-columns:repeat(3, minmax(0,1fr)); } }

/* =========================================================================
   7. TESTEMUNHOS
   ========================================================================= */

.testemunhos{ background:var(--creme-forte); border-block:1px solid var(--linha-clara); }

.testemunhos__grelha{
  display:grid; grid-template-columns:minmax(0,1fr);
  gap:clamp(2.5rem, 5vw, 3.5rem);
  margin-top:clamp(2.5rem, 5vw, 3.5rem);
}
@media (min-width:820px){
  .testemunhos__grelha{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}

.testemunho{ display:flex; flex-direction:column; gap:1.25rem; }
.testemunho__citacao{
  font-family:var(--display);
  font-size:1.1875rem; line-height:1.4;
  color:var(--tinta);
}
.testemunho__quem{ font-size:.8125rem; color:var(--tinta-fraca); }

/* =========================================================================
   8. SOBRE A EQUIPA
   ========================================================================= */

.abertura__linha{
  padding-top:1.1rem;
  border-top:1px solid var(--linha-clara);
  display:flex; gap:2rem; flex-wrap:wrap;
  font-size:.8125rem; letter-spacing:.03em;
  color:var(--tinta-fraca);
}

.equipa__grelha{
  display:grid; grid-template-columns:minmax(0,1fr);
  gap:clamp(2.5rem, 6vw, 4rem);
}
@media (min-width:900px){
  .equipa__grelha{ grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); align-items:center; }
}

/* =========================================================================
   9. CONTACTO
   ========================================================================= */

.contacto__grelha{
  display:grid; grid-template-columns:minmax(0,1fr);
  gap:clamp(2.5rem, 6vw, 5rem);
}
@media (min-width:900px){
  .contacto__grelha{ grid-template-columns:minmax(0,.85fr) minmax(0,1fr); align-items:start; }
}

.contacto__intro{ max-width:44ch; }

.formulario{ display:flex; flex-direction:column; gap:1.9rem; max-width:34rem; }
.campo{ display:flex; flex-direction:column; gap:.55rem; }
.campo label{ font-size:.8125rem; letter-spacing:.02em; color:var(--tinta-fraca); }

.campo input, .campo textarea{
  width:100%; font:inherit; color:var(--tinta);
  background:transparent; border:0; border-radius:0;
  border-bottom:1px solid rgba(24,34,41,.28);
  padding:.6rem 0;
  transition:border-color 160ms ease, box-shadow 160ms ease;
}
.campo textarea{ resize:vertical; min-height:7rem; line-height:1.55; }
.campo input:hover, .campo textarea:hover{ border-bottom-color:rgba(24,34,41,.5); }
.campo input:focus, .campo textarea:focus{ border-bottom-color:var(--ambar); box-shadow:0 1px 0 0 var(--ambar); }
.campo input:user-invalid, .campo textarea:user-invalid{ border-bottom-color:var(--alarme); box-shadow:0 1px 0 0 var(--alarme); }

.campo input:-webkit-autofill,
.campo input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--tinta);
  -webkit-box-shadow:0 0 0 1000px var(--creme) inset;
  caret-color:var(--tinta);
}

.campo__erro{ font-size:.8125rem; color:var(--alarme); min-height:1.2em; }

.botao{
  align-self:flex-start;
  display:inline-block;
  background:var(--tinta); color:var(--creme);
  border:0; border-radius:0;
  padding:1rem 2.5rem;
  font-family:var(--corrido); font-size:.8125rem; font-weight:500; letter-spacing:.03em;
  cursor:pointer;
  transition:background-color 180ms ease;
}
.botao:hover{ background:var(--noite); }
.botao[disabled]{ opacity:.5; cursor:progress; }

.formulario__estado{ font-size:.9375rem; line-height:1.5; color:var(--tinta-fraca); }
.formulario__estado[data-tom="ok"]{ color:#8A6A1E; }
.formulario__estado[data-tom="erro"]{ color:var(--alarme); }

/* =========================================================================
   10. MORADA
   ========================================================================= */

.morada{ border-top:1px solid var(--linha-clara); }
.morada__grelha{
  display:grid; grid-template-columns:minmax(0,1fr);
  gap:clamp(2.5rem, 5vw, 4rem);
  align-items:start;
  margin-top:clamp(2.5rem, 5vw, 3.5rem);
}
@media (min-width:900px){ .morada__grelha{ grid-template-columns:minmax(0,.72fr) minmax(0,1fr); } }

.morada__linhas{ font-style:normal; display:flex; flex-direction:column; gap:1.65rem; }
.morada__bloco h3{
  font-size:.8125rem; font-family:var(--corrido); font-weight:500;
  letter-spacing:.03em; color:var(--tinta-fraca); margin-bottom:.5rem;
}
.morada__bloco p, .morada__bloco a{ color:var(--tinta); text-decoration:none; }
.morada__bloco a{ border-bottom:1px solid rgba(24,34,41,.3); transition:border-color 160ms ease, color 160ms ease; }
.morada__bloco a:hover{ color:#8A6A1E; border-bottom-color:#8A6A1E; }

.morada__mapa{ aspect-ratio:4 / 3; background:var(--creme-forte); border:1px solid var(--linha-clara); }
.morada__mapa iframe{ width:100%; height:100%; border:0; filter:sepia(.14) saturate(.85) brightness(1.02) contrast(.95); }
@media (max-width:640px){ .morada__mapa{ aspect-ratio:1 / 1; } }

/* =========================================================================
   11. RODAPÉ
   ========================================================================= */

.rodape{
  background:var(--noite-funda);
  color:var(--branco-quente-meio);
  padding-block:clamp(3.25rem, 7vw, 5rem) 2.5rem;
  font-size:.875rem;
}

.rodape__topo{
  display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between;
  gap:2.25rem; padding-bottom:2.25rem;
  border-bottom:1px solid var(--ambar-fosco);
}
.rodape .marca{ color:var(--branco-quente); font-size:1.375rem; }
.rodape__redes{ display:flex; gap:1.35rem; align-items:center; }
.rodape__redes a{
  display:grid; place-items:center; width:2.35rem; height:2.35rem;
  color:var(--branco-quente-meio);
  border:1px solid var(--ambar-fosco);
  transition:color 160ms ease, border-color 160ms ease;
}
.rodape__redes a:hover{ color:var(--ambar); border-color:var(--ambar); }
.rodape__redes svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.2; }

.rodape__base{ display:flex; flex-wrap:wrap; gap:.6rem 2rem; padding-top:1.85rem; font-size:.8125rem; color:var(--branco-quente-fraco); }
.rodape__base a{ color:inherit; text-decoration:none; border-bottom:1px solid rgba(248,244,234,.25); }
.rodape__base a:hover{ color:var(--ambar); border-bottom-color:var(--ambar); }

/* =========================================================================
   12. UTILITÁRIOS E MOVIMENTO REDUZIDO
   ========================================================================= */

html{ scroll-behavior:smooth; }
:target{ scroll-margin-top:5.5rem; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .hero__seta{ animation:none; }
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-delay:0ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}
