/* Reisen Core — CSS do Hub da rota.
   Portado do template aprovado (reisen-hub-bridge). As variáveis --rp-* são
   emitidas inline pela página, porque dependem das cores do Ecossistema.

   As poucas utilitárias que o markup herdou do Tailwind viraram CSS próprio
   aqui embaixo — o ch-builder não carrega Tailwind e não vamos adicioná-lo. */

.flex            { display:flex; }
.flex-col        { flex-direction:column; }
.items-center    { align-items:center; }
.justify-center  { justify-content:center; }
.justify-between { justify-content:space-between; }
.w-full          { width:100%; }
.h-full          { height:100%; }
.text-white      { color:#fff; }
.gap-7           { gap:1.75rem; }
.py-2\.5        { padding-top:.625rem; padding-bottom:.625rem; }
.hidden          { display:none; }
@media (min-width:1024px) {
  .lg\:hidden { display:none; }
  .lg\:flex   { display:flex; }
}
html.scroll-smooth { scroll-behavior:smooth; }

/* ── CSS custom properties — controladas pelo admin ──────── */

    /* ── Suprimir GeneratePress nav ─────────────────────────── */
    #site-navigation,.main-navigation,.mobile-menu-control-wrapper,
    .gen-sidebar-nav,.slideout-navigation,.generate-back-to-top,
    #generate-sidebar-nav,.generate-mobile-nav { display:none!important; }
    body.rp-hub { background: var(--rp-surface) !important; }

    /* ── Material icons ─────────────────────────────────────── */
    .material-symbols-outlined { font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24; }
    .icon-fill { font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24; }

    /* ── Layout helpers ─────────────────────────────────────── */
    /* Padding lateral em longhand de propósito: o atalho "padding" zerava
       o padding vertical de quem soma outra classe, como .rp-hero-content. */
    .rp-container { max-width:1280px; margin:0 auto; padding-left:24px; padding-right:24px; }
    .rp-section   { padding:72px 0; }
    .rp-section-alt { padding:72px 0; background: var(--rp-surface-lo); }
    .rp-section-dark { padding:72px 0; background: var(--rp-primary); }

    /* ── Buttons ────────────────────────────────────────────── */
    @keyframes shimmer {
      0%   { background-position:-200% center }
      100% { background-position: 200% center }
    }
    .btn-cta {
      display:inline-flex;align-items:center;gap:9px;
      padding:14px 28px;border-radius:12px;
      font-family:inherit;font-weight:600;font-size:15px;
      text-decoration:none;cursor:pointer;
      background-image:linear-gradient(105deg,var(--rp-cta) 0%,#ffaa55 40%,var(--rp-cta) 60%);
      background-size:200% auto;
      animation:shimmer 3s linear infinite;
      color:#fff;
      box-shadow:0 4px 16px 0 rgba(0,0,0,.2);
      transition:transform .15s;
    }
    .btn-cta:hover { transform:translateY(-2px); }
    .btn-cta:active { transform:scale(.97); }

    .btn-ghost {
      display:inline-flex;align-items:center;gap:9px;
      padding:14px 28px;border-radius:12px;
      font-family:inherit;font-weight:600;font-size:15px;
      text-decoration:none;cursor:pointer;
      background:rgba(255,255,255,.13);
      border:2px solid rgba(255,255,255,.3);
      color:#fff;
      backdrop-filter:blur(8px);
      transition:background .2s,transform .15s;
    }
    .btn-ghost:hover { background:rgba(255,255,255,.22); transform:translateY(-2px); }

    .btn-solid {
      display:inline-flex;align-items:center;gap:7px;
      padding:11px 20px;border-radius:10px;
      font-family:inherit;font-weight:600;font-size:13.5px;
      text-decoration:none;cursor:pointer;
      background:var(--rp-primary);color:#fff;
      transition:opacity .2s,transform .15s;
    }
    .btn-solid:hover { opacity:.88; transform:translateY(-1px); }

    /* ── Hero ───────────────────────────────────────────────── */
    .rp-hero {
      position:relative;min-height:92vh;
      display:flex;align-items:flex-end;
      overflow:hidden;
    }
    /* Vídeo de fundo — Vimeo (iframe) ou MP4 (video) */
    .rp-hero-video {
      position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;
    }
    /* Iframe Vimeo — cover via escala */
    .rp-hero-video iframe {
      position:absolute;top:50%;left:50%;border:0;pointer-events:none;
      width:100vw;height:56.25vw;
      min-height:100%;min-width:177.78vh;
      transform:translate(-50%,-50%);
    }
    /* MP4 nativo — object-fit:cover direto */
    .rp-hero-video video {
      position:absolute;inset:0;width:100%;height:100%;
      object-fit:cover;pointer-events:none;
    }
    .rp-hero-img {
      position:absolute;inset:0;z-index:0;
      background-size:cover;background-position:center;
    }
    .rp-hero-overlay {
      position:absolute;inset:0;z-index:1;
      background:linear-gradient(155deg,
        rgba(0,0,0,.82) 0%,rgba(0,0,0,.46) 40%,
        rgba(0,0,0,.62) 70%,rgba(0,0,0,.88) 100%);
    }
    .rp-hero-content { position:relative;z-index:2;width:100%;padding-bottom:80px;padding-top:60px; }
    /* display no CSS, não no atributo: inline venceria o display:none do mobile. */
    .rp-hero-badge { display:inline-flex; }

    /* ── Stat badge ─────────────────────────────────────────── */
    .stat-pill {
      backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
      background:rgba(255,255,255,.12);
      border:1px solid rgba(255,255,255,.28);
      border-radius:14px;padding:14px 20px;text-align:center;min-width:110px;
    }

    /* ── Marquee ────────────────────────────────────────────── */
    @keyframes marquee {
      0%   { transform:translateX(-50%) }
      100% { transform:translateX(0%) }
    }
    .marquee-wrap {
      overflow:hidden;
      mask-image:linear-gradient(to right,transparent 0%,black 5%,black 95%,transparent 100%);
      -webkit-mask-image:linear-gradient(to right,transparent 0%,black 5%,black 95%,transparent 100%);
    }
    .marquee-track {
      display:flex;width:max-content;align-items:center;
      /* 76s, não 55s: os selos intercalados esticaram o trilho em ~38% e a
         duração fixa deixaria os nomes passando rápido demais para ler. */
      animation:marquee 76s linear infinite;
    }
    .marquee-wrap:hover .marquee-track { animation-play-state:paused; }
    .muni-pill { display:inline-flex;align-items:center;gap:8px;padding:0 18px;white-space:nowrap; }
    .muni-lbl  { font-size:11.5px;font-weight:600;letter-spacing:.03em;color:#fff; }
    .muni-dot  { width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.25); }

    /* ── Cards ──────────────────────────────────────────────── */
    .rp-card {
      background:#fff;border-radius:16px;overflow:hidden;
      border:1px solid var(--rp-outline);
      box-shadow:0 4px 24px -6px rgba(0,0,0,.08);
      transition:transform .28s ease,box-shadow .28s ease;
    }
    .rp-card:hover {
      transform:translateY(-6px);
      box-shadow:0 0 0 2px var(--rp-primary),0 20px 48px -12px rgba(0,0,0,.16);
    }
    .rp-card img { transition:transform .6s ease; }
    .rp-card:hover img { transform:scale(1.06); }

    /* ── Category card ──────────────────────────────────────── */
    .cat-card {
      background:#fff;border-radius:14px;border:1px solid var(--rp-outline);
      padding:20px 14px;display:flex;flex-direction:column;align-items:center;gap:10px;
      text-align:center;text-decoration:none;
      box-shadow:0 2px 12px -4px rgba(0,0,0,.06);
      transition:transform .25s,box-shadow .25s;
    }
    .cat-card:hover { transform:translateY(-5px);box-shadow:0 12px 32px -8px rgba(0,0,0,.14); }

    /* ── Muni card ──────────────────────────────────────────── */
    .muni-card {
      background:#fff;border-radius:12px;
      border:1px solid #e8e0d4;border-top:3px solid #7a3200;
      padding:16px 10px 14px;
      display:flex;flex-direction:column;align-items:center;gap:7px;
      text-align:center;text-decoration:none;cursor:pointer;
      transition:transform .28s ease,box-shadow .28s ease;
    }
    .muni-card:hover {
      transform:translateY(-4px);
      box-shadow:0 8px 24px rgba(122,50,0,.13);
    }
    .muni-card-abbr {
      width:36px;height:36px;border-radius:8px;
      background:color-mix(in srgb,#7a3200 14%,#fff);
      display:flex;align-items:center;justify-content:center;
      font-size:9px;font-weight:900;letter-spacing:.02em;color:#7a3200;
    }

    /* ── TV card ────────────────────────────────────────────── */
    .tv-card {
      position:relative;overflow:hidden;border-radius:12px;
      cursor:pointer;text-decoration:none;display:block;
      transition:transform .25s;
    }
    .tv-card:hover { transform:scale(1.02); }
    .tv-overlay {
      position:absolute;inset:0;background:rgba(0,0,0,.35);
      display:flex;align-items:center;justify-content:center;
      transition:background .2s;
    }
    .tv-card:hover .tv-overlay { background:rgba(0,0,0,.22); }
    .play-btn {
      width:52px;height:52px;border-radius:50%;
      background:rgba(255,255,255,.9);
      display:flex;align-items:center;justify-content:center;
      transition:transform .2s,background .2s;
    }
    .tv-card:hover .play-btn { transform:scale(1.1);background:#fff; }
    .tv-info { position:absolute;bottom:0;left:0;right:0;padding:12px 16px;
               background:linear-gradient(to top,rgba(0,0,0,.75) 0%,transparent 100%); }

    /* ── News card ──────────────────────────────────────────── */
    .news-card {
      background:#fff;border-radius:16px;overflow:hidden;
      border:1px solid var(--rp-outline);
      box-shadow:0 4px 20px -6px rgba(0,0,0,.07);
      display:flex;flex-direction:column;text-decoration:none;
      transition:transform .25s,box-shadow .25s;
    }
    .news-card:hover { transform:translateY(-4px);box-shadow:0 16px 40px -8px rgba(0,0,0,.13); }
    .news-card img { transition:transform .5s ease; }
    .news-card:hover img { transform:scale(1.05); }

    /* ── Partner card ───────────────────────────────────────── */
    .partner-card {
      background:#fff;border-radius:16px;overflow:hidden;
      border:1px solid var(--rp-outline);
      box-shadow:0 4px 20px -6px rgba(0,0,0,.07);
      display:flex;flex-direction:column;
      transition:transform .25s,box-shadow .25s;
    }
    .partner-card:hover { transform:translateY(-4px);box-shadow:0 16px 40px -8px rgba(0,0,0,.12); }

    /* ── Quick access ───────────────────────────────────────── */
    .quick-card {
      background:#fff;border-radius:14px;border:1px solid var(--rp-outline);
      padding:22px 16px;display:flex;flex-direction:column;align-items:center;gap:10px;
      text-align:center;text-decoration:none;
      box-shadow:0 2px 12px -4px rgba(0,0,0,.06);
      transition:transform .25s;
    }
    .quick-card:hover { transform:translateY(-4px); }

    /* ── Benefit item ───────────────────────────────────────── */
    /* Cards sobre a faixa escura: o branco a 7% quase sumia no fundo.
       Subimos o contraste para o card se ler como card. */
    .benefit-item {
      background:rgba(255,255,255,.16);
      border:1px solid rgba(255,255,255,.28);
      border-left:3px solid transparent;
      border-radius:12px;padding:18px 20px;
      display:flex;align-items:center;gap:16px;
      transition:border-left-color .2s,transform .2s,background .2s;
    }
    .benefit-item:hover { background:rgba(255,255,255,.22); }
    .benefit-item:hover { border-left-color:var(--rp-cta);transform:translateX(4px); }

    /* ── Eco card ───────────────────────────────────────────── */
    .eco-card {
      background:#fff;border-radius:14px;border:1px solid var(--rp-outline);
      padding:22px 16px;display:flex;flex-direction:column;align-items:center;gap:10px;
      text-align:center;box-shadow:0 2px 12px -4px rgba(0,0,0,.06);
    }

    /* ── Scroll reveal ──────────────────────────────────────── */
    .rp-reveal { opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease; }
    .rp-reveal.on { opacity:1;transform:translateY(0); }

    /* ── Section heading ────────────────────────────────────── */
    .rp-heading { font-family:"Playfair Display",Georgia,serif;font-weight:700;line-height:1.2; color:var(--rp-primary); }
    .rp-heading-white { font-family:"Playfair Display",Georgia,serif;font-weight:700;line-height:1.2;color:#fff; }
    .rp-sub { font-size:17px;color:var(--rp-on-var);line-height:1.6; }

    /* ── Bg gradients for placeholders ─────────────────────── */
    .ph-0 { background:linear-gradient(135deg,var(--rp-primary),var(--rp-cta)); }
    .ph-1 { background:linear-gradient(135deg,#012d1d,#1a6040); }
    .ph-2 { background:linear-gradient(135deg,#1a3a5c,#2d6aa0); }
    .ph-3 { background:linear-gradient(135deg,#5a1a00,#c44b00); }
    .ph-4 { background:linear-gradient(135deg,#2d1a4a,#6b3fa0); }
    .ph-5 { background:linear-gradient(135deg,#003322,#006644); }

    /* ── Nav ────────────────────────────────────────────────── */
    header nav ul,header nav li { list-style:none!important;list-style-image:none!important;background-image:none!important; }
    header nav li::before,header nav li::after,header nav li::marker,
    header nav a::before,header nav a::after { content:none!important;display:none!important; }
    header nav a { background-image:none!important; }

    /* ── Wave ───────────────────────────────────────────────── */
    .wave-fill-surface { fill:var(--rp-surface); }
    .wave-fill-lo      { fill:var(--rp-surface-lo); }

    /* ── Responsive grids (classe + media query) ───────── */
    .rp-grid-cat    { display:grid;grid-template-columns:repeat(4,1fr);gap:14px; }
    .rp-grid-muni   { display:grid;grid-template-columns:repeat(5,1fr);gap:12px; }
    .rp-grid-tv     { display:grid;grid-template-columns:2fr 1fr;gap:16px; }
    .rp-grid-3      { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }
    .rp-grid-footer { display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px;margin-bottom:48px; }
    .rp-footer-links{ display:grid;grid-template-columns:1fr 1fr;gap:32px; }

    .rp-tv-mobile-btn { display:none; }

    @media (max-width:1024px) {
      .rp-grid-tv      { grid-template-columns:1fr; }
      .rp-tv-featured  { height:280px !important; }
      .rp-tv-header-btn{ display:none; }
      .rp-tv-mobile-btn{ display:block; }
    }

    @media (max-width:768px) {
      .rp-section,.rp-section-alt,.rp-section-dark { padding:48px 0; }
      /* overflow:visible permite que o conteúdo cresça além do min-height sem ser cortado;
         o vídeo já tem overflow:hidden no seu próprio container */
      .rp-hero   { min-height:96vh;align-items:flex-start;overflow:visible; }
      .rp-hero-content { padding-bottom:40px;padding-top:44px; }
      .rp-hero-badge.is-generica { display:none; }
      .rp-hero-stats   { margin-bottom:48px; }
      .rp-hero-wave { display:none; }
      .rp-hero-ctas { margin-bottom:32px !important; }
      .rp-container { padding-left:16px; padding-right:16px; }
      .stat-pill { min-width:80px;padding:10px 14px;border-radius:10px; }
      .stat-pill > div:first-child { font-size:20px !important; }
      .stat-pill > div:last-child  { font-size:9.5px !important; }
      .rp-sub   { font-size:15px; }
      .rp-grid-muni   { grid-template-columns:repeat(3,1fr); }
      .rp-grid-3      { grid-template-columns:repeat(2,1fr); }
      .rp-grid-footer { grid-template-columns:1fr;gap:28px; }
    }

    @media (max-width:500px) {
      .rp-grid-cat    { grid-template-columns:repeat(2,1fr); }
      .rp-grid-muni   { grid-template-columns:repeat(2,1fr); }
      .rp-grid-3      { grid-template-columns:1fr; }
      .rp-footer-links{ grid-template-columns:1fr;gap:16px; }
      .btn-cta,.btn-ghost { font-size:14px;padding:12px 20px; }
    }

/* Pop-up: capa no topo por padrão (notícia). */
#rpnews-img-wrap { height: 300px; overflow: hidden; }
#rpnews-img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Evento: imagem à esquerda ocupando a altura toda do pop-up.
   Abaixo de 720px volta a empilhar, senão a coluna de texto fica estreita. */
/* Largura máxima de 1000px: com a divisão 52/48 a imagem fica ~520px e a
   coluna de texto ~480px. */
#rpnews-modal         { max-width: 680px; }
#rpnews-modal.is-lado { max-width: min(1000px, 94vw); }
@media (min-width: 721px) {
  /* Altura fixa: a imagem fica parada à esquerda e só a coluna de texto
     rola — sem barra à vista, como num post de rede social. */
  #rpnews-modal.is-lado {
    display: grid;
    grid-template-columns: 52% 1fr;
    align-items: stretch;
    height: min(660px, 86vh);
  }
  #rpnews-modal.is-lado #rpnews-img-wrap { height: 100%; min-height: 0; }
  #rpnews-modal.is-lado #rpnews-body-wrap {
    padding: 36px 40px;
    overflow-y: auto;
    scrollbar-width: none;          /* Firefox */
    -ms-overflow-style: none;       /* Edge legado */
  }
  #rpnews-modal.is-lado #rpnews-body-wrap::-webkit-scrollbar { width: 0; height: 0; }
}

/* spinner do player da Reisen TV */
@keyframes rptv-spin { to { transform:rotate(360deg); } }

/* ── Título do hero em uma linha ──────────────────────────────────────────
   O bloco de texto do hero é mais largo do que o dos parágrafos (que têm
   max-width próprio), então o H1 cabe inteiro sem quebrar. No mobile volta
   a quebrar normalmente. */
@media (min-width: 901px) {
  .rp-hero-title { white-space: nowrap; }
}

/* ── Carrossel no mobile ──────────────────────────────────────────────────
   Experiências, Reisen TV, Notícias e Eventos deixam de empilhar e passam
   a rolar na horizontal, um card por vez. O !important é necessário porque
   o display:grid dessas grades vem inline no markup. */
@media (max-width: 720px) {
  .rp-carousel {
    display: flex !important;
    flex-wrap: nowrap;
    gap: 16px !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 16px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    margin-left: -16px;
    margin-right: -16px;
    padding: 2px 16px 12px;
  }
  .rp-carousel::-webkit-scrollbar { width: 0; height: 0; }
  .rp-carousel > * {
    flex: 0 0 82%;
    max-width: 82%;
    scroll-snap-align: start;
  }
  /* O aviso de "nada cadastrado ainda" não é card: ocupa a largura toda. */
  .rp-carousel > p { flex: 0 0 100%; max-width: 100%; }

  /* Reisen TV: os dois vídeos menores saem da coluna empilhada e viram
     itens do próprio carrossel, ao lado do destaque. */
  .rp-grid-tv { display: flex !important; }
  .rp-tv-stack { display: contents; }
  .rp-tv-stack > .tv-card { min-height: 200px; }
  .rp-carousel .rp-tv-featured { height: 240px !important; }
}

/* ── Submenu do cabeçalho ─────────────────────────────────────────────────
   "Cadastrar evento" pendurado em Eventos. Abre no hover e também no
   foco por teclado, para o item continuar acessível sem mouse. */
.rp-has-sub > .rp-submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: -12px;
  min-width: 190px;
  margin: 0;
  padding: 6px;
  list-style: none;
  background: #fff;
  border: 1px solid var(--rp-outline);
  border-radius: 10px;
  box-shadow: 0 14px 34px -12px rgba(0,0,0,.3);
}
.rp-has-sub:hover > .rp-submenu,
.rp-has-sub.is-open > .rp-submenu { display: block; }
.rp-submenu li { list-style: none; }
.rp-submenu a {
  display: block;
  padding: 9px 12px;
  border-radius: 7px;
  font-weight: 600;
  font-size: 13px;
  color: var(--rp-on-var);
  text-decoration: none;
}
.rp-submenu a:hover { background: var(--rp-surface-lo); color: var(--rp-primary); }

/* ── Menu mobile ──────────────────────────────────────────────────────────
   Tudo centralizado; "Cadastrar evento" entra menor, logo abaixo de Eventos. */
.rp-mobile-nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  height: 100%;
  gap: 18px;
  padding: 0 24px;
}
.rp-mobile-nav > a:not(.btn-cta) {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700;
  font-size: 19px;
  line-height: 1.25;
  color: #fff;
  text-decoration: none;
  text-align: center;
}
.rp-mobile-nav > a.rp-mobile-sub {
  font-family: inherit;
  font-weight: 600;
  font-size: 13.5px;
  color: rgba(255,255,255,.62);
  margin-top: -10px;
}

/* ── Setas dos carrosséis ─────────────────────────────────────────────────
   O wrapper é criado pelo JS do rodapé; as setas só aparecem no mobile,
   onde a grade vira rolagem horizontal. */
.rp-carousel-wrap  { position: relative; }
.rp-carousel-setas { display: none; }
@media (max-width: 720px) {
  .rp-carousel-setas {
    display: flex;
    justify-content: center;
    gap: 14px;
    margin-top: 16px;
  }
  .rp-carousel-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--rp-outline);
    border-radius: 50%;
    background: #fff;
    color: var(--rp-primary);
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
    cursor: pointer;
    transition: background .2s;
  }
  /* Desabilitada continua ocupando o lugar: a barra não muda de largura.
     Sem transição no opacity: o estado precisa mudar na hora do clique. */
  .rp-carousel-nav[disabled] { opacity: .32; pointer-events: none; }
  .rp-carousel-nav .material-symbols-outlined { font-size: 22px; }
}

/* ── Calendário dos próximos eventos ──────────────────────────────────────
   Coluna fixa à esquerda; abaixo de 900px vai para cima dos cards. */
.rp-eventos-layout {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 28px;
  align-items: start;
}
@media (max-width: 900px) {
  .rp-eventos-layout { grid-template-columns: 1fr; gap: 24px; }
}

.rp-cal {
  background: #fff;
  border: 1px solid var(--rp-outline);
  border-radius: 16px;
  padding: 18px 18px 14px;
}
.rp-cal-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.rp-cal-mes {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 15px;
  color: var(--rp-primary);
  text-transform: capitalize;
}
.rp-cal-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--rp-outline);
  border-radius: 50%;
  background: #fff;
  color: var(--rp-primary);
  cursor: pointer;
}
.rp-cal-nav .material-symbols-outlined { font-size: 18px; }
.rp-cal-semana,
.rp-cal-dias { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.rp-cal-semana { margin-bottom: 6px; }
.rp-cal-semana span {
  text-align: center;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--rp-on-var);
  opacity: .65;
}
.rp-cal-vazio { aspect-ratio: 1; }
.rp-cal-dia {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: none;
  font: inherit;
  font-size: 12.5px;
  color: var(--rp-on-var);
}
/* Dia com evento: laranja da marca, em negrito, e clicável. */
.rp-cal-dia.tem-evento {
  background: var(--rp-cta);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}
.rp-cal-dia.tem-evento:hover { filter: brightness(1.08); }
.rp-cal-dia.e-hoje { box-shadow: inset 0 0 0 1.5px var(--rp-primary); }
.rp-cal-legenda {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 12px 0 0;
  font-size: 11px;
  color: var(--rp-on-var);
}
.rp-cal-ponto {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--rp-cta);
  flex-shrink: 0;
}

/* ── Selo de patrocínio no marquee (teste) ────────────────────────────────
   Mesma altura dos brasões; o respiro extra separa o selo da primeira cidade. */
.muni-selo { padding: 0 22px 0 18px; }
.muni-selo svg,
.muni-selo img { display: block; height: 38px; width: auto; }
