/* PapaMudanças — site público. Azul de camião, amarelo de cinta de carga. Letra grande e legível. */
/* Tipos de letra alojados aqui (Barlow, licença OFL) — sem pedidos ao Google. */
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/barlow-400.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 500; font-display: swap; src: url('/fonts/barlow-500.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow'; font-style: normal; font-weight: 600; font-display: swap; src: url('/fonts/barlow-600.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 600; font-display: swap; src: url('/fonts/barlow-condensed-600.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 700; font-display: swap; src: url('/fonts/barlow-condensed-700.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
    --azul: #1D2B44;
    --azul-2: #2E4A73;
    --cinta: #F2B300;
    --cinta-2: #FFC61A;
    --cartao: #C9A26B;
    --superficie: #F3F5F8;
    --linha: #DCE1E8;
    --texto: #1D2B44;
    --texto-suave: #4E5A6C;
    --erro: #B42318;
    --raio: 8px;
    --sombra: 0 1px 2px rgba(29,43,68,.06), 0 6px 20px rgba(29,43,68,.08);
    --titulos: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
    --corpo: "Barlow", "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { font-size: 112.5%; scroll-behavior: smooth; } /* 18px */
body { margin: 0; font-family: var(--corpo); color: var(--texto); background: #fff; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, legend { font-family: var(--titulos); font-weight: 700; line-height: 1.1; letter-spacing: .005em; }
h1 { font-size: clamp(2.3rem, 5vw, 3.5rem); margin: 0 0 1rem; }
h2 { font-size: clamp(1.7rem, 3vw, 2.1rem); margin: 0 0 1rem; }
h3 { font-size: 1.35rem; margin: 0 0 .5rem; }
p { margin: 0 0 1rem; }
a { color: var(--azul-2); text-underline-offset: .15em; }
a:hover { color: var(--azul); }
small { font-size: .85em; }
:focus-visible { outline: 3px solid var(--cinta); outline-offset: 2px; }
figure { margin: 0; }

.contentor { max-width: 74rem; margin: 0 auto; padding: 0 1.25rem; }
.estreito { max-width: 46rem; }
.bloco { padding-top: 3.5rem; padding-bottom: .5rem; }
.fundo-suave { background: var(--superficie); padding: 3.5rem 0; margin-top: 3.5rem; }
.fundo-suave + .bloco { padding-top: 3.5rem; }
.espaco-cima { margin-top: 2rem; }
.lead { font-size: 1.2rem; color: var(--texto-suave); max-width: 46ch; }
.nota { color: var(--texto-suave); font-size: .92rem; }
.visualmente-escondido { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: -999px; top: 0; background: var(--cinta); color: var(--azul); padding: .6rem 1rem; z-index: 10; }
.saltar:focus { left: 1rem; }

/* Botões */
.botao {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    background: var(--cinta); color: var(--azul); border: 2px solid var(--cinta); border-radius: var(--raio);
    padding: .8rem 1.5rem; font: 600 1.05rem var(--corpo); text-decoration: none; cursor: pointer; transition: background .15s; white-space: nowrap;
}
.botao:hover { background: var(--cinta-2); border-color: var(--cinta-2); color: var(--azul); }
.botao-pequeno { padding: .45rem 1rem; font-size: .95rem; }
.botao-contorno { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }
.botao-contorno:hover { background: rgba(255,255,255,.1); border-color: #fff; color: #fff; }
.botao-contorno-escuro { background: transparent; color: var(--azul); border-color: var(--linha); }
.botao-contorno-escuro:hover { background: var(--superficie); border-color: var(--azul); }

/* Topo */
.topo { background: var(--azul); color: #fff; position: sticky; top: 0; z-index: 5; }
.topo-linha { display: flex; align-items: center; gap: 1.5rem; min-height: 4.25rem; }
.marca { font-family: var(--titulos); font-size: 1.75rem; font-weight: 700; color: #fff; text-decoration: none; letter-spacing: .01em; }
.marca span { color: var(--cinta); }
.marca:hover { color: #fff; }
.menu-botao { display: none; }
.menu-lista { display: flex; gap: 1.4rem; align-items: center; margin-left: auto; }
.menu-lista a { color: #DCE3EE; text-decoration: none; font-weight: 500; font-size: .98rem; padding: .3rem 0; border-bottom: 2px solid transparent; }
.menu-lista a:hover, .menu-lista a.ativo { color: #fff; border-bottom-color: var(--cinta); }
.menu-lista .menu-secundario { color: var(--cinta); }
.topo-acoes { display: flex; align-items: center; gap: 1rem; }
.topo-tel { color: #fff; font-weight: 600; text-decoration: none; white-space: nowrap; }
.topo-tel:hover { color: var(--cinta); }

/* Migalhas */
.migalhas { font-size: .88rem; color: var(--texto-suave); padding-top: 1.1rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.migalhas a { color: var(--texto-suave); }

/* Abertura */
.abertura { background: var(--azul); color: #fff; border-bottom: 10px solid var(--cinta); overflow: hidden; }
.abertura-grelha { display: grid; grid-template-columns: 1.05fr 1fr; gap: 3rem; align-items: center; padding-top: 3.5rem; padding-bottom: 3.5rem; }
.sobretitulo { color: var(--cinta); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; font-size: .85rem; margin-bottom: .8rem; }
.abertura h1 { max-width: 16ch; }
.abertura-lead { font-size: 1.2rem; color: #DCE3EE; max-width: 44ch; margin-bottom: 1.8rem; }
.abertura-acoes { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.5rem 0; }
.abertura .abertura-acoes { margin-top: 0; }
.abertura-factos { list-style: none; padding: 0; margin: 1.6rem 0 0; display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; color: #DCE3EE; font-size: .95rem; }
.abertura-factos li::before { content: "✓"; color: var(--cinta); font-weight: 700; margin-right: .45rem; }
.abertura-foto img { border-radius: var(--raio); box-shadow: 0 20px 50px rgba(0,0,0,.35); aspect-ratio: 4/3; object-fit: cover; width: 100%; }

/* Resumo (resposta direta, útil para motores de IA) */
.resumo p { font-size: 1.12rem; max-width: 62rem; border-left: 4px solid var(--cinta); padding-left: 1.2rem; margin: 0; }

/* Títulos de bloco com ligação */
.titulo-bloco { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.titulo-bloco h2 { margin: 0; }
.titulo-bloco a, .ligacao-seta { font-weight: 600; text-decoration: none; }
.titulo-bloco a::after, .ligacao-seta::after { content: " →"; }

/* Cartões de serviço */
.cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr)); gap: 1.25rem; }
.cartao { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; text-decoration: none; color: var(--texto); transition: box-shadow .15s, transform .15s; }
.cartao:hover { box-shadow: var(--sombra); transform: translateY(-2px); color: var(--texto); }
.cartao img { aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.cartao-corpo { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .35rem; }
.cartao-titulo { font-family: var(--titulos); font-size: 1.4rem; font-weight: 700; }
.cartao-texto { color: var(--texto-suave); font-size: .95rem; }

/* Passos */
.passos { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; counter-reset: passo; }
.passos li { background: #fff; border-radius: var(--raio); padding: 1.3rem; border-top: 4px solid var(--cinta); counter-increment: passo; display: flex; flex-direction: column; gap: .4rem; }
.passos li::before { content: counter(passo); font-family: var(--titulos); font-weight: 700; font-size: 2.2rem; line-height: 1; color: var(--azul-2); }
.passos strong { font-size: 1.1rem; }
.passos span { color: var(--texto-suave); }
.passos-grandes { grid-template-columns: 1fr; max-width: 50rem; }
.passos-grandes li { border: 1px solid var(--linha); border-left: 5px solid var(--cinta); border-top-width: 1px; }
.passos-grandes li::before { display: none; }
.passos-grandes strong { font-family: var(--titulos); font-size: 1.5rem; }
.mini-passos { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding-left: 1.2rem; color: var(--texto-suave); margin: 0 0 2rem; }
.mini-passos li { padding-left: .2rem; }

/* Duas metades (texto + foto) */
.duas-metades { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
.foto-lado img { border-radius: var(--raio); width: 100%; max-height: 34rem; object-fit: cover; }
.cabecalho-pagina { padding-top: 2rem; padding-bottom: .5rem; }
.cabecalho-pagina.duas-metades { align-items: center; }

.lista-visto { list-style: none; padding: 0; margin: 0 0 1.2rem; }
.lista-visto li { position: relative; padding-left: 1.9rem; margin-bottom: .6rem; }
.lista-visto li::before { content: ""; position: absolute; left: 0; top: .35rem; width: 1.15rem; height: 1.15rem; border-radius: 50%;
    background: var(--cinta) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%231D2B44' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/80% no-repeat; }

.caixa-dicas { background: #FFF8E1; border-radius: var(--raio); padding: 1.4rem 1.5rem; border-left: 5px solid var(--cinta); }
.caixa-dicas ul { margin: 0; padding-left: 1.2rem; }
.caixa-dicas li { margin-bottom: .5rem; }
.caixa-dicas p:last-child { margin: 0; }

/* Etiquetas (zonas, serviços) */
.etiquetas { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.etiquetas a, .etiquetas span { display: inline-block; padding: .45rem .95rem; border-radius: 999px; border: 1px solid var(--linha); background: #fff; text-decoration: none; color: var(--texto); font-weight: 500; }
.etiquetas a:hover { border-color: var(--azul); background: var(--superficie); }
.etiquetas span { color: var(--texto-suave); background: var(--superficie); }

/* Galeria */
.galeria { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.galeria img { border-radius: var(--raio); aspect-ratio: 4/3; object-fit: cover; width: 100%; height: 100%; }

/* Perguntas */
.perguntas-curtas > * { max-width: 54rem; }
.perguntas-curtas details { border-bottom: 1px solid var(--linha); padding: .9rem 0; }
.perguntas-curtas summary { cursor: pointer; font-weight: 600; font-size: 1.08rem; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.perguntas-curtas summary::-webkit-details-marker { display: none; }
.perguntas-curtas summary::after { content: "+"; font-size: 1.4rem; line-height: 1; color: var(--azul-2); }
.perguntas-curtas details[open] summary::after { content: "−"; }
.perguntas-curtas details p { margin: .6rem 0 0; color: var(--texto-suave); }

/* Faixa final */
.faixa-cta { background: var(--azul); color: #fff; margin-top: 4rem; border-top: 8px solid var(--cinta); }
.faixa-cta-linha { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 2.5rem; padding-bottom: 2.5rem; flex-wrap: wrap; }
.faixa-cta h2 { margin-bottom: .4rem; }
.faixa-cta p { color: #DCE3EE; margin: 0; }
.faixa-cta a:not(.botao) { color: #fff; }

/* Serviços (lista) */
.lista-servicos { display: grid; gap: 2.5rem; }
.servico-linha { display: grid; grid-template-columns: 2fr 3fr; gap: 2.5rem; align-items: center; }
.servico-linha:nth-child(even) .servico-foto { order: 2; }
.servico-foto img { border-radius: var(--raio); aspect-ratio: 16/10; object-fit: cover; width: 100%; }
.servico-linha h2 a { color: var(--texto); text-decoration: none; }
.lista-servicos-zona { padding-left: 1.2rem; }
.lista-servicos-zona li { margin-bottom: .6rem; color: var(--texto-suave); }
.lista-servicos-zona a { font-weight: 600; }

/* Zonas */
.grelha-zonas { display: grid; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); gap: 1.25rem; }
.zona-cartao { border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.4rem; }
.zona-cartao h2 { font-size: 1.5rem; }
.zona-cartao h2 a { color: var(--texto); text-decoration: none; }
.zona-cartao h2 a:hover { color: var(--azul-2); }
.zona-cartao p { color: var(--texto-suave); font-size: .97rem; }
.zona-sub { display: flex; flex-wrap: wrap; gap: .3rem .9rem; }
.zona-sub a { font-weight: 600; font-size: .92rem; }
.zona-pais { background: var(--superficie); border-style: dashed; }

/* Contactos */
.contactos-grelha { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1.25rem; }
.contacto-cartao { border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.4rem; }
.contacto-cartao h2 { font-size: 1.3rem; }
.contacto-grande { font-family: var(--titulos); font-size: 1.7rem; font-weight: 700; text-decoration: none; word-break: break-word; }

/* Textos legais */
.texto-legal { max-width: 46rem; padding-top: 2rem; }
.texto-legal h2 { font-size: 1.5rem; margin-top: 2rem; }
.texto-legal li { margin-bottom: .5rem; }

/* Formulários */
.formulario-pagina { max-width: 46rem; }
.formulario fieldset { border: 0; padding: 0; margin: 0 0 2rem; }
.formulario legend { font-size: 1.5rem; margin-bottom: .5rem; padding: 0; }
.formulario label, .formulario .rotulo { display: block; font-weight: 600; margin: .9rem 0 .3rem; }
.formulario input:not([type=checkbox]):not([type=file]), .formulario select, .formulario textarea {
    width: 100%; font: inherit; padding: .7rem .85rem; border: 2px solid #C5CCD8; border-radius: var(--raio); background: #fff; color: var(--texto);
}
.formulario input:focus, .formulario select:focus, .formulario textarea:focus { border-color: var(--azul-2); outline: none; box-shadow: 0 0 0 3px rgba(242,179,0,.45); }
.formulario input[type=file] { font: inherit; font-size: .95rem; width: 100%; padding: .6rem; border: 2px dashed #C5CCD8; border-radius: var(--raio); background: var(--superficie); }
.formulario .opcao { display: flex; align-items: flex-start; gap: .6rem; font-weight: 500; }
.formulario .opcao input { width: 1.3rem; height: 1.3rem; margin-top: .2rem; accent-color: var(--azul-2); flex: none; }
.opcoes-linha { display: flex; gap: 1.5rem; }
.opcoes-linha .opcao { margin-top: .2rem; }
.duas-colunas { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0 1.5rem; }
.formulario .duas-colunas legend { grid-column: 1 / -1; }
.erro { color: var(--erro); font-size: .92rem; display: block; }
.aviso { background: #FEF3F2; border-left: 4px solid var(--erro); padding: .8rem 1rem; border-radius: 4px; }
.armadilha { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.input-validation-error { border-color: var(--erro) !important; }

/* Rodapé */
.rodape { background: #141F33; color: #B9C3D3; margin-top: 4rem; padding: 3rem 0 0; font-size: .95rem; }
.faixa-cta + .rodape, main:has(> .faixa-cta:last-child) + .rodape { margin-top: 0; }
.rodape a { color: #DCE3EE; text-decoration: none; }
.rodape a:hover { color: var(--cinta); }
.rodape-grelha { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2rem; }
.rodape ul { list-style: none; padding: 0; margin: 0; }
.rodape li { margin-bottom: .45rem; }
.rodape-titulo { color: #fff; font-weight: 600; margin-bottom: .8rem; }
.marca-rodape { font-size: 1.6rem; color: #fff; }
.rodape-legal { border-top: 1px solid rgba(255,255,255,.1); margin-top: 2.5rem; padding-top: 1.2rem; padding-bottom: 1.5rem; font-size: .85rem; }
.rodape-legal p { margin: 0; }

/* Ecrãs médios */
@media (max-width: 64rem) {
    .cartoes { grid-template-columns: repeat(2, 1fr); }
    .passos { grid-template-columns: repeat(2, 1fr); }
    .rodape-grelha { grid-template-columns: 1fr 1fr; }
    .topo-tel { display: none; }
}

/* Menu em telemóvel / tablet */
@media (max-width: 56rem) {
    .topo-linha { gap: .8rem; }
    .topo-acoes { margin-left: auto; }
    .menu-botao { order: 3; display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 2.75rem; height: 2.75rem; cursor: pointer; padding: .6rem; border-radius: var(--raio); background: none; border: 0; }
    .menu-botao span { display: block; height: 2px; background: #fff; border-radius: 2px; }
    .menu-botao[aria-expanded=true] { background: rgba(255,255,255,.1); }
    .menu-lista { display: none; margin-left: 0; }
    .menu-lista.aberto { display: flex; }
    .menu-lista { position: absolute; left: 0; right: 0; top: 100%; background: var(--azul); flex-direction: column; align-items: stretch; gap: 0; padding: .5rem 1.25rem 1.25rem; border-bottom: 4px solid var(--cinta); }
    .menu-lista a { padding: .85rem 0; border-bottom: 1px solid rgba(255,255,255,.08); font-size: 1.05rem; }
    .menu-lista a:hover, .menu-lista a.ativo { border-bottom-color: rgba(255,255,255,.08); color: var(--cinta); }
    .abertura-grelha, .duas-metades, .servico-linha { grid-template-columns: 1fr; gap: 2rem; }
    .servico-linha:nth-child(even) .servico-foto { order: 0; }
    .abertura-grelha { padding-top: 2.25rem; padding-bottom: 2.5rem; }
}

@media (max-width: 40rem) {
    html { font-size: 106.25%; } /* 17px */
    .cartoes, .passos, .galeria { grid-template-columns: 1fr; }
    .galeria img:nth-child(n+2) { display: none; }
    .rodape-grelha { grid-template-columns: 1fr; }
    .abertura-acoes .botao { width: 100%; }
    .topo-acoes .botao { padding: .45rem .75rem; font-size: .9rem; }
    .marca { font-size: 1.5rem; }
    .faixa-cta .botao { width: 100%; }
}

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* Sugestões de moradas (pedido de orçamento) */
.morada { position: relative; }
.morada-lista { position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 2px); margin: 0; padding: 4px 0; list-style: none;
    background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); max-height: 300px; overflow-y: auto; }
.morada-lista li { padding: 9px 14px; cursor: pointer; line-height: 1.3; }
.morada-lista li span { display: block; font-size: .9em; color: var(--texto-suave); }
.morada-lista li:hover, .morada-lista li.ativa { background: var(--superficie); }

/* Aviso de cookies (só aparece se o Google Analytics estiver ligado) */
.cookies { position: fixed; z-index: 30; left: 1rem; right: 1rem; bottom: 1rem; max-width: 34rem; margin-left: auto;
    background: #fff; color: var(--texto); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); padding: 1rem 1.2rem; }
.cookies[hidden] { display: none; }
.cookies p { margin: 0 0 .8rem; }
.cookies-botoes { display: flex; gap: .6rem; justify-content: flex-end; flex-wrap: wrap; }
.cookies-botoes .botao { padding: .55rem 1.1rem; font-size: .98rem; }
.ligacao-botao { background: none; border: 0; padding: 0; font: inherit; color: #DCE3EE; cursor: pointer; }
.ligacao-botao:hover { color: var(--cinta); }

/* Pedido de orçamento: nota quando é recolha de monos (sem destino) */
.nota-destino { grid-column: 1 / -1; margin: 0 0 1rem; padding: .75rem 1rem; background: #fff7df; border-radius: 8px; }
