/* ═══════════════════════════════════════════
   SIPFA · styles.css — Fase 1: menu + slideshow
   ═══════════════════════════════════════════ */

:root{
  --ink:    #1B1B18;
  --line:   #E1DFD5;
  --bg:     #FAFAF7;
  --orange: #B47780;
  --display: 'Barlow Condensed', sans-serif;
  --body:    'Inter', sans-serif;
  --wrap: 1120px;
}

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

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

a{ color:inherit; text-decoration:none; }
:focus-visible{ outline:2px solid var(--orange); outline-offset:3px; }

.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 1.5rem; }

/* ── Cabeçalho ── */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:2000;
  background:var(--orange); color:#fff; padding:.7rem 1rem;
}
.skip-link:focus{ left:0; }

.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  height:64px;
}
.logo{ display:flex; align-items:center; }
.logo img{ height:38px; width:auto; display:block; }

.nav-links{
  display:flex; align-items:center; gap:2rem;
  list-style:none; margin:0; padding:0;
}
.nav-links > li > a,
.nav-links > li > .dd-trigger{
  font-family:var(--body); font-size:.92rem; font-weight:500; color:var(--ink);
  display:inline-flex; align-items:center; gap:.3rem;
  background:none; border:0; padding:0; cursor:pointer;
}
.nav-links > li > a:hover,
.nav-links > li > .dd-trigger:hover,
.nav-links [aria-current="page"]{ color:var(--orange); }

.nav-call{ display:flex; align-items:center; gap:1.2rem; }
.nav-call .phone{ font-weight:600; font-size:.92rem; color:var(--ink); }
.nav-call .phone:hover{ color:var(--orange); }
.btn{
  display:inline-block;
  padding:.8rem 1.5rem;
  background:var(--orange); color:#fff;
  font-family:var(--display); font-size:1rem; font-weight:600;
  letter-spacing:.04em; text-transform:uppercase;
  border-radius:2px;
}
/* fundo botão */
.btn:hover{ background:#000000; }

/* dropdown ("Sobre Nós", "Sinalização") */
.dropdown{ position:relative; }
.dropdown .caret{ font-size:.7rem; transition:transform .15s ease; }
.dropdown.open .caret{ transform:rotate(180deg); }
.dropdown-menu{
  display:none;
  position:absolute; left:0; top:100%;
  min-width:200px;
  margin-top:0;
  border-top:.6rem solid transparent;   /* ponte para o hover não "cair" */
  background:#fff;
  background-clip:padding-box;
  border-radius:2px;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
  padding:.4rem 0;
}
.dropdown.open .dropdown-menu{ display:block; }
.dropdown-menu a{
  display:block; padding:.7rem 1.1rem;
  font-size:.88rem; color:var(--ink); font-weight:500;
}
.dropdown-menu a:hover{ background:var(--bg); color:var(--orange); }

/* menu mobile — só logo + hambúrguer nesta linha */
.mobile-nav{ display:none; }
.mobile-nav summary{
  list-style:none; cursor:pointer;
  width:42px; height:42px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line);
  background:#fff;
}
.mobile-nav summary::-webkit-details-marker{ display:none; }
.burger{ position:relative; width:18px; height:12px; display:block; }
.burger span{
  position:absolute; left:0; width:100%; height:2px; background:var(--ink);
  transition:transform .2s ease, opacity .2s ease;
}
.burger span:nth-child(1){ top:0; }
.burger span:nth-child(2){ top:5px; }
.burger span:nth-child(3){ top:10px; }
.mobile-nav[open] .burger span:nth-child(1){ transform:translateY(5px) rotate(45deg); }
.mobile-nav[open] .burger span:nth-child(2){ opacity:0; }
.mobile-nav[open] .burger span:nth-child(3){ transform:translateY(-5px) rotate(-45deg); }

.mobile-nav[open] .mobile-panel{
  position:fixed;
  top:65px; left:0; right:0;
  width:100%; height:auto;
  background:#fff;
  z-index:1000;
  padding:20px;
  box-shadow:rgba(0,0,0,.1) 0px 4px 6px;
  max-height:calc(100vh - 65px);
  overflow-y:auto;
}
.mobile-panel a{
  display:block; padding:.85rem 0; border-bottom:1px solid var(--line);
  font-size:1.05rem;
}
.mobile-panel .mm-cta{
  border-bottom:none; text-align:center; margin-top:1rem;
}

@media (max-width: 960px){
  .nav-links, .nav-call{ display:none; }
  .mobile-nav{ display:block; position:static; }
}
@media (max-width: 560px){
  .logo img{ height:32px; }
}

/* ── Hero — slideshow de ecrã inteiro ── */
.hero{
  position:relative;
  height:92vh; min-height:520px;
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.hero-slides{ position:absolute; inset:0; }
.hero-slides .slide{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity 1.4s ease;
}
.hero-slides .slide.active{ opacity:1; }

.hero-overlay{
  position:absolute; inset:0;
  background:rgba(15,15,13,.42);
}

.hero-caption{
  position:relative; z-index:2;
  text-align:center;
  color:#fff;
  font-family:var(--display);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:clamp(2.4rem, 7vw, 5.5rem);
  line-height:1.05;
}

.hero-dots{
  position:absolute; left:0; right:0; bottom:2rem; z-index:2;
  display:flex; justify-content:center; gap:.6rem;
}
.hero-dots .dot{
  width:9px; height:9px; padding:0; border-radius:50%;
  background:rgba(255,255,255,.4); border:none; cursor:pointer;
}
.hero-dots .dot.active{ background:var(--orange); }

@media (prefers-reduced-motion: reduce){
  .hero-slides .slide{ transition:none; }
}
@media (max-width: 560px){
  .hero{ height:80vh; min-height:440px; }
}

/* ═══════════════════════════════════════════
   Fase 2 — botões, páginas internas, footer
   ═══════════════════════════════════════════ */

main{ display:block; }
h1,h2,h3{ font-family:var(--display); text-transform:uppercase; letter-spacing:.03em; line-height:1.1; margin:0; }

.btn--light{ background:#fff; color:var(--orange); }
.btn--light:hover{ background:var(--bg); color:#000000; }
.btn--outline{ background:transparent; color:#fff; box-shadow:inset 0 0 0 2px #fff; }
.btn--outline:hover{ background:#fff; color:var(--orange); }

.kicker{
  margin:0 0 .6rem;
  font-family:var(--display); font-weight:600; font-size:1rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--orange);
}
.kicker--light{ color:#fff; opacity:.9; }

/* ── Hero compacto (páginas internas) ── */
.page-hero{
  position:relative;
  min-height:300px;
  display:flex; align-items:flex-end;
  background:#2a2a26 center/cover no-repeat;
  color:#fff;
}
.page-hero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(15,15,13,.78), rgba(15,15,13,.35));
}
.page-hero-inner{ position:relative; width:100%; padding-top:3rem; padding-bottom:2.5rem; }
.page-hero h1{ font-size:clamp(2.2rem, 5vw, 3.8rem); font-weight:700; }

.breadcrumb ol{
  display:flex; flex-wrap:wrap; gap:.4rem;
  list-style:none; margin:0 0 1rem; padding:0;
  font-size:.82rem; color:rgba(255,255,255,.8);
}
.breadcrumb li + li::before{ content:"›"; margin-right:.4rem; opacity:.6; }
.breadcrumb a:hover{ color:#fff; text-decoration:underline; }
.breadcrumb [aria-current]{ color:#fff; font-weight:500; }

/* ── Secções ── */
.section{ padding:4.5rem 0; }
.section--alt{ background:#fff; border-block:1px solid var(--line); }
.section-head{ max-width:var(--wrap); margin:0 0 2.2rem; }
.section-head h2, .split-text h2{ font-size:clamp(1.8rem, 3.6vw, 2.6rem); font-weight:700; }

.prose{ max-width:68ch; }
.prose p{ margin:0 0 1.1rem; }
.prose h3{ font-size:1.5rem; margin:2rem 0 .6rem; }
.prose a{ color:var(--orange); text-decoration:underline; text-underline-offset:3px; }

.checklist{ list-style:none; margin:1.2rem 0 1.8rem; padding:0; }
.checklist li{ position:relative; padding:.3rem 0 .3rem 1.8rem; }
.checklist li::before{
  content:""; position:absolute; left:0; top:.75rem;
  width:.9rem; height:.5rem;
  border-left:3px solid var(--orange); border-bottom:3px solid var(--orange);
  transform:rotate(-45deg);
}

/* texto + imagem */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; }
.split--reverse .split-text{ order:2; }
.split-text p{ margin:0 0 1rem; }
.split-media{ margin:0; }
.split-media img{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; display:block; border-radius:2px; }
.split-media figcaption{ margin-top:.6rem; font-size:.85rem; color:#6b6a62; }

/* cartões */
.cards{ display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:1.5rem; }
.card{
  background:#fff; border:1px solid var(--line); border-top:3px solid var(--orange);
  padding:1.8rem 1.6rem; border-radius:2px;
  transition:box-shadow .2s ease, transform .2s ease;
}
.card:hover{ box-shadow:0 12px 28px rgba(0,0,0,.08); transform:translateY(-2px); }
.card h3{ font-size:1.5rem; margin-bottom:.6rem; }
.card p{ margin:0 0 1rem; color:#4a4a44; }
.card-link{ font-weight:600; font-size:.92rem; color:var(--orange); }
.card-link:hover{ text-decoration:underline; }

/* factos */
.facts{ display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:2rem; margin:0; text-align:center; }
.facts dt{ font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; color:#6b6a62; }
.facts dd{ margin:.3rem 0 0; font-family:var(--display); font-weight:700; font-size:2.2rem; color:var(--orange); text-transform:uppercase; }

/* faixa CTA */
.cta-band{ background:var(--orange); color:#fff; padding:3.2rem 0; }
.cta-band-inner{ display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.cta-band h2{ font-size:clamp(1.7rem, 3.2vw, 2.4rem); font-weight:700; }
.cta-band p{ margin:.4rem 0 0; opacity:.92; }
.cta-band-actions{ display:flex; gap:1rem; flex-wrap:wrap; }

/* ── Footer ── */
.site-footer{ background:var(--ink); color:#cfcdc2; font-size:.92rem; }
.footer-grid{
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1.3fr; gap:2.5rem;
  padding-top:4rem; padding-bottom:3rem;
}
.footer-logo img{ height:38px; width:auto; display:block; filter:brightness(0) invert(1); }
.footer-brand p{ margin:1.1rem 0 0; max-width:34ch; }
.footer-badges{ display:flex; flex-wrap:wrap; gap:.5rem; }
.footer-badges span{
  padding:.25rem .7rem; font-size:.78rem; letter-spacing:.04em;
  border:1px solid rgba(255,255,255,.25); border-radius:2px; color:#fff;
}
.footer-col h2{
  font-size:1.15rem; font-weight:600; color:#fff; letter-spacing:.1em; margin-bottom:1rem;
}
.footer-col ul{ list-style:none; margin:0; padding:0; }
.footer-col li{ padding:.25rem 0; }
.footer-col a:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.footer-col address{ font-style:normal; margin-bottom:1rem; line-height:1.5; }
.footer-contacts span{ display:inline-block; min-width:3.2rem; color:#8f8d82; }

.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); }
.footer-bottom-inner{
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  padding-top:1.3rem; padding-bottom:1.3rem; font-size:.82rem; color:#8f8d82;
}
.footer-bottom p{ margin:0; }
.footer-bottom a:hover{ color:#fff; text-decoration:underline; }

@media (max-width: 960px){
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .split{ grid-template-columns:1fr; gap:2rem; }
  .split--reverse .split-text{ order:0; }
}
@media (max-width: 560px){
  .section{ padding:3.2rem 0; }
  .page-hero{ min-height:240px; }
  .footer-grid{ grid-template-columns:1fr; gap:2rem; padding-top:3rem; }
  .footer-bottom-inner{ flex-direction:column; }
}

/* ═══════════════════════════════════════════
   Fase 3 — listas em blocos, contactos, formulário
   ═══════════════════════════════════════════ */

button.btn{ border:0; cursor:pointer; }
.facts--left{ text-align:left; max-width:640px; }
.split--top{ align-items:start; }

.tiles{
  list-style:none; margin:0; padding:0; counter-reset:tile;
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:1rem;
}
.tiles li{
  background:#fff; border:1px solid var(--line); border-left:4px solid var(--orange);
  padding:1.1rem 1.2rem; font-weight:500; border-radius:2px;
}
.section--alt .tiles li{ background:var(--bg); }
.tiles--numbered li{ counter-increment:tile; display:flex; gap:.9rem; align-items:baseline; }
.tiles--numbered li::before{
  content:counter(tile, decimal-leading-zero);
  font-family:var(--display); font-weight:700; font-size:1.3rem; color:var(--orange);
}
.tiles--links li{ padding:0; }
.tiles--links li a{ display:flex; gap:.9rem; align-items:baseline; width:100%; padding:1.1rem 1.2rem; transition:background .15s ease, color .15s ease; }
.tiles--links li:hover{ border-left-color:var(--ink); }
.tiles--links li a:hover{ color:var(--orange); background:#fff; }
.tiles--links li a::after{ content:"→"; margin-left:auto; color:var(--orange); }

.footer-legal{ display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; }

/* contactos */
.contact-cards{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:1.2rem; }
.contact-card{
  display:flex; flex-direction:column; gap:.4rem;
  background:#fff; border:1px solid var(--line); border-top:3px solid var(--orange);
  padding:1.4rem 1.3rem; border-radius:2px; font-weight:500;
}
a.contact-card:hover{ box-shadow:0 12px 28px rgba(0,0,0,.08); }
.contact-label{ font-family:var(--display); font-weight:600; letter-spacing:.1em; text-transform:uppercase; font-size:.95rem; color:var(--orange); }

.map iframe{ width:100%; height:420px; border:0; border-radius:2px; display:block; background:var(--line); }
.map p{ margin:.8rem 0 0; }

.form{ display:grid; gap:1rem; margin-top:1.5rem; }
.form label{ display:grid; gap:.35rem; font-size:.9rem; font-weight:500; }
.form input[type="text"], .form input[type="email"], .form input[type="tel"], .form select, .form textarea{
  width:100%; font:inherit; font-size:1rem; color:var(--ink);
  padding:.75rem .9rem; background:#fff; border:1px solid #c9c7bb; border-radius:2px;
}
.form textarea{ resize:vertical; }
.form input:focus, .form select:focus, .form textarea:focus{ outline:2px solid var(--orange); outline-offset:1px; border-color:var(--orange); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form .check{ display:flex; gap:.6rem; align-items:flex-start; font-weight:400; }
.form .check input{ margin-top:.25rem; accent-color:var(--orange); }
.form .check a{ color:var(--orange); text-decoration:underline; }
.field-error{ color:#b3261e; font-size:.82rem; font-weight:500; }
.hp{ position:absolute; left:-9999px; }

.notice{ margin:1.4rem 0; padding:1rem 1.2rem; border-left:4px solid; border-radius:2px; background:#fff; }
.notice--ok{ border-color:#2e7d32; }
.notice--err{ border-color:#b3261e; }

@media (max-width: 560px){
  .form-row{ grid-template-columns:1fr; }
  .map iframe{ height:320px; }
}
/* Remover o fundo azul ao tocar nos links do menu mobile */ .mobile-panel a { -webkit-tap-highlight-color: transparent; }