/* Holidays & bridge-days section (loaded only on /feriados-YYYY and /pontes-YYYY) */

.hol-intro p { margin: 0 0 14px; line-height: 1.65; max-width: 72ch; }

.hol-anos { display: flex; gap: 8px; flex-wrap: wrap; margin: 6px 0 18px; }
.hol-anos a {
  display: inline-block; padding: 6px 14px; border: 1px solid var(--border, #e2e2ea);
  border-radius: 999px; text-decoration: none; font-weight: 600; font-size: .9rem;
}
.hol-anos a.is-active { background: var(--accent, #0a7d6c); color: #fff; border-color: var(--accent, #0a7d6c); }

.hol-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.hol-table th, .hol-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #ececf2; }
.hol-table th { font-size: .8rem; text-transform: uppercase; letter-spacing: .4px; opacity: .7; }
.hol-table tr.is-fds td { opacity: .62; }
.hol-badge {
  display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .76rem; font-weight: 700;
  white-space: nowrap;
}
.hol-badge--ponte { background: #e5f6f0; color: #0a7d6c; }
.hol-badge--fds { background: #f2f2f6; color: #75757f; }

.hol-cta {
  margin: 26px 0; padding: 20px 22px; border-radius: 14px;
  background: #e5f6f0; display: flex; gap: 14px; align-items: center; flex-wrap: wrap; justify-content: space-between;
}
.hol-cta p { margin: 0; font-weight: 600; }
.hol-cta .btn-cta {
  display: inline-block; background: #0a7d6c; color: #fff; padding: 10px 20px;
  border-radius: 10px; text-decoration: none; font-weight: 700;
}
.hol-cta .btn-cta:hover { filter: brightness(1.08); }

.hol-meses { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin-top: 8px; }
.hol-mes { border: 1px solid #ececf2; border-radius: 12px; padding: 14px 16px; }
.hol-mes h3 { margin: 0 0 8px; font-size: 1rem; text-transform: capitalize; }
.hol-mes ul { margin: 0; padding-left: 18px; font-size: .9rem; line-height: 1.55; }

/* bridge cards */
.ponte-card {
  border: 1px solid #ececf2; border-radius: 16px; padding: 22px; margin-bottom: 22px;
  background: #fff;
}
.ponte-card__head { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; justify-content: space-between; margin-bottom: 6px; }
.ponte-card__head h2 { margin: 0; font-size: 1.25rem; }
.ponte-card__ganho {
  background: #0a7d6c; color: #fff; padding: 4px 14px; border-radius: 999px;
  font-size: .82rem; font-weight: 700; white-space: nowrap;
}
.ponte-card__plano { margin: 8px 0 4px; font-size: 1rem; }
.ponte-card__plano strong { color: #0a7d6c; }
.ponte-card__bloco { margin: 0 0 14px; font-size: .9rem; opacity: .75; }
.ponte-card h3 { font-size: .85rem; text-transform: uppercase; letter-spacing: .5px; opacity: .7; margin: 16px 0 10px; }

.ponte-sug { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.ponte-sug a {
  display: block; border: 1px solid #ececf2; border-radius: 12px; overflow: hidden;
  text-decoration: none; color: inherit; background: #fafafc; transition: box-shadow .15s, transform .15s;
}
.ponte-sug a:hover { box-shadow: 0 6px 20px rgba(0,0,0,.09); transform: translateY(-2px); }
.ponte-sug .sug-img { height: 110px; background-size: cover; background-position: center; }
.ponte-sug .sug-body { padding: 10px 12px; }
.ponte-sug .sug-tipo { display: block; font-size: .7rem; text-transform: uppercase; letter-spacing: .5px; opacity: .6; margin-bottom: 3px; }
.ponte-sug .sug-titulo { font-weight: 600; font-size: .92rem; line-height: 1.35; }

.hol-faq details { border: 1px solid #ececf2; border-radius: 12px; padding: 14px 18px; margin-bottom: 10px; background: #fff; }
.hol-faq summary { font-weight: 600; cursor: pointer; }
.hol-faq p { margin: 10px 0 0; line-height: 1.6; }

.hol-fonte { font-size: .8rem; opacity: .6; margin-top: 22px; }

@media (max-width: 640px) {
  .hol-table { font-size: .86rem; }
  .hol-table th, .hol-table td { padding: 8px 8px; }
}

/* ---- Annual calendar grid (calendarr-style) ---- */
.hol-cal-legenda { display: flex; align-items: center; gap: 8px; font-size: .85rem; opacity: .8; margin: 4px 0 16px; }
.hol-cal-legenda .lg { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }
.hol-cal-legenda .lg-fer { background: #bfe3b0; }
.hol-cal-legenda .lg-ponte { background: #ffe08a; margin-left: 14px; }

.hol-cal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.hol-cal { border: 1px solid #ececf2; border-radius: 14px; padding: 16px 14px 12px; background: #fff; }
.hol-cal h3 { margin: 0 0 10px; font-size: 1rem; text-transform: capitalize; text-align: center; letter-spacing: .3px; }
.hol-cal-sem, .hol-cal-dias { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; }
.hol-cal-sem span { font-size: .68rem; font-weight: 700; text-transform: uppercase; opacity: .55; padding: 3px 0; }
.hol-cal-sem span.is-fds { opacity: .35; }
.hol-cal-dias span { font-size: .82rem; padding: 4px 0; border-radius: 7px; line-height: 1.5; margin: 1px; }
.hol-cal-dias span.is-fds { background: #f4f4f8; color: #9a9aa6; }
.hol-cal-dias span.is-fer { background: #bfe3b0; color: #1e4d12; font-weight: 700; cursor: help; }
.hol-cal-dias span.is-ponte { background: #ffe08a; color: #6e5200; font-weight: 700; cursor: help; }
.hol-cal-dias span.is-hoje { outline: 2px solid #0a7d6c; outline-offset: -2px; }
.hol-cal-lista { list-style: none; margin: 10px 0 0; padding: 8px 0 0; border-top: 1px solid #ececf2; font-size: .84rem; }
.hol-cal-lista li { display: flex; align-items: baseline; gap: 8px; padding: 3px 0; border-left: 3px solid #e8871e; padding-left: 8px; margin: 3px 0; }
.hol-cal-lista .dia { font-weight: 800; min-width: 18px; text-align: right; }
.hol-cal-lista a { text-decoration: none; }
.hol-cal-lista a:hover { text-decoration: underline; }

/* table chips (calendarr-style) */
.hol-table .fd-chip { background: #bfe3b0; color: #1e4d12; padding: 3px 10px; border-radius: 6px; font-weight: 700; white-space: nowrap; font-size: .88rem; }
.hol-table .fd-chip--fds { background: #f0f0f4; color: #75757f; }
.hol-table .wd-chip { background: #f0f0f4; color: #4a4a55; padding: 3px 10px; border-radius: 6px; white-space: nowrap; font-size: .85rem; }

/* ---- section submenu (calendarr-style dark bar) ---- */
.hol-submenu { background: #2f4358; margin-bottom: 4px; }
.hol-submenu-inner { display: flex; flex-wrap: wrap; gap: 0; overflow-x: auto; }
.hol-submenu a {
  color: #dbe4ec; text-decoration: none; font-weight: 600; font-size: .88rem;
  padding: 12px 16px; white-space: nowrap;
}
.hol-submenu a:hover { background: #3c5570; color: #fff; }
.hol-submenu a.is-active { background: #fff; color: #2f4358; }

/* H1 line with print button */
.hol-h1-linha { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.hol-imprimir {
  border: 1px solid #cfd6de; background: #fff; border-radius: 8px; padding: 8px 16px;
  font-weight: 700; font-size: .86rem; cursor: pointer; color: #2f4358;
}
.hol-imprimir:hover { background: #f0f3f6; }

/* working-day count under each mini month */
.hol-cal-uteis { margin: 10px 0 0; padding-top: 8px; border-top: 1px solid #ececf2; font-size: .8rem; opacity: .65; text-align: center; }

/* countdown next to holiday names */
.hol-faltam { font-size: .78rem; white-space: nowrap; }
.hol-faltam.is-futuro { color: #0a7d6c; font-weight: 700; }
.hol-faltam.is-hoje { color: #e8871e; font-weight: 800; }

/* print: only the content, calendar fits on paper */
@media print {
  .site-header, .site-footer, .hol-submenu, .hol-cta, .hol-imprimir, .cookie-banner, #recently-viewed { display: none !important; }
  .hol-cal-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .hol-cal { break-inside: avoid; border-color: #bbb; }
  .hol-cal-dias span.is-fer { outline: 2px solid #4a8a34; }
  .hol-cal-dias span.is-ponte { outline: 2px solid #c9a02a; }
  body { background: #fff; }
}

/* ---- commemorative dates (v3) ---- */
.hol-cal-legenda .lg-obs { background: #ffd9b0; margin-left: 14px; }
.hol-cal-dias span.is-obs { background: #ffd9b0; color: #7a4a10; font-weight: 700; cursor: help; }
.hol-table .fd-chip--obs { background: #ffd9b0; color: #7a4a10; }
.hol-badge--obs { background: #fff1e2; color: #b06a1e; }
.hol-table tr.is-obs td { opacity: .85; }
.hol-table--obs { max-width: 640px; }
.hol-cal h3 a { text-decoration: none; color: inherit; }
.hol-cal h3 a:hover { color: #0a7d6c; }

/* ---- prev/next year & month nav ---- */
.hol-anosnav { display: flex; justify-content: space-between; gap: 10px; margin: 2px 0 16px; }
.hol-anosnav a {
  display: inline-block; border: 1px solid #cfd6de; border-radius: 8px; padding: 8px 16px;
  text-decoration: none; font-weight: 700; font-size: .85rem; color: #2f4358; background: #fff;
  text-transform: uppercase; letter-spacing: .3px;
}
.hol-anosnav a:hover { background: #f0f3f6; }

/* ---- single-month page (big calendar) ---- */
.hol-mes-grande { border: 1px solid #ececf2; border-radius: 14px; padding: 18px; background: #fff; }
.hol-mes-grande .hol-cal-sem span { font-size: .78rem; }
.hol-mg-dias { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.mg-cel { min-height: 74px; border: 1px solid #f0f0f4; border-radius: 8px; padding: 6px 8px; position: relative; }
.mg-cel.vazio { border: none; }
.mg-cel.is-fds { background: #f7f7fa; }
.mg-cel.is-fer { background: #d9efd0; border-color: #bfe3b0; }
.mg-cel.is-ponte { background: #fff1c2; border-color: #ffe08a; }
.mg-cel.is-obs { background: #ffe8d1; border-color: #ffd9b0; }
.mg-cel.is-hoje { outline: 2px solid #0a7d6c; outline-offset: -2px; }
.mg-num { font-weight: 800; font-size: .95rem; }
.mg-cel.is-fds .mg-num { color: #9a9aa6; font-weight: 600; }
.mg-rotulo { display: block; font-size: .7rem; line-height: 1.25; margin-top: 3px; font-weight: 600; color: #333; }
@media (max-width: 640px) {
  .mg-cel { min-height: 48px; padding: 4px 5px; }
  .mg-rotulo { display: none; }
  .mg-cel[title]::after { content: '•'; }
}

/* ---- "how many days until" calculator ---- */
.faltam-caixa { border: 1px solid #ececf2; border-radius: 16px; padding: 26px; background: #fff; max-width: 720px; }
.faltam-lead { font-weight: 700; margin: 0 0 12px; }
.faltam-eventos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px 18px; }
.faltam-eventos label { display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 4px 0; }
.faltam-eventos input { accent-color: #0a7d6c; width: 16px; height: 16px; }
.faltam-data { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.faltam-data input[type="date"] { padding: 9px 12px; border: 1px solid #cfd6de; border-radius: 8px; font-size: .95rem; }
.faltam-data .btn-cta { background: #0a7d6c; color: #fff; border: none; padding: 10px 20px; border-radius: 10px; font-weight: 700; cursor: pointer; }
.faltam-res {
  margin-top: 20px; padding: 18px 22px; border-radius: 12px; background: #e5f6f0;
  display: flex; align-items: center; gap: 16px; font-weight: 600;
}
.faltam-res .faltam-n { font-size: 2.4rem; font-weight: 800; color: #0a7d6c; line-height: 1; }

/* ---- v3.1: sticky submenu, hover, modal, responsive fixes ---- */

/* submenu acompanha o scroll, colado por baixo do header sticky do site */
.hol-submenu { position: sticky; top: var(--hol-header-h, 64px); z-index: 40; }
.hol-submenu-inner { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.hol-submenu a { flex-shrink: 0; }

/* mini calendários: borda mais forte + hover com vida */
.hol-cal { border: 1.5px solid #d9d9e3; transition: border-color .15s, box-shadow .15s, transform .15s; }
.hol-cal:hover { border-color: #0a7d6c; box-shadow: 0 8px 24px rgba(10, 125, 108, .14); transform: translateY(-3px); }
.hol-cal-dias span.is-fer:hover, .hol-cal-dias span.is-ponte:hover, .hol-cal-dias span.is-obs:hover { filter: brightness(.92); }
.mg-cel { transition: box-shadow .12s; }
.mg-cel:not(.vazio):hover { box-shadow: inset 0 0 0 2px #0a7d6c33; }

/* modal do calendário anual */
.hol-modal {
  position: fixed; inset: 0; background: rgba(20, 30, 40, .6); z-index: 200;
  display: flex; align-items: flex-start; justify-content: center; padding: 24px 12px; overflow-y: auto;
}
.hol-modal[hidden] { display: none; }
.hol-modal-caixa {
  background: #fff; border-radius: 16px; max-width: 1140px; width: 100%;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
}
.hol-modal-topo {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 14px 20px; border-bottom: 1px solid #ececf2; position: sticky; top: 0; background: #fff;
  border-radius: 16px 16px 0 0; z-index: 2;
}
.hol-modal-topo strong { font-size: 1.05rem; }
.hol-modal-topo span { display: flex; align-items: center; gap: 14px; }
.hol-modal-topo a { font-weight: 600; text-decoration: none; color: #0a7d6c; }
.hol-modal-x {
  border: none; background: #f0f0f4; border-radius: 8px; width: 34px; height: 34px;
  font-size: 1rem; cursor: pointer; font-weight: 700;
}
.hol-modal-x:hover { background: #e2e2ea; }
.hol-modal-corpo { padding: 18px 20px 22px; }

/* tabelas com scroll horizontal em ecrãs pequenos */
.hol-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* botões no H1 (hero escuro) */
.hol-h1-btns { display: flex; gap: 8px; flex-wrap: wrap; }

/* links long-tail da calculadora */
.faltam-links { list-style: none; margin: 6px 0 0; padding: 0; columns: 2; column-gap: 28px; }
.faltam-links li { padding: 4px 0; break-inside: avoid; }
.faltam-links a { text-decoration: none; }
.faltam-links a:hover { text-decoration: underline; }

/* responsive: mobile */
@media (max-width: 720px) {
  .hol-h1-linha { flex-direction: column; align-items: flex-start; }
  .hol-anosnav a { padding: 7px 10px; font-size: .76rem; }
  .hol-cal-grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
  .faltam-links { columns: 1; }
  .faltam-eventos { grid-template-columns: 1fr; }
  .hol-cta { flex-direction: column; align-items: flex-start; }
  .hol-modal { padding: 8px; }
  .hol-modal-corpo { padding: 12px; }
}
