:root{
  --ink:#153526;
  --dark-green:#28604B;
  --mid-green:#7CA84B;
  --sage:#7A967C;
  --white:#FAFCFA;
  --muted:#5C7368;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Karla',sans-serif;color:var(--ink);background:var(--white);line-height:1.6;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Poppins',sans-serif}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{cursor:pointer;font-family:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 32px;position:relative;z-index:2}
.blob{position:absolute;border-radius:58% 42% 63% 37% / 41% 51% 49% 59%;z-index:0;opacity:0.45;animation:blobFloat 14s ease-in-out infinite}
.blob.b2{animation-duration:18s;animation-delay:-3s}
.blob.b3{animation-duration:11s;animation-delay:-6s}
@keyframes blobFloat{
  0%{transform:translate(0,0) rotate(0deg) scale(1)}
  33%{transform:translate(14px,-18px) rotate(6deg) scale(1.03)}
  66%{transform:translate(-12px,10px) rotate(-5deg) scale(0.98)}
  100%{transform:translate(0,0) rotate(0deg) scale(1)}
}
@keyframes blobFloat2{
  0%{transform:translate(0,0) rotate(0deg) scale(1)}
  33%{transform:translate(-16px,-12px) rotate(-6deg) scale(1.04)}
  66%{transform:translate(10px,14px) rotate(5deg) scale(0.97)}
  100%{transform:translate(0,0) rotate(0deg) scale(1)}
}
@keyframes blobFloat3{
  0%{transform:translate(0,0) rotate(0deg) scale(1)}
  33%{transform:translate(12px,16px) rotate(7deg) scale(1.02)}
  66%{transform:translate(-14px,-8px) rotate(-4deg) scale(0.99)}
  100%{transform:translate(0,0) rotate(0deg) scale(1)}
}
@keyframes blobFloat4{
  0%{transform:translate(0,0) rotate(0deg) scale(1)}
  33%{transform:translate(-10px,14px) rotate(4deg) scale(0.98)}
  66%{transform:translate(16px,-10px) rotate(-6deg) scale(1.03)}
  100%{transform:translate(0,0) rotate(0deg) scale(1)}
}
@media (prefers-reduced-motion: reduce){
  .blob{animation:none}
  .ajudar-card .band .blob{animation:none}
}

header{position:sticky;top:0;z-index:100;background:var(--white);border-bottom:1px solid rgba(21,53,38,0.08);box-shadow:0 2px 16px rgba(21,53,38,0.06)}
.nav{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;gap:20px;position:relative;z-index:99}
.nav-logo{flex-shrink:0}
.brand-logo-link{display:flex;align-items:center}
.brand-logo-img{height:34px;width:auto;display:block}
nav ul{display:flex;gap:6px;list-style:none;align-items:center}
nav ul a{font-size:13.5px;font-weight:500;color:var(--ink);opacity:0.7;padding:8px 16px;border-radius:100px;display:inline-block}

@media(min-width:821px) and (max-width:1180px) and (min-height:700px) and (orientation:landscape){
  .nav{gap:6px;padding:22px 0 30px}
  .brand-logo-img{height:27px}
  nav ul{gap:0}
  nav ul a,.has-dropdown span{padding:8px 8px;font-size:12px;white-space:nowrap}
  .nav-cta{padding:9px 14px;font-size:12px;white-space:nowrap}
  header .wrap{padding-left:40px;padding-right:40px}
}
nav ul a:hover{opacity:1;background:rgba(21,53,38,0.05)}
nav ul a.active{opacity:1;background:var(--ink);color:#fff}
.has-dropdown span{font-size:13.5px;font-weight:500;color:var(--ink);opacity:0.7;padding:8px 16px;border-radius:100px;display:inline-block;cursor:default}
.has-dropdown:hover span{opacity:1;background:rgba(21,53,38,0.05)}
.has-dropdown span.active{opacity:1;background:var(--ink);color:#fff}
.nav-cta{background:var(--dark-green);color:#fff;padding:10px 22px;border-radius:14px 14px 14px 4px;font-size:13px;font-weight:600}
.has-dropdown{position:relative}
.dropdown{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid rgba(21,53,38,0.1);border-radius:12px;padding:8px;min-width:190px;box-shadow:0 12px 24px rgba(21,53,38,0.1)}
.has-dropdown:hover .dropdown{display:block}
.dropdown a{display:block;padding:8px 12px;border-radius:8px;font-size:13.5px}
.dropdown a:hover{background:var(--white)}

.page-hero{padding:64px 0 56px;position:relative;overflow:hidden}
.page-hero .blob{width:360px;height:360px;background:var(--mid-green);top:-140px;right:-120px;opacity:0.25}
.page-hero .eyebrow{color:var(--dark-green)}
.page-hero h1{font-size:36px;font-weight:800;color:var(--ink);line-height:1.15;letter-spacing:-0.01em;margin-bottom:14px}
.page-hero p{color:var(--muted);font-size:16px;max-width:620px}
.page-hero-dark{background:var(--ink)}
.page-hero-dark .blob{display:none}
.page-hero-dark .eyebrow{color:var(--mid-green)}
.page-hero-dark h1{color:#fff}
.page-hero-dark p{color:rgba(255,255,255,0.7)}

.hero{padding:96px 0 150px;position:relative;overflow:hidden}
.hero .blob.b1{width:520px;height:520px;background:var(--mid-green);top:-180px;right:-160px}
.hero .blob.b2{width:340px;height:340px;background:var(--sage);bottom:-140px;left:-110px}
.hero .blob.b3{width:180px;height:180px;background:var(--dark-green);top:60%;right:8%;opacity:0.3;border-radius:63% 37% 42% 58% / 53% 44% 56% 47%}
.hero .wrap{display:grid;grid-template-columns:1.1fr 0.9fr;gap:56px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--dark-green);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:20px}
.eyebrow::before{content:'';width:20px;height:2px;background:var(--dark-green)}
.hero h1{font-size:44px;font-weight:800;color:var(--ink);line-height:1.15;letter-spacing:-0.01em;margin-bottom:20px}
.hero h1 em{font-style:normal;color:var(--dark-green)}
.hero p{font-size:17px;color:var(--muted);max-width:460px;margin-bottom:32px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.btn-primary{background:var(--mid-green);color:var(--ink);padding:14px 26px;border-radius:16px 16px 16px 5px;font-weight:700;font-size:14px;border:none;display:inline-block}
.btn-secondary{border:1.5px solid var(--dark-green);color:var(--dark-green);padding:13px 24px;border-radius:16px 16px 16px 5px;font-weight:600;font-size:14px;background:transparent;display:inline-block}
.hero-visual{display:flex;align-items:center;justify-content:center;padding:20px;position:relative}
.hero-visual img{width:100%;max-width:320px;position:relative;z-index:1}

.wave-divider{position:relative;height:1px}
.wave-divider svg{display:block;width:100%;height:130px;margin-top:-1px}

.stats{background:var(--ink);color:#fff;padding:64px 0 60px;position:relative}
.stats .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;text-align:center}
.stats .num{font-family:'Poppins';font-size:34px;font-weight:700;color:var(--mid-green)}
.stats .lbl{font-size:13px;color:rgba(255,255,255,0.7);margin-top:4px}

.section{padding:88px 0;position:relative}
.section.tight{padding:56px 0}
.section-head{max-width:600px;margin-bottom:48px}
.section-head .eyebrow{color:var(--sage)}
.section-head h2{font-size:32px;font-weight:700;color:var(--ink);letter-spacing:-0.01em}
.section-head p{color:var(--muted);margin-top:12px;font-size:16px}

.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:start}
.card{background:#fff;border-radius:28px 28px 28px 8px;padding:28px 24px;border:1px solid rgba(21,53,38,0.08);box-shadow:0 8px 24px rgba(21,53,38,0.04)}
.card-icon{width:52px;height:52px;border-radius:60% 40% 55% 45% / 45% 55% 45% 55%;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.card-icon svg{width:26px;height:26px}
.card h3{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:8px}
.card p{font-size:14px;color:var(--muted);margin-bottom:14px}
.card-link{display:inline-flex;font-size:13px;font-weight:700;color:var(--dark-green);align-items:center;gap:4px}

.about{background:#fff;overflow:hidden;position:relative}
.about .blob{width:260px;height:260px;background:var(--sage);top:-80px;right:-80px;opacity:0.25}
.tabbar{display:flex;gap:8px;margin-bottom:32px;flex-wrap:wrap}
.tabbtn{background:var(--white);border:1px solid rgba(21,53,38,0.12);color:var(--ink);padding:10px 18px;border-radius:100px;font-size:13.5px;font-weight:600;opacity:0.6}
.tabbtn.active{background:var(--ink);color:#fff;opacity:1;border-color:var(--ink)}
.tabpanel{display:none}
.tabpanel.active{display:block}
.hist-top{display:grid;grid-template-columns:0.85fr 1.15fr;gap:56px;align-items:start;margin-bottom:64px}
.photo-box{aspect-ratio:1/1.05;border-radius:32px 32px 32px 8px;overflow:hidden;position:relative;background:var(--white)}
.photo-box img{width:100%;height:100%;object-fit:cover}
.about h2{font-size:28px;font-weight:700;color:var(--ink);margin-bottom:16px}
.about p{color:var(--muted);font-size:15.5px;margin-bottom:14px}
.quote{border-left:3px solid var(--mid-green);padding-left:20px;margin:24px 0;font-family:'Poppins';font-weight:600;font-size:16px;color:var(--ink)}

.timeline-wrap{position:relative}
.timeline{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;padding:26px 0 8px}
.timeline::-webkit-scrollbar{display:none}
.timeline-item{flex:0 0 200px;scroll-snap-align:start;padding:24px 20px 6px;position:relative}
.timeline-item::before{content:'';position:absolute;top:9px;left:0;right:0;height:2px;background:rgba(21,53,38,0.15);z-index:0}
.timeline-item:first-child::before{left:20px}
.timeline-item:last-child::before{right:20px}
.timeline-item .yr{font-family:'Poppins';font-weight:700;font-size:20px;color:var(--dark-green);position:relative;z-index:1}
.timeline-item .ev{font-size:13.5px;color:var(--muted);margin-top:4px;position:relative;z-index:1}
.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--mid-green);position:absolute;top:5px;left:20px;z-index:1}
.timeline-nav{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
.timeline-nav button{width:34px;height:34px;border-radius:10px;border:1px solid rgba(21,53,38,0.15);background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center}
.timeline-fade{position:absolute;top:0;bottom:0;width:48px;pointer-events:none;z-index:2}
.timeline-fade.left{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}
.timeline-fade.right{right:0;background:linear-gradient(-90deg,#fff,rgba(255,255,255,0))}

.orgaos-groups{display:flex;flex-direction:column;gap:44px;max-width:900px}
.orgaos-heading{font-family:'Poppins',sans-serif;font-size:13px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:var(--dark-green);margin-bottom:14px}
.orgaos-list{display:flex;flex-direction:column;gap:10px;list-style:none}
.orgaos-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--white);border-radius:14px;padding:14px 18px;border:1px solid rgba(21,53,38,0.08)}
.orgao-nome{font-size:14px;font-weight:600;color:var(--ink)}
.orgao-cargo{font-size:11px;font-weight:700;color:var(--muted);flex-shrink:0;text-transform:uppercase;letter-spacing:0.02em}
.orgaos-list-plain li{justify-content:flex-start}
.orgaos-list-plain .orgao-nome{font-weight:500}
.orgaos-note{font-size:12.5px;color:var(--muted);margin-top:14px;font-style:italic}

.orgaos-grid{display:flex;flex-wrap:wrap;gap:18px;list-style:none}
.orgao-card{text-align:center;width:150px}
.orgao-card .photo-box{aspect-ratio:1/1;border-radius:26px 26px 26px 8px;margin-bottom:10px;position:relative}
.orgao-role-overlay{position:absolute;left:0;right:0;bottom:0;padding:18px 6px 7px;background:linear-gradient(to top,rgba(21,53,38,0.88),rgba(21,53,38,0));color:#fff;font-size:11px;font-weight:700;line-height:1.2;text-transform:uppercase;letter-spacing:0.02em}
.orgao-card h4{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.25}

.team-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;list-style:none}
.team-list li{display:flex;align-items:center;gap:12px;background:var(--white);border-radius:14px;padding:12px 16px;border:1px solid rgba(21,53,38,0.08)}
.team-avatar{width:36px;height:36px;border-radius:11px 11px 11px 4px;background:rgba(21,53,38,0.06);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.team-avatar svg{width:17px;height:17px}
.team-nome{font-size:13.5px;font-weight:600;color:var(--ink)}
.team-funcao{font-size:12px;color:var(--muted)}
.team-info{display:flex;flex-direction:column;gap:1px;min-width:0}

.doc-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:900px}
.doc-column .orgaos-heading{margin-bottom:14px}
.doc-list{display:flex;flex-direction:column;gap:10px}
.doc-item{display:flex;align-items:center;gap:14px;background:var(--white);border-radius:14px;padding:14px 18px;border:1px solid rgba(21,53,38,0.08)}
.doc-item .doc-ic{width:36px;height:36px;border-radius:10px;background:rgba(21,53,38,0.08);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.doc-item .doc-ic svg{width:16px;height:16px}
.doc-item .doc-name{font-size:14px;font-weight:600;color:var(--ink);flex:1}
.doc-item .doc-meta{font-size:12px;color:var(--muted)}
.doc-note{font-size:12.5px;color:var(--muted);margin-top:14px;font-style:italic}

.ajudar{background:var(--white);position:relative;overflow:hidden}
.ajudar .blob{width:280px;height:280px;background:var(--mid-green);bottom:-100px;left:-90px;opacity:0.22}
.ajudar-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.ajudar-card{background:#fff;border-radius:28px 28px 28px 8px;overflow:hidden;border:1px solid rgba(21,53,38,0.08);display:flex;flex-direction:column}
.ajudar-card .band{background:var(--ink);padding:26px 28px;display:flex;align-items:center;gap:16px;position:relative;overflow:hidden}
.ajudar-card .band .blob{opacity:0.5}
.ajudar-card:nth-child(1) .band .blob{animation:blobFloat 14s ease-in-out infinite}
.ajudar-card:nth-child(2) .band .blob{animation:blobFloat2 17s ease-in-out infinite;animation-delay:-4s}
.ajudar-card:nth-child(3) .band .blob{animation:blobFloat3 20s ease-in-out infinite;animation-delay:-9s}
.ajudar-card:nth-child(4) .band .blob{animation:blobFloat4 12s ease-in-out infinite;animation-delay:-2s}
.ajudar-card .card-icon{margin-bottom:0;position:relative;z-index:1;flex-shrink:0;background:rgba(255,255,255,0.15) !important}
.ajudar-card .card-icon svg,.ajudar-card .card-icon svg *{stroke:#fff !important}
.ajudar-card .band h3{font-size:17px;font-weight:700;color:#fff;position:relative;z-index:1;margin:0}
.ajudar-card .body{padding:22px 28px 26px}
.ajudar-card .body p{font-size:14px;color:var(--muted);margin:0}
.ajudar-card .body p+p{margin-top:10px}

.registo{background:#fff;border-top:1px solid rgba(21,53,38,0.08);border-bottom:1px solid rgba(21,53,38,0.08)}
.registo-box{background:var(--ink);border-radius:32px 32px 32px 8px;padding:48px;display:grid;grid-template-columns:0.9fr 1.1fr;gap:48px;color:#fff;position:relative;overflow:hidden}
.registo-box .blob{width:300px;height:300px;background:var(--mid-green);top:-120px;right:-100px;opacity:0.18}
.registo-box .eyebrow{color:var(--mid-green)}
.registo-box h2{font-size:28px;font-weight:700;margin-bottom:14px}
.registo-box p{color:rgba(255,255,255,0.7);font-size:15px;margin-bottom:20px}
.reg-form label{font-size:12px;color:rgba(255,255,255,0.6);display:block;margin-bottom:6px}
.reg-form input,.reg-form select,.reg-form textarea{width:100%;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);border-radius:12px;padding:11px 14px;color:#fff;font-family:inherit;font-size:14px;margin-bottom:16px}
.reg-form input[type=file]{padding:9px 14px;font-size:13px;color:rgba(255,255,255,0.85)}
.reg-form input[type=file]::-webkit-file-upload-button{background:var(--mid-green);color:var(--ink);border:none;border-radius:8px;padding:6px 12px;font-weight:700;font-size:12.5px;margin-right:10px;cursor:pointer}
.reg-form input::placeholder,.reg-form textarea::placeholder{color:rgba(255,255,255,0.35)}
.reg-form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.reg-form .consent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:rgba(255,255,255,0.7);margin-bottom:16px}
.reg-form .consent span{flex:1;line-height:1.5}
.reg-form .consent input[type=checkbox]{width:16px;height:16px;min-width:16px;padding:0;margin:2px 0 0;border-radius:4px;background:rgba(255,255,255,0.15);flex-shrink:0;accent-color:var(--mid-green)}
.reg-form button{width:100%;background:var(--mid-green);color:var(--ink);border:none;padding:14px;border-radius:16px 16px 16px 5px;font-weight:700;font-size:14px}

.contact{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.contact .blob{width:400px;height:400px;background:var(--dark-green);bottom:-160px;left:-140px;opacity:0.35}
.contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;padding-top:48px;padding-bottom:96px}
.contact .eyebrow{color:var(--mid-green)}
.contact h2{font-size:30px;font-weight:700;margin-bottom:16px}
.contact p{color:rgba(255,255,255,0.7);font-size:15.5px;margin-bottom:32px;max-width:400px}
.contact-list{display:flex;flex-direction:column;gap:18px}
.contact-item{display:flex;gap:14px;align-items:flex-start}
.contact-item .ic{width:36px;height:36px;border-radius:10px 10px 10px 3px;background:rgba(255,255,255,0.1);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact-item .ic svg{width:17px;height:17px}
.contact-item .lbl{font-size:12px;color:rgba(255,255,255,0.55);margin-bottom:2px}
.contact-item .val{font-size:14.5px;font-weight:500}
.form{background:rgba(255,255,255,0.06);border-radius:28px 28px 28px 8px;padding:32px;border:1px solid rgba(255,255,255,0.1)}
.form label{font-size:12px;color:rgba(255,255,255,0.6);display:block;margin-bottom:6px}
.form input,.form select,.form textarea{width:100%;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);border-radius:12px;padding:11px 14px;color:#fff;font-family:inherit;font-size:14px;margin-bottom:16px}
.form input::placeholder,.form textarea::placeholder{color:rgba(255,255,255,0.35)}
.form .consent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:rgba(255,255,255,0.7);margin-bottom:16px}
.form .consent span{flex:1;line-height:1.5}
.form .consent input[type=checkbox]{width:16px;height:16px;min-width:16px;padding:0;margin:2px 0 0;border-radius:4px;background:rgba(255,255,255,0.15);flex-shrink:0;accent-color:var(--mid-green)}
.form button{width:100%;background:var(--mid-green);color:var(--ink);border:none;padding:14px;border-radius:16px 16px 16px 5px;font-weight:700;font-size:14px}
.contact-col{display:flex;flex-direction:column}
#denuncias,#reclamacoes,#trabalhe-connosco{scroll-margin-top:var(--header-h,73px)}
.denuncia-bar{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:20px 20px 20px 8px;padding:24px 28px;margin-top:40px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.denuncia-bar .txt{max-width:640px}
.denuncia-bar h3{font-size:15px;color:#fff;margin-bottom:6px}
.denuncia-bar p{font-size:13.5px;color:rgba(255,255,255,0.7);margin:0}
.denuncia-bar a{background:var(--mid-green);color:var(--ink);padding:10px 20px;border-radius:12px 12px 12px 4px;font-size:13px;font-weight:700;white-space:nowrap}
.form.contact-col textarea{flex:1;min-height:110px}
.form.contact-col textarea{flex:1;min-height:110px}

/* VALENCIA PAGE SPECIFIC */
.valencia-hero{padding:56px 0 40px;position:relative;overflow:hidden}
.valencia-hero .blob{width:320px;height:320px;top:-120px;right:-100px;opacity:0.25}
.valencia-meta{display:flex;gap:28px;flex-wrap:wrap;margin-top:24px}
.meta-item{font-size:13.5px}
.meta-item .lbl{color:var(--muted);display:block;font-size:12px;margin-bottom:2px}
.meta-item .val{font-weight:700;color:var(--ink)}

.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gallery-item{aspect-ratio:1;border-radius:20px 20px 20px 6px;overflow:hidden;background:var(--white);position:relative;cursor:zoom-in}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.gallery-item::after{content:"";position:absolute;inset:0;background:rgba(21,53,38,0);transition:background .2s}
.gallery-item:hover::after{background:rgba(21,53,38,0.18)}
.gallery-item:hover img{transform:scale(1.05)}

.lightbox{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;background:rgba(21,53,38,0.94);padding:24px}
.lightbox.open{display:flex}
.lightbox img{max-width:min(88vw,1100px);max-height:80vh;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,0.4);object-fit:contain}
.lightbox-close,.lightbox-nav{position:absolute;border:none;border-radius:50%;background:rgba(255,255,255,0.1);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .2s}
.lightbox-close:hover,.lightbox-nav:hover{background:rgba(255,255,255,0.22)}
.lightbox-close{top:20px;right:20px;width:44px;height:44px}
.lightbox-close svg{width:18px;height:18px}
.lightbox-nav{top:50%;transform:translateY(-50%);width:52px;height:52px}
.lightbox-nav svg{width:20px;height:20px}
.lightbox-prev{left:20px}
.lightbox-next{right:20px}
.lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,0.7);font-size:13px;letter-spacing:0.02em}
@media(max-width:640px){
  .lightbox{padding:12px}
  .lightbox-nav{width:42px;height:42px}
  .lightbox-nav svg{width:16px;height:16px}
  .lightbox-prev{left:6px}
  .lightbox-next{right:6px}
  .lightbox-close{top:10px;right:10px;width:38px;height:38px}
}

.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.team-card{background:#fff;border:1px solid rgba(21,53,38,0.08);border-radius:20px;padding:20px;display:flex;gap:14px;align-items:center}
.team-card .avatar{width:52px;height:52px;border-radius:50%;background:var(--white);border:1.5px dashed rgba(21,53,38,0.2);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.team-card .avatar svg{width:20px;height:20px;opacity:0.3}
.team-card h4{font-size:14px;font-weight:700;color:var(--ink)}
.team-card .role{font-size:12px;color:var(--muted)}

.activity-list{display:flex;flex-direction:column;gap:14px}
.activity-item{display:flex;gap:16px;background:#fff;border:1px solid rgba(21,53,38,0.08);border-radius:16px;padding:18px 20px}
.activity-item .ic{width:40px;height:40px;border-radius:11px 11px 11px 3px;background:rgba(124,168,75,0.15);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.activity-item .ic svg{width:19px;height:19px}
.activity-item h4{font-size:14.5px;font-weight:700;color:var(--ink);margin-bottom:2px}
.activity-item p{font-size:13.5px;color:var(--muted)}

.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.step{background:#fff;border:1px solid rgba(21,53,38,0.08);border-radius:20px;padding:22px}
.step .num{font-family:'Poppins';font-weight:700;font-size:22px;color:var(--dark-green);margin-bottom:8px}
.step h4{font-size:14.5px;font-weight:700;color:var(--ink);margin-bottom:6px}
.step p{font-size:13px;color:var(--muted)}

.steps-flow{display:flex;align-items:flex-start;gap:2px}
.step-flow{flex:1;min-width:0;background:#fff;border:1px solid rgba(21,53,38,0.08);border-radius:20px;padding:22px}
.step-num-box{width:38px;height:38px;border-radius:11px 11px 11px 4px;background:rgba(124,168,75,0.18);color:var(--dark-green);display:flex;align-items:center;justify-content:center;font-family:'Poppins',sans-serif;font-weight:700;font-size:16px;margin-bottom:14px}
.step-flow h4{font-size:14.5px;font-weight:700;color:var(--ink);margin-bottom:6px}
.step-flow p{font-size:13px;color:var(--muted)}
.step-arrow{flex:0 0 auto;display:flex;align-items:center;padding-top:40px;color:rgba(21,53,38,0.22)}
.step-arrow svg{width:18px;height:18px}
@media(max-width:820px){
  .steps-flow{flex-direction:column;align-items:stretch;gap:6px}
  .step-arrow{padding-top:0;justify-content:center;padding:2px 0}
  .step-arrow svg{transform:rotate(90deg)}
}

.valencia-hero-photo{position:relative;height:420px;display:flex;align-items:flex-end;overflow:hidden}
.valencia-hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.valencia-hero-photo .overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,53,38,0.15) 0%,rgba(21,53,38,0.9) 100%);z-index:1}
.valencia-hero-photo .content{position:relative;z-index:2;color:#fff;padding-bottom:36px;width:100%}
.valencia-hero-photo .eyebrow{color:#fff;opacity:0.85}
.valencia-hero-photo .eyebrow::before{background:#fff}
.valencia-hero-photo h1{color:#fff;font-size:38px}
.valencia-hero-photo > .wrap p{color:rgba(255,255,255,0.85)}
.valencia-meta .lbl{color:rgba(255,255,255,0.6)}
.valencia-meta .val{color:#fff}

.valencia-switch{background:#fff;border-bottom:1px solid rgba(21,53,38,0.08);padding:18px 0}
.legal-subnav{background:rgba(255,255,255,0.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(21,53,38,0.08);padding:18px 0;position:sticky;top:var(--header-h,73px);z-index:10}
#privacidade,#cookies,#rgpd,#termos{scroll-margin-top:calc(var(--header-h,73px) + var(--subnav-h,64px))}
.switch-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.switch-item{display:flex;align-items:center;gap:10px;padding:12px 24px;border-radius:100px;border:1.5px solid rgba(21,53,38,0.1);font-size:14.5px;font-weight:600;color:var(--muted)}
.switch-item svg{width:19px;height:19px}
.switch-item.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.switch-item.active svg,.switch-item.active svg *{stroke:#fff !important}
.switch-item:hover:not(.active){border-color:var(--dark-green);color:var(--ink)}

.map-embed{border-radius:24px 24px 24px 8px;overflow:hidden;border:1px solid rgba(21,53,38,0.1);margin-top:20px}

.banner-photo{
  width:100%;height:280px;border-radius:28px 28px 28px 8px;overflow:hidden;
  background:#111;display:flex;align-items:center;justify-content:center;
}
.banner-photo img{width:100%;height:100%;object-fit:cover;display:block}
.banner-photo .ph-label{color:rgba(255,255,255,0.4);font-size:13px;font-family:'Poppins'}
@media(max-width:820px){.banner-photo{height:200px}}
.section.photo-section{padding:20px 0}
@media(max-width:520px){.section.photo-section{padding:14px 0}}
.map-embed iframe{width:100%;height:280px;border:0;display:block}

footer{background:#0F2A1D;color:rgba(255,255,255,0.55);padding:48px 0 24px;font-size:13px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;margin-bottom:28px}
.footer-grid h5{color:#fff;font-size:13px;margin-bottom:14px;font-family:'Poppins'}
.footer-grid ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.footer-grid ul a{font-size:13px;color:rgba(255,255,255,0.6)}
.footer-grid ul a:hover{color:#fff}
.footer-logo img{height:38px;margin-bottom:14px}
.social-row{display:flex;gap:10px;margin-top:16px}
.social-row a{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,0.08);display:flex;align-items:center;justify-content:center}
.social-row a:hover{background:rgba(255,255,255,0.16)}
.social-row svg{width:16px;height:16px}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1);padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12.5px}
.footer-legal{display:flex;gap:16px;flex-wrap:wrap}
.footer-legal a{color:rgba(255,255,255,0.55)}
.footer-legal a:hover{color:#fff}

.hamburger{display:none;width:40px;height:40px;align-items:center;justify-content:center;background:none;border:none;color:var(--ink);flex-shrink:0}
.hamburger svg{width:26px;height:26px}

.mobile-nav-backdrop{position:fixed;inset:0;background:rgba(21,53,38,0.28);backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);opacity:0;pointer-events:none;transition:opacity 0.35s ease,backdrop-filter 0.35s ease,-webkit-backdrop-filter 0.35s ease;z-index:98}
.mobile-nav-backdrop.open{opacity:1;pointer-events:auto;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}

.mobile-nav{
  position:fixed;top:0;right:-320px;height:100vh;width:min(300px,82vw);
  background:#fff;
  box-shadow:-10px 0 34px rgba(21,53,38,0.18);
  display:flex;flex-direction:column;gap:2px;
  padding:100px 28px 28px;
  transition:right 0.38s cubic-bezier(.32,.72,0,1);
  z-index:100;overflow-y:auto;
}
.mobile-nav.open{right:0}
.mobile-nav > a{font-size:16px;font-weight:600;color:var(--ink);padding:14px 6px;border-bottom:1px solid rgba(21,53,38,0.08)}
.mobile-nav > a.active{color:var(--dark-green)}
.mobile-nav > a.nav-cta{color:#fff !important;border-bottom:none}
.mnav-group{border-bottom:1px solid rgba(21,53,38,0.08)}
.mnav-label{display:block;font-size:16px;font-weight:600;color:var(--ink);padding:14px 6px}
.mnav-sub{display:flex;flex-direction:column;padding-left:14px;padding-bottom:10px}
.mnav-sub a{font-size:14.5px;color:var(--muted);padding:9px 6px}

@media(max-width:820px),(max-width:1024px) and (orientation:portrait){
  .hero .wrap,.contact .wrap,.registo-box{grid-template-columns:1fr}
  .hist-top{gap:32px}
  .cards,.ajudar-grid,.team-grid,.steps{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .doc-columns{grid-template-columns:1fr;gap:28px}
  .footer-grid{grid-template-columns:1fr 1fr}
  nav ul{display:none}
  .desktop-only{display:none}
  .hamburger{display:flex}
  .brand-logo-img{height:29px}
  .nav{padding-top:18px;padding-bottom:18px}
  header{background:var(--white)}
  .hero h1{font-size:32px}
  .reg-form .row{grid-template-columns:1fr}
  .valencia-hero-photo{height:auto;min-height:400px}
  .valencia-hero-photo .content{padding-bottom:28px;padding-top:80px}
  .valencia-hero-photo h1{font-size:28px}
  .valencia-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
  .switch-row{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:4px;-webkit-mask-image:linear-gradient(to right,#000 82%,transparent 100%);mask-image:linear-gradient(to right,#000 82%,transparent 100%)}
  .switch-row::-webkit-scrollbar{display:none}
  .switch-item{flex-shrink:0}
  .map-embed iframe{height:220px}
  .doc-item{flex-wrap:wrap}
  .hero-visual{padding:0 0 16px}
  .hero-visual img{max-width:clamp(140px,30vw,240px)}
  .hero .blob.b1{width:280px;height:280px;top:-100px;right:-90px}
  .hero .blob.b2{width:200px;height:200px}
  .hero .blob.b3{display:none}
}

@media(max-width:640px){
  .hist-top{grid-template-columns:1fr}
  .stats .wrap{grid-template-columns:1fr}
  .valencia-meta{gap:16px}
  .footer-grid{grid-template-columns:1fr;text-align:center}
  .footer-logo img{margin:0 auto 14px}
  .footer-grid > div:first-child p{margin:0 auto 14px;max-width:280px}
  .social-row{justify-content:center}
  .footer-bottom{flex-direction:column;align-items:center;text-align:center}
  .denuncia-bar{flex-direction:column;align-items:flex-start}
  .denuncia-bar a{align-self:flex-start}
  .valencia-hero-photo{min-height:340px}
  .page-hero h1{font-size:28px}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions a{text-align:center}
}

@media(max-width:520px){
  .cards,.ajudar-grid,.team-grid,.steps{grid-template-columns:1fr}
  .orgaos-grid{display:grid;grid-template-columns:1fr 1fr}
  .orgao-card{width:auto}
  .team-list{grid-template-columns:1fr}
  .orgaos-list li{flex-direction:column;align-items:flex-start;gap:2px}
  .wrap{padding-left:20px;padding-right:20px}
  .section{padding:56px 0}
  .hero{padding:56px 0 100px}
  .stats{padding:40px 0}
  .registo-box{padding:28px}
}

/* PHONE LANDSCAPE (identified by short viewport height, works regardless of exact width) */
@media(orientation:landscape) and (max-height:500px){
  header .wrap{padding-left:40px;padding-right:40px}
  .nav{padding-bottom:18px}
  .brand-logo-img{height:24px}
}

/* --- Formulários: campo honeypot (anti-spam, invisível) e mensagem de estado --- */
.hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:16px 16px 16px 5px;font-size:13.5px;line-height:1.5;margin-bottom:18px}
.form-status svg{width:20px;height:20px;flex-shrink:0;margin-top:1px}
.form-status.ok{background:rgba(124,168,75,0.16);border:1px solid rgba(124,168,75,0.4);color:#fff}
.form-status.ok svg{color:var(--mid-green)}
.form-status.error{background:rgba(214,103,103,0.16);border:1px solid rgba(214,103,103,0.4);color:#fff}
.form-status.error svg{color:#E68080}

/* --- Aviso de cookies --- */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:300;background:var(--ink);border-top:1px solid rgba(255,255,255,0.12);padding:18px 24px;box-shadow:0 -8px 24px rgba(0,0,0,0.18)}
.cookie-banner[hidden]{display:none}
.cookie-banner-inner{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cookie-banner p{color:rgba(255,255,255,0.82);font-size:13.5px;line-height:1.5;margin:0;flex:1;min-width:240px}
.cookie-banner a{color:var(--mid-green)}
.cookie-banner-actions{display:flex;gap:10px;flex-shrink:0}
.cookie-banner-actions button{padding:10px 18px;font-size:13px;border-radius:16px 16px 16px 5px;font-weight:700;cursor:pointer}
.cookie-banner-actions .btn-recusar{background:transparent;border:1.5px solid rgba(255,255,255,0.3);color:#fff}
.cookie-banner-actions .btn-aceitar{background:var(--mid-green);border:none;color:var(--ink)}
@media(max-width:640px){
  .cookie-banner{padding:16px}
  .cookie-banner-inner{flex-direction:column;align-items:stretch}
  .cookie-banner-actions{justify-content:stretch}
  .cookie-banner-actions button{flex:1}
}

/* Placeholder do mapa (Contactos) enquanto não há consentimento de cookies */
.map-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:32px 24px;background:rgba(255,255,255,0.04);border:1px dashed rgba(255,255,255,0.22);border-radius:16px;min-height:260px}
.map-placeholder[hidden]{display:none}
.map-placeholder svg{width:32px;height:32px;color:rgba(255,255,255,0.4)}
.map-placeholder p{color:rgba(255,255,255,0.7);font-size:13.5px;max-width:300px;margin:0}
.map-placeholder .btn-primary{padding:10px 18px;font-size:13px}
.map-placeholder .map-link{font-size:12.5px;color:rgba(255,255,255,0.65)}
.map-embed iframe[hidden]{display:none}

/* --- Página de erro 404 --- */
.error-hero{padding:72px 0 100px;position:relative;overflow:hidden;min-height:calc(100vh - 420px)}
.error-hero .blob.b1{width:420px;height:420px;background:var(--mid-green);opacity:.12;top:-160px;right:-140px}
.error-hero .blob.b2{width:300px;height:300px;background:var(--sage);opacity:.16;bottom:-120px;left:-100px;animation-duration:20s;animation-delay:-4s}
.error-digits{display:flex;align-items:center;gap:0.02em;font-family:'Poppins',sans-serif;font-weight:800;font-size:clamp(96px,18vw,180px);color:var(--ink);line-height:1;letter-spacing:-0.02em;user-select:none}
.error-digits .zero{position:relative;width:0.58em;height:0.78em;flex-shrink:0}
.error-zero-ring{position:absolute;inset:0;background:var(--mid-green);border-radius:58% 42% 63% 37% / 41% 51% 49% 59%;animation:zeroFloat 18s ease-in-out infinite}
.error-zero-hole{position:absolute;top:24%;left:23%;width:54%;height:52%;background:var(--white);border-radius:52% 48% 46% 54% / 45% 55% 45% 55%}
@keyframes zeroFloat{
  0%{transform:translate(0,0) rotate(0deg) scale(1)}
  50%{transform:translate(2px,-2px) rotate(0.8deg) scale(1.008)}
  100%{transform:translate(0,0) rotate(0deg) scale(1)}
}
.error-hero h1{font-size:32px;font-weight:700;color:var(--ink);line-height:1.2;letter-spacing:-0.01em;margin:36px 0 14px;max-width:620px}
.error-hero p{color:var(--muted);font-size:16px;max-width:480px;margin:0 0 32px}
.error-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
@media (prefers-reduced-motion: reduce){ .error-zero-ring{animation:none} }
@media(max-width:640px){
  .error-hero{padding:44px 0 64px}
  .error-digits{font-size:clamp(72px,24vw,120px)}
  .error-hero h1{font-size:24px}
  .error-actions{flex-direction:column;align-items:stretch}
  .error-actions a{text-align:center}
}
