
:root{--ndo-navy:#08254d;--ndo-blue:#2865ff;--ndo-muted:#718096;--ndo-line:#dfe5ed;--ndo-soft:#f6f8fb}
.ndo-fr-page{font-family:inherit;color:var(--ndo-navy);overflow-x:clip}
.ndo-fr-hero{min-height:300px;display:grid;grid-template-columns:42% 58%;background:#07264c;margin:0}
.ndo-fr-hero-copy{display:flex;align-items:center;padding:50px max(24px,calc((100vw - 1060px)/2))}
.ndo-fr-hero h1{margin:0;color:#fff;font-size:clamp(46px,6vw,82px);line-height:.95;font-weight:800;letter-spacing:-2px}
.ndo-fr-hero-image{min-height:300px;background:#164d83 center/cover no-repeat;position:relative}
.ndo-fr-hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#07264c 0%,rgba(7,38,76,.62) 14%,rgba(7,38,76,0) 52%)}
.ndo-fr-irs{max-width:1060px;margin:0 auto}
.ndo-fr-irs-default{max-width:none;background:var(--ndo-blue);color:#fff;display:flex;justify-content:center;gap:80px;align-items:center;padding:18px 24px}
.ndo-fr-irs-default div{display:flex;flex-direction:column}.ndo-fr-irs-default small{font-size:10px;letter-spacing:1.2px}.ndo-fr-irs-default strong{font-size:15px}
.ndo-fr-irs-default a{background:#fff;color:var(--ndo-blue);padding:10px 22px;border-radius:8px;text-decoration:none;font-weight:800;font-size:11px}
.ndo-fr-pub{max-width:1060px;margin:28px auto 36px;padding:0}
.ndo-fr-shell{max-width:1060px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:36px;padding:0 0 70px}
.ndo-fr-main{min-width:0}.ndo-fr-side{min-width:0}
.ndo-fr-sec-head{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--ndo-line);padding-bottom:14px;margin:0 0 24px}
.ndo-fr-sec-head h2{margin:0;padding-left:14px;border-left:4px solid var(--ndo-blue);font-size:26px;line-height:1.05;text-transform:uppercase}
.ndo-fr-kicker{display:block;color:var(--ndo-blue);font-size:9px;letter-spacing:1.8px;font-weight:800;margin-bottom:8px}
.ndo-fr-news-main{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.ndo-fr-card-main a{text-decoration:none;color:inherit}.ndo-fr-card-main img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.ndo-fr-card-main h3{font-size:21px;line-height:1.08;margin:8px 0}.ndo-fr-card-main p{font-size:13px;line-height:1.55;color:#748196;margin:0}
.ndo-fr-meta{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#718096;margin-top:12px}
.ndo-fr-news-small,.ndo-fr-list-6{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px;margin-top:28px}
.ndo-fr-news-small article a,.ndo-fr-list-6 a{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:start;text-decoration:none;color:inherit}
.ndo-fr-news-small img,.ndo-fr-list-6 img{width:72px;height:60px;object-fit:cover}
.ndo-fr-news-small h4,.ndo-fr-list-6 strong{font-size:13px;line-height:1.15;margin:0;display:block}.ndo-fr-news-small span,.ndo-fr-list-6 small{display:block;font-size:9px;color:#7e899a;text-transform:uppercase;margin-top:8px}
.ndo-fr-sports,.ndo-fr-duocards,.ndo-fr-generic{margin-top:58px}
.ndo-fr-list-6{margin-top:0}
.ndo-fr-duocards{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.ndo-fr-feature-card{min-height:270px;border:1px solid var(--ndo-line);border-radius:8px;padding:28px;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.ndo-fr-feature-card.dark{background:#082a50;color:#fff;border-color:#082a50}.ndo-fr-feature-card.light{background:#f7f9fc}
.ndo-fr-feature-card h3{font-size:25px;line-height:1.02;margin:18px 0}.ndo-fr-feature-card h3 em{font-style:normal;color:var(--ndo-blue)}
.ndo-fr-feature-card p{font-size:13px;line-height:1.5;color:#8391a5}.ndo-fr-feature-card.dark p{color:#bac5d3}
.ndo-fr-btn{margin-top:auto;align-self:flex-start;background:#fff;color:#08254d;padding:10px 16px;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:.8px}.ndo-fr-btn.blue{background:var(--ndo-blue);color:#fff}
.ndo-fr-side{display:flex;flex-direction:column;gap:22px}
.ndo-fr-sidebox,.ndo-fr-junta{border:1px solid var(--ndo-line);border-radius:10px;background:#fff;padding:16px;overflow:hidden}
.ndo-fr-placeholder{min-height:120px;display:flex;flex-direction:column;justify-content:center;color:#7b8798}.ndo-fr-placeholder strong{color:var(--ndo-navy);margin-bottom:5px}.ndo-fr-placeholder.wide{min-height:110px;border:1px dashed #cbd5e1;border-radius:8px;padding:20px}
.ndo-fr-junta{background:#092b52;color:#fff;padding:26px 22px;border:0;border-radius:0}
.ndo-fr-junta h3{font-size:20px;margin:8px 0 22px}.ndo-fr-junta p{font-size:12px;line-height:1.35;margin:0 0 18px}.ndo-fr-junta b{display:block;color:#5686ff;text-transform:uppercase;font-size:8px;letter-spacing:.8px;margin-bottom:4px}.ndo-fr-junta a{color:#fff}
.ndo-fr-empty{padding:20px 0;color:#7b8798}
.ndo-fr-portal{overflow-x:auto}
.ndo-fr-side .dataTables_wrapper,.ndo-fr-side .dt-container{max-width:100%!important;overflow:hidden!important}
.ndo-fr-side table{width:100%!important;max-width:100%!important;table-layout:fixed!important}
.ndo-fr-side td,.ndo-fr-side th{white-space:normal!important;overflow-wrap:anywhere!important}

@media(max-width:900px){
 .ndo-fr-hero{grid-template-columns:1fr 1fr;min-height:240px}.ndo-fr-hero-image{min-height:240px}
 .ndo-fr-shell{grid-template-columns:1fr;padding:0 24px 60px}.ndo-fr-side{display:grid;grid-template-columns:1fr 1fr}
 .ndo-fr-pub{padding:0 24px}.ndo-fr-irs{max-width:none}
}
@media(max-width:620px){
 .ndo-fr-hero{grid-template-columns:1fr;min-height:0}.ndo-fr-hero-copy{padding:30px 20px}.ndo-fr-hero h1{font-size:48px}.ndo-fr-hero-image{min-height:180px}
 .ndo-fr-irs-default{align-items:flex-start;gap:14px;flex-direction:column;padding:16px 20px}
 .ndo-fr-shell{padding:0 18px 50px;gap:28px}.ndo-fr-pub{padding:0 18px;margin:20px auto 28px}
 .ndo-fr-news-main,.ndo-fr-news-small,.ndo-fr-list-6,.ndo-fr-duocards,.ndo-fr-side{grid-template-columns:1fr}
 .ndo-fr-news-small article a,.ndo-fr-list-6 a{grid-template-columns:76px 1fr}
 .ndo-fr-sec-head h2{font-size:23px}
 .ndo-fr-feature-card{min-height:230px}
 body{overflow-x:hidden}
}

/* v1.0.1 — afinações do modelo de freguesia */
.ndo-fr-hero{min-height:270px;grid-template-columns:40% 60%;max-width:1060px;margin:0 auto}
.ndo-fr-hero-copy{padding:34px 38px;justify-content:flex-start;overflow:visible}
.ndo-fr-hero h1{font-size:clamp(44px,5vw,70px);white-space:normal;overflow:visible;letter-spacing:-1.5px}
.ndo-fr-hero-image{min-height:270px}
.ndo-fr-irs-default{max-width:1060px;margin:0 auto}
.ndo-fr-sidebox{padding:12px}
.ndo-fr-flags{max-height:390px;overflow:auto}
.ndo-fr-flags table{font-size:11px!important}
.ndo-fr-flags th,.ndo-fr-flags td{padding:7px 5px!important;line-height:1.25!important}
.ndo-fr-flags .dt-search,.ndo-fr-flags .dt-length,.ndo-fr-flags .dt-info,.ndo-fr-flags .dt-paging,.ndo-fr-flags .tablepress-edit-link{display:none!important}
.ndo-fr-events-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ndo-line)}
.ndo-fr-event{display:grid;grid-template-columns:52px 1fr 22px;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--ndo-line);text-decoration:none;color:inherit}
.ndo-fr-event:nth-child(odd){margin-right:18px}.ndo-fr-event:nth-child(even){margin-left:18px}
.ndo-fr-event-date{background:#08254d;color:#fff;border-radius:4px;text-align:center;padding:7px 4px}.ndo-fr-event-date small{display:block;font-size:8px;letter-spacing:1px}.ndo-fr-event-date b{font-size:20px}
.ndo-fr-event-copy small{display:block;color:#2865ff;font-size:8px;font-weight:800;letter-spacing:1px;margin-bottom:4px}.ndo-fr-event-copy strong{display:block;font-size:13px;line-height:1.2}.ndo-fr-event-arrow{font-size:20px;font-weight:700}
@media(max-width:620px){.ndo-fr-hero{grid-template-columns:1fr;max-width:none}.ndo-fr-hero-copy{padding:26px 20px}.ndo-fr-hero-image{min-height:170px}.ndo-fr-events-grid{grid-template-columns:1fr}.ndo-fr-event:nth-child(n){margin-left:0;margin-right:0}}


/* v1.0.3 — Praias TablePress 15 compactas */
.ndo-fr-flags-title{font-size:11px;font-weight:800;letter-spacing:1.2px;color:#2865ff;margin:0 0 10px}
.ndo-fr-flags [id^="tablepress-15_wrapper"]{width:100%!important;max-width:100%!important;overflow:visible!important}
.ndo-fr-flags table[id^="tablepress-15"],.ndo-fr-flags table.tablepress-id-15{width:100%!important;max-width:100%!important;border-collapse:separate!important;border-spacing:0 8px!important;table-layout:fixed!important}
.ndo-fr-flags table[id^="tablepress-15"] thead,.ndo-fr-flags table.tablepress-id-15 thead{display:none!important}
.ndo-fr-flags table[id^="tablepress-15"] tbody tr,.ndo-fr-flags table.tablepress-id-15 tbody tr{display:block!important;width:100%!important;background:#fff!important;border:1px solid #e3eaf2!important;border-radius:10px!important;margin:0 0 8px!important;overflow:hidden!important}
.ndo-fr-flags table[id^="tablepress-15"] tbody td,.ndo-fr-flags table.tablepress-id-15 tbody td{display:block!important;width:100%!important;max-width:100%!important;background:#fff!important;color:#041e42!important;border:0!important;padding:0 12px!important;font-size:12px!important;line-height:1.35!important;white-space:normal!important;overflow-wrap:anywhere!important}
.ndo-fr-flags table[id^="tablepress-15"] tbody td:first-child,.ndo-fr-flags table.tablepress-id-15 tbody td:first-child{padding-top:11px!important;padding-bottom:3px!important;font-weight:800!important}
.ndo-fr-flags table[id^="tablepress-15"] tbody td:nth-child(2),.ndo-fr-flags table.tablepress-id-15 tbody td:nth-child(2){padding-top:3px!important;padding-bottom:3px!important}
.ndo-fr-flags table[id^="tablepress-15"] tbody td:nth-child(3),.ndo-fr-flags table.tablepress-id-15 tbody td:nth-child(3){padding-top:3px!important;padding-bottom:11px!important;color:#64748b!important;font-size:10px!important}
.ndo-fr-praia-cor{display:inline-flex;align-items:center;gap:8px}.ndo-fr-sem-vigilancia{color:#64748b;font-weight:700}
.ndo-fr-flag{width:24px;height:16px;border-radius:3px;border:1px solid rgba(4,30,66,.14);display:inline-block;position:relative;flex:0 0 auto}
.ndo-fr-flag:before{content:"";position:absolute;left:-4px;top:-2px;width:2px;height:22px;background:#041e42;border-radius:9px}
.ndo-fr-flag.verde{background:#22c55e}.ndo-fr-flag.amarela{background:#facc15}.ndo-fr-flag.vermelha{background:#ef4444}.ndo-fr-flag.xadrez{background:repeating-conic-gradient(#111 0 25%,#fff 0 50%) 50%/8px 8px}
.ndo-fr-praias-legenda{margin-top:12px;padding-top:12px;border-top:1px solid #e3eaf2}.ndo-fr-praias-legenda>strong{display:block;text-transform:uppercase;font-size:10px;letter-spacing:.7px;margin-bottom:9px}.ndo-fr-praias-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px}.ndo-fr-praias-grid span{display:flex;align-items:center;gap:7px;font-size:10px}.ndo-fr-praias-grid .ndo-fr-flag{width:18px;height:12px}.ndo-fr-praias-grid .ndo-fr-flag:before{height:17px;top:-2px}.ndo-fr-praias-legenda small{display:block;color:#718096;font-size:9px;line-height:1.4;margin-top:10px}

/* v1.0.3 — Portal BASE agrupado */
.ndo-fr-portal-table{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.ndo-fr-portal-table .dt-search,.ndo-fr-portal-table .dt-info,.ndo-fr-portal-table .dt-paging,.ndo-fr-portal-table .dt-length,.ndo-fr-portal-table .tablepress-edit-link{display:none!important}
.ndo-fr-concursos{width:100%!important;border-collapse:collapse!important;font-size:12px!important;line-height:1.35;color:#041e42!important}
.ndo-fr-concursos th{background:#f7f9fc!important;color:#041e42!important;padding:10px 9px!important;border-bottom:2px solid #e3eaf2!important;text-align:left!important}
.ndo-fr-concursos td{color:#041e42!important;padding:10px 9px!important;border-bottom:1px solid #e3eaf2!important;vertical-align:top!important}
.ndo-fr-concursos thead th:first-child,.ndo-fr-concursos tbody tr:not(.ndo-fr-group-row) td:first-child{display:none!important}
.ndo-fr-group-row td{padding:0!important;border:0!important;background:transparent!important}
.ndo-fr-group-toggle{width:100%;margin:13px 0 6px;padding:12px 14px;border:1px solid #dce8ef;border-radius:10px;background:#f0f6fa;color:#041e42;font:inherit;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:space-between;text-align:left}
.ndo-fr-group-toggle:after{content:"+";font-size:19px}.ndo-fr-group-toggle.active:after{content:"−"}.ndo-fr-group-toggle span{display:flex;flex-direction:column;gap:3px}.ndo-fr-group-toggle small{font-size:10px;font-weight:500;opacity:.72}.ndo-fr-group-hidden{display:none!important}
.ndo-fr-pub-rodape{margin-top:12px;margin-bottom:45px}
@media(max-width:620px){.ndo-fr-portal-table{overflow-x:auto!important}.ndo-fr-concursos{min-width:760px!important}.ndo-fr-praias-grid{grid-template-columns:1fr 1fr}.ndo-fr-pub-rodape{padding:0 18px}}


/* =========================================================
   v1.0.4 — acertos Esmoriz / layout de freguesia
   ========================================================= */

/* Banner depois do IRS: mais largo */
.ndo-fr-pub-cabecalho{
  width:calc(100% - 32px)!important;
  max-width:1200px!important;
  margin:28px auto 38px!important;
  padding:0!important;
}
.ndo-fr-pub-cabecalho img,
.ndo-fr-pub-cabecalho iframe,
.ndo-fr-pub-cabecalho > *{
  max-width:100%!important;
}

/* Coluna de utilidade: Meteo + Praias + Junta passam a ser UMA só barra */
.ndo-fr-side{
  display:block!important;
}
.ndo-fr-utility-stack{
  border:1px solid #dfe5ed;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
.ndo-fr-utility-stack .ndo-fr-sidebox,
.ndo-fr-utility-stack .ndo-fr-junta{
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.ndo-fr-utility-stack .ndo-fr-sidebox + .ndo-fr-sidebox,
.ndo-fr-utility-stack .ndo-fr-junta{
  border-top:1px solid #dfe5ed!important;
}

/* Praias: links deixam de ficar vermelhos */
.ndo-fr-flags a,
.ndo-fr-flags a:visited{
  color:#08254d!important;
  text-decoration:none!important;
  font-weight:700!important;
}
.ndo-fr-flags a:hover{
  color:#2865ff!important;
}

/* Estado das praias mais compacto */
.ndo-fr-flags{
  max-height:none!important;
  overflow:visible!important;
}
.ndo-fr-flags table[id^="tablepress-15"],
.ndo-fr-flags table.tablepress-id-15{
  border-spacing:0 6px!important;
}
.ndo-fr-flags table[id^="tablepress-15"] tbody tr,
.ndo-fr-flags table.tablepress-id-15 tbody tr{
  margin-bottom:6px!important;
  border-radius:8px!important;
  box-shadow:none!important;
}
.ndo-fr-flags table[id^="tablepress-15"] tbody td,
.ndo-fr-flags table.tablepress-id-15 tbody td{
  font-size:11px!important;
  padding-left:10px!important;
  padding-right:10px!important;
}
.ndo-fr-flags table[id^="tablepress-15"] tbody td:first-child,
.ndo-fr-flags table.tablepress-id-15 tbody td:first-child{
  padding-top:9px!important;
  padding-bottom:2px!important;
}
.ndo-fr-flags table[id^="tablepress-15"] tbody td:nth-child(3),
.ndo-fr-flags table.tablepress-id-15 tbody td:nth-child(3){
  padding-bottom:9px!important;
}

/* Associações e Media */
.ndo-fr-feature-card{
  min-height:245px!important;
  padding:26px!important;
}
.ndo-fr-feature-card h3{
  font-size:24px!important;
}
.ndo-fr-feature-card p{
  font-size:13px!important;
  line-height:1.55!important;
  max-width:32em;
}

/* Portal BASE: largura total da página */
.ndo-fr-full{
  width:calc(100% - 32px);
  max-width:1060px;
  margin:58px auto 0;
}
.ndo-fr-portal{
  overflow:visible!important;
}
.ndo-fr-portal-table{
  width:100%!important;
  max-width:100%!important;
}

/* Publicidade de rodapé: largura total */
.ndo-fr-pub-rodape{
  width:calc(100% - 32px)!important;
  max-width:1060px!important;
  margin:34px auto 48px!important;
  padding:0!important;
}
.ndo-fr-pub-rodape img,
.ndo-fr-pub-rodape iframe,
.ndo-fr-pub-rodape > *{
  max-width:100%!important;
}

/* Mobile */
@media(max-width:900px){
  .ndo-fr-side{
    display:block!important;
  }
  .ndo-fr-utility-stack{
    max-width:100%;
  }
}
@media(max-width:620px){
  .ndo-fr-pub-cabecalho,
  .ndo-fr-pub-rodape,
  .ndo-fr-full{
    width:calc(100% - 36px)!important;
  }
}


/* =========================================================
   v1.0.5 — banner full width, praias, Junta logo, Portal hover
   ========================================================= */

/* Banner da freguesia: largura TOTAL do viewport */
.ndo-fr-pub-cabecalho{
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding-left:0!important;
  padding-right:0!important;
}
.ndo-fr-pub-cabecalho > *,
.ndo-fr-pub-cabecalho img,
.ndo-fr-pub-cabecalho iframe{
  width:100%!important;
  max-width:100%!important;
  display:block!important;
}

/* A regra anterior display:block!important impedia o JS de esconder praias.
   Esta classe ganha prioridade e mostra SOMENTE as praias configuradas. */
.ndo-fr-flags table[id^="tablepress-15"] tbody tr.ndo-fr-praia-hide,
.ndo-fr-flags table.tablepress-id-15 tbody tr.ndo-fr-praia-hide{
  display:none!important;
}

/* Junta: logótipo */
.ndo-fr-junta-logo{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:78px;
  margin:4px 0 18px;
  padding:8px;
}
.ndo-fr-junta-logo img{
  display:block;
  width:auto;
  max-width:150px;
  max-height:82px;
  object-fit:contain;
}

/* Portal BASE: nunca vermelho nos links */
.ndo-fr-portal a,
.ndo-fr-portal a:visited,
.ndo-fr-portal table a,
.ndo-fr-portal table a:visited{
  color:#041e42!important;
  text-decoration:none!important;
}
.ndo-fr-portal a:hover,
.ndo-fr-portal a:focus,
.ndo-fr-portal table a:hover,
.ndo-fr-portal table a:focus{
  color:#041e42!important;
  text-decoration:none!important;
  opacity:.75;
}

/* Rodapé publicidade também ocupa toda a largura útil da página */
.ndo-fr-pub-rodape{
  width:100%!important;
  max-width:1060px!important;
}


/* =========================================================
   v1.0.6 — correções definitivas
   ========================================================= */

/* Permitir que o banner saia do contentor da página */
.ndo-fr-page{
  overflow-x:visible!important;
}

/* Banner CABEÇALHO: viewport inteiro, não 1060px */
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho{
  position:relative!important;
  left:50%!important;
  right:50%!important;
  width:100vw!important;
  max-width:100vw!important;
  margin-left:-50vw!important;
  margin-right:-50vw!important;
  padding:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}

/* Remover limites que possam vir do plugin da publicidade */
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho > div,
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho > section,
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho .ndo-publicidade,
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho [class*="publicidade"],
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho a{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  box-sizing:border-box!important;
}
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho img,
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho iframe{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  height:auto;
  margin:0!important;
}

/* PRAIAS — layout compacto em cartões de 3 linhas */
body .ndo-fr-page .ndo-fr-flags{
  padding:14px!important;
  max-height:none!important;
  overflow:visible!important;
}
body .ndo-fr-page .ndo-fr-flags [id^="tablepress-15_wrapper"]{
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"],
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15{
  width:100%!important;
  max-width:100%!important;
  border-collapse:separate!important;
  border-spacing:0 8px!important;
  table-layout:fixed!important;
  background:transparent!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] thead,
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 thead{
  display:none!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] tbody tr,
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 tbody tr{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:0 0 8px!important;
  padding:0!important;
  border:1px solid #e3eaf2!important;
  border-radius:9px!important;
  background:#fff!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] tbody tr.ndo-fr-praia-hide,
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 tbody tr.ndo-fr-praia-hide{
  display:none!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] tbody td,
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 tbody td{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  padding:0 10px!important;
  border:0!important;
  background:#fff!important;
  color:#041e42!important;
  font-size:11px!important;
  line-height:1.3!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] tbody td:first-child,
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 tbody td:first-child{
  padding-top:10px!important;
  padding-bottom:3px!important;
  font-weight:800!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] tbody td:nth-child(2),
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 tbody td:nth-child(2){
  padding-top:2px!important;
  padding-bottom:3px!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] tbody td:nth-child(3),
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 tbody td:nth-child(3){
  padding-top:2px!important;
  padding-bottom:10px!important;
  color:#64748b!important;
  font-size:10px!important;
}

/* Bandeira visual */
body .ndo-fr-page .ndo-fr-praia-cor{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  color:#041e42!important;
}
body .ndo-fr-page .ndo-fr-flag{
  position:relative;
  display:inline-block!important;
  width:25px!important;
  height:16px!important;
  border-radius:3px!important;
  border:1px solid rgba(4,30,66,.12)!important;
}
body .ndo-fr-page .ndo-fr-flag:before{
  content:"";
  position:absolute;
  left:-4px;
  top:-2px;
  width:2px;
  height:21px;
  background:#041e42;
}
body .ndo-fr-page .ndo-fr-flag.verde{background:#22c55e!important}
body .ndo-fr-page .ndo-fr-flag.amarela{background:#facc15!important}
body .ndo-fr-page .ndo-fr-flag.vermelha{background:#ef4444!important}
body .ndo-fr-page .ndo-fr-flag.xadrez{
  background:
    linear-gradient(45deg,#111 25%,transparent 25%) 0 0/8px 8px,
    linear-gradient(45deg,transparent 75%,#111 75%) 0 0/8px 8px,
    linear-gradient(45deg,transparent 75%,#111 75%) 4px 4px/8px 8px,
    linear-gradient(45deg,#111 25%,#fff 25%) 4px 4px/8px 8px!important;
}

/* Links das praias nunca vermelhos */
body .ndo-fr-page .ndo-fr-flags a,
body .ndo-fr-page .ndo-fr-flags a:link,
body .ndo-fr-page .ndo-fr-flags a:visited,
body .ndo-fr-page .ndo-fr-flags a:hover,
body .ndo-fr-page .ndo-fr-flags a:focus,
body .ndo-fr-page .ndo-fr-flags a:active{
  color:#041e42!important;
  text-decoration:none!important;
}

/* PORTAL BASE — impedir qualquer vermelho do tema/plugin */
html body .ndo-fr-page section.ndo-fr-portal a,
html body .ndo-fr-page section.ndo-fr-portal a:link,
html body .ndo-fr-page section.ndo-fr-portal a:visited,
html body .ndo-fr-page section.ndo-fr-portal a:hover,
html body .ndo-fr-page section.ndo-fr-portal a:focus,
html body .ndo-fr-page section.ndo-fr-portal a:active,
html body .ndo-fr-page section.ndo-fr-portal td a,
html body .ndo-fr-page section.ndo-fr-portal td a:hover,
html body .ndo-fr-page section.ndo-fr-portal td a:focus,
html body .ndo-fr-page section.ndo-fr-portal td a:active{
  color:#041e42!important;
  -webkit-text-fill-color:#041e42!important;
  text-decoration:none!important;
  background:transparent!important;
  border-color:inherit!important;
}

/* Botões de grupos do Portal mantêm azul escuro */
html body .ndo-fr-page section.ndo-fr-portal .ndo-fr-group-toggle,
html body .ndo-fr-page section.ndo-fr-portal .ndo-fr-group-toggle:hover,
html body .ndo-fr-page section.ndo-fr-portal .ndo-fr-group-toggle:focus{
  color:#041e42!important;
  -webkit-text-fill-color:#041e42!important;
  background:#f0f6fa!important;
  border-color:#dce8ef!important;
}
html body .ndo-fr-page section.ndo-fr-portal .ndo-fr-group-toggle:hover{
  background:#e8f1f7!important;
}

/* Mobile: não deixar o banner criar scroll horizontal */
@media(max-width:620px){
  body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho{
    width:100vw!important;
    max-width:100vw!important;
  }
}


/* =========================================================
   v1.0.7 — CORREÇÃO: quem ocupa toda a largura é o HERO
   ========================================================= */

/* HERO / banner da freguesia em largura total do viewport */
body .ndo-fr-page .ndo-fr-hero{
  position:relative!important;
  left:50%!important;
  width:100vw!important;
  max-width:100vw!important;
  margin-left:-50vw!important;
  margin-right:0!important;
  box-sizing:border-box!important;
}

/* Mantém conteúdo do hero alinhado visualmente, mas fundo/imagem a toda largura */
body .ndo-fr-page .ndo-fr-hero-copy{
  padding-left:max(24px, calc((100vw - 1060px)/2))!important;
}
body .ndo-fr-page .ndo-fr-hero-image{
  width:100%!important;
  max-width:none!important;
}

/* A publicidade depois do IRS volta ao contentor normal */
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho{
  position:static!important;
  left:auto!important;
  right:auto!important;
  width:100%!important;
  max-width:1060px!important;
  margin:28px auto 38px!important;
  padding:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho > div,
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho > section,
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho .ndo-publicidade,
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho [class*="publicidade"],
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho a{
  width:100%!important;
  max-width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho img,
body .ndo-fr-page .ndo-fr-pub.ndo-fr-pub-cabecalho iframe{
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
}

/* Mobile */
@media(max-width:620px){
  body .ndo-fr-page .ndo-fr-hero{
    width:100vw!important;
    max-width:100vw!important;
    margin-left:-50vw!important;
  }
  body .ndo-fr-page .ndo-fr-hero-copy{
    padding-left:20px!important;
    padding-right:20px!important;
  }
}


/* =========================================================
   v1.0.8 — logo da freguesia + grafismo das praias
   ========================================================= */

/* Nome + logo da freguesia */
body .ndo-fr-page .ndo-fr-hero-copy{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
}
.ndo-fr-freguesia-logo{
  margin-top:18px;
  min-height:54px;
  display:flex;
  align-items:center;
}
.ndo-fr-freguesia-logo img{
  display:block;
  width:auto;
  height:auto;
  max-width:145px;
  max-height:70px;
  object-fit:contain;
}

/* Bloco praias semelhante ao módulo de Proteção Civil */
body .ndo-fr-page .ndo-fr-flags{
  padding:0!important;
  background:#fff!important;
}
body .ndo-fr-page .ndo-fr-flags-title{
  margin:0!important;
  padding:12px 14px!important;
  background:#08254d!important;
  color:#fff!important;
  font-size:11px!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
}

/* Wrapper TablePress */
body .ndo-fr-page .ndo-fr-flags [id^="tablepress-15_wrapper"]{
  margin:0!important;
  padding:0!important;
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}

/* tabela tradicional compacta, não cartões */
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"],
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15{
  display:table!important;
  width:100%!important;
  max-width:100%!important;
  border-collapse:collapse!important;
  border-spacing:0!important;
  table-layout:fixed!important;
  font-size:10px!important;
  background:#fff!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] thead,
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 thead{
  display:table-header-group!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] thead tr,
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 thead tr{
  display:table-row!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] thead th,
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 thead th{
  display:table-cell!important;
  padding:8px 7px!important;
  background:#f3f6fa!important;
  border-bottom:1px solid #dce4ed!important;
  color:#08254d!important;
  font-size:8px!important;
  line-height:1.25!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
  vertical-align:middle!important;
  white-space:normal!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] tbody{
  display:table-row-group!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] tbody tr,
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 tbody tr{
  display:table-row!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:#fff!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] tbody tr.ndo-fr-praia-hide,
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 tbody tr.ndo-fr-praia-hide{
  display:none!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] tbody td,
body .ndo-fr-page .ndo-fr-flags table.tablepress-id-15 tbody td{
  display:table-cell!important;
  width:auto!important;
  max-width:none!important;
  padding:9px 7px!important;
  background:#fff!important;
  border:0!important;
  border-bottom:1px solid #e4e9ef!important;
  color:#08254d!important;
  font-size:9px!important;
  line-height:1.25!important;
  vertical-align:middle!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] th:nth-child(1),
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] td:nth-child(1){
  width:44%!important;
  font-weight:800!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] th:nth-child(2),
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] td:nth-child(2){
  width:34%!important;
}
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] th:nth-child(3),
body .ndo-fr-page .ndo-fr-flags table[id^="tablepress-15"] td:nth-child(3){
  width:22%!important;
  color:#718096!important;
  text-align:right!important;
}

/* estado/bandeira em formato pill, como Proteção Civil */
body .ndo-fr-page .ndo-fr-praia-cor{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  min-width:0!important;
  padding:4px 6px!important;
  border:1px solid #d9e2ec!important;
  border-radius:6px!important;
  background:#f8fafc!important;
  color:#08254d!important;
  font-size:8px!important;
  line-height:1!important;
  font-weight:700!important;
}
body .ndo-fr-page .ndo-fr-flag{
  position:relative!important;
  display:inline-block!important;
  width:16px!important;
  height:10px!important;
  border:0!important;
  border-radius:1px!important;
  flex:0 0 16px!important;
}
body .ndo-fr-page .ndo-fr-flag:before{
  content:""!important;
  position:absolute!important;
  left:-3px!important;
  top:-1px!important;
  width:1px!important;
  height:13px!important;
  background:#08254d!important;
}
body .ndo-fr-page .ndo-fr-sem-vigilancia{
  display:inline-block!important;
  padding:4px 6px!important;
  border:1px solid #d9e2ec!important;
  border-radius:6px!important;
  background:#f8fafc!important;
  color:#7a8797!important;
  font-size:7px!important;
  line-height:1.15!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
}

/* legenda igual ao espírito do módulo de Proteção Civil */
body .ndo-fr-page .ndo-fr-praias-legenda{
  margin:0!important;
  padding:12px 12px 14px!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:#f8fafc!important;
}
body .ndo-fr-page .ndo-fr-praias-legenda > strong{
  display:block!important;
  margin-bottom:9px!important;
  color:#08254d!important;
  font-size:8px!important;
  line-height:1.2!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.06em!important;
}
body .ndo-fr-page .ndo-fr-praias-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:7px 10px!important;
}
body .ndo-fr-page .ndo-fr-praias-grid span{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  min-width:0!important;
  color:#31425b!important;
  font-size:8px!important;
}
body .ndo-fr-page .ndo-fr-praias-grid b{
  color:#08254d!important;
  font-size:8px!important;
}
body .ndo-fr-page .ndo-fr-praias-legenda small{
  display:block!important;
  margin-top:9px!important;
  color:#7a8797!important;
  font-size:7px!important;
  line-height:1.35!important;
}

/* manter links das praias sempre azul escuro */
html body .ndo-fr-page .ndo-fr-flags a,
html body .ndo-fr-page .ndo-fr-flags a:link,
html body .ndo-fr-page .ndo-fr-flags a:visited,
html body .ndo-fr-page .ndo-fr-flags a:hover,
html body .ndo-fr-page .ndo-fr-flags a:focus,
html body .ndo-fr-page .ndo-fr-flags a:active{
  color:#08254d!important;
  -webkit-text-fill-color:#08254d!important;
  text-decoration:none!important;
}

/* mobile */
@media(max-width:620px){
  .ndo-fr-freguesia-logo img{
    max-width:120px;
    max-height:60px;
  }
}


/* =========================================================
   v1.0.9 — IRS acompanha hero + cartões sem sublinhados
   ========================================================= */

/* A barra IRS acompanha o banner/hero da freguesia em largura total */
body .ndo-fr-page .ndo-fr-irs{
  position:relative!important;
  left:50%!important;
  width:100vw!important;
  max-width:100vw!important;
  margin-left:-50vw!important;
  margin-right:0!important;
  box-sizing:border-box!important;
}
body .ndo-fr-page .ndo-fr-irs-default{
  width:100vw!important;
  max-width:100vw!important;
  margin:0!important;
  padding-left:max(24px, calc((100vw - 1060px)/2))!important;
  padding-right:max(24px, calc((100vw - 1060px)/2))!important;
  justify-content:space-between!important;
}

/* Cartões Associações e Media: nunca sublinhar texto */
html body .ndo-fr-page .ndo-fr-feature-card,
html body .ndo-fr-page .ndo-fr-feature-card:link,
html body .ndo-fr-page .ndo-fr-feature-card:visited,
html body .ndo-fr-page .ndo-fr-feature-card:hover,
html body .ndo-fr-page .ndo-fr-feature-card:focus,
html body .ndo-fr-page .ndo-fr-feature-card:active,
html body .ndo-fr-page .ndo-fr-feature-card *,
html body .ndo-fr-page .ndo-fr-feature-card:hover *,
html body .ndo-fr-page .ndo-fr-feature-card:focus *{
  text-decoration:none!important;
}
html body .ndo-fr-page .ndo-fr-feature-card h3,
html body .ndo-fr-page .ndo-fr-feature-card h3 em,
html body .ndo-fr-page .ndo-fr-feature-card p,
html body .ndo-fr-page .ndo-fr-feature-card span{
  text-decoration:none!important;
}

/* Mantém títulos dos cartões com cor editorial, sem efeito de link do tema */
html body .ndo-fr-page .ndo-fr-feature-card.dark h3,
html body .ndo-fr-page .ndo-fr-feature-card.dark p{
  color:inherit!important;
}
html body .ndo-fr-page .ndo-fr-feature-card.light h3{
  color:#08254d!important;
}
html body .ndo-fr-page .ndo-fr-feature-card.light h3 em{
  color:#2865ff!important;
}
html body .ndo-fr-page .ndo-fr-feature-card.light p{
  color:#8391a5!important;
}

/* Mobile IRS */
@media(max-width:620px){
  body .ndo-fr-page .ndo-fr-irs,
  body .ndo-fr-page .ndo-fr-irs-default{
    width:100vw!important;
    max-width:100vw!important;
  }
  body .ndo-fr-page .ndo-fr-irs-default{
    padding-left:20px!important;
    padding-right:20px!important;
  }
}


/* =========================================================
   v1.1.0 — TablePress 26 / 27
   ========================================================= */

.ndo-fr-card-slot{min-width:0}
button.ndo-fr-feature-card{width:100%;border:0;text-align:left;font:inherit;cursor:pointer}
button.ndo-fr-feature-card,button.ndo-fr-feature-card:hover,button.ndo-fr-feature-card:focus,button.ndo-fr-feature-card *{text-decoration:none!important}

.ndo-fr-dev{
  min-height:190px;display:flex;align-items:center;justify-content:center;
  padding:28px;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;
  color:#718096;text-align:center;font-size:13px;line-height:1.5;
}

.ndo-fr-media-list{display:grid;gap:18px;height:100%}
.ndo-fr-media-card{
  min-height:245px;display:grid;grid-template-columns:minmax(105px,38%) 1fr;
  border:1px solid #dfe5ed;border-radius:8px;background:#f7f9fc;overflow:hidden;
}
.ndo-fr-media-cover{min-height:245px;background:#e8edf4}
.ndo-fr-media-cover img{width:100%;height:100%;min-height:245px;object-fit:cover;display:block}
.ndo-fr-media-info{padding:24px 20px;display:flex;flex-direction:column;min-width:0}
.ndo-fr-media-info h3{margin:3px 0 18px;color:#08254d;font-size:22px;line-height:1.05}
.ndo-fr-media-info p{margin:0 0 12px;color:#65748a;font-size:12px;line-height:1.35}
.ndo-fr-media-info p b{display:block;margin-bottom:3px;color:#08254d;font-size:8px;letter-spacing:.08em;text-transform:uppercase}
.ndo-fr-media-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:14px}
html body .ndo-fr-media-links a,
html body .ndo-fr-media-links a:hover,
html body .ndo-fr-media-links a:visited{
  display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid #d9e2ec;
  border-radius:6px;background:#fff;color:#08254d!important;-webkit-text-fill-color:#08254d!important;
  text-decoration:none!important;font-size:10px;font-weight:800;
}

.ndo-fr-solidarity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ndo-fr-solidarity-card{padding:18px;border:1px solid #dfe5ed;border-radius:8px;background:#fff}
.ndo-fr-solidarity-card small{color:#2865ff;font-size:8px;font-weight:800;letter-spacing:.08em}
.ndo-fr-solidarity-card h4{margin:8px 0 14px;color:#08254d;font-size:15px;line-height:1.2}
.ndo-fr-solidarity-card span{display:inline-block;padding:6px 9px;border-radius:5px;background:#f0f5ff;color:#08254d;font-size:10px;font-weight:800}

html.ndo-fr-modal-lock,html.ndo-fr-modal-lock body{overflow:hidden!important}
.ndo-fr-modal{position:fixed;inset:0;z-index:999999;display:none}
.ndo-fr-modal.is-open{display:block}
.ndo-fr-modal-backdrop{position:absolute;inset:0;background:rgba(2,18,40,.68);backdrop-filter:blur(3px)}
.ndo-fr-modal-dialog{
  position:relative;z-index:2;width:min(880px,calc(100vw - 40px));max-height:calc(100vh - 60px);
  overflow:auto;margin:30px auto;padding:34px;border-radius:12px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.28)
}
.ndo-fr-modal-dialog>h3{margin:4px 40px 24px 0;color:#08254d;font-size:28px}
.ndo-fr-modal-close{
  position:absolute;top:18px;right:18px;width:36px;height:36px;border:0;border-radius:50%;
  background:#eef3f8;color:#08254d;font-size:24px;line-height:1;cursor:pointer
}
.ndo-fr-assoc-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ndo-fr-assoc-item{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:17px;border:1px solid #e0e6ed;border-radius:8px}
.ndo-fr-assoc-logo{width:58px;height:58px;display:flex;align-items:center;justify-content:center}
.ndo-fr-assoc-logo img{max-width:58px;max-height:58px;object-fit:contain}
.ndo-fr-assoc-copy{min-width:0}
.ndo-fr-assoc-copy>small{color:#2865ff;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.ndo-fr-assoc-copy h4{margin:4px 0 8px;color:#08254d;font-size:15px}
.ndo-fr-assoc-copy p{margin:0 0 10px;color:#6f7e91;font-size:11px;line-height:1.45}
.ndo-fr-assoc-meta{display:flex;flex-wrap:wrap;gap:6px 10px}
.ndo-fr-assoc-meta span,
html body .ndo-fr-assoc-meta a,
html body .ndo-fr-assoc-meta a:hover,
html body .ndo-fr-assoc-meta a:visited{
  color:#53647a!important;-webkit-text-fill-color:#53647a!important;text-decoration:none!important;font-size:9px
}

@media(max-width:720px){
  .ndo-fr-media-card{grid-template-columns:110px 1fr}
  .ndo-fr-assoc-list{grid-template-columns:1fr}
  .ndo-fr-solidarity-grid{grid-template-columns:1fr}
  .ndo-fr-modal-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px);margin:12px auto;padding:26px 18px}
}
@media(max-width:480px){
  .ndo-fr-media-card{grid-template-columns:1fr}
  .ndo-fr-media-cover,.ndo-fr-media-cover img{min-height:0;height:auto;max-height:360px}
}


/* =========================================================
   v1.1.1 — barra IRS automática via TablePress 26
   ========================================================= */

body .ndo-fr-page .ndo-fr-irs-default{
  min-height:66px!important;
}

.ndo-fr-irs-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.ndo-fr-irs-copy small{
  margin-bottom:3px;
}

.ndo-fr-irs-copy strong{
  line-height:1.25;
}

.ndo-fr-irs-copy span{
  margin-top:3px;
  color:rgba(255,255,255,.78);
  font-size:10px;
  line-height:1.25;
}

html{
  scroll-behavior:smooth;
}

#solidariedade{
  scroll-margin-top:30px;
}


/* =========================================================
   v1.1.2 — corrigir definitivamente a barra IRS
   ========================================================= */

/* Anula posicionamentos anteriores que deslocavam a barra para metade direita */
html body .ndo-fr-page .ndo-fr-irs,
html body .ndo-fr-page .ndo-fr-irs-default{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  width:100vw!important;
  max-width:none!important;
  margin-left:calc((100% - 100vw) / 2)!important;
  margin-right:0!important;
  box-sizing:border-box!important;
}

/* Conteúdo interno alinhado ao mesmo eixo dos restantes blocos */
html body .ndo-fr-page .ndo-fr-irs-default{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:32px!important;
  padding:16px max(24px, calc((100vw - 1060px) / 2))!important;
  background:#2865ff!important;
  color:#fff!important;
}

/* Texto */
html body .ndo-fr-page .ndo-fr-irs-copy{
  flex:1 1 auto!important;
  min-width:0!important;
}
html body .ndo-fr-page .ndo-fr-irs-copy small,
html body .ndo-fr-page .ndo-fr-irs-copy strong,
html body .ndo-fr-page .ndo-fr-irs-copy span{
  color:#fff!important;
}

/* Botão */
html body .ndo-fr-page .ndo-fr-irs-default > a,
html body .ndo-fr-page .ndo-fr-irs-default > a:visited,
html body .ndo-fr-page .ndo-fr-irs-default > a:hover{
  flex:0 0 auto!important;
  background:#fff!important;
  color:#2865ff!important;
  -webkit-text-fill-color:#2865ff!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}

/* Mobile */
@media(max-width:620px){
  html body .ndo-fr-page .ndo-fr-irs,
  html body .ndo-fr-page .ndo-fr-irs-default{
    width:100vw!important;
    margin-left:calc((100% - 100vw) / 2)!important;
  }
  html body .ndo-fr-page .ndo-fr-irs-default{
    flex-direction:column!important;
    align-items:flex-start!important;
    padding:16px 20px!important;
    gap:12px!important;
  }
}


/* =========================================================
   v1.1.4 — alinhar largura Meteo / Praias / Junta
   ========================================================= */

html body .ndo-fr-page .ndo-fr-utility-stack{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

html body .ndo-fr-page .ndo-fr-utility-stack > *,
html body .ndo-fr-page .ndo-fr-meteo,
html body .ndo-fr-page .ndo-fr-flags,
html body .ndo-fr-page .ndo-fr-junta{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* O shortcode da meteorologia traz wrappers próprios: forçar todos à mesma largura */
html body .ndo-fr-page .ndo-fr-meteo > *,
html body .ndo-fr-page .ndo-fr-meteo [class*="meteo"],
html body .ndo-fr-page .ndo-fr-meteo [class*="weather"],
html body .ndo-fr-page .ndo-fr-meteo [class*="tempo"]{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Remover possível margem interna extra do cartão meteo */
html body .ndo-fr-page .ndo-fr-meteo{
  padding-left:0!important;
  padding-right:0!important;
  overflow:hidden!important;
}

html body .ndo-fr-page .ndo-fr-meteo > *{
  border-radius:0!important;
}

/* manter espaçamento interno do conteúdo se o cartão não o trouxer */
html body .ndo-fr-page .ndo-fr-meteo > div{
  padding-left:14px!important;
  padding-right:14px!important;
}


/* =========================================================
   v1.1.5 — Media Local opcional por freguesia
   ========================================================= */
.ndo-fr-duocards.ndo-fr-duocards-single{
  grid-template-columns:1fr!important;
}
.ndo-fr-duocards.ndo-fr-duocards-single .ndo-fr-card-slot{
  max-width:100%!important;
}

/* v1.1.6 — contactos da Junta clicáveis */
.ndo-fr-junta p a{color:inherit!important;text-decoration:none!important}
.ndo-fr-junta p a:hover{text-decoration:underline!important}
.ndo-fr-junta .ndo-fr-directions{display:block;margin-top:4px;font-size:11px;font-weight:700;color:#2f66ff}

/* v1.1.7 — meteorologia automática para freguesias sem praia */
.ndo-fr-auto-meteo{padding:22px!important;background:#fff}
.ndo-fr-auto-kicker{font-size:10px;font-weight:800;letter-spacing:1.6px;color:#2864ff;margin-bottom:8px}
.ndo-fr-auto-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ndo-fr-auto-head strong{display:block;font-size:27px;line-height:1.05;color:#08244a}.ndo-fr-auto-head small{display:block;margin-top:6px;color:#718096;font-size:12px}.ndo-fr-auto-head>b{font-size:43px;line-height:1;color:#08244a}
.ndo-fr-auto-state{margin:16px 0 14px;padding:7px 11px;border:1px solid #cbd8ff;border-radius:999px;background:#f3f6ff;color:#2864ff;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}
.ndo-fr-auto-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ndo-fr-auto-grid span{padding:12px;border:1px solid #dfe6ef;border-radius:10px;background:#f8fafc}.ndo-fr-auto-grid small{display:block;color:#8a98aa;font-size:9px;font-weight:800;letter-spacing:1px;margin-bottom:7px}.ndo-fr-auto-grid b{font-size:15px;color:#08244a}


/* =========================================================
   v1.1.8 — hero: mostrar a fotografia com muito menos corte
   ========================================================= */
body .ndo-fr-page .ndo-fr-hero-image{
  background-size:contain!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  background-color:#0d3764!important;
}
