/* =====================================================================
   portoliberal-theme — style.css
   Núcleo do Porto da Iniciativa Liberal
   Minimalist, clean design — inspired by Matosinhos Liberal reference.
   Montserrat font, flat surfaces, thin borders, restrained typography.
   Plain CSS custom properties. No preprocessors, no build step.
   ===================================================================== */

/* ---------- Custom properties ---------- */
:root{
  --color-il-blue:#00548F;
  --color-il-cyan:#00AEEF;
  --color-il-dark:#002F5F;
  --color-il-red:#E30613;
  --color-white:#FFFFFF;
  --color-light:#F8FBFD;
  --color-sky:#EAF8FF;
  --color-text:#1A2B3D;
  --color-muted:#6B7B8C;
  --color-border:#E8EDF2;
  --radius-card:8px;
  --radius-sm:6px;
  --shadow-card:none;
  --shadow-soft:0 1px 3px rgba(0,0,0,.04);
  --maxw:1200px;
  --font-body:Montserrat,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

/* ---------- Modern reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
*{margin:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.6;
  color:var(--color-text);
  background:var(--color-white);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
html,body{overflow-x:hidden;}
img,picture,video,canvas,svg{display:block;max-width:100%;height:auto;}
input,button,textarea,select{font:inherit;color:inherit;}
button{cursor:pointer;background:none;border:none;}
a{color:var(--color-il-blue);text-decoration:none;}
a:hover{text-decoration:underline;}
ul,ol{padding-left:1.25rem;}
h1,h2,h3,h4,h5,h6{line-height:1.2;font-weight:700;letter-spacing:0;}
h1{font-size:clamp(1.75rem,3.5vw,2.5rem);}
h2{font-size:clamp(1.375rem,2.5vw,1.75rem);}
h3{font-size:1.0625rem;}
p{margin:0 0 1rem;}
hr{border:none;border-top:1px solid var(--color-border);margin:2rem 0;}

/* ---------- Accessibility ---------- */
:focus-visible{
  outline:2px solid var(--color-il-cyan);
  outline-offset:2px;
  border-radius:4px;
}
.skip-link{
  position:absolute;left:1rem;top:-100px;z-index:1000;
  background:var(--color-il-dark);color:var(--color-white);
  padding:.75rem 1.25rem;border-radius:var(--radius-sm);
  font-weight:700;transition:top .2s ease;
}
.skip-link:focus{top:1rem;text-decoration:none;}
.visually-hidden{
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0;margin:-1px;
}
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0;margin:-1px;
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
}

/* ---------- Layout ---------- */
.container{
  width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:1.25rem;
}
.site-main{display:block;}
.content-area{
  max-width:var(--maxw);margin-inline:auto;padding:2.5rem 1.25rem;
}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:saturate(180%) blur(10px);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--color-border);
}
.site-header__inner{
  max-width:var(--maxw);margin-inline:auto;
  padding:.85rem 1.25rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.site-brand{margin-right:auto;}
.site-nav{margin-left:auto;}
.site-header__cta{margin-left:.45rem;}
.site-brand{display:flex;flex-direction:column;line-height:1.1;}
.site-brand__link{text-decoration:none;}
.site-brand__name{
  font-weight:700;font-size:1.15rem;color:var(--color-il-dark);letter-spacing:0;
}
.site-brand__name strong{color:var(--color-il-cyan);}
.site-brand__tagline{font-size:.78rem;color:var(--color-muted);font-weight:500;}

/* ---------- Navigation ---------- */
.site-nav{position:relative;}
.site-nav__toggle{
  display:none;width:44px;height:44px;border-radius:var(--radius-sm);
  border:1px solid var(--color-border);background:var(--color-white);
  align-items:center;justify-content:center;
}
.site-nav__toggle-icon,
.site-nav__toggle span,
.site-nav__toggle span::before,
.site-nav__toggle span::after{
  content:"";display:block;width:20px;height:2px;
  background:var(--color-il-dark);border-radius:2px;transition:transform .2s ease;
}
.site-nav__toggle span{position:relative;}
.site-nav__toggle span::before{position:absolute;top:-6px;}
.site-nav__toggle span::after{position:absolute;top:6px;}
.site-nav.is-open .site-nav__toggle span{background:transparent;}
.site-nav.is-open .site-nav__toggle span::before{transform:translateY(6px) rotate(45deg);}
.site-nav.is-open .site-nav__toggle span::after{transform:translateY(-6px) rotate(-45deg);}
.site-nav__menu{
  display:flex;align-items:center;gap:.35rem;list-style:none;padding:0;margin:0;
}
.site-nav__menu a{
  display:block;padding:.5rem .85rem;border-radius:var(--radius-sm);
  color:var(--color-il-dark);font-weight:600;font-size:.95rem;
  transition:background-color .2s ease,color .2s ease;
}
.site-nav__dropdown-toggle{
  display:flex;align-items:center;gap:.35rem;padding:.5rem .85rem;border-radius:var(--radius-sm);
  color:var(--color-il-dark);font-weight:600;font-size:.95rem;
  transition:background-color .2s ease,color .2s ease;
}
.site-nav__menu>.menu-item-has-children>a{display:flex;align-items:center;gap:.35rem;}
.site-nav__menu a:hover,
.site-nav__dropdown-toggle:hover{background:var(--color-light);text-decoration:none;}
.site-nav__menu .current-menu-item>a,
.site-nav__menu .current_page_item>a{color:var(--color-il-blue);background:var(--color-sky);}
.site-nav__menu .menu-item--cta{display:none;}
.site-nav__menu .menu-item-has-children{position:relative;}
.site-nav__menu .sub-menu{
  position:absolute;top:calc(100% + .45rem);left:0;z-index:120;
  min-width:230px;list-style:none;margin:0;padding:.45rem;
  background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-card);
  box-shadow:0 14px 34px rgba(0,47,95,.10);
  opacity:0;visibility:hidden;transform:translateY(-4px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}
.site-nav__menu .menu-item-has-children:hover>.sub-menu,
.site-nav__menu .menu-item-has-children:focus-within>.sub-menu,
.site-nav__menu .menu-item-has-children.is-open>.sub-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}
.site-nav__menu .sub-menu a{padding:.58rem .7rem;font-size:.88rem;border-radius:var(--radius-sm);}

/* ---------- Footer ---------- */
.site-footer{background:var(--color-il-dark);color:var(--color-white);margin-top:4rem;}
.site-footer__cols{
  max-width:var(--maxw);margin-inline:auto;padding:3rem 1.25rem 2rem;
  display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem;
}
.site-footer__col--brand .site-footer__title{font-weight:700;}
.site-footer__heading,
.site-footer__col h2,
.site-footer__col h3,
.site-footer__col h4{
  font-size:.85rem;text-transform:uppercase;letter-spacing:0;
  color:var(--color-il-cyan);margin-bottom:.85rem;font-weight:700;
}
.site-footer__col a{color:rgba(255,255,255,.82);}
.site-footer__col a:hover{color:var(--color-white);}
.site-footer__col ul{list-style:none;padding:0;}
.site-footer__col li{margin-bottom:.4rem;}
.site-footer__motto{font-style:italic;color:rgba(255,255,255,.7);}
.site-footer__note{font-size:.85rem;color:rgba(255,255,255,.6);}
.site-footer__bottom{
  border-top:1px solid rgba(255,255,255,.15);padding:1.1rem 1.25rem;
  max-width:var(--maxw);margin-inline:auto;
  display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;
  font-size:.85rem;color:rgba(255,255,255,.7);
}
.site-footer__bottom a{color:rgba(255,255,255,.82);}
.site-footer__bottom a:hover{color:var(--color-white);}
.site-footer__nav{list-style:none;padding:0;}

/* ---------- Hero ---------- */
.hero{
  background:linear-gradient(135deg,var(--color-il-dark),var(--color-il-blue));
  color:var(--color-white);padding:2.5rem 1.25rem;
  max-width:100%;overflow:hidden;
}
.hero--home{padding:3.5rem 1.25rem;}
.hero__inner{
  max-width:var(--maxw);margin-inline:auto;
  display:flex;flex-direction:column;align-items:flex-start;gap:1rem;
}
.hero--home .hero__inner{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);
  align-items:center;gap:2.5rem;
}
.hero__copy{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;}
.hero__copy,
.home-positioning__intro,
.entry-content{min-width:0;}
.hero__eyebrow{
  display:inline-block;font-size:.8rem;font-weight:600;
  text-transform:uppercase;color:var(--color-il-cyan);
}
.hero__title{
  font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:700;
  letter-spacing:0;line-height:1.2;
  overflow-wrap:break-word;
}
.hero__subtitle{
  font-size:1.0625rem;font-weight:400;max-width:60ch;
  color:rgba(255,255,255,.88);
}
.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;}
.hero__visual{
  position:relative;min-height:340px;display:grid;place-items:center;
}
.hero__visual img{
  width:min(100%,520px);
}

/* ---------- Sections ---------- */
.section{padding:3rem 1.25rem;}
.section--light{background:var(--color-light);}
.section--dark{background:var(--color-il-dark);color:var(--color-white);}
.section--dark a{color:var(--color-il-cyan);}
.section__inner{max-width:var(--maxw);margin-inline:auto;}
.section__head{max-width:var(--maxw);margin:0 auto 2rem;text-align:center;}
.section__head--left{margin-inline:0;text-align:left;}
.section__head--left .section__lead{margin-inline:0;}
.section__title{margin-bottom:.6rem;color:var(--color-il-dark);}
.section--dark .section__title{color:var(--color-white);}
.section__lead{font-size:1rem;color:var(--color-muted);max-width:60ch;margin-inline:auto;}
.section--dark .section__lead{color:rgba(255,255,255,.82);}
.section__more{text-align:center;margin-top:2rem;}

/* ---------- Card grids ---------- */
.card-grid{
  display:grid;gap:1.5rem;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  max-width:var(--maxw);margin-inline:auto;
}
.card-grid > .card,
.card-grid > .card--cta,
.card-grid > .issue-card,
.card-grid > .person-card{max-width:400px;justify-self:center;width:100%;}
.card-grid--2{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));}
.card-grid--3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));}
.card-grid--4{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));}

/* ---------- Cards ---------- */
.card{
  position:relative;display:flex;flex-direction:column;height:100%;
  background:var(--color-white);border:1px solid var(--color-border);
  border-radius:var(--radius-card);overflow:hidden;
  transition:background-color .2s ease;
}
.card:hover{background:var(--color-light);}
.card__media-wrap{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--color-il-dark);}
.card__media-wrap--ph{background:var(--color-sky);}
.card__media{width:100%;height:100%;object-fit:cover;aspect-ratio:auto;}
.card__body{padding:1.25rem;display:flex;flex-direction:column;gap:.6rem;flex:1;}
.card__title{font-size:1.0625rem;font-weight:700;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.card__title a{color:var(--color-il-dark);}
.card__title a:hover{color:var(--color-il-blue);}
.card__text{color:var(--color-muted);font-size:.95rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.card__meta{font-size:.82rem;color:var(--color-muted);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.card__tag{
  display:inline-block;font-size:.72rem;font-weight:600;
  padding:.2rem .6rem;border-radius:4px;
  background:rgba(0,174,239,.12);color:var(--color-il-blue);
}
.card__link{position:static;inset:auto;z-index:auto;color:inherit;font-size:inherit;text-decoration:none;display:flex;flex-direction:column;height:100%;}
.card__link:hover{text-decoration:none;}
.card--cta{background:linear-gradient(135deg,var(--color-il-blue),var(--color-il-dark));color:#fff;border:none;}
.card--cta .card__title,.card--cta .card__text{color:#fff;}

/* ---------- Event card badge ---------- */
.card--event .card__body{position:relative;padding-top:2.5rem;}
.event-date-badge{
  position:absolute;top:1rem;left:1rem;z-index:2;
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  width:54px;height:60px;border-radius:var(--radius-sm);
  background:#fff;color:var(--color-il-dark);flex:none;line-height:1.1;
  border:1px solid var(--color-border);
}
.event-date-badge__day{font-size:1.25rem;font-weight:700;line-height:1;}
.event-date-badge__mon{font-size:.72rem;text-transform:uppercase;font-weight:600;color:var(--color-il-blue);}

/* ---------- Person card ---------- */
.person-card{
  position:relative;background:var(--color-white);border:1px solid var(--color-border);
  border-radius:var(--radius-card);
  padding:1rem;text-align:center;height:100%;
  transition:background-color .2s ease;
}
.person-card:hover{background:var(--color-light);}
.person-card--modal-trigger{cursor:pointer;}
.person-card__link{display:block;color:inherit;text-decoration:none;}
.person-card__link:hover{text-decoration:none;}
.person-card__photo-wrap{margin:0 auto 1rem;display:flex;justify-content:center;}
.person-card__photo{
  width:100px;height:100px;border-radius:50%;object-fit:cover;margin:0 auto;
  background:var(--color-light);
}
.person-card__photo--ph{display:block;}
.person-card__name{font-size:1rem;font-weight:700;color:var(--color-il-dark);}
.person-card__role{font-size:.875rem;color:var(--color-muted);}
.person-card__group{
  display:inline-block;margin:.4rem auto .25rem;
  font-size:.72rem;font-weight:600;padding:.2rem .65rem;border-radius:4px;
  background:rgba(0,174,239,.12);color:var(--color-il-blue);
}
.person-card__bio,.person-card__note{font-size:.8rem;color:var(--color-muted);margin-top:.4rem;}

/* ---------- People grid ---------- */
.people-section{padding:3rem 1.25rem;border-top:1px solid var(--color-border);}
.people-section:first-of-type{border-top:none;}
.people-section__head{max-width:var(--maxw);margin:0 auto 2rem;text-align:center;}
.people-grid{
  display:grid;gap:1.5rem;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  max-width:var(--maxw);margin-inline:auto;
}

/* ---------- Person list (alternating left/right rows) ---------- */
.person-list{
  display:flex;flex-direction:column;gap:1.5rem;
  max-width:var(--maxw);margin-inline:auto;
}
.person-list__item{
  display:flex;width:100%;
}
.person-list__item--right{
  flex-direction:row-reverse;
}

/* List-style card: horizontal photo + text */
.person-card--list{
  display:flex;align-items:center;gap:2rem;
  text-align:left;padding:1.5rem;
  width:100%;height:auto;
}
.person-list__item .person-card--list{
  flex:1;
}
.person-card--list .person-card__photo-wrap{
  margin:0;flex:none;
  width:160px;height:160px;
}
.person-card--list .person-card__photo{
  width:160px;height:160px;border-radius:var(--radius-card);
}
.person-card--list .person-card__info{
  flex:1;min-width:0;
}
.person-card--list .person-card__name{font-size:1.25rem;}
.person-card--list .person-card__role{font-size:1rem;}
.person-card--list .person-card__group{margin:.4rem 0 .25rem;}
.person-card--list .person-card__bio,
.person-card--list .person-card__note{font-size:.9rem;margin-top:.6rem;}

/* Homepage grid still works — cards stack vertically in narrow columns */
.card-grid .person-card--list{
  flex-direction:column;align-items:center;text-align:center;gap:1rem;
}
.card-grid .person-card--list .person-card__photo-wrap{
  width:120px;height:120px;
}
.card-grid .person-card--list .person-card__photo{
  width:120px;height:120px;border-radius:50%;
}
.card-grid .person-card--list .person-card__info{flex:none;}

/* ---------- Issue cards ---------- */
.issue-card{
  background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-card);
  padding:1.5rem;
  transition:background-color .2s ease;
}
.issue-card:hover{background:var(--color-light);}
.issue-card .icon-dot{
  display:inline-block;width:14px;height:14px;border-radius:50%;
  background:var(--color-il-cyan);margin-bottom:.75rem;
}

/* ---------- Buttons ---------- */
.btn,.plcore-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.7rem 1.35rem;border-radius:var(--radius-sm);font-weight:600;font-size:.95rem;
  border:2px solid transparent;text-decoration:none;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.btn--primary,.plcore-btn{background:var(--color-il-blue);color:#fff;border-color:var(--color-il-blue);}
.btn--primary:hover,.plcore-btn:hover{background:var(--color-il-dark);border-color:var(--color-il-dark);text-decoration:none;}
.btn--cyan{background:var(--color-il-cyan);color:#fff;border-color:var(--color-il-cyan);}
.btn--cyan:hover{background:#0096cf;border-color:#0096cf;text-decoration:none;}
.btn--ghost{background:transparent;border-color:var(--color-il-blue);color:var(--color-il-blue);}
.btn--ghost:hover{background:var(--color-il-blue);color:#fff;text-decoration:none;}
.btn--block{display:flex;width:100%;}
.btn--lg{padding:.85rem 1.75rem;font-size:1rem;}
.section--dark .btn--ghost,.hero .btn--ghost{border-color:rgba(255,255,255,.6);color:#fff;background:rgba(255,255,255,.08);}
.section--dark .btn--ghost:hover,.hero .btn--ghost:hover{background:#fff;color:var(--color-il-dark);border-color:#fff;text-decoration:none;}

/* ---------- Search form ---------- */
.search-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;}
.search-field{
  padding:.7rem .85rem;border-radius:var(--radius-sm);
  border:1px solid var(--color-border);background:#fff;
  font-size:.95rem;color:var(--color-text);flex:1;min-width:200px;
}
.search-field:focus{
  border-color:var(--color-il-cyan);
}
.search-submit{flex:0 0 auto;}

/* ---------- Filter bar ---------- */
.filter-bar{margin:0 auto 2rem;max-width:var(--maxw);}
.filter-bar__list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;
}
.filter-bar__btn{
  padding:.5rem 1.1rem;border-radius:var(--radius-sm);
  border:1px solid var(--color-border);background:#fff;
  color:var(--color-il-dark);font-weight:600;font-size:.875rem;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.filter-bar__btn:hover{border-color:var(--color-il-blue);color:var(--color-il-blue);}
.filter-bar__btn.is-active{background:var(--color-il-blue);color:#fff;border-color:var(--color-il-blue);}

/* ---------- CTA band ---------- */
.cta-band{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--color-il-dark),var(--color-il-blue));
  color:#fff;border-radius:var(--radius-card);
  padding:3rem 2rem;margin:3rem auto;max-width:var(--maxw);text-align:center;
}
.cta-band__inner{position:relative;z-index:1;}
.cta-band__title{font-size:clamp(1.375rem,2.5vw,1.75rem);font-weight:700;letter-spacing:0;margin-bottom:.6rem;}
.cta-band__text{color:rgba(255,255,255,.88);max-width:55ch;margin:0 auto 1.5rem;font-size:1rem;}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;}
.cta-band .btn--ghost{border-color:rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.08);}
.cta-band .btn--ghost:hover{background:#fff;color:var(--color-il-dark);border-color:#fff;text-decoration:none;}

/* ---------- Event meta ---------- */
.event-meta{display:flex;flex-wrap:wrap;gap:.4rem .9rem;font-size:.85rem;color:var(--color-muted);align-items:center;}
.event-meta__date,.event-meta__loc{display:inline-flex;align-items:center;gap:.35rem;}
.event-meta-list{max-width:760px;margin:0 auto 2rem;display:flex;flex-direction:column;gap:.75rem;}
.event-meta-row{
  display:flex;gap:1rem;align-items:baseline;
  padding:.5rem 0;border-bottom:1px solid var(--color-border);
}
.event-meta-row dt{font-weight:600;color:var(--color-il-dark);flex:0 0 100px;font-size:.875rem;}
.event-meta-row dd{font-size:.95rem;color:var(--color-text);}
.event-registration{margin-top:1.5rem;}
.event-cancelled{
  display:inline-block;padding:.35rem .75rem;border-radius:var(--radius-sm);
  background:rgba(227,6,19,.15);color:#fff;font-weight:600;font-size:.85rem;
  border:1px solid rgba(227,6,19,.4);
}

/* ---------- Person single ---------- */
.person-pelouros{list-style:disc;padding-left:1.25rem;margin-bottom:1.25rem;}
.person-lista{margin-bottom:1.25rem;font-size:.95rem;color:var(--color-muted);}
.person-lista strong{color:var(--color-il-dark);}

/* ---------- Entry / post ---------- */
.entry-header{max-width:760px;margin:0 auto 2rem;text-align:center;}
.entry-title{font-size:clamp(1.75rem,3.5vw,2.5rem);margin-bottom:.6rem;}
.entry-meta{font-size:.875rem;color:var(--color-muted);display:flex;flex-wrap:wrap;gap:.4rem .9rem;justify-content:center;}
.entry-content{
  max-width:760px;margin:0 auto;font-size:1rem;
}
.front-page .entry-content,
.home .entry-content{
  background:transparent;border:none;border-radius:0;
  padding:0;box-shadow:none;max-width:100%;
}
.entry-content > *+*{margin-top:1.25rem;}
.entry-content h2{margin-top:2rem;color:var(--color-il-dark);}
.entry-content h3{margin-top:1.5rem;color:var(--color-il-dark);}
.entry-content img{border-radius:var(--radius-sm);}
.entry-content blockquote,.entry-content .wp-block-quote{
  border-left:4px solid var(--color-il-cyan);
  padding:.5rem 0 .5rem 1.25rem;font-size:1.0625rem;font-style:italic;color:var(--color-il-dark);
}
.entry-content .wp-block-quote cite{display:block;margin-top:.5rem;font-size:.85rem;color:var(--color-muted);font-style:normal;}
.entry-content .wp-block-image{margin:1.5rem 0;}
.entry-content .wp-block-image img{width:100%;border-radius:var(--radius-sm);}
.entry-content .alignwide{max-width:960px;margin-inline:auto;}
.entry-content .alignfull{max-width:100vw;margin-inline:calc(50% - 50vw);}
.entry-content .wp-block-button .wp-block-button__link{
  display:inline-block;padding:.7rem 1.35rem;border-radius:var(--radius-sm);
  background:var(--color-il-blue);color:#fff;font-weight:600;
}
.entry-content .wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent;border:2px solid var(--color-il-blue);color:var(--color-il-blue);
}
.entry-footer{max-width:760px;margin:2rem auto 0;padding-top:1.5rem;border-top:1px solid var(--color-border);font-size:.875rem;color:var(--color-muted);}
.entry-cats,.entry-tags{margin-bottom:.3rem;}
.post-nav{max-width:760px;margin:2rem auto;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;}
.post-nav a{font-weight:600;color:var(--color-il-blue);}
.post-nav__prev,.post-nav__next{flex:1;}
.post-share{max-width:760px;margin:1.5rem auto;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;}
.post-share span{font-weight:600;font-size:.875rem;color:var(--color-muted);}
.post-share a{
  display:inline-flex;align-items:center;padding:.35rem .75rem;
  border-radius:var(--radius-sm);background:var(--color-light);font-size:.875rem;font-weight:500;color:var(--color-il-dark);
  transition:background-color .2s ease,color .2s ease;
}
.post-share a:hover{background:var(--color-il-blue);color:#fff;text-decoration:none;}
.page-links{margin-top:1.5rem;}
.entry-featured{margin:0 0 2rem;}
.entry-featured img,.entry-featured__img{
  width:100%;aspect-ratio:16/9;object-fit:cover;
  border-radius:var(--radius-card);
}
.person-photo{display:flex;justify-content:center;margin:0 0 2rem;}
.person-photo img,.person-photo__img{
  width:min(220px,70vw);aspect-ratio:1;object-fit:cover;
  border-radius:var(--radius-card);
}

/* ---------- Archive ---------- */
.archive-head{max-width:var(--maxw);margin:0 auto;padding:2.5rem 1.25rem 1rem;}
.archive-list{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem 3rem;display:flex;flex-direction:column;gap:1.25rem;}
.pagination{max-width:var(--maxw);margin:1rem auto 3rem;padding:0 1.25rem;display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap;}
.pagination a,.pagination span{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:42px;height:42px;padding:0 .6rem;border-radius:var(--radius-sm);
  border:1px solid var(--color-border);font-weight:600;font-size:.875rem;
}
.pagination .current{background:var(--color-il-blue);color:#fff;border-color:var(--color-il-blue);}

/* ---------- Legal ---------- */
.legal-content{max-width:760px;margin:0 auto;padding:2.5rem 1.25rem;}
.legal-content h2{margin-top:2rem;}
.legal-content ul,.legal-content ol{margin:0 0 1.25rem;padding-left:1.4rem;}

/* ---------- Contact ---------- */
.contact-info{display:flex;flex-direction:column;gap:.5rem;}
.contact-info__email{font-size:1.0625rem;font-weight:700;color:var(--color-il-blue);}
.contact-info__label{font-weight:400;color:var(--color-muted);font-size:.875rem;}
.social-links{display:flex;flex-wrap:wrap;gap:.75rem;list-style:none;padding:0;margin:0;}
.social-links__link{
  display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:var(--radius-sm);
  background:var(--color-light);color:var(--color-il-dark);font-weight:600;font-size:.875rem;
  transition:background-color .2s ease,color .2s ease;
}
.social-links__link:hover{background:var(--color-il-blue);color:#fff;text-decoration:none;}

/* ---------- Forms (plugin) ---------- */
.plcore-form{
  max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:1.1rem;
  background:#fff;padding:1.5rem;border:1px solid var(--color-border);
  border-radius:var(--radius-card);
}
.plcore-fieldset{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1.25rem;}
.plcore-fieldset legend{font-weight:700;color:var(--color-il-dark);padding:0 .5rem;font-size:.95rem;}
.plcore-field{display:flex;flex-direction:column;gap:.4rem;}
.plcore-field label{font-weight:600;font-size:.875rem;color:var(--color-il-dark);}
.plcore-field input[type=text],
.plcore-field input[type=email],
.plcore-field input[type=tel],
.plcore-field input[type=url],
.plcore-field input[type=date],
.plcore-field input[type=password],
.plcore-field textarea,
.plcore-field select{
  width:100%;padding:.7rem .85rem;border-radius:var(--radius-sm);
  border:1px solid var(--color-border);background:#fff;
  font-size:1rem;color:var(--color-text);
  transition:border-color .2s ease;
}
.plcore-field input:focus,
.plcore-field textarea:focus,
.plcore-field select:focus{
  border-color:var(--color-il-cyan);
}
.plcore-field textarea{min-height:120px;resize:vertical;}
.plcore-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}
.plcore-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem 1rem;}
.plcore-checkboxes label,
.plcore-consent label{display:flex;align-items:flex-start;gap:.5rem;font-weight:400;font-size:.875rem;}
.plcore-consent{padding:1rem;border-radius:var(--radius-sm);background:var(--color-light);border:1px solid var(--color-border);}
.plcore-privacy-note{font-size:.82rem;color:var(--color-muted);}
.plcore-actions{display:flex;gap:.75rem;flex-wrap:wrap;}
.plcore-form-notice{padding:.9rem 1.1rem;border-radius:var(--radius-sm);font-weight:600;font-size:.875rem;}
.plcore-form-notice--success,.plcore-form-notice-success{
  background:rgba(34,170,90,.12);color:#157347;border:1px solid rgba(34,170,90,.4);
}
.plcore-form-notice--error,.plcore-form-notice-error{
  background:rgba(227,6,19,.1);color:#b0050e;border:1px solid rgba(227,6,19,.35);
}
.plcore-hp{display:none!important;}
.cf-turnstile{margin:1rem 0;}

/* ---------- Misc ---------- */
.badge{
  display:inline-block;font-size:.72rem;font-weight:600;
  padding:.2rem .6rem;border-radius:4px;background:var(--color-il-blue);color:#fff;
}
.pill{
  display:inline-block;font-size:.78rem;font-weight:500;
  padding:.25rem .75rem;border-radius:4px;
  background:var(--color-light);color:var(--color-muted);border:1px solid var(--color-border);
}
.notice-muted{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.82rem;color:var(--color-muted);font-style:italic;
}
.notice-muted--block{
  display:block;max-width:860px;padding:1rem 1.2rem;
  margin:1rem 0 1.4rem;border-radius:var(--radius-sm);
  background:var(--color-sky);border:1px solid var(--color-border);
  color:#435971;font-style:normal;
}
.empty-state{
  text-align:center;padding:3rem 1.25rem;color:var(--color-muted);
  max-width:var(--maxw);margin:0 auto;
  border-radius:var(--radius-card);background:#fff;
  border:1px dashed var(--color-border);
}

/* ---------- Artigos ---------- */
.card--artigo .card__body{display:flex;flex-direction:column;gap:.6rem;}
.btn--sm{padding:.5rem 1rem;font-size:.875rem;}
.artigo-excerpt{font-size:1.0625rem;color:var(--color-muted);font-style:italic;margin-bottom:1.5rem;}
.artigo-cta{text-align:center;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--color-border);}
.artigo-cta__source{margin-top:.75rem;font-size:.875rem;color:var(--color-muted);}
.artigo-cta__source strong{color:var(--color-il-dark);}

/* ---------- Person modal ---------- */
.person-modal{
  position:fixed;inset:0;z-index:1000;
  display:none;align-items:center;justify-content:center;
  padding:1.25rem;
}
.person-modal--open{display:flex;}
.person-modal__backdrop{
  position:absolute;inset:0;
  background:rgba(0,47,95,.55);
  backdrop-filter:blur(2px);
}
.person-modal__dialog{
  position:relative;z-index:1;
  background:#fff;border-radius:var(--radius-card);
  box-shadow:var(--shadow-soft);
  max-width:720px;width:100%;max-height:85vh;overflow-y:auto;
  padding:2rem;
}
.person-modal__close{
  position:absolute;top:.75rem;right:.75rem;
  width:36px;height:36px;border-radius:50%;
  background:var(--color-light);border:none;
  font-size:1.5rem;color:var(--color-il-dark);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background-color .2s ease;
}
.person-modal__close:hover{background:var(--color-border);}
.person-modal__header{display:flex;gap:1.5rem;align-items:flex-start;margin-bottom:1.5rem;}
.person-modal__photo{
  width:120px;height:120px;border-radius:50%;object-fit:cover;
  flex:none;
}
.person-modal__info{flex:1;}
.person-modal__eyebrow{
  font-size:.75rem;font-weight:600;text-transform:uppercase;
  color:var(--color-il-cyan);margin-bottom:.25rem;
}
.person-modal__name{font-size:1.5rem;font-weight:700;color:var(--color-il-dark);margin-bottom:.25rem;}
.person-modal__role{font-size:.9375rem;color:var(--color-muted);margin-bottom:.5rem;}
.person-modal__group{
  display:inline-block;font-size:.72rem;font-weight:600;
  padding:.2rem .65rem;border-radius:4px;
  background:rgba(0,174,239,.12);color:var(--color-il-blue);
}
.person-modal__freguesia{font-size:.875rem;color:var(--color-muted);margin-top:.25rem;}
.person-modal__section{margin-bottom:1.5rem;}
.person-modal__heading{font-size:1rem;font-weight:700;color:var(--color-il-dark);margin-bottom:.5rem;}
.person-modal__list{list-style:disc;padding-left:1.25rem;}
.person-modal__list li{margin-bottom:.25rem;font-size:.9375rem;}
.person-modal__bio{font-size:.9375rem;line-height:1.6;color:var(--color-text);}
.person-modal__bio p{margin-bottom:.75rem;}
.person-modal__loading{padding:3rem;text-align:center;color:var(--color-muted);}
body.modal-open{overflow:hidden;}

@media (max-width:600px){
  .person-modal__header{flex-direction:column;align-items:center;text-align:center;}
  .person-modal__info{text-align:center;}
  .person-modal__dialog{padding:1.25rem;}
}

/* ---------- Responsive ---------- */

/* <= 1100px */
@media (max-width:1100px){
  .site-footer__cols{grid-template-columns:1fr 1fr;}
  .card-grid--4{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
}

/* <= 860px : hamburger nav */
@media (max-width:860px){
  .site-nav__toggle{display:inline-flex;}
  .site-nav__menu .menu-item--cta{display:block;}
  .site-nav__menu .menu-item--cta>a{
    background:var(--color-il-blue);color:#fff;text-align:center;margin-top:.35rem;
  }
  .site-nav__menu{
    position:absolute;top:calc(100% + .5rem);right:0;
    flex-direction:column;align-items:stretch;gap:0;width:min(280px,80vw);
    background:#fff;border:1px solid var(--color-border);
    border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:.5rem;
    transform:translateY(-8px);opacity:0;visibility:hidden;
    transition:transform .2s ease,opacity .2s ease,visibility .2s ease;
  }
  .site-nav.is-open .site-nav__menu{transform:translateY(0);opacity:1;visibility:visible;}
  .site-nav__menu a{padding:.75rem .85rem;border-radius:var(--radius-sm);}
  .hero--home .hero__inner{grid-template-columns:1fr;gap:1.5rem;}
  .hero__visual{min-height:200px;}
  .plcore-grid-2{grid-template-columns:1fr;}
  .person-modal__dialog{padding:1.5rem;max-width:100%;}
}

/* <= 600px */
@media (max-width:600px){
  .section,.people-section,.content-area,.archive-head{padding:2rem 1.25rem;}
  .hero{padding:2rem 1.25rem;}
  .hero--home{padding:2.5rem 1.25rem;}
  .cta-band{padding:2rem 1.25rem;margin:2rem 1.25rem;}
  .cta-band__actions{flex-direction:column;align-items:stretch;}
  .cta-band__actions .btn,.cta-band__actions .plcore-btn{width:100%;justify-content:center;}
  .site-footer__cols{grid-template-columns:1fr;gap:1.5rem;}
  .site-footer__bottom{flex-direction:column;align-items:flex-start;}
  .card-grid,.card-grid--2,.card-grid--3,.card-grid--4{grid-template-columns:1fr;}
  .people-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}
  .person-list__item,.person-list__item--right{flex-direction:column;}
  .person-card--list{flex-direction:column;align-items:center;text-align:center;gap:1rem;}
  .person-card--list .person-card__photo-wrap{width:120px;height:120px;}
  .person-card--list .person-card__photo{width:120px;height:120px;border-radius:50%;}
  .person-card--list .person-card__info{flex:none;text-align:center;}
  .post-nav{flex-direction:column;}
  .entry-content .alignwide{max-width:100%;}
  .entry-content .alignfull{max-width:100%;margin-inline:0;}
  .plcore-form{padding:1rem;}
  .freguesia-grid--2{grid-template-columns:1fr;gap:1.5rem;}
}

/* ---------- no-js fallback ---------- */
/* Without JS, keep the full menu visible and hide the toggle. */
.no-js .site-nav__toggle{display:none!important;}
.no-js .site-nav__menu{
  display:flex!important;flex-wrap:wrap;position:static;
  transform:none;opacity:1;visibility:visible;
  box-shadow:none;border:none;background:transparent;width:auto;
}

/* ---------- Freguesia grid (Executivo | Assembleia) ---------- */
.freguesia-grid{display:flex;flex-direction:column;gap:2rem;}
.freguesia-grid--2{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;}
.freguesia-col{min-width:0;}
.freguesia-col__title{
  font-size:1rem;font-weight:700;color:var(--color-il-blue);
  margin-bottom:1rem;padding-bottom:.5rem;
  border-bottom:2px solid var(--color-il-cyan);
}

/* ---------- The Events Calendar overrides ---------- */
.tribe-events-view{
  --tec-color-text-primary:#1A2B3D;
  --tec-color-text-secondary:#6B7B8C;
  --tec-color-link:#00548F;
  --tec-color-accent-primary:#00AEEF;
  font-family:var(--font-body);
}
.tribe-events-view .tribe-events-calendar-list__event-title,
.tribe-events-view .tribe-events-calendar-day__event-title{
  font-family:var(--font-body);font-weight:700;color:var(--color-il-dark);
}
.tribe-events-view .tribe-events-calendar-list__event-title a,
.tribe-events-view .tribe-events-calendar-day__event-title a{
  color:var(--color-il-dark);text-decoration:none;
}
.tribe-events-view .tribe-events-calendar-list__event-title a:hover,
.tribe-events-view .tribe-events-calendar-day__event-title a:hover{
  color:var(--color-il-blue);
}
.tribe-events-view .tribe-events-calendar-list__event-date-tag-day,
.tribe-events-view .tribe-events-calendar-day__event-date-tag-day{
  font-weight:700;color:var(--color-il-dark);
}
.tribe-events-view .tribe-events-calendar-list__event-venue,
.tribe-events-view .tribe-events-calendar-day__event-venue{
  color:var(--color-muted);font-size:.875rem;
}
.tribe-events-view .tribe-events-c-topbar{
  background:var(--color-light);border-radius:var(--radius-card);padding:1rem;
}
.tribe-events-view .tribe-events-c-nav{
  margin-top:2rem;
}
.tribe-events-view .tribe-events-calendar-month__day{
  border-color:var(--color-border);
}
.tribe-events-view .tribe-events-calendar-month__day--selected{
  background:var(--color-sky);
}
.tribe-events-view .tribe-events-c-search__input-control{
  border-radius:var(--radius-sm);
}
.tribe-events-view .tribe-events-c-search__submit-button{
  background:var(--color-il-blue);color:#fff;border-radius:var(--radius-sm);font-weight:600;
}
.tribe-events-view .tribe-events-c-subscribe-bar{
  background:var(--color-light);border-radius:var(--radius-card);padding:1rem;
}
/* Single event page */
.single-tribe_events .site-main{
  max-width:var(--maxw);margin:0 auto;padding:2rem 1.25rem;
}
.single-tribe_events .tribe-events-single{
  max-width:760px;margin:0 auto;
}
.single-tribe_events .tribe-events-single-event-title{
  font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:700;color:var(--color-il-dark);
}
.single-tribe_events .tribe-events-single-event-description{
  font-size:1rem;line-height:1.6;
}
/* RSVP / tickets */
.tribe-tickets__rsvp-wrapper{
  border:1px solid var(--color-border);border-radius:var(--radius-card);padding:1.5rem;
}
.tribe-tickets__rsvp-form-submit button{
  background:var(--color-il-blue);color:#fff;border-radius:var(--radius-sm);font-weight:600;border:none;padding:.7rem 1.35rem;
}

/* ---------- 2026 visual refinement layer ---------- */
:root{
  --color-il-yellow:#FFE500;
  --color-il-magenta:#C5007E;
  --color-ink:#071D34;
  --shadow-card:0 14px 38px rgba(0,47,95,.10);
  --shadow-hover:0 18px 48px rgba(0,47,95,.16);
}

body{background:#fff;}
.site-header{
  border-bottom:1px solid rgba(0,47,95,.08);
  transition:box-shadow .2s ease,background-color .2s ease;
}
.site-header.is-scrolled{box-shadow:0 10px 30px rgba(0,47,95,.08);}
.site-header__inner{max-width:1320px;gap:1rem;}
.site-brand__name{font-size:1.08rem;}
.site-brand__tagline{max-width:210px;}
.site-header__cta{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:42px;padding:.65rem 1.05rem;border-radius:var(--radius-sm);
  background:var(--color-il-blue);color:#fff;font-weight:700;font-size:.92rem;
  border:1px solid var(--color-il-blue);white-space:nowrap;
  transition:background-color .2s ease,border-color .2s ease,transform .2s ease;
}
.site-header__cta:hover{
  background:var(--color-il-dark);border-color:var(--color-il-dark);
  color:#fff;text-decoration:none;transform:translateY(-1px);
}
.site-nav__menu{gap:.15rem;}
.site-nav__menu a,.site-nav__dropdown-toggle{font-size:.86rem;padding:.48rem .62rem;white-space:nowrap;}
.site-header__cta{padding:.62rem .95rem;font-size:.88rem;}
.site-nav__menu .current-menu-item>a,
.site-nav__menu .current_page_item>a{box-shadow:inset 0 -2px 0 var(--color-il-yellow);}

/* ---------- Atividades / Iniciativas Autárquicas ---------- */
.post-type-archive-porto_iniciativa .hero{
  padding:3.4rem 1.25rem 3.1rem;
  background:
    radial-gradient(circle at 86% 10%, rgba(0,174,239,.20), transparent 22rem),
    linear-gradient(135deg,#071D34 0%,#003B72 56%,#00548F 100%);
}
.post-type-archive-porto_iniciativa .hero__subtitle{max-width:760px;font-size:1.02rem;}
.iniciativas-filters{
  background:#fff;border:1px solid rgba(0,47,95,.10);border-radius:8px;
  padding:1rem;box-shadow:0 10px 30px rgba(0,47,95,.06);
}
.iniciativas-filters__row{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin-bottom:.65rem;}
.iniciativas-filters__row:last-child{margin-bottom:0;}
.iniciativas-filters__search,
.iniciativas-filters__select,
.iniciativas-date-control__display{
  min-height:42px;padding:.55rem .7rem;border:1px solid var(--color-border);border-radius:6px;background:#fff;
  font-size:.9rem;color:var(--color-text);
}
.iniciativas-filters__field--date-range{min-width:0;margin:0;padding:0;border:0;}
.iniciativas-filters__field--date-range legend{margin:0 0 7px;padding:0;}
.iniciativas-date-range{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);min-width:0;border:1px solid var(--color-border);border-radius:6px;background:#fff;}
.iniciativas-date-control{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) 38px;align-items:center;min-width:0;}
.iniciativas-date-control>label{padding-left:10px;font-size:.65rem;font-weight:800;text-transform:uppercase;}
.iniciativas-date-range__divider{background:var(--color-border);}
.iniciativas-date-range .iniciativas-date-control__display{width:100%;min-width:0;padding:.55rem .35rem;border:0;border-radius:0;background:transparent;}
.iniciativas-date-control__button{
  width:38px;height:42px;padding:0;border:0;background:transparent;color:var(--color-il-blue);cursor:pointer;
}
.iniciativas-date-control__button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;}
.iniciativas-date-control__picker{position:absolute;right:8px;bottom:4px;width:1px;height:1px;opacity:0;pointer-events:none;}
.iniciativas-filters__search{flex:1 1 260px;}
.iniciativas-filters__select{flex:0 1 220px;}
.iniciativas-filters__date-toggle{position:relative;}
.iniciativas-filters__date-toggle summary{cursor:pointer;font-size:.9rem;font-weight:700;color:var(--color-il-blue);list-style:none;}
.iniciativas-filters__date-toggle summary::-webkit-details-marker{display:none;}
.iniciativas-filters__date-fields{display:flex;gap:.5rem;margin-top:.55rem;}
.iniciativas-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1rem;max-width:1100px;margin:0 auto;}
.iniciativa-card{background:#fff;border:1px solid rgba(0,47,95,.10);border-radius:8px;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.iniciativa-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,47,95,.10);border-color:rgba(0,174,239,.32);}
.iniciativa-card__link{display:flex;flex-direction:column;min-height:190px;padding:1.05rem;color:inherit;text-decoration:none;}
.iniciativa-card__link:hover{text-decoration:none;}
.iniciativa-card__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem;}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.24rem .55rem;font-size:.72rem;font-weight:800;letter-spacing:.01em;line-height:1.15;}
.badge--tipo{background:var(--color-il-blue);color:#fff;}
.badge--estado{background:#EEF4F8;color:var(--color-il-dark);}
.badge--estado--aprovado,.badge--estado--a_favor{background:#DCFCE7;color:#166534;}
.badge--estado--rejeitado,.badge--estado--contra{background:#FEE2E2;color:#991B1B;}
.badge--estado--abstencao{background:#FEF3C7;color:#92400E;}
.badge--tema{background:#EAF8FF;color:var(--color-il-blue);}
.iniciativa-card__title{font-size:1.02rem;line-height:1.32;font-weight:800;color:var(--color-il-dark);margin:0 0 .8rem;}
.iniciativa-card__meta{display:grid;gap:.25rem;margin-top:auto;font-size:.82rem;color:var(--color-muted);}
.iniciativa-card__date{font-weight:800;color:var(--color-il-blue);}
.iniciativa-card__autores{font-size:.82rem;color:var(--color-muted);margin:.55rem 0 0;}
.entry--iniciativa .entry-header{max-width:900px;margin:0 auto;padding:3.2rem 1.25rem 2rem;}
.entry--iniciativa .entry-header__kicker{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--color-il-cyan);margin-bottom:.55rem;}
.entry--iniciativa .entry-title{color:var(--color-il-dark);max-width:820px;}
.entry--iniciativa .entry-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1rem;}
.iniciativa-voto{max-width:760px;margin:2rem auto;padding:1.2rem 1.25rem;border-radius:8px;background:#fff;border:1px solid rgba(0,47,95,.10);box-shadow:0 10px 30px rgba(0,47,95,.05);}
.iniciativa-voto__title{font-size:1rem;font-weight:800;color:var(--color-il-dark);margin-bottom:.65rem;}
.iniciativa-voto__content{white-space:pre-line;font-size:.92rem;line-height:1.75;}
.iniciativa-doc-btn{display:inline-flex;align-items:center;gap:.65rem;padding:.9rem 1.1rem;border-radius:8px;background:var(--color-il-blue);color:#fff;text-decoration:none;margin:1rem 0;font-weight:800;}
.iniciativa-doc-btn:hover{background:var(--color-il-dark);color:#fff;text-decoration:none;}
.iniciativa-doc-btn__icon{font-size:1.25rem;}
.iniciativa-doc-btn__size{font-size:.82rem;opacity:.82;}
.iniciativa-doc-btn__cta{margin-left:auto;}
.iniciativa-link-btn{display:inline-flex;align-items:center;padding:.72rem 1rem;border-radius:8px;border:1.5px solid var(--color-il-blue);color:var(--color-il-blue);text-decoration:none;font-weight:800;margin:.5rem 0;}
.iniciativa-link-btn:hover{background:var(--color-il-blue);color:#fff;text-decoration:none;}
@media (max-width:700px){
  .iniciativas-list{grid-template-columns:1fr;}
  .iniciativas-filters__row{display:grid;grid-template-columns:1fr;}
  .iniciativas-filters__select{width:100%;}
  .iniciativas-filters__date-fields{flex-direction:column;}
}

.hero{
  position:relative;
  background:
    radial-gradient(circle at 82% 14%, rgba(0,174,239,.24), transparent 24rem),
    linear-gradient(135deg,#071D34 0%,#003B72 52%,#0069A8 100%);
  padding:4rem 1.25rem;
}
.hero::before{
  content:"";position:absolute;inset:0;opacity:.18;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px);
  background-size:72px 72px;
  transform:translateY(var(--pl-parallax,0));
}
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:5px;
  background:linear-gradient(90deg,var(--color-il-yellow) 0 18%,var(--color-il-magenta) 18% 38%,var(--color-il-cyan) 38% 100%);
}
.hero__inner{position:relative;z-index:1;}
.hero--home{
  min-height:min(760px,calc(100svh - 72px));
  display:flex;align-items:center;
  padding:4.5rem 1.25rem 4rem;
}
.hero--home .hero__inner{grid-template-columns:minmax(0,.72fr) minmax(520px,1.28fr);gap:2.75rem;}
.hero__copy{max-width:560px;}
.hero__eyebrow{
  margin-bottom:.2rem;color:#8FE4FF;font-weight:700;letter-spacing:0;
}
.hero__title{font-size:clamp(2.3rem,5vw,4.25rem);max-width:15ch;}
.hero:not(.hero--home) .hero__title{max-width:18ch;font-size:clamp(2rem,4vw,3.4rem);}
.hero__subtitle{font-size:clamp(1.02rem,1.4vw,1.2rem);max-width:58ch;}
.hero__actions{margin-top:.75rem;}
.hero__proof{
  display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem;
}
.hero__proof span{
  display:inline-flex;align-items:center;min-height:32px;padding:.35rem .7rem;
  border:1px solid rgba(255,255,255,.22);border-radius:999px;
  color:rgba(255,255,255,.84);font-size:.78rem;font-weight:700;
  background:rgba(255,255,255,.08);
}
.hero__visual{min-height:390px;}
.hero__visual-card{
  position:relative;width:min(100%,560px);border-radius:10px;overflow:hidden;
  border:1px solid rgba(255,255,255,.16);box-shadow:0 30px 90px rgba(0,0,0,.22);
  transform:translateY(0);transition:transform .35s ease;
}
.hero__visual-card:hover{transform:translateY(-3px);}
.hero__visual-card img{width:100%;height:auto;}
.hero__message-card{
  position:absolute;left:1.25rem;right:1.25rem;bottom:1.25rem;
  display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.1rem;
  border-radius:8px;background:rgba(255,255,255,.96);color:var(--color-il-dark);
  box-shadow:var(--shadow-card);
}
.hero__message-card span{font-size:.74rem;text-transform:uppercase;font-weight:700;color:var(--color-il-blue);}
.hero__message-card strong{font-size:1.08rem;line-height:1.25;}

.hero__media{
  position:relative;min-height:560px;align-self:stretch;
  margin-right:clamp(-5rem,-6vw,-1rem);
}
.hero__wordmark{
  position:absolute;inset:-2rem 0 auto -2rem;z-index:0;
  display:flex;flex-direction:column;gap:.1rem;pointer-events:none;
  color:rgba(255,255,255,.15);font-weight:800;font-size:clamp(5.5rem,9vw,9rem);
  line-height:.82;text-transform:lowercase;white-space:nowrap;
  max-width:calc(100% + 2rem);overflow:hidden;
}
.hero__wordmark span{display:block;max-width:100%;overflow:hidden;}
.hero__wordmark span:nth-child(2){margin-left:18%;max-width:82%;color:rgba(255,255,255,.10);}
.hero__wordmark span:nth-child(3){color:rgba(255,255,255,.12);}
.hero__people-strip{
  position:absolute;inset:auto -2rem 0 0;z-index:1;height:88%;
  display:flex;align-items:flex-end;gap:.85rem;
}
.hero-person{
  position:relative;flex:1;min-width:0;height:100%;
  display:flex;align-items:flex-end;filter:drop-shadow(0 26px 36px rgba(0,18,42,.22));
}
.hero-person--1,.hero-person--5{height:78%;}
.hero-person--2,.hero-person--4{height:90%;}
.hero-person__photo{
  width:100%;height:100%;object-fit:cover;object-position:center top;
  border-radius:12px 12px 0 0;
  background:linear-gradient(180deg,#DDF5FF 0%,#80D8FF 42%,#00548F 100%);
}
.hero-person__photo--placeholder{
  display:grid;place-items:center;color:#fff;font-size:clamp(2rem,4vw,4.2rem);font-weight:800;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
}
.hero-person:nth-child(2n) .hero-person__photo--placeholder{
  background:linear-gradient(180deg,#F5FBFF 0%,#39B9F2 42%,#003B72 100%);
}
.hero-person:nth-child(3n) .hero-person__photo--placeholder{
  background:linear-gradient(180deg,#FFFCE0 0%,#41C2F4 48%,#004F8A 100%);
}
.hero-person__label{
  position:absolute;left:50%;bottom:1.1rem;transform:translateX(-50%);
  min-width:min(190px,108%);max-width:220px;padding:.5rem .65rem;
  background:#fff;color:var(--color-il-dark);text-align:center;border-radius:2px;
  box-shadow:0 10px 30px rgba(0,47,95,.14);
}
.hero-person__label strong{
  display:block;font-size:.72rem;line-height:1.1;text-transform:uppercase;font-weight:800;
}
.hero-person__label span{
  display:block;margin-top:.12rem;font-size:.62rem;line-height:1.1;color:var(--color-il-blue);font-weight:700;
  text-transform:uppercase;
}
.hero__message-box{
  position:absolute;z-index:3;left:48%;top:55%;transform:translate(-50%,-50%);
  width:min(430px,74%);display:grid;grid-template-columns:1fr auto;gap:.45rem .75rem;
  padding:1.05rem 1.2rem;background:#fff;border-radius:8px;color:var(--color-il-dark);
  box-shadow:0 24px 70px rgba(0,18,42,.24);border:1px solid rgba(0,84,143,.16);
}
.hero__message-box:hover{
  text-decoration:none;transform:translate(-50%,-52%);
}
.hero__message-box strong{font-size:.96rem;line-height:1.15;}
.hero__message-box span{grid-column:1;font-size:.84rem;color:var(--color-muted);}
.hero__message-box i{
  grid-row:1 / span 2;grid-column:2;align-self:center;
  display:grid;place-items:center;width:36px;height:36px;border-radius:999px;
  background:var(--color-il-cyan);color:#fff;font-style:normal;font-weight:800;
}
.hero__fallback-graphic{
  position:absolute;right:0;bottom:3rem;z-index:1;width:min(620px,88%);
}

.js .reveal-on-scroll{
  opacity:1;transform:translateY(12px);
  transition:opacity .55s ease,transform .55s ease;
}
.js .reveal-on-scroll.is-visible{
  opacity:1;transform:translateY(0);
}
.js .card.reveal-on-scroll,
.js .person-card.reveal-on-scroll,
.js .theme-card.reveal-on-scroll,
.js .pillar-card.reveal-on-scroll,
.js .participation-card.reveal-on-scroll{
  transition:opacity .5s ease,transform .5s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease;
}
.js .card.reveal-on-scroll.is-visible:hover,
.js .person-card.reveal-on-scroll.is-visible:hover,
.js .theme-card.reveal-on-scroll.is-visible:hover,
.js .pillar-card.reveal-on-scroll.is-visible:hover,
.js .participation-card.reveal-on-scroll.is-visible:hover{
  transform:translateY(-3px);
}

.section{padding:3.5rem 1.25rem;}
.section--compact{padding:2rem 1.25rem;}
.section--light{
  background:linear-gradient(180deg,#F7FBFE 0%,#FFFFFF 100%);
}
.section__kicker{
  margin:0 0 .45rem;color:var(--color-il-blue);font-size:.78rem;
  text-transform:uppercase;font-weight:800;letter-spacing:0;
}
.section__title{font-size:clamp(1.7rem,3vw,2.5rem);}
.section__title,
.home-positioning__intro h2{overflow-wrap:break-word;}
.section__lead{font-size:1.04rem;}

.card,
.person-card,
.issue-card,
.plcore-form,
.overview-card{
  box-shadow:0 1px 0 rgba(0,47,95,.02);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease;
}
.card:hover,
.person-card:hover,
.issue-card:hover,
.overview-card:hover{
  transform:translateY(-3px);box-shadow:var(--shadow-card);border-color:rgba(0,174,239,.24);
}
.card__media-wrap{background:linear-gradient(135deg,var(--color-il-dark),var(--color-il-blue));}
.card-grid{gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));}
.card-grid > .card,
.card-grid > .card--cta,
.card-grid > .issue-card,
.card-grid > .person-card{max-width:350px;}
.card-grid--2{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.card-grid--3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));}
.card-grid--4{grid-template-columns:repeat(auto-fit,minmax(205px,1fr));}
.card__body{padding:1.05rem;}
.card__title{font-size:1rem;color:var(--color-il-dark);}
.card__text{line-height:1.55;}
.card__tag,
.person-card__group{
  border-radius:999px;background:rgba(0,174,239,.10);
}
.btn,.plcore-btn{border-radius:7px;}
.btn--cyan{background:#35B8F3;border-color:#35B8F3;color:#052744;}
.btn--cyan:hover{background:var(--color-il-yellow);border-color:var(--color-il-yellow);color:#052744;}
.hero .btn--cyan,
.hero a.btn--cyan{
  background:#35B8F3;color:#052744;border-color:#35B8F3;
}
.hero .btn,
.hero a.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:46px;padding:.78rem 1.25rem;border-width:2px;border-style:solid;
  border-radius:7px;font-weight:700;line-height:1.1;
}
.hero .btn--cyan:hover,
.hero a.btn--cyan:hover{
  background:var(--color-il-yellow);color:#052744;border-color:var(--color-il-yellow);text-decoration:none;
}

.home-positioning{
  max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:minmax(0,.92fr) minmax(320px,1.08fr);
  gap:1.5rem;align-items:start;padding:3.25rem 1.25rem .75rem;
}
.home-positioning__intro{max-width:58ch;}
.home-positioning__intro h2{font-size:clamp(1.8rem,3vw,2.55rem);color:var(--color-il-dark);margin-bottom:1rem;}
.home-positioning__intro p{color:var(--color-muted);font-size:1.06rem;}
.pillar-grid,
.theme-grid,
.participation-grid{
  display:grid;gap:1rem;
}
.pillar-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.pillar-card,
.theme-card,
.participation-card{
  position:relative;background:#fff;border:1px solid var(--color-border);border-radius:8px;
  padding:1rem;min-height:128px;overflow:hidden;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.pillar-card:hover,
.theme-card:hover,
.participation-card:hover{
  transform:translateY(-3px);box-shadow:var(--shadow-card);border-color:rgba(0,174,239,.28);text-decoration:none;
}
.pillar-card__icon,
.theme-card__icon,
.participation-card__icon{
  width:30px;height:30px;border-radius:7px;display:grid;place-items:center;
  background:var(--color-sky);color:var(--color-il-blue);font-weight:800;margin-bottom:.75rem;
  font-size:.82rem;
}
.pillar-card h3,
.theme-card h3,
.participation-card h3{font-size:.96rem;color:var(--color-il-dark);margin-bottom:.35rem;}
.pillar-card p,
.theme-card p,
.participation-card p{font-size:.86rem;color:var(--color-muted);margin:0;line-height:1.48;}
.theme-section{padding:2.25rem 1.25rem 3.2rem;}
.theme-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;max-width:var(--maxw);margin:0 auto;}
.theme-card{color:inherit;}
.theme-card::after{
  content:"";position:absolute;right:-22px;bottom:-22px;width:84px;height:84px;
  border-radius:50%;background:rgba(0,174,239,.08);
}
.participation-section{
  max-width:var(--maxw);margin:0 auto;padding:0 1.25rem 3.2rem;
}
.participation-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;}

.autarca-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,240px));gap:.9rem;
  max-width:var(--maxw);margin-inline:auto;justify-content:start;
}
.autarca-grid--compact{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}
.autarca-grid--people{grid-template-columns:repeat(auto-fill,minmax(190px,220px));}
.autarca-grid .person-card--list,
.autarca-grid--home .person-card--list{
  flex-direction:column;align-items:flex-start;text-align:left;gap:.8rem;
  min-height:100%;
}
.autarca-grid .person-card__photo-wrap,
.autarca-grid--home .person-card__photo-wrap{
  width:100%;height:auto;margin:0;border-radius:8px;overflow:hidden;
  background:linear-gradient(180deg,#F2FBFF 0%,#D5F3FF 100%);
}
.autarca-grid .person-card__photo,
.autarca-grid--home .person-card__photo{
  width:100%;height:138px;max-height:none;border-radius:0;object-fit:cover;margin:0;
}
.autarca-grid .person-card__photo--ph,
.autarca-grid--home .person-card__photo--ph{
  object-fit:contain;padding:1.15rem;
}
.autarca-grid--home .person-card__photo{height:128px;}
.autarca-grid .person-card__info,
.autarca-grid--home .person-card__info{display:flex;flex-direction:column;align-items:flex-start;flex:1;width:100%;}
.autarca-grid .person-card__name,
.autarca-grid--home .person-card__name{font-size:.94rem;line-height:1.22;}
.autarca-grid .person-card__role,
.autarca-grid--home .person-card__role{font-size:.78rem;line-height:1.35;}
.autarca-grid .person-card__group,
.autarca-grid--home .person-card__group{
  max-width:100%;font-size:.66rem;line-height:1.2;text-align:left;
}
.autarca-grid .person-card__bio,
.autarca-grid .person-card__note,
.autarca-grid--home .person-card__bio,
.autarca-grid--home .person-card__note{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;font-size:.77rem;line-height:1.42;
}
.person-card__action{
  display:inline-flex;margin-top:auto;padding:.4rem .65rem;border-radius:7px;
  background:var(--color-il-dark);color:#fff;font-size:.78rem;font-weight:700;
}
.person-card:hover .person-card__action{background:var(--color-il-blue);}
.overview-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem;
}
.overview-card{
  background:#fff;border:1px solid var(--color-border);border-radius:8px;padding:1.2rem;
  display:flex;flex-direction:column;gap:.2rem;
}
.overview-card__number{font-size:2rem;line-height:1;font-weight:800;color:var(--color-il-blue);}
.overview-card__label{font-size:.88rem;font-weight:700;color:var(--color-il-dark);}
.filter-bar--sticky{
  position:sticky;top:82px;z-index:20;padding:.75rem;background:rgba(255,255,255,.88);
  backdrop-filter:blur(10px);border:1px solid var(--color-border);border-radius:10px;
  box-shadow:0 10px 30px rgba(0,47,95,.06);
}
.freguesia-grid--2{align-items:start;}
.freguesia-col{
  background:#fff;border:1px solid var(--color-border);border-radius:8px;padding:1.25rem;
}

.tribe-events-before-html{max-width:none;margin:0;}
.tribe-events-before-html .hero--events{
  width:100vw;margin:0 0 0 calc(50% - 50vw);
  max-width:none;
  padding:4rem 1.25rem 3.75rem;border-radius:0;
}
.hero--events .hero__inner{padding-inline:0;}
.hero--events .hero__title{
  font-size:clamp(2rem,3.2vw,3.05rem);max-width:21ch;
}
.hero--events .hero__subtitle{max-width:58ch;}
.hero--events .hero__actions{margin-top:1rem;}
.tribe-events .tribe-events-l-container{padding-top:3rem!important;padding-bottom:3rem!important;}
.tribe-events-view .tribe-events-c-events-bar{
  border:1px solid var(--color-border);border-radius:10px;box-shadow:0 10px 30px rgba(0,47,95,.06);
}
.tribe-events-view .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link,
.tribe-events-view .tribe-events-c-view-selector__list-item-link:hover{color:var(--color-il-blue);}
.tribe-events-view .tribe-events-calendar-list__event{
  border:1px solid var(--color-border);border-radius:10px;padding:1.25rem;
  background:#fff;box-shadow:0 1px 0 rgba(0,47,95,.02);
}
.tribe-events-view .tribe-events-calendar-list__event + .tribe-events-calendar-list__event{margin-top:1rem;}
.tribe-events-view .tribe-events-calendar-list__event-title{font-size:1.35rem;}

.entry-content > .wp-block-heading:first-child{font-size:clamp(1.75rem,3vw,2.3rem);}
.entry-content .wp-block-buttons{gap:.75rem;}
.contact-page-grid{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr);gap:1.5rem;align-items:start;
}
.contact-card{
  border:1px solid var(--color-border);border-radius:8px;background:#fff;padding:1.35rem;box-shadow:0 1px 0 rgba(0,47,95,.02);
}
.plcore-form{box-shadow:var(--shadow-card);}
.plcore-field input:focus,
.plcore-field textarea:focus,
.plcore-field select:focus{box-shadow:0 0 0 3px rgba(0,174,239,.16);}

@media (max-width:980px){
  .home-positioning,
  .contact-page-grid{grid-template-columns:1fr;}
  .theme-grid,
  .participation-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hero--home{min-height:auto;}
  .hero--home .hero__inner{grid-template-columns:1fr;gap:2rem;}
  .hero__copy{max-width:680px;}
  .hero__media{min-height:470px;width:100%;margin-right:0;}
  .hero__people-strip{inset:auto 0 0 0;}
  .hero__message-box{left:50%;width:min(420px,80%);}
}

@media (max-width:860px){
  .site-header__inner{align-items:flex-start;}
  .site-nav__menu{right:-.25rem;}
  .site-nav__menu .menu-item-has-children{width:100%;}
  .site-nav__dropdown-toggle,
  .site-nav__menu>.menu-item-has-children>a{width:100%;justify-content:space-between;}
  .site-nav__menu .sub-menu{
    position:static;min-width:0;margin:.15rem 0 .35rem;padding:.2rem 0 .2rem .75rem;
    border:0;border-left:2px solid var(--color-sky);border-radius:0;box-shadow:none;background:transparent;
    opacity:1;visibility:visible;transform:none;display:none;
  }
  .site-nav__menu .menu-item-has-children.is-open>.sub-menu{display:block;}
  .site-nav__menu .menu-item-has-children:hover>.sub-menu,
  .site-nav__menu .menu-item-has-children:focus-within>.sub-menu{display:block;}
  .site-nav__menu .sub-menu a{padding:.55rem .65rem;}
  .hero--home .hero__inner{grid-template-columns:1fr;}
  .hero__title{max-width:100%;}
  .hero__visual{min-height:auto;}
  .filter-bar--sticky{position:static;}
}

@media (max-width:600px){
  .site-header__inner{padding:.75rem 1rem;gap:.65rem;}
  .site-brand__tagline{display:none;}
  .site-brand__name{font-size:1rem;}
  .site-header__cta{display:none;}
  .hero--home{padding:3rem 1rem;}
  .hero__title{font-size:2.05rem;line-height:1.14;}
  .hero__subtitle{font-size:1rem;}
  .hero__actions{width:100%;}
  .hero__actions .btn{width:100%;}
  .hero__visual{display:none;}
  .hero__media{min-height:350px;margin:1rem -1rem -1rem;width:auto;}
  .hero__wordmark{inset:.25rem 0 auto 0;font-size:4.2rem;line-height:.86;max-width:100%;}
  .hero__people-strip{inset:auto .85rem 0 .85rem;height:88%;gap:.45rem;}
  .hero-person:nth-child(n+4){display:none;}
  .hero-person--1,.hero-person--2,.hero-person--3{height:100%;}
  .hero-person__label{display:none;}
  .hero__message-box{
    top:54%;left:50%;width:calc(100% - 2rem);
    padding:.9rem;grid-template-columns:1fr auto;
  }
  .hero__message-box strong{font-size:.88rem;}
  .hero__message-box span{font-size:.78rem;}
  .hero__message-box i{width:32px;height:32px;}
  .hero__proof{gap:.4rem;}
  .hero__proof span{font-size:.74rem;padding:.3rem .55rem;}
  .hero__visual-card{border-radius:8px;}
  .hero__message-card{position:static;border-radius:0;box-shadow:none;}
  .home-positioning{padding-top:2.5rem;}
  .pillar-grid,
  .theme-grid,
  .participation-grid,
  .overview-grid{grid-template-columns:1fr;}
  .autarca-grid{grid-template-columns:1fr;}
  .freguesia-grid--2{grid-template-columns:1fr;gap:1.25rem;}
  .freguesia-col{padding:1rem;}
  .tribe-events-before-html .hero--events{
    margin:0 0 0 calc(50% - 50vw);
    padding:2.75rem 1rem;border-radius:0;
  }
  .hero--events .hero__inner{padding-inline:0;}
  .tribe-events .tribe-events-l-container{padding-left:1rem!important;padding-right:1rem!important;}
  .tribe-events-view .tribe-events-header,
  .tribe-events-view .tribe-events-c-events-bar{
    margin-left:0!important;margin-right:0!important;
    padding-left:0!important;padding-right:0!important;
    width:100%!important;max-width:100%!important;
  }
  .tribe-events-view .tribe-common-g-row--gutters{margin-left:0!important;margin-right:0!important;}
  .tribe-events-view .tribe-common-g-row--gutters>.tribe-common-g-col{padding-left:0!important;padding-right:0!important;}
  .tribe-events-view .tribe-events-calendar-list__event{margin-left:0!important;margin-right:0!important;padding:1rem;}
  .section{padding:3rem 1.25rem;}
}

/* ---------- Minimal institutional pass ---------- */
a,
button,
.btn,
.plcore-btn{
  touch-action:manipulation;
}

[id]{
  scroll-margin-top:96px;
}

h1,
h2,
h3,
.hero__title,
.section__title{
  text-wrap:balance;
}

.site-header{
  background:rgba(255,255,255,.96);
}

.site-header.is-scrolled{
  box-shadow:0 8px 22px rgba(0,47,95,.06);
}

.site-nav__menu{
  gap:.15rem;
}

.site-nav__menu a{
  position:relative;
  padding:.42rem .05rem;
  margin-inline:.48rem;
  border-radius:0;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--color-il-dark);
  transition:color .2s ease;
}

.site-nav__menu a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:.12rem;
  height:2px;
  background:var(--color-il-cyan);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .2s ease;
}

.site-nav__menu a:hover,
.site-nav__menu .current-menu-item>a,
.site-nav__menu .current_page_item>a{
  color:var(--color-il-blue);
  text-decoration:none;
}

.site-nav__menu a:hover::after,
.site-nav__menu .current-menu-item>a::after,
.site-nav__menu .current_page_item>a::after{
  transform:scaleX(1);
}

.site-header__cta{
  min-height:auto;
  padding:.42rem 0 .22rem;
  border:0;
  border-bottom:2px solid var(--color-il-cyan);
  border-radius:0;
  background:transparent;
  color:var(--color-il-dark);
  font-weight:800;
  transition:color .2s ease,border-color .2s ease,transform .2s ease;
}

.site-header__cta:hover{
  background:transparent;
  border-color:var(--color-il-yellow);
  color:var(--color-il-blue);
  transform:translateY(-1px);
  text-decoration:none;
}

.hero{
  background:
    linear-gradient(90deg,rgba(0,47,95,.92),rgba(0,84,143,.84)),
    radial-gradient(circle at 82% 12%,rgba(0,174,239,.26),transparent 25rem),
    #00548F;
}

.hero::before{
  opacity:.11;
  background-size:88px 88px;
}

.hero--home{
  min-height:min(700px,calc(100svh - 72px));
}

.hero--home .hero__inner{
  grid-template-columns:minmax(0,.82fr) minmax(420px,1.18fr);
  gap:2.2rem;
}

.hero__title{
  max-width:18ch;
}

.hero__proof span{
  background:transparent;
  border-color:rgba(255,255,255,.24);
}

.hero__media{
  min-height:500px;
  margin-right:clamp(-3rem,-4vw,-1rem);
}

.hero__wordmark{
  color:rgba(255,255,255,.10);
  font-size:clamp(4.5rem,8vw,8rem);
}

.hero__image-slot{
  position:absolute;
  right:0;
  bottom:2.2rem;
  z-index:1;
  width:min(620px,88%);
  aspect-ratio:16/10;
  border:1px solid rgba(255,255,255,.18);
  border-radius:10px;
  background:rgba(255,255,255,.06);
  box-shadow:0 28px 70px rgba(0,18,42,.16);
}

.hero__image-slot::before{
  content:"";
  position:absolute;
  inset:1.1rem;
  border:1px dashed rgba(255,255,255,.24);
  border-radius:7px;
}

.hero__fallback-graphic{
  display:none;
}

.hero__message-box{
  left:auto;
  right:8%;
  top:46%;
  transform:translateY(-50%);
  width:min(410px,72%);
  box-shadow:0 18px 46px rgba(0,18,42,.18);
}

.hero__message-box:hover{
  transform:translateY(calc(-50% - 2px));

}

.card,
.person-card,
.issue-card,
.plcore-form,
.overview-card,
.contact-card,
.freguesia-card{
  border-color:#E6EEF5;
  box-shadow:0 1px 0 rgba(0,47,95,.02);
}

.card:hover,
.person-card:hover,
.issue-card:hover,
.overview-card:hover,
.freguesia-card:hover{
  box-shadow:0 12px 28px rgba(0,47,95,.07);
  transform:translateY(-2px);
}

.card-grid{
  gap:1rem;
}

.card-grid > .card,
.card-grid > .card--cta,
.card-grid > .issue-card,
.card-grid > .person-card{
  width:100%;
  max-width:320px;
}

.card__media-wrap{
  background:#F5FAFD;
}

.card__media-wrap--placeholder,
.card__media--empty{
  background:#F7FBFE;
}

.card__media--empty{
  width:100%;
  height:100%;
  min-height:138px;
  border:1px dashed #D6E5F0;
  border-radius:7px;
}

.card__media-wrap--placeholder{
  padding:.75rem;
}

.autarca-grid{
  grid-template-columns:repeat(auto-fill,minmax(180px,218px));
  gap:.85rem;
}

.autarca-grid--compact{
  grid-template-columns:repeat(auto-fill,minmax(160px,196px));
}

.autarca-grid--people{
  grid-template-columns:repeat(auto-fill,minmax(176px,206px));
}

.autarca-grid .person-card--list,
.autarca-grid--home .person-card--list{
  padding:.85rem;
  gap:.68rem;
}

.autarca-grid .person-card__photo-wrap,
.autarca-grid--home .person-card__photo-wrap{
  background:#F7FBFE;
}

.autarca-grid .person-card__photo,
.autarca-grid--home .person-card__photo{
  height:120px;
}

.autarca-grid--home .person-card__photo{
  height:112px;
}

.autarca-grid .person-card__photo--ph,
.autarca-grid--home .person-card__photo--ph{
  min-height:120px;
  padding:0;
  border:1px dashed #D6E5F0;
  background:#F7FBFE;
}

.autarca-grid .person-card__name,
.autarca-grid--home .person-card__name{
  font-size:.9rem;
}

.person-card__action{
  padding:0;
  border-radius:0;
  background:transparent;
  color:var(--color-il-blue);
  box-shadow:inset 0 -2px 0 rgba(0,174,239,.34);
}

.person-card:hover .person-card__action{
  background:transparent;
  color:var(--color-il-dark);
  box-shadow:inset 0 -2px 0 var(--color-il-yellow);
}

.freguesia-card-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  align-items:start;
}

.freguesia-card{
  background:#fff;
  border:1px solid #E6EEF5;
  border-radius:8px;
  padding:1rem;
  min-width:0;
  box-shadow:0 1px 0 rgba(0,47,95,.02);
  transition:border-color .18s ease,box-shadow .18s ease;
}

.freguesia-card:hover{
  transform:none;
  border-color:#CFE5F3;
  box-shadow:0 10px 24px rgba(0,47,95,.055);
}

.freguesia-card__head{
  padding-bottom:.72rem;
  margin-bottom:.85rem;
  border-bottom:1px solid #E6EEF5;
}

.freguesia-card__head .section__kicker{
  margin-bottom:.28rem;
  font-size:.68rem;
}

.freguesia-card__title{
  margin:0;
  color:var(--color-il-dark);
  font-size:1.03rem;
  line-height:1.25;
}

.freguesia-card__body{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem;
}

.freguesia-card__group{
  min-width:0;
}

.freguesia-card__group:only-child{
  grid-column:1/-1;
}

.freguesia-card .freguesia-col__title{
  margin:0 0 .5rem;
  padding-bottom:.35rem;
  border-bottom:1px solid #D9EAF4;
  color:var(--color-il-blue);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.2;
  text-transform:uppercase;
}

.freguesia-person-list{
  display:grid;
  gap:.1rem;
}

.freguesia-person-list__item{
  min-width:0;
}

.freguesia-person{
  display:grid;
  grid-template-columns:46px minmax(0,1fr);
  gap:.38rem .68rem;
  align-items:center;
  width:100%;
  min-height:58px;
  padding:.48rem 0;
  border:0;
  border-radius:0;
  background:transparent;
  color:inherit;
  transition:color .18s ease;
}

.freguesia-person:hover{
  transform:none;
  background:transparent;
  text-decoration:none;
}

.freguesia-person__media{
  width:46px;
  height:46px;
  border-radius:7px;
  overflow:hidden;
  background:#F7FBFE;
}

.freguesia-person__photo{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:0;
}

.freguesia-person__photo--ph{
  display:block;
  border:1px dashed #D6E5F0;
  background:#F7FBFE;
}

.freguesia-person__text{
  min-width:0;
}

.freguesia-person__name{
  margin:0;
  color:var(--color-il-dark);
  font-size:.88rem;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.freguesia-person__role{
  display:-webkit-box;
  margin:.12rem 0 0;
  color:var(--color-muted);
  font-size:.75rem;
  line-height:1.35;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}

.freguesia-person__status{
  display:inline-flex;
  margin-top:.16rem;
  color:var(--color-muted);
  font-size:.68rem;
  line-height:1.2;
}

.freguesia-person__action{
  grid-column:2;
  justify-self:end;
  color:var(--color-il-blue);
  font-size:.72rem;
  font-weight:700;
  line-height:1.2;
  box-shadow:inset 0 -2px 0 rgba(0,174,239,.32);
}

.freguesia-person:hover .freguesia-person__action{
  box-shadow:inset 0 -2px 0 var(--color-il-yellow);
}

.tribe-events-before-html{
  margin:0!important;
}

.tribe-events-before-html .hero--events{
  padding-top:3.6rem;
  padding-bottom:3.4rem;
}

.tribe-events .tribe-events-l-container{
  padding-top:1.25rem!important;
}

.tribe-events-view .tribe-events-c-events-bar{
  border-radius:8px;
  box-shadow:0 8px 22px rgba(0,47,95,.05);
}

/* ---------- Agenda archive alignment ---------- */
.post-type-archive-tribe_events .tribe-events-before-html .hero--events{
  padding-top:2.9rem;
  padding-bottom:2.8rem;
}

.post-type-archive-tribe_events .hero--events .hero__inner{
  display:block;
  margin-inline:auto;
  padding-inline:1.25rem;
}

.post-type-archive-tribe_events .hero--events .hero__copy{
  max-width:680px;
}

.post-type-archive-tribe_events .hero--events .hero__title{
  max-width:16ch;
  font-size:clamp(2.35rem,4.7vw,4rem);
  text-wrap:balance;
}

.post-type-archive-tribe_events .hero--events .hero__subtitle{
  max-width:58ch;
}

.post-type-archive-tribe_events .tribe-events .tribe-events-l-container{
  max-width:1060px!important;
  padding:2.1rem 1.25rem 4rem!important;
}

.post-type-archive-tribe_events .tribe-events-header{
  margin:0!important;
}

.post-type-archive-tribe_events .tribe-events-header__events-bar{
  display:none!important;
}

.post-type-archive-tribe_events .tribe-events-c-top-bar{
  display:none!important;
}

.post-type-archive-tribe_events .tribe-events-c-top-bar__nav-list{
  gap:.35rem!important;
}

.post-type-archive-tribe_events .tribe-events-c-top-bar__nav-link,
.post-type-archive-tribe_events .tribe-events-c-nav__prev,
.post-type-archive-tribe_events .tribe-events-c-nav__next{
  color:var(--color-il-dark)!important;
}

.post-type-archive-tribe_events .tribe-events-c-top-bar__today-button{
  border:1px solid var(--color-border)!important;
  border-radius:7px!important;
  background:#fff!important;
  color:var(--color-il-dark)!important;
  font-weight:700!important;
  padding:.5rem .8rem!important;
}

.post-type-archive-tribe_events .tribe-events-c-top-bar__datepicker-button{
  color:var(--color-il-dark)!important;
  font-family:var(--font-body)!important;
  font-size:1.15rem!important;
  font-weight:800!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__month-separator{
  margin:0 0 1rem!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__month-separator::after{
  background:var(--color-border)!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__month-separator-text{
  color:var(--color-il-blue)!important;
  font-family:var(--font-body)!important;
  font-size:.9rem!important;
  font-weight:800!important;
  letter-spacing:0!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-row{
  display:grid!important;
  grid-template-columns:66px minmax(0,1fr)!important;
  gap:.85rem!important;
  margin:0 0 1rem!important;
  align-items:start!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-date-tag{
  align-self:start!important;
  width:auto!important;
  min-width:0!important;
  padding:0!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-date-tag-datetime{
  width:58px!important;
  height:78px!important;
  min-height:78px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid var(--color-border)!important;
  border-radius:8px!important;
  background:#fff!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-date-tag-weekday{
  color:var(--color-il-blue)!important;
  font-family:var(--font-body)!important;
  font-size:.72rem!important;
  font-weight:800!important;
  letter-spacing:0!important;
  text-transform:uppercase!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-date-tag-daynum{
  color:var(--color-il-dark)!important;
  font-family:var(--font-body)!important;
  font-size:1.8rem!important;
  font-weight:800!important;
  line-height:1!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-wrapper{
  width:auto!important;
  padding:0!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event{
  width:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:1rem 1.1rem!important;
  border:1px solid var(--color-border)!important;
  border-radius:8px!important;
  background:#fff!important;
  box-shadow:0 1px 0 rgba(0,47,95,.02)!important;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event:hover{
  border-color:rgba(0,174,239,.26)!important;
  box-shadow:0 12px 28px rgba(0,47,95,.07)!important;
  transform:translateY(-2px);
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-details{
  width:100%!important;
  padding:0!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-title{
  margin:0 0 .55rem!important;
  font-family:var(--font-body)!important;
  font-size:1.22rem!important;
  line-height:1.18!important;
  text-wrap:balance;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-datetime-wrapper{
  margin:0 0 .55rem!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-datetime{
  color:var(--color-muted)!important;
  font-family:var(--font-body)!important;
  font-size:.93rem!important;
  font-weight:700!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-venue{
  display:block!important;
  margin:.15rem 0 0!important;
  color:var(--color-muted)!important;
  font-style:normal!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-description{
  position:static!important;
  width:auto!important;
  height:auto!important;
  clip:auto!important;
  clip-path:none!important;
  overflow:visible!important;
  margin:.7rem 0 0!important;
  color:var(--color-text)!important;
  font-family:var(--font-body)!important;
  font-size:.94rem!important;
  line-height:1.55!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-description p{
  margin:0!important;
}

.post-type-archive-tribe_events .tribe-events-c-nav{
  margin-top:2.25rem!important;
  padding-top:1.25rem!important;
  border-top:1px solid var(--color-border)!important;
}

.post-type-archive-tribe_events .tribe-events-c-nav__list-item--today,
.post-type-archive-tribe_events .tribe-events-c-nav__today{
  display:none!important;
}

.post-type-archive-tribe_events .tribe-events-c-subscribe-dropdown{
  margin-top:1.75rem!important;
}

.post-type-archive-tribe_events .tribe-events-c-subscribe-dropdown__button{
  border:1px solid var(--color-il-cyan)!important;
  border-radius:7px!important;
  color:var(--color-il-blue)!important;
  font-family:var(--font-body)!important;
  font-weight:800!important;
}

@media (max-width:600px){
  .post-type-archive-tribe_events .tribe-events-before-html .hero--events{
    padding:2.55rem 1rem;
  }

  .post-type-archive-tribe_events .hero--events .hero__title{
    font-size:clamp(2rem,9.6vw,2.45rem);
  }

  .post-type-archive-tribe_events .hero--events .hero__actions .btn{
    width:100%;
  }

  .post-type-archive-tribe_events .tribe-events .tribe-events-l-container{
    padding:1.55rem 1rem 3.2rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__month-separator{
    margin:0 0 .9rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__month-separator-text{
    font-size:.86rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event-row{
    grid-template-columns:1fr!important;
    gap:.5rem!important;
    margin-bottom:1.1rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event-date-tag{
    width:100%!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event-date-tag-datetime{
    width:max-content!important;
    height:auto!important;
    min-height:0!important;
    flex-direction:row!important;
    gap:.35rem!important;
    padding:.3rem .55rem!important;
    border-radius:999px!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event-date-tag-weekday{
    font-size:.64rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event-date-tag-daynum{
    font-size:.95rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event{
    padding:1rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event-title{
    font-size:1.18rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event-description{
    display:none!important;
  }

  .post-type-archive-tribe_events .tribe-events-c-nav{
    margin-top:1.75rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-c-nav__list{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:.75rem!important;
    margin:0!important;
    padding:0!important;
  }

  .post-type-archive-tribe_events .tribe-events-c-nav__list-item{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }

  .post-type-archive-tribe_events .tribe-events-c-nav__list-item--prev{
    grid-column:1!important;
  }

  .post-type-archive-tribe_events .tribe-events-c-nav__list-item--next{
    grid-column:2!important;
  }

  .post-type-archive-tribe_events .tribe-events-c-nav__prev,
  .post-type-archive-tribe_events .tribe-events-c-nav__next{
    width:100%!important;
    min-height:42px!important;
    margin:0!important;
    border:1px solid var(--color-border)!important;
    border-radius:7px!important;
    justify-content:center!important;
  }

  .post-type-archive-tribe_events .tribe-events-c-subscribe-dropdown,
  .post-type-archive-tribe_events .tribe-events-c-subscribe-dropdown__container,
  .post-type-archive-tribe_events .tribe-events-c-subscribe-dropdown__button{
    width:100%!important;
  }
}

.search-field:focus-visible,
.plcore-field input:focus-visible,
.plcore-field textarea:focus-visible,
.plcore-field select:focus-visible{
  outline:2px solid var(--color-il-cyan);
  outline-offset:2px;
}

@media (max-width:980px){
  .hero--home .hero__inner{
    grid-template-columns:1fr;
  }

  .hero__media{
    min-height:420px;
    margin-right:0;
  }

  .hero__image-slot{
    right:0;
    width:min(100%,620px);
  }

  .hero__message-box{
    right:auto;
    left:50%;
    width:min(420px,84%);
    transform:translate(-50%,-50%);
  }

  .hero__message-box:hover{
    transform:translate(-50%,calc(-50% - 2px));
  }
}

@media (max-width:860px){
  .site-nav__menu{
    gap:.1rem;
  }

  .site-nav__menu a{
    margin-inline:0;
    padding:.78rem .85rem;
  }

  .site-nav__menu a::after{
    left:.85rem;
    right:.85rem;
    bottom:.45rem;
  }
}

@media (max-width:600px){
  [id]{
    scroll-margin-top:78px;
  }

  .hero--home{
    padding:2.8rem 1rem 0;
  }

  .hero__media{
    display:block;
    min-height:260px;
    margin:1.5rem -1rem 0;
  }

  .hero__wordmark{
    inset:.4rem 0 auto 0;
    font-size:3.2rem;
  }

  .hero__image-slot{
    left:1rem;
    right:1rem;
    bottom:1.25rem;
    width:auto;
    aspect-ratio:4/3;
  }

  .hero__message-box{
    top:46%;
    width:calc(100% - 2rem);
  }

  .autarca-grid,
  .autarca-grid--people,
  .autarca-grid--compact{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.7rem;
  }

  .autarca-grid .person-card--list,
  .autarca-grid--home .person-card--list{
    align-items:flex-start;
    text-align:left;
  }

  .autarca-grid .person-card__photo,
  .autarca-grid--home .person-card__photo,
  .freguesia-card .person-card__photo{
    height:98px;
  }

  .autarca-grid .person-card__photo--ph,
  .autarca-grid--home .person-card__photo--ph,
  .freguesia-card .person-card__photo--ph{
    min-height:98px;
  }

  .freguesia-card-grid{
    grid-template-columns:1fr;
  }

  .freguesia-card{
    padding:.95rem;
  }

  .freguesia-card .autarca-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .card-grid > .card,
  .card-grid > .card--cta,
  .card-grid > .issue-card,
  .card-grid > .person-card{
    max-width:none;
  }

  .tribe-events .tribe-events-l-container{
    padding-top:1rem!important;
  }
}

/* ---------- Agenda correction pass ---------- */
.post-type-archive-tribe_events .tribe-events-before-html .hero--events{
  padding-top:2.25rem;
  padding-bottom:2.25rem;
}

.post-type-archive-tribe_events .hero--events .hero__title{
  max-width:20ch;
  font-size:clamp(2rem,3.6vw,3.05rem);
}

.post-type-archive-tribe_events .hero--events .hero__subtitle{
  max-width:56ch;
  font-size:1.02rem;
}

.post-type-archive-tribe_events .hero--events .hero__actions{
  display:none;
}

.post-type-archive-tribe_events .tribe-events .tribe-events-l-container{
  max-width:1040px!important;
  padding-top:0!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__month-separator{
  margin:1rem 0 1.1rem!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__month-separator::before{
  display:none!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-row{
  grid-template-columns:64px minmax(0,1fr)!important;
  gap:1rem!important;
  margin-bottom:.9rem!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-date-tag-datetime{
  width:56px!important;
  height:70px!important;
  min-height:70px!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event{
  padding:.95rem 1.05rem!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-title{
  font-size:1.14rem!important;
}

.post-type-archive-tribe_events .tribe-events-calendar-list__event-description{
  font-size:.9rem!important;
}

@media (max-width:600px){
  .post-type-archive-tribe_events .tribe-events-before-html .hero--events{
    padding:2rem 1rem 2.15rem;
  }

  .post-type-archive-tribe_events .hero--events .hero__title{
    max-width:16ch;
    font-size:clamp(1.82rem,8.6vw,2.25rem);
  }

  .post-type-archive-tribe_events .hero--events .hero__subtitle{
    font-size:.96rem;
  }

  .post-type-archive-tribe_events .tribe-events .tribe-events-l-container{
    padding-top:1.2rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event-row{
    grid-template-columns:1fr!important;
    gap:.45rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event-date-tag-datetime{
    width:max-content!important;
    height:auto!important;
    min-height:0!important;
    display:inline-flex!important;
    flex-direction:row!important;
    gap:.35rem!important;
    padding:.26rem .55rem!important;
    border-radius:999px!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event{
    padding:.92rem!important;
  }

  .post-type-archive-tribe_events .tribe-events-calendar-list__event-title{
    font-size:1.08rem!important;
  }
}

/* ---------- Freguesias responsive correction ---------- */
@media (max-width:900px){
  .freguesia-card-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .freguesia-card{
    padding:.85rem;
  }

  .freguesia-card__body{
    grid-template-columns:1fr;
    gap:.75rem;
  }

  .freguesia-person{
    grid-template-columns:42px minmax(0,1fr);
    gap:.52rem .6rem;
    min-height:58px;
    padding:.52rem 0;
  }

  .freguesia-person__media{
    width:42px;
    height:42px;
  }

  .freguesia-person__name{
    font-size:.86rem;
  }

  .freguesia-person__role{
    -webkit-line-clamp:3;
  }

  .freguesia-person__action{
    grid-column:2;
    justify-self:start;
    font-size:.7rem;
  }
}

/* ---------- NT Porto identity system pass ---------- */
:root{
  --color-il-blue:#005287;
  --color-il-cyan:#00AEEF;
  --color-il-yellow:#FFF200;
  --color-il-magenta:#EC008E;
  --color-il-red:#ED1C24;
  --color-il-dark:#062550;
  --color-ink:#071D34;
  --font-display:"Bebas Neue",Montserrat,system-ui,sans-serif;
  --shadow-brand:0 16px 36px rgba(0,47,95,.1);
}

.site-header{
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(0,82,135,.11);
}

.site-header__inner{
  min-height:74px;
  padding-block:.55rem;
}

.site-brand__link{
  display:flex;
  align-items:center;
  gap:.72rem;
  min-width:0;
}

.site-brand__mark,
.custom-logo{
  width:clamp(130px,14vw,178px);
  height:auto;
  border-radius:7px;
}

.site-brand__tagline{
  max-width:11.5rem;
  color:#49677D;
  font-size:.72rem;
  line-height:1.25;
}

.site-nav__menu{
  gap:.15rem;
}

.site-nav__menu a{
  position:relative;
  border-radius:0;
  color:#12324A;
  font-size:.86rem;
  font-weight:700;
  padding:.48rem .62rem .56rem;
  text-decoration:none;
}

.site-nav__menu a::after,
.site-header__cta::after{
  content:"";
  position:absolute;
  left:.62rem;
  right:.62rem;
  bottom:.26rem;
  height:2px;
  background:var(--color-il-cyan);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .18s ease,background-color .18s ease;
}

.site-nav__menu a:hover::after,
.site-nav__menu .current-menu-item > a::after,
.site-header__cta:hover::after{
  transform:scaleX(1);
}

.site-header__cta{
  position:relative;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--color-il-blue);
  box-shadow:none;
  padding:.48rem .25rem .58rem;
  font-size:.86rem;
  font-weight:800;
}

.site-header__cta:hover{
  background:transparent;
  color:var(--color-il-dark);
  text-decoration:none;
}

.hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 14%,rgba(0,174,239,.32),transparent 22rem),
    linear-gradient(135deg,#03284D 0%,#005287 54%,#006CA0 100%);
}

.hero::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:1;
  height:7px;
  background:linear-gradient(90deg,var(--color-il-cyan) 0 36%,var(--color-il-yellow) 36% 58%,var(--color-il-magenta) 58% 78%,var(--color-il-red) 78% 100%);
}

.hero > .container{
  position:relative;
  z-index:2;
}

.hero__eyebrow,
.section__kicker{
  color:var(--color-il-cyan);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.04em;
}

.hero__title,
.section__title,
.cta-band__title{
  color:inherit;
  font-weight:900;
  letter-spacing:0;
}

.hero--home .hero__title{
  max-width:14ch;
  font-size:clamp(2.8rem,6.7vw,5.9rem);
  line-height:.95;
}

.hero--home .hero__subtitle{
  max-width:45rem;
  color:rgba(255,255,255,.86);
  font-size:clamp(1rem,1.35vw,1.2rem);
}

.hero__proof{
  gap:.45rem;
}

.hero__proof span{
  color:rgba(255,255,255,.84);
  border-color:rgba(255,255,255,.24);
  border-radius:999px;
  padding:.32rem .62rem;
}

.hero__wordmark{
  font-family:var(--font-display);
  color:rgba(255,255,255,.09);
  font-weight:400;
  letter-spacing:0;
  text-transform:uppercase;
}

.hero__image-slot{
  isolation:isolate;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:.45rem;
  overflow:hidden;
  padding:1.35rem;
  border:1px solid rgba(255,255,255,.2);
  border-radius:8px;
  background:
    linear-gradient(135deg,rgba(0,82,135,.92),rgba(0,174,239,.22)),
    repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 1px,transparent 1px 42px);
  box-shadow:0 28px 70px rgba(0,18,42,.22);
}

.hero__image-slot::before{
  z-index:-1;
  inset:1rem;
  border-color:rgba(255,255,255,.28);
}

.hero__image-slot::after{
  content:"";
  position:absolute;
  right:-4rem;
  top:-4rem;
  width:16rem;
  height:16rem;
  border:2.6rem solid rgba(255,242,0,.24);
  border-radius:50%;
  z-index:-1;
}

.hero__slot-logo{
  font-family:var(--font-display);
  color:#fff;
  font-size:clamp(3.8rem,8vw,7.6rem);
  line-height:.82;
  text-transform:uppercase;
  text-shadow:0 14px 34px rgba(0,18,42,.2);
}

.hero__slot-caption{
  color:#fff;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.02em;
  text-transform:uppercase;
}

.hero__slot-bars{
  display:block;
  width:min(17rem,75%);
  height:.48rem;
  border-radius:999px;
  background:linear-gradient(90deg,var(--color-il-yellow) 0 44%,var(--color-il-magenta) 44% 72%,var(--color-il-red) 72% 100%);
}

.hero__message-box{
  border:1px solid rgba(255,255,255,.7);
  border-radius:8px;
  background:rgba(255,255,255,.93);
}

.identity-strip{
  background:#fff;
  border-block:1px solid #E4EEF5;
}

.identity-strip__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:1.25rem;
  padding-block:1.55rem;
}

.identity-strip__copy{
  max-width:55rem;
}

.identity-strip__copy p:last-child{
  margin-bottom:0;
  color:#49677D;
}

.identity-strip__title{
  margin:0 0 .38rem;
  color:var(--color-il-dark);
  font-size:clamp(1.35rem,2.4vw,2rem);
  line-height:1.08;
}

.section{
  padding-block:clamp(3rem,6vw,5.2rem);
}

.section__head{
  margin-bottom:1.45rem;
}

.section__title{
  color:var(--color-il-dark);
}

.section__lead{
  color:#49677D;
}

.card-grid{
  align-items:stretch;
  gap:1rem;
}

.card-grid--3{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));
}

.card-grid > .card,
.card-grid > .card--cta,
.card-grid > .issue-card,
.card-grid > .person-card{
  max-width:none;
}

.card,
.issue-card,
.person-card,
.overview-card,
.contact-card{
  position:relative;
  overflow:hidden;
  border:1px solid #E4EEF5;
  border-radius:8px;
  background:#fff;
  box-shadow:0 1px 0 rgba(0,47,95,.03);
  height:100%;
}

.card::before,
.issue-card::before,
.person-card::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:3px;
  background:linear-gradient(90deg,var(--color-il-cyan),var(--color-il-yellow));
  opacity:.85;
}

.card:hover,
.issue-card:hover,
.person-card:hover,
.overview-card:hover,
.contact-card:hover{
  border-color:#CFE5F3;
  box-shadow:var(--shadow-brand);
}

.card__body{
  padding:1rem;
}

.card__title{
  color:var(--color-il-dark);
  font-size:1.02rem;
  line-height:1.22;
}

.card__tag{
  display:inline-flex;
  width:max-content;
  margin-bottom:.6rem;
  border-radius:999px;
  background:#E8F7FE;
  color:var(--color-il-blue);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
}

.card__media-wrap{
  aspect-ratio:4/5;
  background:
    linear-gradient(135deg,#E9F8FE,#F8FBFD),
    repeating-linear-gradient(90deg,rgba(0,82,135,.08) 0 1px,transparent 1px 26px);
}

.card__media{
  height:100%;
  object-fit:cover;
}

.card__media--empty{
  position:relative;
  min-height:0;
  border:1px dashed #CFE1EC;
  background:
    linear-gradient(135deg,rgba(0,82,135,.08),rgba(0,174,239,.08)),
    #F7FBFE;
}

.card__media--empty::after{
  content:"";
  position:absolute;
  left:1rem;
  bottom:1rem;
  width:6.2rem;
  height:.38rem;
  border-radius:999px;
  background:linear-gradient(90deg,var(--color-il-yellow),var(--color-il-magenta),var(--color-il-red));
}

.card--event .card__body{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:.75rem;
  align-items:start;
  padding-top:1rem;
}

.card--event .card__title,
.card--event .event-meta{
  grid-column:2;
}

.card--event .card__title{
  margin-bottom:.25rem;
}

.event-date-badge{
  grid-row:1 / span 2;
  width:3.4rem;
  min-width:3.4rem;
  border:1px solid #D6E8F2;
  border-radius:8px;
  background:#fff;
  color:var(--color-il-dark);
  box-shadow:none;
}

.event-date-badge__day{
  color:var(--color-il-blue);
  font-size:1.38rem;
  font-weight:900;
}

.event-date-badge__mon{
  color:var(--color-il-red);
  font-weight:900;
}

.person-card{
  min-height:100%;
}

.autarca-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(172px,212px));
  justify-content:start;
  gap:.9rem;
}

.autarca-grid--home{
  grid-template-columns:repeat(auto-fit,minmax(172px,1fr));
}

.autarca-grid .person-card--list,
.autarca-grid--home .person-card--list{
  padding:.78rem;
  gap:.72rem;
}

.autarca-grid .person-card__photo-wrap,
.autarca-grid--home .person-card__photo-wrap{
  width:100%;
  height:auto;
  margin:0;
}

.autarca-grid .person-card__photo,
.autarca-grid--home .person-card__photo,
.autarca-grid .person-card__photo--ph,
.autarca-grid--home .person-card__photo--ph{
  width:100%;
  height:auto;
  aspect-ratio:1;
  min-height:0;
  border-radius:7px;
  object-fit:cover;
}

.person-card__photo--ph{
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 72% 20%,rgba(255,242,0,.22),transparent 5rem),
    linear-gradient(135deg,#E9F8FE,#F7FBFE);
}

.person-card__photo--ph::after{
  content:"";
  width:34%;
  aspect-ratio:1;
  border:2px dashed #B7D8E9;
  border-radius:50%;
}

.autarca-grid .person-card__info,
.autarca-grid--home .person-card__info{
  gap:.2rem;
}

.autarca-grid .person-card__name,
.autarca-grid--home .person-card__name{
  color:var(--color-il-dark);
  font-size:.9rem;
  line-height:1.15;
}

.autarca-grid .person-card__role,
.autarca-grid--home .person-card__role,
.autarca-grid .person-card__group,
.autarca-grid--home .person-card__group{
  font-size:.74rem;
  line-height:1.25;
}

.person-card__action{
  width:max-content;
  margin-top:.35rem;
  font-size:.72rem;
  font-weight:900;
}

.freguesia-card-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,390px),1fr));
  gap:.9rem;
}

.freguesia-card{
  padding:.9rem;
  border-radius:8px;
}

.freguesia-card__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:.75rem;
  padding-bottom:.58rem;
  margin-bottom:.68rem;
}

.freguesia-card__head .section__kicker{
  margin:0;
  font-size:.62rem;
}

.freguesia-card__title{
  font-size:.98rem;
}

.freguesia-card__body{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.7rem;
}

.freguesia-card .freguesia-col__title{
  font-size:.62rem;
  margin-bottom:.35rem;
  padding-bottom:.28rem;
}

.freguesia-person{
  grid-template-columns:40px minmax(0,1fr);
  gap:.28rem .55rem;
  min-height:50px;
  padding:.38rem 0;
}

.freguesia-person__media{
  width:40px;
  height:40px;
  border-radius:7px;
}

.freguesia-person__name{
  font-size:.82rem;
  line-height:1.18;
}

.freguesia-person__role{
  font-size:.68rem;
  line-height:1.2;
}

.freguesia-person__action{
  font-size:.66rem;
  padding:0;
  background:transparent;
  color:var(--color-il-blue);
  box-shadow:inset 0 -2px 0 rgba(0,174,239,.28);
}

.post-type-archive-tribe_events .site-main,
.post-type-archive-tribe_events .tribe-events-before-html{
  padding-top:0!important;
  margin-top:0!important;
}

.post-type-archive-tribe_events .tribe-events-before-html .hero--events{
  margin-top:0!important;
}

.post-type-archive-tribe_events .hero--events .hero__title{
  font-weight:900!important;
  letter-spacing:0;
}

@media (min-width:1080px){
  .hero--home .hero__inner{
    min-height:620px;
  }

  .section__head{
    max-width:760px;
  }
}

@media (max-width:980px){
  .site-header__inner{
    min-height:66px;
  }

  .site-brand__tagline{
    display:none;
  }

  .site-header__cta{
    margin-left:auto;
  }

  .hero--home .hero__inner{
    grid-template-columns:1fr;
  }

  .hero__media{
    min-height:340px;
    margin-inline:0;
  }

  .hero__image-slot{
    width:100%;
    right:0;
  }
}

@media (max-width:760px){
  .site-header__cta{
    display:none;
  }

  .site-nav__toggle{
    border:0;
    background:transparent;
  }

  .site-nav__menu{
    padding:.65rem;
  }

  .site-nav__menu a{
    padding:.72rem .75rem;
  }

  .site-nav__menu a::after{
    left:.75rem;
    right:.75rem;
    bottom:.48rem;
  }

  .hero--home{
    padding-top:2.35rem;
  }

  .hero--home .hero__title{
    font-size:clamp(2.4rem,12vw,3.55rem);
  }

  .hero__media{
    display:flex;
    flex-direction:column;
    min-height:0;
    margin:1.45rem 0 1rem;
  }

  .hero__image-slot{
    position:relative;
    inset:auto;
    width:100%;
    aspect-ratio:4/3;
  }

  .hero__slot-logo{
    font-size:clamp(3.2rem,18vw,5rem);
  }

  .hero__message-box{
    position:relative;
    top:auto;
    right:auto;
    left:auto;
    transform:none;
    width:auto;
    margin:.85rem 0 0;
  }

  .hero__message-box:hover{
    transform:translateY(-2px);
  }

  .identity-strip__inner{
    grid-template-columns:1fr;
    align-items:start;
  }

  .identity-strip__inner .btn{
    justify-self:start;
  }

  .autarca-grid,
  .autarca-grid--home{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .freguesia-card__body{
    grid-template-columns:1fr;
  }
}

@media (max-width:460px){
  .site-brand__mark,
  .custom-logo{
    width:122px;
  }

  .hero__image-slot{
    padding:1rem;
  }

  .autarca-grid,
  .autarca-grid--home{
    gap:.65rem;
  }

  .autarca-grid .person-card--list,
  .autarca-grid--home .person-card--list{
    padding:.62rem;
  }

  .autarca-grid .person-card__name,
  .autarca-grid--home .person-card__name{
    font-size:.82rem;
  }

  .autarca-grid .person-card__role,
  .autarca-grid--home .person-card__role,
  .autarca-grid .person-card__group,
  .autarca-grid--home .person-card__group{
    font-size:.68rem;
  }
}

/* ===== Instagram carousel gallery inside Notícias posts ===== */
.entry-content .ig-carousel-wrap{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:.75rem;
  margin:1.5rem 0;
}
.entry-content .ig-carousel-wrap img.ig-carousel{
  width:100%;
  height:auto;
  display:block;
  border-radius:8px;
  background:var(--color-il-dark,#002f5f);
}
@media (max-width:38rem){
  .entry-content .ig-carousel-wrap{
    grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
    gap:.4rem;
  }
}

/* Single-post featured image constrained, on content columns */
.entry-featured{
  margin:0 0 1.5rem;
}
.entry-featured img{
  width:100%;
  height:auto;
  max-height:540px;
  object-fit:cover;
  border-radius:8px;
}

@media (max-width:48rem){
  .entry-featured img{
    max-height:340px;
  }
}

/* ---------- Infinite scroll loading indicator ---------- */
.infinite-scroll-loading{
  text-align:center;
  padding:2rem;
  color:var(--color-il-blue);
  font-size:.9rem;
  font-weight:600;
}
.infinite-scroll-sentinel{
  height:1px;
}


/* ---------- Header spacing correction ---------- */
.site-header__inner{
  justify-content:flex-start;
}
.site-brand{
  margin-right:auto;
}
.site-nav{
  margin-left:0;
}
.site-header__cta{
  flex:0 0 auto;
  margin-left:.55rem;
}
@media (max-width:980px){
  .site-header__cta{
    margin-left:.55rem;
  }
}

/* ---------- Page consistency: Sobre Nós + Equipa ---------- */
.page-id-8 .hero{
  padding-block:3.25rem;
}
.page-id-8 .entry{
  background:#fff;
}
.page-id-8 .entry-content{
  max-width:920px;
  padding-block:3rem;
  background:transparent;
  border:0;
  box-shadow:none;
}
.page-id-8 .entry-content > *{
  max-width:760px;
}
.page-id-8 .entry-content > .wp-block-buttons{
  max-width:760px;
}
.page-id-8 .entry-content h2{
  margin-top:2.25rem;
}
.page-id-8 .entry-content h2:first-child{
  margin-top:0;
}

.autarquia-links-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  align-items:stretch;
}
.autarquia-link-card{
  display:flex;
  flex-direction:column;
  gap:.45rem;
  min-height:155px;
  padding:1.15rem;
  border:1px solid var(--color-border);
  border-radius:8px;
  background:#fff;
  color:var(--color-text);
  text-decoration:none;
  box-shadow:0 1px 0 rgba(0,47,95,.02);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.autarquia-link-card:hover{
  transform:translateY(-2px);
  border-color:rgba(0,174,239,.32);
  box-shadow:0 12px 30px rgba(0,47,95,.08);
  text-decoration:none;
}
.autarquia-link-card__kicker{
  color:var(--color-il-blue);
  font-size:.74rem;
  font-weight:800;
  text-transform:uppercase;
}
.autarquia-link-card strong{
  color:var(--color-il-dark);
  font-size:1.12rem;
  line-height:1.2;
}
.autarquia-link-card span:last-child{
  color:var(--color-muted);
  font-size:.92rem;
  line-height:1.5;
}
@media (max-width:700px){
  .autarquia-links-grid{
    grid-template-columns:1fr;
  }
  .page-id-8 .entry-content{
    padding-block:2.25rem;
  }
}

/* ---------- Equipa: Autarcas boxed teaser ---------- */
.equipa-autarcas-section{
  padding-block:3.25rem;
}
.equipa-autarcas-box{
  max-width:980px;
  margin:0 auto;
  padding:1.35rem;
  border:1px solid rgba(0,47,95,.10);
  border-radius:10px;
  background:#fff;
  box-shadow:0 10px 28px rgba(0,47,95,.06);
}
.equipa-autarcas-box__head{
  max-width:760px;
  margin:0 0 1.1rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--color-border);
}
.equipa-autarcas-box__head .section__title{
  margin-bottom:.35rem;
  font-size:clamp(1.45rem,2.2vw,2rem);
}
.equipa-autarcas-box__head .section__lead{
  margin:0;
  font-size:.98rem;
}
.equipa-autarcas-box .autarquia-links-grid{
  max-width:none;
  padding:0;
}
.equipa-autarcas-box .autarquia-link-card{
  min-height:138px;
  background:#F8FBFD;
}
@media (max-width:700px){
  .equipa-autarcas-box{
    padding:1rem;
  }
}

/* Footer bottom legal bar — copyright+links on left, cookie button on right */
.site-footer__bottom .container{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;
}
.site-footer__legal-copy{
  margin:0;font-size:11px;color:rgba(255,255,255,.48);
  display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:20px;
}
.site-footer__legal-copy a{
  color:rgba(255,255,255,.58);font-size:11px;
  text-underline-offset:4px;
}
.site-footer__legal-copy a:hover{color:rgba(255,255,255,.85);}
.pl-cookie-settings{
  font-size:11px;padding:4px 12px;
  background:transparent;border:1px solid rgba(255,255,255,.2);
  border-radius:4px;color:rgba(255,255,255,.7);
  cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;
  transition:background .2s,color .2s,border-color .2s;
}
.pl-cookie-settings::before{content:"⚙";font-size:10px;opacity:.7;}
.pl-cookie-settings:hover{
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.95);
  border-color:rgba(255,255,255,.35);
  text-decoration:none;
}
@media (max-width:38rem){
  .site-footer__bottom .container{
    flex-direction:column;align-items:flex-start;gap:.5rem;
  }
}
