/* =====================================================================================
   Calend365 — sistema visual
   Folhinha tradicional (números em Impact, mês em Futura, domingos e feriados em vermelho)
   dentro de uma interface leve: fundo cor de papel, cartões brancos, linhas finas.
   ===================================================================================== */

/* ---------- Fontes (só as duas da folhinha; o resto usa a fonte do sistema) ---------- */
@font-face {
  font-family: 'Futura TS Heavy';
  src: url('../fonts/futura-ts-heavy.woff2') format('woff2'), url('../fonts/futura-ts-heavy.woff') format('woff');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Impact';
  src: local('Impact'), url('../fonts/impact-latin.woff2') format('woff2'), url('../fonts/impact.woff') format('woff');
  font-weight: normal; font-style: normal; font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
  --papel: #f6f4ef;
  --cartao: #ffffff;
  --tinta: #17191e;
  --tinta-2: #3f444c;
  --suave: #656a72;          /* texto secundário: ≥ 4,8:1 no papel, no creme e nos fundos claros (AA) */
  --linha: #e6e2d9;
  --linha-2: #efece5;
  --creme: #faf9f6;

  --azul: #005799;
  --azul-escuro: #00427a;
  --azul-claro: #eaf2f9;

  --vermelho: #e3262f;        /* números e mês da folhinha (texto grande) */
  --vermelho-texto: #c0141f;  /* vermelho em texto pequeno (contraste AA) */
  --vermelho-claro: #fdeeee;
  --laranja: #ea5a0c;
  --laranja-texto: #b3470a;
  --laranja-claro: #fff2e8;

  --ui: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --titulo: 'Futura TS Heavy', 'Arial Black', 'Helvetica Neue', Arial, sans-serif;
  --numero: 'Impact', 'Haettenschweiler', 'Arial Narrow Bold', 'Arial Black', sans-serif;

  --raio: 14px;
  --raio-p: 10px;
  --sombra: 0 1px 2px rgba(23, 25, 30, .04), 0 2px 8px rgba(23, 25, 30, .04);
  --sombra-alta: 0 10px 30px rgba(23, 25, 30, .12), 0 2px 6px rgba(23, 25, 30, .06);
  --largura: 1240px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  font-family: var(--ui);
  font-size: 16px;
  line-height: 1.5;
  color: var(--tinta);
  background: var(--papel);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; height: auto; }
a { color: var(--azul); text-decoration: none; }
a:hover { color: var(--azul-escuro); }
ul, ol { list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid #ffbf47; outline-offset: 2px; border-radius: 4px; }
::selection { background: #ffe08a; color: var(--tinta); }
strong, b { font-weight: 700; }

h1, h2, h3 { font-family: var(--titulo); font-weight: normal; letter-spacing: -.005em; color: var(--tinta); line-height: 1.15; }
h1 { font-size: clamp(28px, 3.4vw, 40px); }
h2 { font-size: 22px; margin-bottom: 14px; }
h3 { font-size: 18px; }
h4 { font-size: 15px; font-weight: 700; }
p { color: var(--tinta-2); }

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* =====================================================================================
   Cabeçalho
   ===================================================================================== */
.site-header { background: var(--cartao); border-bottom: 1px solid var(--linha); position: relative; z-index: 50; }
.site-header__barra {
  max-width: var(--largura); margin: 0 auto; padding: 14px 20px;
  display: flex; align-items: center; gap: 14px;
}
.marca { display: inline-flex; align-items: center; flex-shrink: 0; }
.marca img { display: block; height: 24px; width: auto; }
.site-header__espaco { flex: 1; }

/* Menus suspensos (país e ano) */
.suspenso { position: relative; }
.suspenso__botao {
  display: inline-flex; align-items: center; gap: 8px;
  height: 36px; padding: 0 12px; border-radius: 999px;
  background: transparent; border: 1px solid transparent;
  font-size: 15px; font-weight: 600; color: var(--tinta-2);
  transition: background-color .15s, border-color .15s;
}
.suspenso__botao:hover, .suspenso.aberto .suspenso__botao { background: var(--creme); border-color: var(--linha); }
.suspenso__botao .seta {
  width: 7px; height: 7px; border: solid currentColor; border-width: 0 1.6px 1.6px 0;
  transform: translateY(-2px) rotate(45deg); transition: transform .2s; opacity: .7;
}
.suspenso.aberto .seta { transform: translateY(1px) rotate(-135deg); }
.suspenso__lista {
  display: none; position: absolute; top: calc(100% + 8px); left: 0; min-width: 210px;
  background: var(--cartao); border: 1px solid var(--linha); border-radius: 12px;
  box-shadow: var(--sombra-alta); padding: 6px; z-index: 60;
}
.suspenso--direita .suspenso__lista { left: auto; right: 0; }
.suspenso.aberto .suspenso__lista, .suspenso:focus-within .suspenso__lista { display: block; }
.suspenso__lista a {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 9px 12px; border-radius: 8px; color: var(--tinta); font-size: 15px;
}
.suspenso__lista a:hover { background: var(--papel); color: var(--tinta); }
.suspenso__lista a[aria-current] { font-weight: 700; color: var(--azul); }
.suspenso__lista a[aria-current]::after { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--vermelho); }
.suspenso__lista .separador { height: 1px; background: var(--linha-2); margin: 6px 4px; }
.suspenso__lista .todos { color: var(--suave); font-size: 14px; }

.ano-atalho { display: flex; align-items: center; gap: 8px; }
.ano-atalho .suspenso__botao { font-family: var(--numero); font-weight: normal; font-size: 18px; letter-spacing: .02em; color: var(--tinta); border-color: var(--linha); }
.ano-atalho .suspenso__botao .icone-cal { width: 16px; height: 16px; color: var(--vermelho); }
.ano-atalho .suspenso__lista { min-width: 140px; }
.ano-atalho .suspenso__lista a { font-family: var(--numero); font-size: 18px; letter-spacing: .02em; }

/* Navegação principal: uma linha que rola no celular (nada some) */
.site-nav { border-top: 1px solid var(--linha-2); }
.site-nav__lista {
  max-width: var(--largura); margin: 0 auto; padding: 0 12px;
  display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
}
.site-nav__lista::-webkit-scrollbar { display: none; }
.site-nav__lista li { flex-shrink: 0; scroll-snap-align: start; }
.site-nav__lista a {
  position: relative; display: block; padding: 13px 12px 12px; white-space: nowrap;
  font-size: 14.5px; font-weight: 600; color: var(--tinta-2);
}
.site-nav__lista a:hover { color: var(--tinta); }
.site-nav__lista a::after {
  content: ''; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 3px;
  border-radius: 3px 3px 0 0; background: var(--vermelho); transform: scaleX(0); transition: transform .2s;
}
.site-nav__lista a:hover::after { transform: scaleX(.4); }
.site-nav__lista a[aria-current="page"] { color: var(--tinta); }
.site-nav__lista a[aria-current="page"]::after { transform: scaleX(1); }
.site-nav__lista .divisor { width: 1px; background: var(--linha); margin: 12px 6px; }
.site-nav__frase { max-width: var(--largura); margin: 0 auto; padding: 12px 20px; font-size: 14.5px; color: var(--suave); }

@media (max-width: 760px) {
  .site-header__barra { padding: 10px 14px; gap: 6px; }
  .marca img { height: 21px; }
  .ano-atalho .botao { display: none; }
  .suspenso__botao { padding: 0 9px; font-size: 14px; }
  .site-nav__lista { padding: 0 6px; }
  .site-nav__lista a { padding: 12px 10px 11px; font-size: 14px; }
  /* sombra indicando que há mais itens à direita */
  .site-nav { position: relative; }
  .site-nav::after { content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 28px; pointer-events: none; background: linear-gradient(90deg, rgba(255,255,255,0), #fff); }
}

/* =====================================================================================
   Estrutura das páginas
   ===================================================================================== */
main { max-width: var(--largura); margin: 0 auto; padding: 22px 20px 0; }
.container { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; align-items: start; }
.left-column { min-width: 0; }
.right-column { position: sticky; top: 20px; display: grid; gap: 16px; }
@media (max-width: 980px) {
  .container { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .right-column { position: static; }
}
@media (max-width: 600px) { main { padding: 14px 14px 0; } }

/* Cartão genérico */
.cartao, .box_container, .box_today_container, .tabdat_box, .form_container, .contato_container, .veja_tambem, .feriadoes_box, .texto_pagina {
  background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio);
  box-shadow: var(--sombra); padding: 24px; margin: 0 0 20px;
}
@media (max-width: 600px) {
  .cartao, .box_container, .box_today_container, .tabdat_box, .form_container, .contato_container, .veja_tambem, .feriadoes_box, .texto_pagina { padding: 18px 16px; border-radius: 12px; }
}

/* Título de seção: pequeno traço vermelho, como a picotagem da folhinha */
.titulo-secao, .tabdat_title, .box_container h2, .feriadoes_box h2, .veja_tambem h2 {
  font-family: var(--titulo); font-size: 20px; color: var(--tinta); margin: 0 0 16px;
  display: flex; align-items: center; gap: 10px;
}
.titulo-secao::before, .tabdat_title::before, .box_container h2::before, .feriadoes_box h2::before, .veja_tambem h2::before {
  content: ''; width: 4px; height: 18px; border-radius: 2px; background: var(--vermelho); flex-shrink: 0;
}
.box_container h2:not(.topo) { margin-top: 30px; }
.box_container h2 a, .tabdat_title a { color: inherit; }

.info_frase, .subtitulo {
  font-family: var(--ui); font-size: 15px; color: var(--suave); line-height: 1.55;
  margin: 0 auto 22px; max-width: 720px; text-align: center; font-weight: normal;
}
h2.subtitulo { font-size: 15px; }
h2.subtitulo::before { display: none; }

/* =====================================================================================
   Breadcrumb
   ===================================================================================== */
.migalha_breadcrumb { margin: 0 0 14px; font-size: 13.5px; }
.migalha_list { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; }
.migalha_item { display: inline-flex; align-items: center; }
.migalha_link { color: var(--suave); padding: 2px 0; }
a.migalha_link:hover { color: var(--azul); }
.migalha_active { color: var(--tinta); font-weight: 600; }
.migalha_separator { font-size: 0; margin: 0 9px; }
.migalha_separator::before { content: ''; display: inline-block; width: 5px; height: 5px; border: solid var(--suave); border-width: 1.5px 1.5px 0 0; transform: rotate(45deg); opacity: .6; vertical-align: middle; }

/* =====================================================================================
   Cabeçalho de página: ◀ ano anterior · Título · próximo ▶
   ===================================================================================== */
.btn_nav-container, .btn_nav-container2 {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin: 4px 0 18px; padding: 0;
}
.btn_nav-container2 { margin: 24px 0 0; padding-top: 18px; border-top: 1px solid var(--linha); }
.btn_nav-container:has(> h1:only-child) { justify-content: center; }
.title_center, .center-block h1 { font-size: clamp(26px, 3.2vw, 38px); color: var(--tinta); text-align: center; margin: 0; }
.center-block { display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 0; }

.btn_nav {
  display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0;
  height: 40px; padding: 0 16px; border-radius: 999px;
  background: var(--cartao); border: 1px solid var(--linha); color: var(--tinta-2);
  font-size: 14px; font-weight: 600; white-space: nowrap; box-shadow: var(--sombra);
  transition: border-color .15s, color .15s, transform .15s;
}
.btn_nav:hover { border-color: var(--tinta-2); color: var(--tinta); }
.btn_nav-prev::before, .btn_nav-next::after {
  content: ''; width: 7px; height: 7px; border: solid currentColor; border-width: 0 0 1.8px 1.8px; transform: rotate(45deg);
}
.btn_nav-next::after { transform: rotate(-135deg); }
.btn_nav .short-text { display: none; }
@media (max-width: 640px) {
  .btn_nav { height: 36px; padding: 0 12px; }
  .btn_nav .full-text { display: none; }
  .btn_nav .short-text { display: inline; font-family: var(--numero); font-size: 16px; font-weight: normal; letter-spacing: .02em; }
}

/* Botões */
.botao, .btn_print, .tabdat_btn, .form_button, .contato_button, .pagina_404 a {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 40px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--azul);
  background: var(--azul); color: #fff; font-size: 14.5px; font-weight: 600; white-space: nowrap;
  transition: background-color .15s, border-color .15s, color .15s;
}
.botao:hover, .btn_print:hover, .form_button:hover, .contato_button:hover, .pagina_404 a:hover { background: var(--azul-escuro); border-color: var(--azul-escuro); color: #fff; }
.botao--claro, .tabdat_btn { background: var(--cartao); color: var(--azul); border-color: var(--linha); }
.botao--claro:hover, .tabdat_btn:hover { background: var(--azul-claro); border-color: var(--azul-claro); color: var(--azul-escuro); }
.tabdat_btn { margin-bottom: 16px; }
.tabdat_btn::after { content: ''; width: 6px; height: 6px; border: solid currentColor; border-width: 1.8px 1.8px 0 0; transform: rotate(45deg); }
.btn_print { height: 34px; padding: 0 14px; font-size: 13.5px; background: var(--cartao); color: var(--tinta-2); border-color: var(--linha); }
.btn_print:hover { background: var(--papel); color: var(--tinta); border-color: var(--tinta-2); }
.btn_print .icon-print { width: 15px; height: 15px; opacity: .8; }
.form_button, .contato_button { width: 100%; height: 46px; font-size: 15.5px; }

/* "Veja também" / atalhos: pílulas */
.veja_tambem ul, .chips { display: flex; flex-wrap: wrap; gap: 8px; }
.veja_tambem li a, .chips a {
  display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 15px; border-radius: 999px;
  background: var(--creme); border: 1px solid var(--linha); color: var(--tinta-2); font-size: 14px; font-weight: 600;
  transition: border-color .15s, color .15s, background-color .15s;
}
.veja_tambem li a:hover, .chips a:hover { border-color: var(--azul); color: var(--azul); background: var(--cartao); }

/* =====================================================================================
   Folhinha — calendário do mês (página anual, mensal e impressão)
   ===================================================================================== */
.calend_container {
  background: var(--cartao); border: 1px solid var(--linha); border-radius: 18px; box-shadow: var(--sombra);
  padding: 14px 22px 22px; margin: 0 0 22px; position: relative;
}
.calend_header {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  font-family: var(--titulo); font-size: 44px; line-height: 1.1; color: var(--vermelho); margin: 0 0 10px;
  -webkit-font-smoothing: antialiased;
}
h2.calend_header::before { display: none; }
.calend_header span { text-transform: uppercase; letter-spacing: .01em; }
.calend_header a { color: inherit; }
.calend_header a:hover { color: var(--azul); text-decoration: none; }
.calend_header > span:last-child { color: var(--vermelho); }

.calend_table-wrapper { position: relative; }
.calend_table {
  width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0;
  border: 1px solid #d9d5cc; border-radius: 12px; overflow: visible;
}
.calend_table th, .calend_table td {
  width: calc(100% / 7); text-align: center; vertical-align: middle; position: relative;
  border-right: 1px solid var(--linha); border-bottom: 1px solid var(--linha);
}
.calend_table tr > :last-child { border-right: 0; }
.calend_table tbody tr:last-child td { border-bottom: 0; }
.calend_table th {
  font-family: var(--ui); font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--tinta-2); background: #f3f1ec; padding: 7px 0;
}
.calend_table thead th:first-child { border-top-left-radius: 11px; }
.calend_table thead th:last-child { border-top-right-radius: 11px; }
.calend_table th.calend_sunday { color: var(--vermelho-texto); }
.calend_table td {
  height: 76px; font-family: var(--numero); font-size: 50px; line-height: 1; color: var(--tinta);
  -webkit-font-smoothing: antialiased;
}
.calend_table td > span:first-child { display: inline-block; transform: translateY(-4px); }
.calend_table td.calend_sunday { color: var(--vermelho); }
.calend_table td .calend_day-of-year {
  position: absolute; left: 0; right: 0; bottom: 4px; transform: none;
  font-family: var(--ui); font-size: 10.5px; font-weight: 600; color: var(--vermelho-texto); opacity: .9; letter-spacing: .02em;   /* ≥ 4,9:1 (AA) */
}
.calend_table span.feriado { color: var(--vermelho); }
.calend_table span.feriado_facultativo { color: var(--laranja-texto); }
.calend_table td.destaque_dia { background: var(--creme); }
.calend_table td.hoje { background: var(--azul-claro); box-shadow: inset 0 0 0 2px var(--azul); }
.calend_table td.hoje > span:first-child { color: var(--azul); }
.calend_table td[data-week-number]::before {
  content: attr(data-week-number); position: absolute; left: -11px; top: 50%; transform: translateY(-50%);
  width: 22px; height: 22px; border-radius: 50%; background: var(--cartao); border: 1px solid var(--linha);
  display: flex; align-items: center; justify-content: center; z-index: 2;
  font-family: var(--ui); font-size: 10.5px; font-weight: 700; color: var(--suave);
}
.calend_lunar-phase { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 4px 2px; }
.calend_lunar-phase img { width: 32px; height: 32px; }
.calend_lunar-phase span { font-family: var(--ui); font-size: 10.5px; line-height: 1.25; color: var(--suave); }
.extra_lunar_phase { height: auto !important; }

/* Lista de feriados/datas do mês, logo abaixo da folhinha */
.feriados-list { margin-top: 14px; padding-top: 12px; border-top: 1px dashed #d9d5cc; }
.feriados-list h3, .feriados-list h4 { font-family: var(--ui); line-height: inherit; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--suave); margin: 0 0 8px; padding: 0; }
.feriados-list ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 2px 24px; }
.feriados-list ul li { font-size: 14px; line-height: 1.45; padding: 4px 0; border: 0; color: var(--tinta-2) !important; }
.feriados-list ul li[style*="EF3038"] { color: var(--vermelho-texto) !important; font-weight: 600; }
.feriados-list ul li[style*="ff5722"] { color: var(--laranja-texto) !important; font-weight: 600; }

@media (max-width: 760px) {
  .calend_container { padding: 10px 12px 14px; border-radius: 14px; }
  .calend_header { font-size: 32px; }
  .calend_table td { height: 60px; font-size: 34px; }
  .calend_table th { font-size: 10px; letter-spacing: .04em; }
  .calend_table td[data-week-number]::before { width: 18px; height: 18px; left: -9px; font-size: 9px; }
  .calend_lunar-phase img { width: 26px; height: 26px; }
  .calend_lunar-phase span { font-size: 9px; }
  .calend_table td .calend_day-of-year { font-size: 9px; bottom: 2px; }
}
@media (max-width: 420px) {
  .calend_header { font-size: 27px; }
  .calend_table td { height: 54px; font-size: 29px; }
  .calend_lunar-phase span { display: none; }
}

/* =====================================================================================
   Lista de feriados — cada data é uma "folhinha" destacável
   ===================================================================================== */
.lista_mes-titulo, .tabdat_month {
  font-family: var(--titulo); font-size: 18px; color: var(--tinta); margin: 26px 0 10px;
  display: flex; align-items: center; gap: 10px; text-transform: capitalize; padding: 0; border: 0; font-weight: normal;
}
.lista_mes-titulo::after, .tabdat_month::after { content: ''; flex: 1; height: 1px; background: var(--linha); }
.lista_mes:first-child .lista_mes-titulo, .lista_calendario-container > .lista_mes:first-child .lista_mes-titulo { margin-top: 4px; }
.tabdat_month a { color: inherit; }
.tabdat_month a:hover { color: var(--azul); }

.lista_feriado-item {
  display: flex; align-items: center; gap: 16px;
  background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio);
  padding: 12px 16px 12px 12px; margin-bottom: 10px; box-shadow: var(--sombra);
  transition: border-color .15s, box-shadow .15s, transform .15s;
}
.lista_feriado-item:hover { border-color: #d6d1c6; box-shadow: var(--sombra-alta); transform: translateY(-1px); }

/* a folhinha: faixa vermelha com o dia da semana em cima, número grande embaixo */
.lista_dia {
  display: flex; flex-direction: column; align-items: stretch; flex-shrink: 0;
  width: 64px; border-radius: 9px; overflow: hidden; background: var(--cartao);
  border: 1px solid #e3ded3; box-shadow: 0 1px 0 #e3ded3, 0 3px 0 -1px #f1eee8;
  text-align: center;
}
.lista_dia .lista_semana {
  order: -1; background: var(--vermelho); color: #fff;
  font-family: var(--titulo); font-size: 11.5px; letter-spacing: .08em; line-height: 1; padding: 5px 0 4px;
}
.lista_dia .lista_semana.facultativo { background: var(--laranja-texto); }   /* texto branco pequeno: 5,5:1 */
.lista_dia .lista_dia-dia { font-family: var(--numero); font-size: 32px; line-height: 1; color: var(--vermelho); padding: 6px 0 7px; }
.lista_dia .lista_dia-dia.facultativo { color: var(--laranja-texto); }

.lista_feriado-detalhes { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lista_feriado-nome { font-family: var(--ui); font-size: 16.5px; font-weight: 700; color: var(--tinta); line-height: 1.3; margin: 0; }
.lista_feriado-nome a { color: inherit; }
.lista_feriado-nome a:hover { color: var(--azul); }
.lista_feriado-data { font-size: 14px; color: var(--suave); }
.lista_feriado-data a { color: inherit; }
.lista_feriado-data a:hover { color: var(--azul); }
.lista_feriado-status1, .lista_feriado-status2 {
  align-self: flex-start; margin-top: 4px; font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 999px;
}
.lista_feriado-status1 { color: var(--vermelho-texto); background: var(--vermelho-claro); }
.lista_feriado-status2 { color: var(--laranja-texto); background: var(--laranja-claro); }
@media (max-width: 600px) {
  .lista_feriado-item { gap: 12px; padding: 10px 12px 10px 10px; }
  .lista_dia { width: 56px; }
  .lista_dia .lista_dia-dia { font-size: 27px; }
  .lista_feriado-nome { font-size: 15px; }
}

/* Feriadões */
.feriadoes_tabela td:first-child { width: 46%; }
.feriadao_dias { display: inline-block; margin-top: 2px; font-size: 12.5px; color: var(--suave); }

/* =====================================================================================
   Tabelas de datas
   ===================================================================================== */
.tabdat_table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.tabdat_table th {
  text-align: left; font-size: 11.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
  color: var(--suave); background: transparent; padding: 8px 10px; border-bottom: 1px solid var(--linha);
}
.tabdat_table td { padding: 10px; border-bottom: 1px solid var(--linha-2); background: transparent; color: var(--tinta-2); vertical-align: top; }
.tabdat_table tbody tr:last-child td { border-bottom: 0; }
.tabdat_table td:first-child { font-family: var(--numero); font-size: 17px; letter-spacing: .02em; color: var(--tinta); white-space: nowrap; }
.feriadoes_tabela td:first-child { font-family: var(--ui); font-size: 14.5px; letter-spacing: 0; white-space: normal; }
.tabdat_table .normal-row td, .tabdat_table td.normal-row { background: transparent; color: var(--tinta-2); }
.tabdat_table tr.holiday-row td, .tabdat_table td.holiday-row { background: var(--vermelho-claro); color: var(--vermelho-texto); font-weight: 600; }
.tabdat_table tr.optional-row td, .tabdat_table td.optional-row { background: var(--laranja-claro); color: var(--laranja-texto); font-weight: 600; }
.tabdat_table tr.holiday-row td:first-child, .tabdat_table td.holiday-row:first-child { color: var(--vermelho-texto); }
.tabdat_table tr.today-row td { box-shadow: inset 3px 0 0 var(--azul); }
.tabdat_table .tabdat_highlight { background: var(--azul-claro); }

.tabdat_legend { display: flex; flex-wrap: wrap; gap: 16px; margin: 0 0 6px; }
.tabdat_legend-item { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--suave); }
.tabdat_legend-icon { width: 10px; height: 10px; border-radius: 50%; }
.tabdat_legend-icon.holiday { background: var(--vermelho); }
.tabdat_legend-icon.optional { background: var(--laranja); }

/* Datas comemorativas: duas colunas por linha */
.tabdat_table-2col { table-layout: fixed; }
.tabdat_table-2col td { padding: 8px 8px; font-size: 14px; }
.tabdat_table-2col td:nth-child(3n+1) { font-family: var(--numero); font-size: 17px; color: var(--tinta); }
.tabdat_table-2col td:nth-child(3n+2) { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--suave); }
.tabdat_table-2col td:nth-child(3n+1).holiday-row { color: var(--vermelho-texto); }
.tabdat_table-2col td:nth-child(3n+1).optional-row { color: var(--laranja-texto); }
.zebra-striped.col-definido col:nth-child(1), .zebra-striped.col-definido col:nth-child(4) { width: 7%; }
.zebra-striped.col-definido col:nth-child(2), .zebra-striped.col-definido col:nth-child(5) { width: 8%; }
.zebra-striped.col-definido col:nth-child(3), .zebra-striped.col-definido col:nth-child(6) { width: 35%; }
.zebra-striped tbody tr:nth-child(even) td:not([class]) { background: var(--creme); }
.tabdat_table-2col.divide-cols td:nth-child(3) { border-right: 1px solid var(--linha); }
.tabdat_table-2col.divide-cols td:nth-child(4) { padding-left: 14px; }
.month-block { scroll-margin-top: 150px; }
.months-container .month-block:first-child .tabdat_month { margin-top: 10px; }

.sticky-subtitle-menu {
  position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.94); backdrop-filter: saturate(1.4) blur(8px);
  -webkit-backdrop-filter: saturate(1.4) blur(8px);
  margin: -24px -24px 0; padding: 18px 24px 12px; border-radius: var(--raio) var(--raio) 0 0; border-bottom: 1px solid var(--linha);
}
.sticky-subtitle-menu h2 { margin-bottom: 10px; }
.subtitle-legend-row, .legend-and-mobile-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; width: 100%; }
.months-nav { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 12px; }
.month-link {
  font-family: var(--titulo); font-size: 12.5px; letter-spacing: .06em; color: var(--tinta-2);
  padding: 6px 10px; border-radius: 999px; border: 1px solid transparent;
}
.month-link:hover { background: var(--papel); color: var(--vermelho-texto); }
.months-nav-mobile { display: none; }
.months-nav-mobile select, .form_select, .form_input, .contato_input-group input, .contato_input-group textarea, .campo {
  height: 42px; padding: 0 14px; border: 1px solid #d9d5cc; border-radius: 10px; background: var(--cartao);
  font-size: 15px; color: var(--tinta); transition: border-color .15s, box-shadow .15s;
}
.months-nav-mobile select:focus, .form_select:focus, .form_input:focus, .contato_input-group input:focus, .contato_input-group textarea:focus, .campo:focus {
  outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(0, 87, 153, .15);
}
@media (max-width: 1120px) {
  .months-nav { display: none !important; }
  .months-nav-mobile { display: block; }
}
@media (max-width: 600px) {
  .sticky-subtitle-menu { margin: -18px -16px 0; padding: 14px 16px 10px; }
  .tabdat_table-2col, .tabdat_table-2col tbody, .tabdat_table-2col tr { display: block; }
  .tabdat_table-2col colgroup { display: none; }
  .tabdat_table-2col tr { display: grid; grid-template-columns: 34px 46px 1fr; }
  .tabdat_table-2col td { border-bottom: 1px solid var(--linha-2); }
  .tabdat_table-2col.divide-cols td:nth-child(3) { border-right: 0; }
  .tabdat_table-2col.divide-cols td:nth-child(4) { padding-left: 8px; }
  .tabdat_table-2col td[colspan] { display: none; }
  .zebra-striped tbody tr:nth-child(even) td:not([class]) { background: transparent; }
}

/* =====================================================================================
   Página inicial do país
   ===================================================================================== */
.home-titulo { text-align: center; margin: 6px 0 20px; }

.box_today_container { padding: 0; overflow: hidden; }
.hoje-folha { display: grid; grid-template-columns: 172px 1fr; align-items: stretch; }
.hoje-folha__dia {
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  border-right: 1px dashed #d9d5cc; padding: 18px 10px; background: var(--creme);
}
.hoje-folha__mes { font-family: var(--titulo); font-size: 15px; letter-spacing: .1em; text-transform: uppercase; color: var(--vermelho-texto); }
.hoje-folha__numero { font-family: var(--numero); font-size: 92px; line-height: .95; color: var(--tinta); margin: 4px 0 2px; }
.hoje-folha__numero.domingo { color: var(--vermelho); }
.hoje-folha__semana { font-family: var(--titulo); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-2); }
.hoje-folha__info { padding: 20px 24px; display: flex; flex-direction: column; justify-content: center; gap: 14px; }
.hoje-folha__titulo { font-family: var(--titulo); font-size: 22px; color: var(--tinta); margin: 0; }
.hoje-folha__titulo::before { display: none; }
.hoje-folha__data { font-size: 15.5px; color: var(--tinta-2); margin-top: -8px; }
.hoje-folha__numeros { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.hoje-folha__numeros div { display: flex; flex-direction: column; }
.hoje-folha__numeros dt { font-size: 11.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--suave); }
.hoje-folha__numeros dd { font-family: var(--numero); font-size: 24px; letter-spacing: .02em; color: var(--tinta); }
.progresso { height: 4px; background: var(--linha-2); border-radius: 4px; overflow: hidden; margin-top: 6px; width: 120px; }
.progresso span { display: block; height: 100%; background: var(--vermelho); border-radius: 4px; }
.lua_hoje { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--tinta-2); padding-top: 14px; border-top: 1px solid var(--linha-2); }
.lua_hoje img { width: 30px; height: 30px; flex-shrink: 0; }
.lua_hoje small { color: var(--suave); font-size: 13px; }
@media (max-width: 600px) {
  .hoje-folha { grid-template-columns: 112px 1fr; }
  .hoje-folha__numero { font-size: 64px; }
  .hoje-folha__mes { font-size: 12px; color: var(--vermelho-texto); }
  .hoje-folha__info { padding: 16px; gap: 12px; }
  .hoje-folha__titulo { font-size: 18px; }
  .hoje-folha__numeros dd { font-size: 20px; }
}

/* Mini calendário do mês (folhinha compacta) */
.mini_mes h2 a { color: inherit; }
.mini_mes h2 a:hover { color: var(--azul); }
.mini_mes_tabela { width: 100%; border-collapse: collapse; table-layout: fixed; text-align: center; }
.mini_mes_tabela th { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--suave); padding: 0 0 8px; }
.mini_mes_tabela td { padding: 3px; }
.mini_mes_tabela td > span, .mini_mes_tabela td > a {
  display: flex; align-items: center; justify-content: center; height: 44px; border-radius: 10px;
  font-family: var(--numero); font-size: 22px; color: var(--tinta); letter-spacing: .02em;
}
.mini_mes_tabela .mini_fds > span { color: var(--suave); }
.mini_mes_tabela .mini_dom > span { color: var(--vermelho); }
.mini_mes_tabela .mini_feriado > span { color: var(--vermelho-texto); background: var(--vermelho-claro); }
.mini_mes_tabela .mini_facultativo > span { color: var(--laranja-texto); background: var(--laranja-claro); }
.mini_mes_tabela .mini_hoje > span { background: var(--azul); color: #fff; box-shadow: 0 4px 12px rgba(0, 87, 153, .3); }
.mini_mes_links { display: flex; justify-content: space-between; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--linha-2); font-size: 14px; font-weight: 600; }
@media (max-width: 600px) { .mini_mes_tabela td > span { height: 38px; font-size: 19px; } }

/* Destaque do ano que vem */
.destaque_ano {
  position: relative; overflow: hidden; border-radius: var(--raio); margin: 0 0 20px; padding: 26px 26px 24px;
  background: var(--azul); color: #fff; box-shadow: var(--sombra);
}
.destaque_ano::after {
  content: attr(data-ano); position: absolute; right: -6px; bottom: -28px; font-family: var(--numero);
  font-size: 150px; line-height: 1; color: rgba(255, 255, 255, .08); pointer-events: none;
}
.destaque_ano h2 { font-family: var(--titulo); font-size: 24px; color: #fff; margin: 0 0 6px; }
.destaque_ano h2::before { display: none; }
.destaque_ano p { color: rgba(255, 255, 255, .85); margin: 0 0 16px; }
.destaque_ano ul { display: flex; flex-wrap: wrap; gap: 8px; position: relative; z-index: 1; }
.destaque_ano a {
  display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border-radius: 999px;
  background: #fff; color: var(--azul); font-size: 14px; font-weight: 700;
}
.destaque_ano a:hover { background: #ffe08a; color: var(--tinta); }

/* =====================================================================================
   Menu lateral
   ===================================================================================== */
.menu_lateral_container { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 18px; box-shadow: var(--sombra); }
.menu_lateral_titulo {
  font-family: var(--titulo); font-size: 16px; color: var(--tinta); margin: 0 0 8px; padding: 0 0 10px;
  border-bottom: 1px solid var(--linha-2); display: flex; align-items: center; gap: 8px;
}
.menu_lateral_titulo::before { content: ''; width: 4px; height: 15px; border-radius: 2px; background: var(--vermelho); }
.menu_lateral_lista a {
  display: flex; align-items: center; justify-content: space-between; padding: 9px 6px;
  color: var(--tinta-2); font-size: 15px; border-radius: 8px;
}
.menu_lateral_lista a::after { content: ''; width: 6px; height: 6px; border: solid currentColor; border-width: 1.6px 1.6px 0 0; transform: rotate(45deg); opacity: .35; }
.menu_lateral_lista a:hover { color: var(--azul); background: var(--creme); padding-left: 10px; }
.menu_lateral_lista a:hover::after { opacity: 1; }
.menu_lateral_destaque { background: var(--azul-claro); border-color: #d3e3f1; }
.menu_lateral_destaque .menu_lateral_titulo { border-bottom-color: #d3e3f1; }
.menu_lateral_destaque .menu_lateral_lista a:hover { background: rgba(255,255,255,.7); }
@media (max-width: 980px) { .right-column { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); } }

/* =====================================================================================
   Contagem regressiva
   ===================================================================================== */
.contagem {
  display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 26px;
  background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra);
  padding: 24px; margin: 0 0 20px;
}
.contagem__folha {
  width: 168px; border-radius: 14px; overflow: hidden; text-align: center; background: var(--cartao);
  border: 1px solid #e3ded3; box-shadow: 0 1px 0 #e3ded3, 0 4px 0 -1px #f1eee8, 0 7px 0 -2px #e9e5dc;
}
.contagem__faixa { background: var(--vermelho); color: #fff; font-family: var(--titulo); font-size: 14px; letter-spacing: .1em; text-transform: uppercase; padding: 8px 0 7px; }
.contagem__numero { font-family: var(--numero); font-size: 84px; line-height: 1; color: var(--vermelho); padding: 12px 6px 2px; }
.contagem__rotulo { font-family: var(--titulo); font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-2); padding-bottom: 14px; }
.contagem__texto h2 { font-size: 22px; margin: 0 0 6px; }
.contagem__texto h2::before { display: none; }
.contagem__texto p { font-size: 15.5px; margin: 0 0 14px; }
.contagem__extras { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.contagem__extras div { display: flex; flex-direction: column; }
.contagem__extras dt { font-size: 11.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--suave); }
.contagem__extras dd { font-family: var(--numero); font-size: 22px; color: var(--tinta); }
@media (max-width: 600px) {
  .contagem { grid-template-columns: 1fr; justify-items: center; text-align: center; padding: 20px 16px; gap: 18px; }
  .contagem__extras { justify-content: center; }
}
.imagem_evento { margin: 0 0 20px; }
.imagem_evento img { display: block; width: 100%; border-radius: var(--raio); border: 1px solid var(--linha); }
.form_result { background: var(--vermelho-claro); color: var(--vermelho-texto); border-radius: 10px; padding: 12px 16px; margin: 0 0 16px; font-size: 14.5px; }

.form_container h1, .form_container h2 { font-size: 20px; margin: 0 0 18px; display: flex; align-items: center; gap: 10px; }
.form_container h2::before, .form_container h1::before { content: ''; width: 4px; height: 18px; border-radius: 2px; background: var(--vermelho); }
.form_group { margin-bottom: 22px; }
.form_label, .contato_input-group label { display: block; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--suave); margin: 0 0 10px; }
.form_events { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.form_columns label {
  display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 14px; cursor: pointer;
  border: 1px solid var(--linha); border-radius: 10px; font-size: 14.5px; color: var(--tinta-2); background: var(--cartao);
  transition: border-color .15s, background-color .15s;
}
.form_columns label:hover { border-color: #cfcabf; background: var(--creme); }
.form_columns label:has(input:checked) { border-color: var(--azul); background: var(--azul-claro); color: var(--azul-escuro); font-weight: 600; }
.form_columns input { accent-color: var(--azul); }
.form_datepicker { display: flex; gap: 10px; }
.form_datepicker .form_input { width: 96px; }
.form_datepicker .form_select { flex: 1; max-width: 240px; }

/* =====================================================================================
   Páginas de texto, contato e 404
   ===================================================================================== */
.texto_pagina p, .left-column > p { color: var(--tinta-2); line-height: 1.7; margin: 0 0 16px; }
.contato_title { text-align: center; margin: 0 0 20px; }
.contato_input-group { margin-bottom: 18px; }
.contato_input-group input, .contato_input-group textarea { width: 100%; }
.contato_input-group textarea { height: 150px; padding: 12px 14px; resize: vertical; }
.contato_recaptcha { display: flex; justify-content: center; margin-top: 18px; }
.mensagem-sucesso, .mensagem-erro { padding: 14px 16px; border-radius: 10px; margin-bottom: 18px; font-size: 14.5px; }
.mensagem-sucesso { background: #e9f6ee; color: #1d6b3a; }
.mensagem-erro { background: var(--vermelho-claro); color: var(--vermelho-texto); }

.pagina_404 { text-align: center; padding: 50px 20px 30px; }
.pagina_404 .folha_404 { margin: 0 auto 24px; }
.pagina_404 h1 { font-size: 30px; margin-bottom: 12px; }
.pagina_404 p { color: var(--suave); line-height: 1.6; margin: 0 auto 26px; max-width: 460px; }

/* =====================================================================================
   Rodapé
   ===================================================================================== */
.site-footer { margin-top: 56px; background: #0f1d2e; color: #c6ced8; }
.site-footer__grade {
  max-width: var(--largura); margin: 0 auto; padding: 44px 20px 28px;
  display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr 1fr; gap: 28px;
}
.site-footer__marca img { height: 22px; width: auto; display: block; margin-bottom: 14px; }
.site-footer__marca p { color: #9aa6b4; font-size: 14px; line-height: 1.6; max-width: 320px; }
.site-footer h4, .site-footer .site-footer__titulo { font-family: var(--ui); font-weight: 700; line-height: inherit; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #fff; margin: 0 0 14px; }
.site-footer li { margin-bottom: 9px; }
.site-footer a { color: #c6ced8; font-size: 14.5px; }
.site-footer a:hover { color: #fff; }
.site-footer a[aria-current] { color: #fff; font-weight: 700; }
.site-footer__base {
  max-width: var(--largura); margin: 0 auto; padding: 18px 20px 26px; border-top: 1px solid rgba(255,255,255,.08);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; font-size: 13px; color: #8492a2;
}
.site-footer__base a { color: #8492a2; font-size: 13px; }
@media (max-width: 860px) { .site-footer__grade { grid-template-columns: 1fr 1fr; } .site-footer__marca { grid-column: 1 / -1; } }
@media (max-width: 480px) { .site-footer__grade { grid-template-columns: 1fr; gap: 26px; padding-top: 34px; } }

/* =====================================================================================
   Página inicial geral (/?inicio)
   ===================================================================================== */
.inicio-hero { text-align: center; padding: 30px 0 26px; }
.inicio-hero h1 { margin-bottom: 10px; }
.inicio-hero p { color: var(--suave); font-size: 17px; max-width: 560px; margin: 0 auto; }
.consulta { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; margin: 24px auto 0; }
.consulta__ano { display: inline-flex; align-items: center; height: 46px; border: 1px solid #d9d5cc; border-radius: 999px; background: var(--cartao); overflow: hidden; }
.consulta__ano button { width: 44px; height: 100%; border: 0; background: transparent; font-size: 22px; color: var(--tinta-2); }
.consulta__ano button:hover { background: var(--papel); color: var(--tinta); }
.consulta__ano input { width: 78px; height: 100%; border: 0; text-align: center; font-family: var(--numero); font-size: 24px; letter-spacing: .03em; background: transparent; }
.consulta select { height: 46px; border-radius: 999px; padding: 0 18px; border: 1px solid #d9d5cc; background: var(--cartao); font-size: 15px; min-width: 190px; }
.consulta .botao { height: 46px; padding: 0 22px; }
.paises { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; margin-top: 10px; }
.pais-cartao { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); padding: 20px; transition: box-shadow .15s, transform .15s; }
.pais-cartao:hover { box-shadow: var(--sombra-alta); transform: translateY(-2px); }
.pais-cartao__topo { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.pais-cartao__topo img { width: 38px; height: auto; border-radius: 4px; box-shadow: 0 0 0 1px rgba(0,0,0,.06); }
.pais-cartao__topo a { font-family: var(--titulo); font-size: 18px; color: var(--tinta); }
.pais-cartao__topo a:hover { color: var(--azul); }
.pais-cartao__anos { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; }
.pais-cartao__anos a { display: block; padding: 4px 0; font-size: 14px; color: var(--tinta-2); }
.pais-cartao__anos a:hover { color: var(--azul); }
.pais-cartao--principal { border-color: #d3e3f1; background: linear-gradient(180deg, var(--azul-claro), #fff 70%); }

/* Utilidades */
.centro { text-align: center; }
.mt-0 { margin-top: 0 !important; }

/* ---------- Agenda (datas agrupadas por dia, com folhinha pequena) ---------- */
.agenda { display: grid; gap: 0; }
.agenda__dia { display: grid; grid-template-columns: 46px 1fr; gap: 14px; align-items: start; padding: 12px 0; border-bottom: 1px solid var(--linha-2); }
.agenda__dia:last-child { border-bottom: 0; }
.agenda--hoje .agenda__dia { padding-top: 0; }
.folhinha-p {
  display: flex; flex-direction: column; width: 46px; border-radius: 7px; overflow: hidden; text-align: center;
  border: 1px solid #e3ded3; background: var(--cartao); box-shadow: 0 2px 0 -1px #efebe3;
}
.folhinha-p__sem { background: var(--tinta-2); color: #fff; font-family: var(--titulo); font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; padding: 3px 0 2px; }
.folhinha-p__num { font-family: var(--numero); font-size: 21px; line-height: 1; padding: 4px 0 5px; color: var(--tinta); }
.folhinha-p--dom .folhinha-p__sem { background: var(--vermelho); }
.folhinha-p--dom .folhinha-p__num { color: var(--vermelho); }
.agenda__itens { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 3px; }
.agenda__itens li {
  font-size: 14px; line-height: 1.35; color: var(--tinta-2); background: var(--creme); border: 1px solid var(--linha-2);
  border-radius: 8px; padding: 6px 10px;
}
.agenda__itens li.agenda__feriado { color: var(--vermelho-texto); background: var(--vermelho-claro); border-color: #f8d9d9; font-weight: 600; }

/* ---------- Feriados em grade ---------- */
.lista-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 10px; }
.lista-grade .lista_feriado-item { margin: 0; box-shadow: none; }
.lista-grade--compacta .lista_feriado-item { padding: 8px 12px 8px 8px; gap: 12px; }
.lista-grade--compacta .lista_dia { width: 50px; }
.lista-grade--compacta .lista_dia .lista_dia-dia { font-size: 24px; padding: 4px 0 5px; }
.lista-grade--compacta .lista_dia .lista_semana { font-size: 10px; padding: 4px 0 3px; }
.lista-grade--compacta .lista_feriado-nome { font-size: 14.5px; }
.lista-grade--compacta .lista_feriado-data { font-size: 13px; }
/* Feriado que já passou: dia em cinza e nome mais suave, sem opacidade (o texto segue com contraste AA) */
.lista_feriado-item.passado .lista_dia { filter: grayscale(.9); }
.lista_feriado-item.passado .lista_feriado-nome, .lista_feriado-item.passado .lista_feriado-nome a { color: var(--suave); }
.texto-facultativo { color: var(--laranja-texto); font-weight: 600; }

/* ---------- Principais datas: meses em grade ---------- */
.meses-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 22px 28px; }
.meses-grade__mes h3 { font-family: var(--titulo); font-size: 15px; letter-spacing: .06em; text-transform: uppercase; color: var(--vermelho); margin: 0 0 8px; padding-bottom: 6px; border-bottom: 1px solid var(--linha); }
.meses-grade__mes li { display: grid; grid-template-columns: 28px 1fr; gap: 6px; font-size: 14px; line-height: 1.4; color: var(--tinta-2); padding: 3px 0; }
.meses-grade__dia { font-family: var(--numero); font-size: 16px; color: var(--tinta); letter-spacing: .02em; }
.meses-grade__dia.dom { color: var(--vermelho); }
.left-column > .title_center { margin: 4px 0 20px; }
.imagem_evento img { max-width: 680px; margin: 0 auto; }

/* ---------- Diferença entre datas ---------- */
.form_container .row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 18px; }
@media (max-width: 600px) { .form_container .row { grid-template-columns: 1fr; } }
.form_container input[type="date"].form_input { width: 100%; }
.data-extenso { min-height: 20px; margin-top: 6px; font-size: 13.5px; color: var(--suave); }
.dif-resultado { margin-top: 22px; padding-top: 22px; border-top: 1px dashed #d9d5cc; animation: surgir .4s ease-out both; }
@keyframes surgir { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) { .dif-resultado { animation: none; } }
.dif-resultado h3, .dif-resultado h4 { font-family: var(--ui); font-weight: 700; line-height: inherit; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--suave); margin-bottom: 4px; }
.dias-total { font-family: var(--numero); font-size: 72px; line-height: 1; color: var(--vermelho); }
.dias-palavra { font-family: var(--titulo); font-size: 18px; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-2); }
.diferenca-detalhada { font-size: 15.5px; margin: 6px 0 18px; }
.detalhamento-dias { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.detalhe-item { display: flex; flex-direction: column-reverse; gap: 2px; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 10px; background: var(--creme); }
.detalhe-label { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--suave); }
.detalhe-valor { font-family: var(--numero); font-size: 26px; line-height: 1.1; color: var(--tinta); }
.feriados-lista { margin-top: 18px; }
.feriados-lista h5 { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--suave); margin: 14px 0 6px; }
.feriados-lista li { font-size: 14.5px; color: var(--tinta-2); padding: 6px 0; border-bottom: 1px solid var(--linha-2); }
.form_button.calculating { opacity: .7; }

/* Texto longo (explicações das ferramentas, sobre, privacidade) */
.texto_pagina h2 { font-size: 22px; margin: 4px 0 14px; }
.texto_pagina h3 { font-family: var(--ui); font-weight: 700; font-size: 17px; margin: 22px 0 8px; color: var(--tinta); }
.texto_pagina h4 { margin: 16px 0 6px; color: var(--tinta); }
.texto_pagina p { line-height: 1.7; margin-bottom: 12px; }
.texto_pagina ul, .texto_pagina ol { margin: 0 0 14px 20px; color: var(--tinta-2); }
.texto_pagina ul { list-style: disc; }
.texto_pagina ol { list-style: decimal; }
.texto_pagina li { margin-bottom: 6px; line-height: 1.6; }
.texto_pagina li::marker { color: var(--vermelho); }
.folha_404 { width: 190px; }
.folha_404 .contagem__numero { font-size: 76px; padding-bottom: 4px; }
.folha_404 .contagem__rotulo { padding-bottom: 8px; }
.calend_table td > span:empty { display: none; }
.calend_table td .calend_day-of-year:empty { display: none; }
.calend_table td:has(.calend_lunar-phase) { vertical-align: middle; }
.feriados-list ul li { color: var(--tinta-2) !important; }
.feriados-list ul li.item-feriado { color: var(--vermelho-texto) !important; font-weight: 600; }
.feriados-list ul li.item-facultativo { color: var(--laranja-texto) !important; font-weight: 600; }
.agenda__itens li.agenda__facultativo { color: var(--laranja-texto); background: var(--laranja-claro); border-color: #fbe0cc; font-weight: 600; }
.agenda__dia--hoje { background: linear-gradient(90deg, var(--azul-claro), transparent 70%); border-radius: 10px; padding-left: 8px; margin-left: -8px; }
.tabdat_box .tabdat_legend { margin: 0 0 8px; }
.tabdat_box > .agenda { margin-top: 8px; }
.paises { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); }
.tabdat_table-2col td { vertical-align: middle; }
.calend_table th .dia-curto { display: none; }
@media (max-width: 760px) {
  .calend_table th .dia-longo { display: none; }
  .calend_table th .dia-curto { display: inline; }
  .calend_table th { font-size: 10.5px; letter-spacing: .06em; }
}
@media (max-width: 640px) {
  .btn_nav-container { flex-wrap: wrap; }
  .btn_nav-container > h1, .btn_nav-container > .center-block { order: -1; flex-basis: 100%; }
  .center-block { flex-direction: row; justify-content: center; flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .hoje-folha { grid-template-columns: 100px 1fr; }
  .hoje-folha__numeros { display: grid; grid-template-columns: repeat(3, auto); gap: 10px; }
  .hoje-folha__numeros dt { font-size: 9.5px; letter-spacing: .05em; line-height: 1.25; }
  .hoje-folha__numeros dd { font-size: 19px; }
  .progresso { width: 100%; }
  .lua_hoje { font-size: 13px; }
  .hoje-folha__data { font-size: 14px; }
  .mini_mes h2 { font-size: 18px; }
}
@media (max-width: 600px) { .mini_mes_links { font-size: 13px; } }
/* Impressão: a prévia ocupa a largura toda (folha A4 tem largura fixa) */
.pagina-calendario_imprimir .container { grid-template-columns: minmax(0, 1fr); }
.pagina-calendario_imprimir .right-column { display: none; }
.pagina-calendario_imprimir .left-column { overflow-x: auto; }
.pagina-calendario_imprimir .container2 { margin: 0 auto; max-width: 100%; }
.pagina-calendario_imprimir .left-column .title_center { color: var(--tinta); }

/* =====================================================================================
   Fase 3 — Ferramentas
   ===================================================================================== */

/* ---------- Busca no topo ---------- */
.busca-topo { position: relative; display: flex; align-items: center; }
.busca-topo input {
  width: 230px; height: 38px; padding: 0 38px 0 14px; border-radius: 999px; border: 1px solid var(--linha);
  background: var(--papel); font-size: 14px; transition: width .2s, background-color .15s, border-color .15s;
}
.busca-topo input::placeholder { color: var(--suave); }
.busca-topo input:focus { outline: none; width: 280px; background: var(--cartao); border-color: var(--azul); box-shadow: 0 0 0 3px var(--azul-claro); }
.busca-topo button { position: absolute; right: 4px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: transparent; color: var(--suave); display: grid; place-items: center; }
.busca-topo button:hover { color: var(--azul); background: var(--azul-claro); }
@media (max-width: 1080px) { .busca-topo input, .busca-topo input:focus { width: 180px; } }
@media (max-width: 760px) {
  .busca-topo input { display: none; }
  .busca-topo button { position: static; width: 36px; height: 36px; border: 1px solid var(--linha); background: var(--cartao); color: var(--tinta-2); }
}

/* ---------- Peças comuns ---------- */
.nota { font-size: 13.5px; color: var(--suave); line-height: 1.55; margin: 12px 0 0; }
.selo {
  display: inline-flex; align-items: center; height: 22px; padding: 0 9px; border-radius: 999px; margin: 4px 6px 0 0;
  font-size: 11.5px; font-weight: 700; letter-spacing: .03em; background: var(--creme); color: var(--tinta-2); border: 1px solid var(--linha);
}
.selo--lua { background: #fff6dc; border-color: #f3e2ad; color: #7a5a00; }
.selo--azul { background: var(--azul-claro); border-color: #d3e3f1; color: var(--azul-escuro); }
.ferramenta h2 { margin-bottom: 16px; }
.ferramenta .form_button { margin-top: 4px; }
.botao svg { flex-shrink: 0; }
.botao { gap: 8px; }

/* Controle segmentado (dois modos) */
.segmentos { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 12px; background: var(--papel); border: 1px solid var(--linha); margin-bottom: 20px; }
.segmentos label { display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border-radius: 9px; font-size: 14.5px; font-weight: 600; color: var(--tinta-2); cursor: pointer; transition: background-color .15s, color .15s; }
.segmentos input { position: absolute; opacity: 0; pointer-events: none; }
.segmentos label:has(input:checked) { background: var(--cartao); color: var(--azul); box-shadow: var(--sombra); }
.segmentos label:has(input:focus-visible) { outline: 3px solid #ffbf47; outline-offset: 1px; }

.opcoes { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 18px; }
.opcoes label { display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; color: var(--tinta-2); cursor: pointer; }
.opcoes input { width: 17px; height: 17px; accent-color: var(--azul); }
.campo-duplo { display: flex; gap: 8px; }
.campo-duplo .form_input { width: 110px; flex-shrink: 0; }
.campo-duplo .form_select { flex: 1; min-width: 0; }
.form_container .form_select, .form_container .form_input { height: 46px; }

/* Dias úteis: mostra só os campos do modo escolhido */
.du-form:has(input[value="contar"]:checked) .so-somar { display: none; }
.du-form:has(input[value="somar"]:checked) .so-contar { display: none; }

/* Resultado com folhinha (prazo, idade) */
.prazo { display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: center; margin-bottom: 18px; }
.prazo .contagem__folha { width: 150px; }
.prazo .contagem__numero { font-size: 72px; }
.prazo .contagem__rotulo { font-size: 13px; padding: 0 8px 12px; }
.contagem__faixa.dom { background: var(--vermelho); }
.prazo__frase { font-size: 15px; color: var(--suave); margin: 0 0 4px; }
.prazo__data { font-family: var(--titulo); font-size: 22px; line-height: 1.25; color: var(--tinta); margin: 0 0 10px; }
.aniversario { font-size: 15px; margin: 0; }
.aniversario--hoje { color: var(--vermelho-texto); font-weight: 700; }
@media (max-width: 600px) {
  .prazo { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 14px; }
}
.lista-data { display: inline-block; min-width: 132px; font-variant-numeric: tabular-nums; color: var(--suave); }
.feriados-lista li.texto-facultativo { color: var(--laranja-texto); }

/* ---------- Lua ---------- */
.lua-svg { display: block; flex-shrink: 0; }
.lua-hero {
  display: grid; grid-template-columns: auto 1fr; gap: 34px; align-items: center; margin: 0 0 20px; padding: 30px 34px;
  border-radius: var(--raio); color: #e9edf3; box-shadow: var(--sombra-alta); overflow: hidden; position: relative;
  background: radial-gradient(120% 140% at 15% 20%, #22324a 0%, #111b2b 55%, #0b1320 100%);
}
.lua-hero::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .55;
  background-image: radial-gradient(1px 1px at 62% 18%, #fff, transparent), radial-gradient(1px 1px at 82% 64%, #fff, transparent),
    radial-gradient(1.5px 1.5px at 92% 28%, #fff, transparent), radial-gradient(1px 1px at 71% 86%, #fff, transparent),
    radial-gradient(1px 1px at 48% 8%, #fff, transparent), radial-gradient(1px 1px at 96% 90%, #fff, transparent);
}
.lua-hero__ceu { position: relative; }
.lua-hero__ceu .lua-svg { width: 200px; height: 200px; filter: drop-shadow(0 0 26px rgba(244, 239, 225, .22)); }
.lua-hero__ceu .lua-svg circle:first-child { fill: #1c2433; }
.lua-hero__info { position: relative; min-width: 0; }
.lua-hero__data { color: #aeb9c8; font-size: 15px; margin: 0 0 4px; }
.lua-hero__data::first-letter { text-transform: uppercase; }
.lua-hero__fase { font-family: var(--titulo); font-size: clamp(30px, 4vw, 42px); color: #fff; margin: 0 0 6px; }
.lua-hero__fase::before { display: none; }
.lua-hero__agora { color: #c9d2de; font-size: 15px; margin: 0 0 20px; }
.lua-hero__numeros { display: flex; flex-wrap: wrap; gap: 14px 30px; }
.lua-hero__numeros > div { display: flex; flex-direction: column; }
.lua-hero__numeros dt { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8f9cae; }
.lua-hero__numeros dd { font-family: var(--numero); font-size: 26px; letter-spacing: .02em; color: #fff; }
.lua-barra { width: 120px; height: 4px; border-radius: 4px; background: rgba(255,255,255,.14); margin-top: 6px; overflow: hidden; }
.lua-barra span { display: block; height: 100%; border-radius: 4px; background: #f4efe1; }
@media (max-width: 640px) {
  .lua-hero { grid-template-columns: 1fr; justify-items: center; text-align: center; padding: 26px 18px; gap: 18px; }
  .lua-hero__ceu .lua-svg { width: 150px; height: 150px; }
  .lua-hero__numeros { justify-content: center; gap: 12px 22px; }
  .lua-hero__numeros dd { font-size: 22px; }
  .lua-barra { margin: 6px auto 0; }
  .lua-hero__numeros > div { align-items: center; }
}

.lua-proximas { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.lua-prox { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 12px; background: var(--creme); }
.lua-prox .lua-svg { width: 42px; height: 42px; }
.lua-prox > div { display: flex; flex-direction: column; min-width: 0; }
.lua-prox__nome { font-family: var(--titulo); font-weight: normal; font-size: 16px; color: var(--tinta); }
.lua-prox__data { font-size: 13.5px; color: var(--tinta-2); line-height: 1.35; }
.lua-prox__quando { font-size: 13px; font-weight: 700; color: var(--azul); margin-top: 2px; }

.lua-mes { width: 100%; border-collapse: separate; border-spacing: 4px; table-layout: fixed; text-align: center; margin: 0 -4px; width: calc(100% + 8px); }
.lua-mes th { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--suave); padding: 0 0 4px; }
.lua-mes th.dom { color: var(--vermelho-texto); }
.lua-mes td { vertical-align: top; padding: 8px 2px 7px; border-radius: 10px; background: var(--creme); border: 1px solid var(--linha-2); }
.lua-mes td.vazio { background: transparent; border-color: transparent; }
.lua-mes td .lua-svg { margin: 4px auto 3px; width: 28px; height: 28px; }
.lua-mes__dia { display: block; font-family: var(--numero); font-size: 19px; line-height: 1; color: var(--tinta); }
.lua-mes__dia.dom { color: var(--vermelho-texto); }
.lua-mes__pct { display: block; font-size: 11px; color: var(--suave); font-variant-numeric: tabular-nums; }
.lua-mes__fase { display: block; margin-top: 3px; font-size: 10.5px; font-weight: 700; line-height: 1.2; color: var(--azul-escuro); }
.lua-mes td.principal { background: var(--azul-claro); border-color: #d3e3f1; }
.lua-mes td.hoje { background: var(--cartao); border-color: var(--azul); box-shadow: 0 0 0 1px var(--azul) inset, var(--sombra); }
@media (max-width: 600px) {
  .lua-mes { border-spacing: 2px; margin: 0 -2px; width: calc(100% + 4px); }
  .lua-mes td { padding: 6px 0 5px; border-radius: 7px; }
  .lua-mes td .lua-svg { width: 22px; height: 22px; }
  .lua-mes__dia { font-size: 16px; }
  .lua-mes__pct { font-size: 9.5px; }
  .lua-mes__fase { font-size: 8.5px; letter-spacing: -.01em; }
}

/* Calendário lunar do ano */
.lua-ano { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.lua-ano__mes { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); padding: 16px 18px 12px; scroll-margin-top: 20px; }
.lua-ano__titulo { display: flex; justify-content: space-between; align-items: baseline; font-family: var(--titulo); font-size: 17px; letter-spacing: .05em; text-transform: uppercase; margin: 0 0 8px; padding-bottom: 8px; border-bottom: 1px solid var(--linha-2); }
.lua-ano__titulo::before { display: none; }
.lua-ano__titulo a { color: var(--tinta); }
.lua-ano__titulo a:hover { color: var(--azul); }
.lua-ano__titulo span { color: var(--vermelho); font-size: 15px; }
.lua-ano__fase { display: grid; grid-template-columns: 34px 34px 1fr; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px dashed var(--linha-2); }
.lua-ano__fase:last-child { border-bottom: 0; }
.lua-ano__fase .selo { grid-column: 3; margin-top: -4px; justify-self: start; }
.lua-ano__dia { font-family: var(--numero); font-size: 24px; line-height: 1; color: var(--tinta); text-align: center; }
.lua-ano__dia.dom { color: var(--vermelho); }
.lua-ano__nome { font-size: 14.5px; font-weight: 600; color: var(--tinta); line-height: 1.25; display: flex; flex-direction: column; }
.lua-ano__nome small { font-size: 12.5px; font-weight: 400; color: var(--suave); }
.lua-ano__fase.passou { color: var(--suave); }
.lua-ano__fase.passou svg { opacity: .55; }
.lua-ano__fase.proxima { background: linear-gradient(90deg, var(--azul-claro), transparent 80%); border-radius: 8px; margin: 0 -8px; padding-left: 8px; padding-right: 8px; }
.lua-ano__fase.hoje { background: #fff6dc; border-radius: 8px; margin: 0 -8px; padding-left: 8px; padding-right: 8px; }

/* ---------- Página de ferramentas ---------- */
.ferramentas-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; margin: 6px 0 24px; }
.ferramenta-cartao {
  display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 20px; border-radius: var(--raio);
  background: var(--cartao); border: 1px solid var(--linha); box-shadow: var(--sombra); color: var(--tinta);
  transition: box-shadow .15s, transform .15s, border-color .15s;
}
.ferramenta-cartao:hover { box-shadow: var(--sombra-alta); transform: translateY(-2px); border-color: #d6d1c6; color: var(--tinta); }
.ferramenta-cartao__icone { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--vermelho-claro); color: var(--vermelho); margin-bottom: 6px; }
.ferramentas-grade li:nth-child(3n+2) .ferramenta-cartao__icone { background: var(--azul-claro); color: var(--azul); }
.ferramentas-grade li:nth-child(3n) .ferramenta-cartao__icone { background: #fff6dc; color: #9a6d00; }
.ferramenta-cartao__nome { font-family: var(--titulo); font-size: 18px; line-height: 1.2; }
.ferramenta-cartao__desc { font-size: 14px; color: var(--suave); line-height: 1.5; }
.menu_lateral_lista--icones a { justify-content: flex-start; gap: 10px; }
.menu_lateral_lista--icones a::after { margin-left: auto; }
.menu_lateral_icone { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; background: var(--creme); color: var(--vermelho); flex-shrink: 0; }
.menu_lateral_icone svg { width: 16px; height: 16px; }

/* ---------- Calculadora de horas ---------- */
.hr-linhas { display: grid; gap: 8px; margin-bottom: 12px; }
.hr-linha { display: grid; grid-template-columns: 64px 1fr 1fr 40px; gap: 8px; align-items: center; }
.hr-linha .form_select { height: 46px; padding: 0 10px; font-size: 18px; font-weight: 700; text-align: center; }
.hr-campo { position: relative; display: block; }
.hr-campo .form_input { width: 100%; height: 46px; padding-right: 42px; font-family: var(--numero); font-size: 20px; letter-spacing: .02em; }
.hr-campo span { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 13px; color: var(--suave); pointer-events: none; }
.hr-remover { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--linha); background: var(--cartao); color: var(--suave); font-size: 20px; line-height: 1; }
.hr-remover:hover { color: var(--vermelho-texto); border-color: #f3c9c9; background: var(--vermelho-claro); }
.hr-acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.hr-acoes .botao { height: 40px; }
.hr-resultado { margin-top: 18px; }
.hr-intervalo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.hr-intervalo .form_input { width: 100%; font-family: var(--numero); font-size: 20px; letter-spacing: .02em; }
@media (max-width: 600px) { .hr-intervalo { grid-template-columns: 1fr 1fr; } .hr-intervalo > div:last-child { grid-column: 1 / -1; } }
.hr-resultado .selo { vertical-align: middle; margin: 0 0 0 6px; text-transform: none; letter-spacing: 0; }

/* ---------- Busca ---------- */
.busca-grande { display: flex; gap: 8px; margin: 0 auto 18px; max-width: 640px; }
.busca-grande .form_input { flex: 1; height: 50px; font-size: 16.5px; border-radius: 999px; padding: 0 20px; }
.busca-grande .botao { height: 50px; padding: 0 24px; }
.busca-resumo { text-align: center; color: var(--suave); margin: 0 0 16px; }
.busca-lista { display: grid; gap: 8px; margin: 0 0 22px; }
.busca-lista a {
  display: grid; grid-template-columns: auto 1fr; column-gap: 12px; row-gap: 2px; align-items: baseline; padding: 14px 18px;
  background: var(--cartao); border: 1px solid var(--linha); border-radius: 12px; color: var(--tinta); transition: border-color .15s, box-shadow .15s;
}
.busca-lista a:hover { border-color: var(--azul); box-shadow: var(--sombra); color: var(--tinta); }
.busca-lista strong { font-size: 16px; }
.busca-sub { grid-column: 2; font-size: 14px; color: var(--suave); }
.busca-tipo { grid-row: span 2; align-self: start; margin-top: 1px; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 3px 8px; border-radius: 6px; background: var(--creme); color: var(--suave); border: 1px solid var(--linha-2); white-space: nowrap; }
.busca-tipo--feriado { background: var(--vermelho-claro); color: var(--vermelho-texto); border-color: #f8d9d9; }
.busca-tipo--ponto_facultativo { background: var(--laranja-claro); color: var(--laranja-texto); border-color: #fbe0cc; }
.busca-tipo--ferramenta, .busca-tipo--pagina { background: var(--azul-claro); color: var(--azul-escuro); border-color: #d3e3f1; }
@media (max-width: 600px) {
  .busca-lista a { grid-template-columns: 1fr; padding: 12px 14px; }
  .busca-tipo { grid-row: auto; justify-self: start; margin-bottom: 4px; }
  .busca-sub { grid-column: 1; }
  .busca-grande .botao { padding: 0 16px; }
}

/* ---------- Assinar a agenda (.ics) ---------- */
.agenda-assinar {
  display: grid; gap: 14px; margin: 0 0 20px; padding: 22px 24px; border-radius: var(--raio);
  background: linear-gradient(135deg, var(--azul-claro), #fff 75%); border: 1px solid #d3e3f1; box-shadow: var(--sombra);
}
.agenda-assinar h2 { font-size: 20px; margin: 0 0 4px; display: flex; align-items: center; gap: 10px; }
.agenda-assinar h2::before { content: ''; width: 22px; height: 22px; flex-shrink: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23005799' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M12 13v5M9.5 15.5h5'/%3E%3C/svg%3E") center / contain no-repeat; border-radius: 0; }
.agenda-assinar p { font-size: 14.5px; margin: 0; max-width: 640px; }
.agenda-assinar__botoes { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; }
.agenda-assinar__botoes .botao { height: 40px; padding: 0 16px; font-size: 14px; }
.agenda-assinar__baixar { font-size: 13.5px; font-weight: 600; margin-left: 6px; }
@media (max-width: 600px) { .agenda-assinar { padding: 20px 18px; } .agenda-assinar__baixar { flex-basis: 100%; margin: 4px 0 0; } }

/* ---------- Compartilhar (contagem regressiva) ---------- */
.compartilhar { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.compartilhar .botao { height: 38px; padding: 0 14px; font-size: 14px; }
@media (max-width: 600px) { .compartilhar { justify-content: center; } }

/* ---------- Filtros do calendário ---------- */
.filtros { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 18px; }
.filtros__rotulo { font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--suave); margin-right: 4px; }
.filtros label {
  display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 12px; border-radius: 999px; cursor: pointer; user-select: none;
  border: 1px solid var(--linha); background: var(--cartao); font-size: 13.5px; color: var(--suave); transition: background-color .15s, border-color .15s, color .15s;
}
.filtros label:hover { border-color: #cfcabf; }
.filtros input { position: absolute; opacity: 0; pointer-events: none; }
.filtros label:has(input:checked) { color: var(--tinta); border-color: #cfcabf; background: var(--creme); }
.filtros label:has(input:focus-visible) { outline: 3px solid #ffbf47; outline-offset: 1px; }
.filtros label::before { content: ''; width: 14px; height: 14px; border-radius: 4px; border: 1.5px solid #c9c4b9; background: #fff; flex-shrink: 0; }
.filtros label:has(input:checked)::before { border-color: var(--azul); background: var(--azul) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
.filtros__cor { width: 8px; height: 8px; border-radius: 50%; }
.filtros__cor--feriado { background: var(--vermelho); }
.filtros__cor--facultativo { background: var(--laranja); }
.filtros__cor--comemorativa { background: #c9b98a; }

body.sem-feriados .calend_table span.feriado { color: inherit; }
body.sem-feriados .feriados-list li.item-feriado { display: none; }
body.sem-facultativos .calend_table span.feriado_facultativo { color: inherit; }
body.sem-facultativos .feriados-list li.item-facultativo { display: none; }
body.sem-comemorativas .calend_table td.destaque_dia { background: transparent; }
body.sem-comemorativas .feriados-list li.item-data { display: none; }
body.sem-lua .calend_lunar-phase, body.sem-lua tr:has(.extra_lunar_phase) { display: none; }
body.sem-dia-ano .calend_day-of-year { display: none; }
body.sem-semana .calend_table td[data-week-number]::before { display: none; }

/* =====================================================================================
   Impressão (calendario_imprimir): prévia na tela em folha A4 e impressão
   1 unidade --u = 1pt na folha; na tela é proporcional à largura da prévia (cqi)
   ===================================================================================== */
.impressao { max-width: var(--largura); }
.impressao > .title_center { margin: 2px 0 18px; }
.impressao-painel {
  display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: flex-end; padding: 18px 20px; margin: 0 0 22px;
  background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra);
}
.impressao-painel .form_label { margin-bottom: 8px; }
.impressao-painel .segmentos { margin: 0; }
.impressao-painel__mostrar { flex: 1 1 420px; }
.filtros--painel { margin: 0; }
.impressao-painel__acao { display: flex; flex-direction: column; gap: 4px; flex: 1 1 260px; }
.impressao-painel__acao .botao { height: 46px; font-size: 15px; }
.impressao-painel__acao .nota { margin: 0; font-size: 12.5px; }

.folhas { --u: .168cqi; --mm: .476cqi; display: grid; justify-items: center; gap: 24px; padding: 10px 0 20px; }
.folhas[data-orientacao="paisagem"] { --u: .1188cqi; --mm: .3367cqi; }
.folha, .imp-mes { background: #fff; color: #17191e; }
.folhas[data-layout="ano"] .folha {
  container-type: inline-size; width: min(100%, 794px); aspect-ratio: 210 / 297; padding: calc(var(--mm) * 9);
  box-shadow: 0 1px 3px rgba(0,0,0,.08), 0 12px 40px rgba(23,25,30,.14); border-radius: 4px; display: flex; flex-direction: column;
}
.folhas[data-layout="ano"][data-orientacao="paisagem"] .folha { width: min(100%, 1123px); aspect-ratio: 297 / 210; }
.folha__topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: calc(var(--mm) * 2.5); margin-bottom: calc(var(--mm) * 3.5); border-bottom: calc(var(--u) * .8) solid #17191e; }
.folha__topo img { height: calc(var(--mm) * 4.2); width: auto; }
.folha__topo h2 { font-family: var(--titulo); font-size: calc(var(--u) * 17); margin: 0; color: #17191e; }
.folha__topo h2::before { display: none; }
.folha__topo span { font-size: calc(var(--u) * 7.5); font-weight: 600; color: #3f444c; }
.folha__meses { flex: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(0, 1fr)); gap: calc(var(--mm) * 3) calc(var(--mm) * 5); min-height: 0; }
.folhas[data-orientacao="paisagem"] .folha__meses { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(0, 1fr)); }
.folha__legenda { display: flex; gap: calc(var(--mm) * 5); justify-content: center; margin-top: calc(var(--mm) * 2); padding-top: calc(var(--mm) * 2); border-top: calc(var(--u) * .5) solid #ddd; font-size: calc(var(--u) * 6.5); color: #3f444c; }
.lg::before { content: ''; display: inline-block; width: calc(var(--u) * 6); height: calc(var(--u) * 6); border-radius: 50%; margin-right: calc(var(--u) * 3); vertical-align: -5%; }
.lg--fer::before { background: #e3262f; }
.lg--fac::before { background: #ea5a0c; }
.lg--com::before { background: #efe6c9; box-shadow: inset 0 0 0 calc(var(--u) * .6) #c9b98a; }

.imp-mes { min-width: 0; min-height: 0; overflow: hidden; contain: paint; break-inside: avoid; display: flex; flex-direction: column; }
/* Ano em uma folha: até 4 datas por mês (a lista completa sai em "1 mês por folha"); paisagem mais compacta */
.folhas[data-layout="ano"] .imp-eventos li:nth-child(n+5) { display: none; }
.folhas[data-layout="ano"][data-orientacao="paisagem"] .imp-tabela .n { font-size: calc(var(--u) * 8.6); }
.folhas[data-layout="ano"][data-orientacao="paisagem"] .imp-tabela td { padding: calc(var(--u) * .8) 0; }
.folhas[data-layout="ano"][data-orientacao="paisagem"] .imp-eventos li:nth-child(n+4) { display: none; }
.imp-mes__topo { display: none; }
.imp-mes__nome { display: flex; justify-content: space-between; align-items: baseline; font-family: var(--titulo); font-size: calc(var(--u) * 9.5); letter-spacing: .04em; text-transform: uppercase; color: #e3262f; margin: 0 0 calc(var(--mm) * 1); }
.imp-mes__nome .ano { color: #8a8f97; font-size: .8em; }
.imp-tabela { width: 100%; border-collapse: collapse; table-layout: fixed; }
.imp-tabela th { font-size: calc(var(--u) * 5); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #6f747c; padding: 0 0 calc(var(--u) * 2); }
.imp-tabela th.dom { color: #c0141f; }
.imp-tabela td { position: relative; text-align: center; padding: calc(var(--u) * 1.2) 0; border-top: calc(var(--u) * .4) solid #ebe7de; }
.imp-tabela .n { font-family: var(--numero); font-size: calc(var(--u) * 9.5); line-height: 1.15; color: #17191e; }
.imp-tabela .da { position: absolute; right: 4%; bottom: 0; font-size: calc(var(--u) * 3.6); color: #9aa0a8; display: none; }
.imp-tabela td.dom .n, .imp-tabela td.fer .n { color: #e3262f; }
.imp-tabela td.fac .n { color: #ea5a0c; }
.imp-tabela td.com { background: #faf4e1; }
.imp-sem { width: 7%; font-size: calc(var(--u) * 4.2) !important; color: #b2b6bc; text-align: left !important; display: none; }
.imp-lua { display: flex; flex-wrap: wrap; gap: calc(var(--u) * 2) calc(var(--u) * 7); margin: calc(var(--u) * 2.5) 0 0; font-size: calc(var(--u) * 5.5); color: #3f444c; font-weight: 700; }
.imp-lua span { display: inline-flex; align-items: center; gap: calc(var(--u) * 1.8); }
.imp-lua .lua-svg { width: calc(var(--u) * 7); height: calc(var(--u) * 7); }
.imp-eventos { margin: calc(var(--u) * 2) 0 0; font-size: calc(var(--u) * 5.2); line-height: 1.32; color: #3f444c; overflow: hidden; }
.imp-eventos li { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.imp-eventos b { display: inline-block; min-width: 1.5em; font-family: var(--numero); font-weight: normal; color: #17191e; }
.imp-eventos .ev-feriado { color: #c0141f; }
.imp-eventos .ev-feriado b { color: #e3262f; }
.imp-eventos .ev-facultativo { color: #b3470a; }
.imp-eventos .ev-facultativo b { color: #ea5a0c; }

/* Opções de "Mostrar" */
.folhas.sem-feriados td.fer:not(.dom) .n { color: #17191e; }
.folhas.sem-feriados .ev-feriado, .folhas.sem-feriados .lg--fer { display: none; }
.folhas.sem-facultativos td.fac:not(.dom) .n { color: #17191e; }
.folhas.sem-facultativos .ev-facultativo, .folhas.sem-facultativos .lg--fac { display: none; }
.folhas.sem-comemorativas td.com { background: transparent; }
.folhas.sem-comemorativas .ev-comemorativa, .folhas.sem-comemorativas .lg--com { display: none; }
.folhas.sem-lua .imp-lua, .folhas.sem-lista .imp-eventos { display: none; }
.folhas:not(.sem-dia-ano) .imp-tabela .da { display: block; }
.folhas:not(.sem-semana) .imp-sem { display: table-cell; }

/* Um mês por folha */
.folhas[data-layout="mes"] .folha { display: contents; }
.folhas[data-layout="mes"] .folha__topo, .folhas[data-layout="mes"] .folha__legenda { display: none; }
.folhas[data-layout="mes"] .folha__meses { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: none; gap: 24px; justify-items: center; width: 100%; }
.folhas[data-layout="mes"] .imp-mes {
  container-type: inline-size; width: min(100%, 794px); aspect-ratio: 210 / 297; padding: calc(var(--mm) * 10);
  box-shadow: 0 1px 3px rgba(0,0,0,.08), 0 12px 40px rgba(23,25,30,.14); border-radius: 4px;
}
.folhas[data-layout="mes"][data-orientacao="paisagem"] .imp-mes { width: min(100%, 1123px); aspect-ratio: 297 / 210; }
.folhas[data-layout="mes"] .imp-mes__topo { display: flex; justify-content: space-between; align-items: center; padding-bottom: calc(var(--mm) * 3); margin-bottom: calc(var(--mm) * 5); border-bottom: calc(var(--u) * .8) solid #17191e; font-size: calc(var(--u) * 8); font-weight: 600; color: #3f444c; }
.folhas[data-layout="mes"] .imp-mes__topo img { height: calc(var(--mm) * 5); width: auto; }
.folhas[data-layout="mes"] .imp-mes__nome { font-size: calc(var(--u) * 30); margin-bottom: calc(var(--mm) * 5); }
.folhas[data-layout="mes"] .imp-tabela { flex: 1; height: 100%; }
.folhas[data-layout="mes"] .imp-tabela th { font-size: calc(var(--u) * 9); padding-bottom: calc(var(--u) * 6); }
.folhas[data-layout="mes"] .imp-tabela td { vertical-align: top; text-align: left; padding: calc(var(--u) * 5) calc(var(--u) * 6); border: calc(var(--u) * .6) solid #e3ded3; }
.folhas[data-layout="mes"] .imp-tabela .n { font-size: calc(var(--u) * 26); line-height: 1; }
.folhas[data-layout="mes"] .imp-tabela .da { font-size: calc(var(--u) * 6.5); right: calc(var(--u) * 5); bottom: calc(var(--u) * 4); }
.imp-tabela .ev { display: none; }
.folhas[data-layout="mes"] .imp-tabela .ev {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
  margin-top: calc(var(--u) * 3); font-family: var(--ui); font-size: calc(var(--u) * 7); line-height: 1.2; color: #6f747c;
}
.folhas[data-layout="mes"] .imp-tabela .ev-feriado { color: #c0141f; font-weight: 600; }
.folhas[data-layout="mes"] .imp-tabela .ev-facultativo { color: #b3470a; font-weight: 600; }
.folhas.sem-feriados .imp-tabela .ev-feriado, .folhas.sem-facultativos .imp-tabela .ev-facultativo, .folhas.sem-comemorativas .imp-tabela .ev-comemorativa { display: none !important; }
.folhas[data-layout="mes"] .imp-sem { font-size: calc(var(--u) * 7) !important; vertical-align: middle !important; border: 0 !important; width: 5%; }
.folhas[data-layout="mes"] .imp-lua { font-size: calc(var(--u) * 10); gap: calc(var(--u) * 4) calc(var(--u) * 16); margin-top: calc(var(--mm) * 4); }
.folhas[data-layout="mes"] .imp-lua .lua-svg { width: calc(var(--u) * 13); height: calc(var(--u) * 13); }
.folhas[data-layout="mes"] .imp-eventos { columns: 2; column-gap: calc(var(--mm) * 8); font-size: calc(var(--u) * 9.5); line-height: 1.5; margin-top: calc(var(--mm) * 4); }
.folhas[data-layout="mes"][data-orientacao="paisagem"] .imp-eventos { columns: 3; }
.folhas[data-layout="mes"] .imp-eventos li { white-space: normal; break-inside: avoid; }

@media print {
  html, body { background: #fff !important; }
  .site-header, .site-footer, .impressao-painel, .migalha_breadcrumb, .impressao > .title_center { display: none !important; }
  main.impressao, .pagina-calendario_imprimir main.impressao { max-width: none; padding: 0; margin: 0; }
  .folhas { --u: 1pt; --mm: 1mm; display: block; padding: 0; }
  .folhas[data-orientacao="paisagem"] { --u: 1pt; --mm: 1mm; }
  .folhas[data-layout="ano"] .folha { width: auto; aspect-ratio: auto; height: 272mm; padding: 0; box-shadow: none; border-radius: 0; container-type: normal; }
  .folhas[data-layout="ano"][data-orientacao="paisagem"] .folha { width: auto; aspect-ratio: auto; height: 180mm; }
  .folhas[data-layout="mes"] .folha__meses { display: block; }
  .folhas[data-layout="mes"] .imp-mes { width: auto; aspect-ratio: auto; height: 272mm; padding: 0; box-shadow: none; border-radius: 0; container-type: normal; break-after: page; }
  .folhas[data-layout="mes"][data-orientacao="paisagem"] .imp-mes { height: 180mm; }
  .folhas[data-layout="mes"] .imp-mes:last-child { break-after: auto; }
  /* Letter (EUA/Canadá): folha mais baixa (alturas medidas no PDF do Chrome, com folga) */
  .folhas[data-papel="letter"][data-layout="ano"] .folha, .folhas[data-papel="letter"][data-layout="mes"] .imp-mes { height: 243mm; }
  .folhas[data-papel="letter"][data-orientacao="paisagem"][data-layout="ano"] .folha,
  .folhas[data-papel="letter"][data-orientacao="paisagem"][data-layout="mes"] .imp-mes { height: 172mm; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
.pagina-calendario_imprimir main.impressao { padding-top: 22px; }
@media print { .pagina-calendario_imprimir main.impressao { padding: 0; } }
@media (max-width: 420px) {
  .marca img { height: 18px; }
  .ano-atalho .icone-cal { display: none; }
  .site-header__barra { gap: 5px; padding: 10px 12px; }
  .busca-topo button { width: 34px; height: 34px; }
  .suspenso__botao { padding: 0 7px; gap: 5px; }
}
@media (max-width: 600px) {
  .filtros:not(.filtros--painel) { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -14px 16px; padding: 2px 14px; }
  .filtros:not(.filtros--painel)::-webkit-scrollbar { display: none; }
  .filtros:not(.filtros--painel) label { flex-shrink: 0; }
}

/* =====================================================================================
   Fase 4 — feriados por estado, fonte e revisão
   ===================================================================================== */
.link-cidade { margin: -6px 0 16px; font-weight: 600; }
.link-cidade a { color: var(--azul-escuro); text-decoration: underline; text-underline-offset: 3px; }
.ufs { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); padding: 0; margin: 0 0 20px; }
.ufs summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 10px; padding: 14px 18px; font-weight: 700; color: var(--tinta); }
.ufs summary::-webkit-details-marker { display: none; }
.ufs summary::before { content: ''; width: 18px; height: 18px; flex-shrink: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e3262f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.ufs summary::after { content: ''; margin-left: auto; width: 7px; height: 7px; border: solid var(--suave); border-width: 0 1.8px 1.8px 0; transform: rotate(45deg); transition: transform .15s; }
.ufs[open] summary::after { transform: rotate(-135deg); }
.ufs p { padding: 0 18px; margin: 0 0 10px; font-size: 14px; color: var(--suave); }
.ufs__lista { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 18px 16px; }
.ufs__lista a { display: inline-grid; place-items: center; min-width: 44px; height: 36px; padding: 0 10px; border-radius: 9px; border: 1px solid var(--linha); background: var(--creme); font-size: 14px; font-weight: 700; color: var(--tinta-2); }
.ufs__lista a:hover { border-color: var(--azul); color: var(--azul); background: var(--cartao); }
.ufs__lista a[aria-current] { background: var(--azul); border-color: var(--azul); color: #fff; }
.lista_feriado-status--estadual { background: var(--azul-claro) !important; color: var(--azul-escuro) !important; }
.lista_feriado-fonte { font-size: 12px; color: var(--suave); margin-top: 2px; }
.selo-verificado {
  display: flex; gap: 10px; align-items: flex-start; margin: 4px 0 20px; padding: 12px 16px; border-radius: 12px;
  background: #eef7f0; border: 1px solid #cfe7d6; color: #1d5c34; font-size: 13.5px; line-height: 1.5;
}
.selo-verificado::before {
  content: ''; width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d6b3a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 4.5-3 8.3-7 10-4-1.7-7-5.5-7-10V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* ---------- Planejador de feriadões ---------- */
.pl-campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin-bottom: 14px; }
.pl-campos .form_input, .pl-campos .form_select { width: 100%; }
.pl-titulo { margin: 6px 0 14px; }
.pl-lista { display: grid; gap: 14px; margin-bottom: 8px; }
.pl-item { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 18px 20px; background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); }
.pl-item__topo { display: flex; gap: 18px; align-items: center; min-width: 0; }
.pl-placar { flex-shrink: 0; width: 84px; text-align: center; border-radius: 12px; overflow: hidden; border: 1px solid #e3ded3; box-shadow: 0 2px 0 -1px #efebe3; }
.pl-placar__len { display: block; font-family: var(--numero); font-size: 40px; line-height: 1; color: var(--vermelho); padding: 10px 0 4px; }
.pl-placar__rot { display: block; font-family: var(--titulo); font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: var(--vermelho); padding: 5px 4px 4px; line-height: 1.2; }
.pl-item__info { min-width: 0; }
.pl-item__info h3 { font-size: 18px; margin: 0 0 4px; }
.pl-item__info p { font-size: 14px; color: var(--tinta-2); margin: 2px 0 0; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.pl-item__resumo { color: var(--suave) !important; }
.pl-chave { width: 10px; height: 10px; border-radius: 3px; display: inline-block; flex-shrink: 0; }
.pl-chave--folga { background: var(--azul); }
.pl-chave--feriado { background: var(--vermelho); }
.pl-grade { border-collapse: separate; border-spacing: 3px; font-size: 12px; text-align: center; }
.pl-grade th { font-size: 9.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--suave); }
.pl-grade th.dom { color: var(--vermelho-texto); }
.pl-grade td { width: 26px; height: 24px; border-radius: 6px; color: var(--suave); font-family: var(--numero); font-size: 13px; }
.pl-grade td.dentro { color: var(--tinta); background: var(--creme); }
.pl-grade td.fds { background: #f1efe9; color: var(--tinta-2); }
.pl-grade td.feriado { background: var(--vermelho); color: #fff; }
.pl-grade td.folga { background: var(--azul); color: #fff; }
@media (max-width: 760px) {
  .pl-item { grid-template-columns: 1fr; }
  .pl-grade { justify-self: start; }
}
.pl-item--maior { border-color: #d3e3f1; background: linear-gradient(180deg, var(--azul-claro), #fff 60%); }
.pl-item__selo { grid-column: 1 / -1; margin: -4px 0 -6px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--azul); }
/* ---------- Sobre a data (página de cada data) ---------- */
.sobre-data { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); padding: 22px 24px; margin: 0 0 20px; }
.sobre-data__quando { font-family: var(--titulo); font-size: 20px; line-height: 1.3; color: var(--tinta); margin: 0 0 8px; }
.sobre-data__status { font-size: 15px; font-weight: 600; color: var(--tinta-2); margin: 0 0 14px; }
.sobre-data__status--feriado { color: var(--vermelho-texto); }
.sobre-data__status span { display: block; font-size: 13px; font-weight: 400; color: var(--suave); margin-top: 2px; }
.sobre-data__texto { border-top: 1px dashed #d9d5cc; padding-top: 14px; margin-bottom: 6px; }
.sobre-data__texto p { line-height: 1.7; margin: 0 0 12px; }
.sobre-data__autor { font-size: 12.5px !important; color: var(--suave); margin: 0 !important; }
.sobre-data__sub { font-family: var(--ui); font-weight: 700; font-size: 15px; margin: 18px 0 8px; }
.sobre-data__tabela td:first-child { width: 70px; }
.sobre-data__bom { color: #1d6b3a; }
@media (max-width: 600px) { .sobre-data { padding: 18px 16px; } .sobre-data__quando { font-size: 18px; } }

/* =====================================================================================
   Calendário anual: "2027 em resumo" (respostas diretas no topo)
   ===================================================================================== */
.resumo-ano { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); padding: 18px 20px; margin: 0 0 20px; }
.resumo-ano__titulo { font-size: 20px; margin: 0 0 12px; }
.resumo-ano__itens { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px 18px; margin: 0 0 14px; }
.resumo-ano__itens div { min-width: 0; }
.resumo-ano__itens dt { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--suave); }
.resumo-ano__itens dd { margin: 2px 0 0; font-size: 15px; color: var(--tinta); }
.resumo-ano__sub { font-family: var(--ui); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--suave); line-height: inherit; margin: 4px 0 8px; }
.resumo-ano__feriados { list-style: none; margin: 0 0 14px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 6px 18px; }
.resumo-ano__feriados li { font-size: 14.5px; color: var(--tinta); display: grid; grid-template-columns: 76px 1fr; gap: 6px; align-items: baseline; }
.resumo-ano__feriados a { color: var(--tinta); text-decoration: underline; text-decoration-color: var(--linha); text-underline-offset: 3px; }
.resumo-ano__feriados a:hover { text-decoration-color: currentColor; }
.resumo-ano__data { display: inline-block; min-width: 76px; font-weight: 700; color: var(--vermelho-texto); font-variant-numeric: tabular-nums; }
.resumo-ano__acoes { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.resumo-ano__btn { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--linha); background: var(--creme); color: var(--tinta); font-weight: 600; font-size: 14px; text-decoration: none; }
.resumo-ano__btn:hover { border-color: var(--azul); color: var(--azul-escuro); }
.resumo-ano__btn--forte { background: var(--azul); border-color: var(--azul); color: #fff; }
.resumo-ano__btn--forte:hover { background: var(--azul-escuro); color: #fff; }
@media (max-width: 420px) {
  .resumo-ano { padding: 14px; }
  .resumo-ano__itens { grid-template-columns: 1fr 1fr; }
}

/* =====================================================================================
   Matérias (/pais/artigos/<slug>, includes/materias.php)
   ===================================================================================== */
.materia { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); padding: 28px 32px 30px; margin: 0 0 24px; }
.materia__previa { background: var(--laranja-claro); color: var(--laranja-texto); font-weight: 700; font-size: 14px; border-radius: var(--raio-p); padding: 10px 14px; margin: 0 0 18px; }
.materia__chapeu { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--vermelho-texto); margin: 0 0 8px; }
.materia__titulo { font-family: var(--titulo); font-weight: normal; font-size: clamp(26px, 4vw, 36px); line-height: 1.15; color: var(--tinta); margin: 0 0 12px; }
.materia__linha-fina { font-size: 18px; line-height: 1.5; color: var(--tinta-2); margin: 0 0 12px; }
.materia__meta { font-size: 13px; color: var(--suave); margin: 0 0 20px; }
.materia__corpo { font-size: 17px; line-height: 1.75; color: var(--tinta); }
.materia__corpo h2 { font-family: var(--titulo); font-weight: normal; font-size: 23px; line-height: 1.25; margin: 30px 0 12px; }
.materia__corpo h3 { font-size: 17px; margin: 18px 0 6px; }
.materia__corpo p { margin: 0 0 16px; }
.materia__corpo a { color: var(--azul); text-underline-offset: 3px; }
.materia__corpo ul, .materia__corpo ol { margin: 0 0 16px 22px; }
.materia__corpo li { margin: 0 0 8px; }
.mat-lista ul, .mat-entenda ul, .materia__fontes ul { list-style: disc; }
.mat-lista ol, .mat-passos ol { list-style: decimal; }
.mat-lista li::marker, .mat-passos li::marker, .mat-entenda li::marker { color: var(--vermelho-texto); font-weight: 700; }

.mat-foto { margin: 22px 0; }
.mat-foto img { display: block; width: 100%; height: auto; border-radius: var(--raio-p); background: var(--linha-2); }
.mat-foto--capa { margin: 0 0 22px; }
.mat-foto--retrato { max-width: 460px; margin-left: auto; margin-right: auto; }
.mat-foto figcaption { font-size: 13px; line-height: 1.5; color: var(--suave); margin-top: 8px; }
.mat-credito { opacity: .9; margin-left: 4px; font-size: 12px; }
.mat-fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 22px 0; }
.mat-fotos .mat-foto { margin: 0; }

.mat-entenda { background: var(--azul-claro); border-radius: var(--raio-p); padding: 18px 20px; margin: 24px 0; font-size: 16px; }
.mat-entenda__titulo { font-weight: 700; color: var(--azul-escuro); margin: 0 0 8px !important; }
.mat-entenda p:last-child, .mat-entenda ul:last-child { margin-bottom: 0; }
.mat-destaque { border-left: 4px solid var(--vermelho); padding: 6px 0 6px 18px; margin: 26px 0; }
.mat-destaque__numero { display: block; font-family: var(--numero); font-size: 46px; line-height: 1; color: var(--vermelho); margin-bottom: 6px; }
.mat-destaque p { font-size: 19px; line-height: 1.5; font-weight: 600; margin: 0 0 4px; }
.mat-nota { display: block; font-size: 13px !important; color: var(--suave); margin: 6px 0 0 !important; }
.mat-citacao { border-left: 4px solid var(--linha); padding: 4px 0 4px 18px; margin: 24px 0; font-style: italic; color: var(--tinta-2); }
.mat-citacao cite { display: block; font-size: 14px; font-style: normal; color: var(--suave); }

.mat-tempo ol { list-style: none; margin: 0 !important; padding: 0; border-left: 2px solid var(--linha); }
.mat-tempo li { position: relative; padding: 0 0 14px 18px; margin: 0 !important; }
.mat-tempo li::before { content: ""; position: absolute; left: -7px; top: 9px; width: 12px; height: 12px; border-radius: 50%; background: var(--vermelho); border: 2px solid var(--cartao); }
.mat-tempo__quando { display: block; font-weight: 700; color: var(--vermelho-texto); }
.mat-curiosidades ol { list-style: none; margin: 0 !important; padding: 0; counter-reset: cur; display: grid; gap: 12px; }
.mat-curiosidades li { counter-increment: cur; background: var(--creme); border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 14px 16px 14px 56px; position: relative; margin: 0 !important; }
.mat-curiosidades li::before { content: counter(cur); position: absolute; left: 16px; top: 12px; font-family: var(--numero); font-size: 26px; color: var(--vermelho); }
.mat-passos ol { margin-left: 22px; }
.mat-faq__item { border-top: 1px solid var(--linha); padding: 12px 0 2px; }
.mat-faq__item h3 { margin: 0 0 6px; }

.mat-tabela { overflow-x: auto; margin: 0 0 8px; }
.mat-tabela table { width: 100%; font-size: 15px; line-height: 1.5; }

.mat-mensagens ul { list-style: none; margin: 0 !important; padding: 0; display: grid; gap: 12px; }
.mat-msg { background: var(--creme); border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 16px 18px 12px; margin: 0 !important; }
.mat-msg p { margin: 0 0 10px; }
.mat-msg__acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.mat-msg__acoes button, .mat-msg__acoes a { font: inherit; font-size: 13.5px; font-weight: 600; min-height: 36px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--linha);
  background: var(--cartao); color: var(--tinta); cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; }
.mat-msg__acoes a { color: #1d6b3a; }
.mat-msg__acoes button:hover, .mat-msg__acoes a:hover { border-color: var(--azul); }

.mat-chamada { display: block; border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 16px 18px; margin: 22px 0; text-decoration: none; color: var(--tinta) !important; background: var(--creme); }
.mat-chamada strong { display: block; color: var(--azul); font-size: 17px; }
.mat-chamada strong::after { content: " →"; }
.mat-chamada span { display: block; font-size: 15px; color: var(--tinta-2); line-height: 1.5; margin-top: 2px; }
.mat-chamada:hover { border-color: var(--azul); }
.mat-contagem, .materia__data { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; background: var(--vermelho-claro); border-radius: var(--raio-p); padding: 14px 18px; margin: 22px 0;
  text-decoration: none; color: var(--tinta) !important; }
.mat-contagem__n { font-family: var(--numero); font-size: 30px; color: var(--vermelho); line-height: 1.1; }
.mat-contagem__para { font-size: 15px; }
.mat-contagem__link { font-size: 14px; font-weight: 600; color: var(--azul); }
/* Data em destaque no topo da matéria: folhinha (mês, dia, dia da semana) + data por extenso, se é feriado e quantos dias faltam.
   Vermelho = feriado, laranja = ponto facultativo, azul = data que não é feriado. */
.materia__data { --cor-data: var(--azul); --cor-data-texto: var(--azul-escuro); --fundo-data: var(--azul-claro);
  display: flex; flex-wrap: nowrap; align-items: center; gap: 18px; margin: 0 0 22px; padding: 16px 18px; border-radius: var(--raio-p);
  background: var(--fundo-data); text-decoration: none; color: var(--tinta) !important; }
.materia__data--feriado { --cor-data: var(--vermelho); --cor-data-texto: var(--vermelho-texto); --fundo-data: var(--vermelho-claro); }
.materia__data--facultativo { --cor-data: var(--laranja); --cor-data-texto: var(--laranja-texto); --fundo-data: var(--laranja-claro); }
.materia__folha { flex: none; display: flex; flex-direction: column; width: 84px; border-radius: 10px; overflow: hidden; text-align: center;
  background: var(--cartao); border: 1px solid #e3ded3; box-shadow: 0 1px 0 #e3ded3, 0 4px 0 -1px #f1eee8; }
.materia__folha-mes { background: var(--cor-data-texto); color: #fff; font-family: var(--titulo); font-size: 13px; letter-spacing: .1em; line-height: 1; padding: 6px 0 5px; }
.materia__folha-dia { font-family: var(--numero); font-size: 46px; line-height: 1; color: var(--cor-data); padding: 6px 0 2px; }
.materia__folha-sem { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--suave); padding: 0 0 7px; }
.materia__data-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.materia__data-rot { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cor-data-texto); }
.materia__data-quando { font-family: var(--titulo); font-weight: normal; font-size: 21px; line-height: 1.2; color: var(--tinta); }
.materia__data-status { font-size: 15px; color: var(--tinta-2); }
.materia__data-link { margin-top: 2px; font-size: 14px; font-weight: 600; color: var(--azul); }
.materia__data:hover .materia__data-link { text-decoration: underline; }
@media (max-width: 600px) {
  .materia__data { gap: 14px; padding: 14px; }
  .materia__folha { width: 70px; }
  .materia__folha-dia { font-size: 38px; }
  .materia__data-quando { font-size: 18px; }
  .materia__data-status { font-size: 14px; }
}

.materia__fontes { border-top: 1px dashed #d9d5cc; margin-top: 28px; padding-top: 16px; font-size: 14px; color: var(--tinta-2); }
.materia__fontes h2 { font-family: var(--ui); font-size: 14px; font-weight: 700; margin: 0 0 6px; }
.materia__fontes p, .materia__fontes ul { margin: 0 0 12px; }
.materia__fontes ul { padding-left: 18px; }
.materia__fontes a { color: var(--tinta-2); }

/* Cartões (índice, "Leia também") */
.materias-cartoes { margin: 0 0 24px; }
.materias-grade { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
.materia-cartao { display: flex; flex-direction: column; height: 100%; background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; text-decoration: none; color: var(--tinta); box-shadow: var(--sombra); }
.materia-cartao:hover { border-color: var(--azul); }
.materia-cartao img, .materia-cartao__sem-foto { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: var(--linha-2); }
.materia-cartao__texto { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px 16px; }
.materia-cartao__chapeu { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--vermelho-texto); }
.materia-cartao__titulo { font-weight: 700; font-size: 16px; line-height: 1.35; }
.materia-cartao__linha { font-size: 14px; line-height: 1.45; color: var(--suave); }

/* Página da data: matérias sobre ela */
.sobre-data__materias { list-style: none; margin: 4px 0 16px; padding: 0; display: grid; gap: 10px; }
.sobre-data__materias a { display: flex; gap: 12px; align-items: center; text-decoration: none; color: var(--azul); border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 8px; background: var(--creme); }
.sobre-data__materias a:hover { border-color: var(--azul); }
.sobre-data__materias img { width: 96px; height: 54px; object-fit: cover; border-radius: 6px; flex: none; }
.sobre-data__materias strong { display: block; color: var(--tinta); font-size: 15px; line-height: 1.35; }
.sobre-data__materias span { font-size: 14px; font-weight: 600; }

@media (max-width: 600px) {
  .materia { padding: 18px 16px 20px; border-radius: 12px; }
  .materia__linha-fina { font-size: 16.5px; }
  .materia__corpo { font-size: 16.5px; }
  .materia__corpo h2 { font-size: 21px; }
  .mat-fotos { grid-template-columns: 1fr; }
  .mat-foto--larga, .mat-foto--capa { margin-left: -16px; margin-right: -16px; }
  .mat-foto--larga img, .mat-foto--capa img { border-radius: 0; }
  .mat-foto--larga figcaption, .mat-foto--capa figcaption { padding: 0 16px; }
}

/* Nome da data com matéria publicada (listas de datas) */
.link-materia { color: var(--azul); font-weight: 600; text-decoration: underline; text-decoration-color: rgba(0, 87, 153, .35); text-underline-offset: 3px; }
.link-materia::after { content: ""; display: inline-block; width: .85em; height: .85em; margin-left: .3em; vertical-align: -.05em;
  background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a2 2 0 0 1 2-2h9l5 5v11a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z'/%3E%3Cpath d='M8 12h8M8 16h5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a2 2 0 0 1 2-2h9l5 5v11a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z'/%3E%3Cpath d='M8 12h8M8 16h5'/%3E%3C/svg%3E") center / contain no-repeat; }
.link-materia:hover { text-decoration-color: currentColor; }
.link-materia--curto { font-size: .78em; font-weight: 700; margin-left: .35em; white-space: nowrap; }
.materias-home .titulo-secao a { color: inherit; text-decoration: none; }
.materias-home .titulo-secao a::after { content: " →"; color: var(--azul); }
