/* ==========================================================
   STENCIS — areas.css
   Página inicial — secção "O que fazemos": 4 especialidades
   (AVAC, Eletricidade, Hidráulica, Manutenção).

   Design: cabeçalho editorial alinhado à esquerda e 4 colunas
   (2×2 no tablet, 1 no telemóvel). Cada coluna: foto alta com o nome
   e o botão "Ver projetos" por cima + painel claro com o ícone, uma
   frase, uma linha na cor da especialidade e os pontos-chave.
   Fotos e créditos: admin → Especialidades; textos no index.php.

   Animação:
   - ao entrar no ecrã, as colunas sobem com fade, em sequência
     (.reveal-stagger na grelha — ver css/animacoes.css e js/animacoes.js);
   - ao passar o rato: zoom ligeiro na foto, sobreposição mais escura e
     o ícone mexe-se (ventoinha roda, raio pisca, gota pulsa, engrenagem gira).
   As cores vêm do style.css (--color-avac, --color-elet, --color-hidr, --color-manut).
   ========================================================== */
.areas {
  position: relative;
  overflow: hidden;
  padding: 110px 0;
  background: var(--color-bg);   /* claro: contrasta com a secção de projetos a seguir (bege) */
}

/* Grelha de pontos de fundo (igual ao estilo de planta técnica do site) */
.areas__grelha-fundo {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(39,26,20,0.07) 1px, transparent 1px);
  background-size: 26px 26px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,0.35) 60%, transparent 100%);
          mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,0.35) 60%, transparent 100%);
  pointer-events: none;
}
.areas .container { position: relative; }

/* ----- Cabeçalho: título à esquerda, texto + link à direita ----- */
.areas__cabecalho {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 40px;
  align-items: end;
  margin-bottom: 52px;
}
.areas__cabecalho h2 {
  font-size: clamp(2rem, 3.6vw, 2.9rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 0;
}
.areas__intro p { font-size: var(--fs-body); line-height: 1.65; margin-bottom: 14px; max-width: 440px; }

/* ----- 4 colunas: foto alta em cima + painel claro em baixo ----- */
.areas-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.area-col {
  --cor: var(--color-primary);
  --altura-foto: 380px;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.area-col--avac  { --cor: var(--color-avac); }
.area-col--elet  { --cor: var(--color-elet); }
.area-col--hidr  { --cor: var(--color-hidr); }
.area-col--manut { --cor: var(--color-manut); }

/* Foto (sem foto: fundo na cor da especialidade, para a secção nunca ficar partida) */
.area-col__foto {
  position: relative;
  height: var(--altura-foto);
  overflow: hidden;
  border-radius: var(--radius) var(--radius) 0 0;
  background: linear-gradient(160deg, var(--cor), color-mix(in srgb, var(--cor) 55%, #000));
}
.area-col__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
/* Sobreposição escura suave (mais escura ao passar o rato) */
.area-col__foto::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(20, 14, 10, 0.38);
  transition: background 0.4s ease;
  pointer-events: none;
}
.area-col:hover .area-col__foto img { transform: scale(1.05); }
.area-col:hover .area-col__foto::after { background: rgba(20, 14, 10, 0.55); }

/* Nome + botão, centrados por cima da foto */
.area-col__sobre {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 22px;
  padding: 24px 18px 40px;
  text-align: center;
}
.area-col__sobre h3 {
  margin: 0;
  color: #fff;
  font-size: var(--fs-h4);
  line-height: 1.3;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.3);
  overflow-wrap: anywhere;
}
.area-col__btn {
  display: inline-block;
  padding: 10px 22px;
  border: 1px solid #fff;
  border-radius: var(--radius-sm);
  color: #fff;
  font-family: var(--font-body);
  font-size: var(--fs-small);
  font-weight: 600;
  letter-spacing: 0.02em;
  transition: background-color 0.25s ease, color 0.25s ease;
}
.area-col__btn:hover,
.area-col__btn:focus-visible { background: #fff; color: var(--color-ink); }

/* Painel claro em baixo */
.area-col__painel {
  flex: 1;                       /* as 4 colunas ficam com a mesma altura */
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 28px 22px 30px;
  background: #fff;
  border: 1px solid var(--color-border);
  border-top: 0;
  border-radius: 0 0 var(--radius) var(--radius);
}
.area-col__icone svg { width: 42px; height: 42px; overflow: visible; display: block; }
.area-col__icone svg * {
  fill: none;
  stroke: var(--cor);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
p.area-col__frase {
  margin: 16px 0 16px;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--color-ink);
  text-align: center;
  hyphens: manual;
}
.area-col__linha { display: block; width: 40px; height: 2px; background: var(--cor); margin-bottom: 18px; }
.area-col__pontos { list-style: none; margin: 0; padding: 0; }
.area-col__pontos li {
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--color-ink-soft);
  padding: 6px 0;
}

/* Pequenos movimentos do ícone ao passar o rato */
.mover { transform-box: fill-box; transform-origin: center; }
.area-col--avac:hover .mover  { animation: area-rodar 1.6s linear infinite; }
.area-col--elet:hover .mover  { animation: area-piscar 1.2s ease-in-out infinite; }
.area-col--hidr:hover .mover  { animation: area-pulsar 1.4s ease-in-out infinite; }
.area-col--manut:hover .mover { animation: area-rodar 4s linear infinite; }

@keyframes area-rodar  { to { transform: rotate(360deg); } }
@keyframes area-piscar { 0%, 100% { opacity: 1; } 45% { opacity: 0.35; } 55% { opacity: 1; } }
@keyframes area-pulsar { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.12); } }

/* Entrada ao fazer scroll: .reveal-stagger na grelha (css/animacoes.css + js/animacoes.js).
   "Reduzir movimento" também é tratado lá. */
@media (prefers-reduced-motion: reduce) {
  .area-col:hover .area-col__foto img { transform: none; }
}

/* ----- Tablet: 2 × 2 ----- */
@media (max-width: 1023px) {
  .areas-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
}
@media (max-width: 900px) {
  .areas { padding: 80px 0; }
  .areas__cabecalho { grid-template-columns: 1fr; gap: 16px; margin-bottom: 36px; }
}
/* ----- Telemóvel: 1 coluna, foto mais baixa ----- */
@media (max-width: 639px) {
  .areas { padding: 64px 0; }
  .areas-grid { grid-template-columns: 1fr; gap: 20px; }
  .area-col { --altura-foto: 220px; }
  .area-col__sobre { gap: 16px; padding-bottom: 32px; }
  .area-col__painel { padding: 24px 20px 26px; }
}
