:root{--azul:#0072ce;--azul-esc:#004a8f;--real:#1d3a9a;--claro:#e8f2fb;--tinta:#111;--tema:#0072ce;--branco:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:18px/1.6 "Source Sans 3",system-ui,sans-serif;color:var(--tinta);background:var(--branco)}
h1,h2,h3{font-family:"Bricolage Grotesque","Arial Narrow",sans-serif;line-height:1.1;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.4rem,6vw,4.4rem);font-weight:800}h2{font-size:clamp(1.7rem,3.5vw,2.4rem)}h3{font-size:1.25rem}
a{color:var(--azul-esc)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--tema);outline-offset:2px}
.w{max-width:1080px;margin:0 auto;padding:0 20px}
header{border-bottom:1px solid #d5e3f0}.top{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;padding:12px 20px}
.top img{height:56px;width:auto;display:block}nav{display:flex;flex-wrap:wrap;gap:4px 22px;margin-left:auto}
nav a{text-decoration:none;font-weight:600;color:var(--tinta);padding:6px 0;border-bottom:3px solid transparent}
nav a:hover,nav a[aria-current]{border-color:var(--azul)}
.btn{display:inline-block;background:var(--azul);color:#fff;font-weight:700;text-decoration:none;padding:12px 22px;border-radius:6px;border:0;font-size:1rem;cursor:pointer}
.btn:hover{background:var(--azul-esc)}.btn.az{background:var(--azul);color:#fff}.btn.az:hover{background:var(--azul-esc)}
.hero{background:var(--claro);padding:64px 0 56px}.hero p{max-width:34em;font-size:1.2rem}
.acoes{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.promo{display:inline-block;background:var(--azul);color:#fff;padding:6px 14px;border-radius:4px;font-weight:700;margin-bottom:18px}
.urg{background:var(--azul);color:#fff}.urg .w{display:flex;flex-wrap:wrap;gap:8px 32px;padding-top:16px;padding-bottom:16px;font-weight:600}
.urg a{color:#fff}
section{padding:56px 0}.lista{list-style:none;margin:0;padding:0;border-top:3px solid var(--azul)}
.lista li{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:8px 32px;padding:20px 0;border-bottom:1px solid #d5e3f0}
.lista h3{margin:0;color:var(--azul-esc)}.lista p{margin:0}
.comp{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px 32px}.comp div{border-left:4px solid var(--tema);padding-left:16px}
.comp p{margin:0}.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.galeria figure{margin:0}.galeria .ph,.galeria img{aspect-ratio:4/3;width:100%;object-fit:cover;border-radius:6px;display:block}
.ph{background:repeating-linear-gradient(45deg,var(--claro),var(--claro) 12px,#d5e8f8 12px,#d5e8f8 24px);display:grid;place-items:center;color:var(--azul-esc);font-weight:600}
.galeria figcaption{font-size:.95rem;padding-top:6px}
form{display:grid;gap:14px;max-width:560px}label{font-weight:600;display:grid;gap:4px}
input,textarea{font:inherit;padding:10px 12px;border:2px solid #9bbbd8;border-radius:6px;width:100%}
.col2{display:grid;grid-template-columns:1fr 1fr;gap:40px}.oculto{position:absolute;left:-9999px}
.aviso{background:var(--claro);border-left:5px solid var(--azul);padding:12px 16px;border-radius:4px}
footer{background:var(--tinta);color:#dbe6f2;padding:36px 0;font-size:.95rem}footer a{color:#fff}
footer .w{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px}
@media(max-width:720px){.lista li,.col2{grid-template-columns:1fr}nav{margin-left:0}body{font-size:17px}}
/* Página inicial */
.home .hero{padding:0;background:#d9eaf8}.home .hero p{font-size:1.2rem;max-width:34rem}
.home .two{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;padding-top:3rem;padding-bottom:3rem}
.home h1{max-width:17ch;color:var(--azul-esc)}.home .mascote{height:min(60vh,420px);width:auto;display:block}
.home .btns{display:flex;gap:.8rem;flex-wrap:wrap}
.home .btn{background:transparent;border:2px solid var(--azul);color:var(--azul)}.home .btn.y{background:var(--azul);color:#fff}
.home .btn:hover{background:var(--azul-esc);border-color:var(--azul-esc);color:#fff}
.home .promo{background:var(--tema);color:var(--azul-esc);font-size:1rem!important;border-radius:4px;padding:.4rem .8rem;margin:0}
.home .soft{background:#f5f9fd}.home .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem;margin:0 0 1.5rem}
.home .grid article{background:#fff;padding:1.3rem;border-left:5px solid var(--tema);border-radius:0 6px 6px 0}.home .grid h3{color:var(--azul-esc)}.home .grid p{margin:0;color:#53677b}
.home .band{background:var(--azul);color:#fff;padding:0}.home .band .w{padding-top:1.2rem;padding-bottom:1.2rem}
.home .vals{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 2rem;padding:0;margin:0;font-weight:800;font-size:1.3rem}.home .vals li::before{content:"✓ ";color:var(--tema)}
@media(max-width:720px){.home .two{grid-template-columns:1fr}.home .mascote{height:260px;justify-self:center}}
.mapa{width:100%;height:320px;border:0;border-radius:6px;display:block}
/* Página Orçamento */
.cx{padding-left:clamp(20px,8vw,120px)}.cx h1{margin-bottom:28px}
.al{grid-template-columns:1fr 1fr;gap:56px;align-items:stretch}
.al>div:first-child form{max-width:none;height:100%;background:var(--claro);padding:28px;border-radius:10px;align-content:start}
.al input,.al textarea{background:#fff}.al form .btn{justify-self:start}
.al>div:last-child{display:flex;flex-direction:column;gap:18px}
.info{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;line-height:1.45}
.al .mapa{height:auto;flex:1;min-height:280px}
@media(max-width:720px){.cx{padding-left:20px}.al{gap:32px}.info{grid-template-columns:1fr}.al>div:first-child form{height:auto}}
/* Orçamento: formulário mais à esquerda, contactos e mapa à direita */
.cx{padding-left:20px}
.al{grid-template-columns:1.1fr .9fr;gap:80px}
@media(max-width:720px){.al{grid-template-columns:1fr;gap:32px}}
/* Cabeçalho */
header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:3px solid var(--azul)}
.top{max-width:1080px;margin:0 auto}.tel{padding:9px 18px;white-space:nowrap}
.home .btn.tel{background:var(--azul);border:0;color:#fff}.home .btn.tel:hover{background:var(--azul-esc);color:#fff}
/* Cores do logótipo, ícones e páginas */
body.t-servicos{--tema:#0072ce}body.t-galeria{--tema:#1d3a9a}body.t-contactos{--tema:#111}
footer{border-top:4px solid var(--azul)}nav a[aria-current]{color:var(--azul)}
.ic{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em;flex:none}
.pagehead{position:relative;overflow:hidden;background:var(--tema);color:#fff}.pagehead .w{padding-top:44px;padding-bottom:44px;position:relative;z-index:1}
.pagehead h1{color:#fff;font-size:clamp(2rem,5vw,3.2rem);margin:0 0 .3em}.pagehead p{margin:0;max-width:34em;color:#ffffffd9}
.pagehead .big{position:absolute;right:max(6%,24px);top:50%;transform:translateY(-50%);width:170px;height:170px;opacity:.2;stroke-width:1.2}
.lista{border-top-color:var(--tema)}.lista h3{color:var(--tema)}.lista h3 .ic{margin-right:.35em}
.al strong .ic,.info .ic{color:var(--azul)}
/* Página inicial */
.home .hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#e8f2fb,#d6e8f8)}
.home .hero::after{content:"";position:absolute;right:-6%;bottom:-45%;width:620px;height:620px;border-radius:50%;background:#0072ce1f}
.home .two{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;padding-top:0;padding-bottom:0}
.home .txt{padding:64px 0;align-self:center}.home h1{font-size:clamp(2.6rem,5.6vw,4.4rem);max-width:10ch;color:var(--azul-esc)}
.ico{width:48px;height:48px;border-radius:12px;background:var(--claro);color:var(--azul);display:grid;place-items:center;margin-bottom:10px}.ico .ic{width:26px;height:26px}
.home .vals li{display:inline-flex;align-items:center;gap:.5em}.home .vals li::before{content:none}
@media(max-width:720px){.home .two{grid-template-columns:1fr}.home .txt{padding:40px 0 0}.home .mascote{height:260px;justify-self:center}.pagehead .big{width:110px;height:110px}}
/* Ajustes */
body.t-contactos{--tema:#0072ce}
.btn.wa,.home .btn.wa{background:#f28c28;border:0;color:#111}.btn.wa:hover,.home .btn.wa:hover{background:#ffa043;color:#111}
.home .vals .ic{color:#ffa043;stroke-width:2.3}
/* Laranja: frases dos topos e botão Ligar */
.pagehead p{color:#ffa043;font-weight:600;font-size:1.15rem}
.btn.tel,.home .btn.tel{background:#f28c28;border:0;color:#111}.btn.tel:hover,.home .btn.tel:hover{background:#ffa043;color:#111}
body.t-galeria{--tema:#0072ce}
/* Telemóvel, iPad e computador */
.home h1{max-width:12ch}
@media(max-width:900px){.btn.tel{display:none}}
@media(max-width:720px){
header{position:static}.top{padding:10px 16px;gap:8px 18px}.top img{height:44px}
nav{gap:2px 16px}nav a{font-size:.95rem;padding:4px 0}
.home h1{max-width:none}.home .grid{grid-template-columns:repeat(2,1fr);gap:.8rem}.home .grid article{padding:1rem}
.pagehead .big{display:none}.pagehead .w{padding-top:32px;padding-bottom:32px}
.btn.wa .wt{display:none}.btn.wa{width:54px;height:54px;padding:0;display:grid;place-items:center;border-radius:50%}.btn.wa .ic{width:26px;height:26px}}
