/* Figma aprovado — somente Promoções. Reutiliza a interface e APIs do AUDIE. */
@font-face { font-family:"Baloo 2"; src:url('../fonts/Baloo2.ttf') format('truetype'); font-weight:400 800; font-display:swap; }
@font-face { font-family:"Plus Jakarta Sans"; src:url('../fonts/PlusJakartaSans.ttf') format('truetype'); font-weight:200 800; font-display:swap; }
.r2-promocoes {
  --promo-azul-escuro:#000; --promo-azul:#0018ff; --promo-amarelo:#fedb24;
  --promo-vermelho:#ff4916; --promo-texto:#000; --promo-suave:#5a6280;
  --promo-borda:#e4e8f4; --promo-fundo:#f4f6fc;
  font-family:"Plus Jakarta Sans","Segoe UI",sans-serif;
  max-width:none; width:100%; padding:0 0 48px; background:var(--promo-fundo);
}
/* Remove apenas o encaixotamento do widget de Promoções, não o tema. */
.elementor .e-con:has(.elementor-widget-fm103-promocoes),
.elementor .e-con-inner:has(.elementor-widget-fm103-promocoes) {
  --container-max-width:100%; --content-width:100%;
  width:100% !important; max-width:none !important;
  margin:0 !important; padding:0 !important;
}
.elementor-widget-fm103-promocoes,
.elementor-widget-fm103-promocoes > .elementor-widget-container {
  width:100% !important; max-width:none !important;
  margin:0 !important; padding:0 !important;
}
.r2-promocoes *, .r2-promocoes *::before, .r2-promocoes *::after { box-sizing:border-box; }
.r2-promocoes__cabecalho { display:block; background:#000; border-radius:0; padding:40px max(24px,calc((100% - 1160px)/2)); margin:0; }
.r2-promocoes__cabecalho::after { background:url('../images/pattern-original.svg') center/contain no-repeat; width:114px; height:120px; right:max(24px,calc((100% - 1160px)/2)); top:37px; bottom:auto; border-radius:0; transform:none; opacity:.8; pointer-events:none; }
.r2-promocoes__cabecalho-texto { max-width:none; padding-right:140px; }
.r2-promocoes__chapeu { font-size:11px; font-weight:400; letter-spacing:0; line-height:1.5; margin:0 0 8px; }
.r2-promocoes__cabecalho h2 { font:700 48px/1.2 "Baloo 2",sans-serif; margin:0 0 8px; }
.r2-promocoes__cabecalho p { color:#fff; font-size:15px; line-height:1.5; }
.r2-promocoes__total, .r2-promocoes__grade, .r2-promocoes__nota, .r2-promocoes__indisponivel { width:calc(100% - 48px); max-width:1160px; margin-left:auto; margin-right:auto; }
.r2-promocoes__total { display:block; padding:0; background:none; border:0; border-radius:0; color:#000; font:700 22px/1.2 "Baloo 2",sans-serif; margin-top:32px; margin-bottom:24px; }
.r2-promocoes__grade { align-items:start; }
.r2-promocao-card { border-radius:16px; box-shadow:none; }
.r2-promocao-card:hover { transform:none; box-shadow:none; }
.r2-promocao-card__imagem { aspect-ratio:auto; height:164px; }
.r2-promocao-card__imagem img { display:block; }
.r2-promocao-card:hover .r2-promocao-card__imagem img { transform:none; }
.r2-promocao-card__corpo { padding:16px; }
.r2-promocao-card__info { display:flex; flex-direction:column; gap:8px; min-width:0; }
.r2-promocao-card__prazo { color:var(--promo-azul); text-transform:none; letter-spacing:0; margin:0; line-height:1.5; }
.r2-promocao-card h3 { font:700 23px/1.2 "Baloo 2",sans-serif; margin:0; overflow-wrap:anywhere; }
.r2-promocao-card p { margin:0; line-height:1.5; overflow-wrap:anywhere; }
.r2-promocao-card__acoes { gap:8px; margin-top:16px; }
.r2-promocao-card__acoes .r2-promocao-btn { flex:1; min-width:0; }
.r2-promocao-btn { border-radius:8px; min-height:44px; padding:8px 12px; font:700 12px/1.5 "Plus Jakarta Sans",sans-serif; text-decoration:none; }
.r2-promocao-btn--principal { background:#0018ff; color:#fff; }
.r2-promocao-btn--secundario { background:#f4f6fc; color:#0018ff; }
.r2-promocao-btn:hover { transform:none; filter:brightness(.9); }
.r2-promocao-btn:focus-visible, .r2-promocao-card__imagem:focus-visible, .r2-promocao-modal__fechar:focus-visible { outline:3px solid #fedb24; outline-offset:-3px; }
.r2-promocoes__nota { color:var(--promo-suave); font-size:12px; line-height:1.5; margin-top:32px; margin-bottom:0; }
/* Posicionamento explícito, independente das regras de dialog do tema. */
dialog.r2-promocao-modal { position:fixed !important; inset:0 !important; margin:auto !important; transform:none !important; width:min(600px,calc(100vw - 32px)); max-width:calc(100vw - 32px); height:fit-content; max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); padding:0; border:0; border-radius:16px; overflow:hidden; font-family:"Plus Jakarta Sans","Segoe UI",sans-serif; }
dialog.r2-promocao-modal:not([open]) { display:none !important; }
dialog.r2-promocao-modal[open] { display:flex !important; flex-direction:column; }
.r2-promocao-modal::backdrop { background:rgba(0,0,0,.6); }
html.r2-promo-modal-open { overflow:hidden; }
.r2-promocao-modal__topo { display:block; flex:none; background:#000; padding:24px; position:relative; }
.r2-promocao-modal__topo > div { padding-right:52px; }
.r2-promocao-modal__topo::after { content:""; position:absolute; width:42px; height:44px; top:14px; right:58px; background:url('../images/pattern-original.svg') center/contain no-repeat; opacity:.35; pointer-events:none; }
.r2-promocao-modal__topo h3 { font:700 30px/1.4 "Baloo 2",sans-serif; overflow-wrap:anywhere; position:relative; z-index:1; }
.r2-promocao-modal__topo form { margin:0; }
.r2-promocao-modal__fechar { position:absolute; top:8px; right:8px; width:44px; height:44px; display:grid; place-items:center; border:0; border-radius:8px; background:transparent; padding:0; z-index:2; }
.r2-promocao-modal__fechar img { display:block; width:20px; height:20px; }
.r2-promocao-modal__fechar:hover { background:rgba(255,255,255,.12); }
.r2-promocao-modal__conteudo, .r2-promocao-cadastro__corpo { max-height:none; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:24px; color:#5a6280; font-size:14px; line-height:1.4; }
.r2-promocao-modal__premio { display:flex; flex-direction:column; gap:8px; padding:12px; margin-bottom:16px; border-radius:8px; background:#f4f6fc; }
.r2-promocao-modal__premio strong { font-size:16px; color:#000; }
.r2-promocao-modal__premio span { font-size:12px; color:#0018ff; }
.r2-promocao-modal__regras { overflow-wrap:anywhere; }
.r2-promocao-modal__regras p { margin:0 0 16px; }
.r2-promocao-modal__regras strong, .r2-promocao-modal__regras b { color:#000; }
.r2-promocao-modal__regras img { max-width:100%; height:auto; }
.r2-promocao-modal__rodape { flex:none; flex-direction:column; align-items:stretch; gap:16px; border:0; padding:0 24px 24px; }
.r2-promocao-modal__rodape .r2-promocao-btn { width:100%; }
.r2-promocao-modal__rodape p { font-size:11px; line-height:1.4; }
.r2-promocao-cadastro__titulo-promo { color:#fff; font-size:12px; font-weight:400; line-height:1.4; margin:8px 0 0; }
.r2-promocao-etapa { margin-bottom:16px; }
.r2-promocao-etapa__numero { display:none; }
.r2-promocao-etapa small { margin-top:16px; font-size:14px; line-height:1.4; }
.r2-promocao-campo { margin-bottom:16px; }
.r2-promocao-campo > span { font-weight:400; margin-bottom:8px; }
.r2-promocao-campo input, .r2-promocao-campo select { border-color:#0018ff; border-radius:8px; font-size:16px; padding:12px; }
.r2-promocao-cadastro__acoes { margin-top:16px; }
.r2-promocao-cadastro__acoes .r2-promocao-btn { flex:1; }
.r2-promocao-cadastro__privacidade { font-size:11px; line-height:1.4; margin:16px 0 0; }
.r2-promocao-cadastro__privacidade a { color:#0018ff; }
.r2-promocao-cadastro__fallback { text-align:left; border:0; padding:12px; background:#f4f6fc; border-radius:8px; margin:16px 0 0; font-size:12px; line-height:1.4; }
.r2-promocao-cadastro__fallback a { display:block; font-weight:400; margin-top:8px; }
@media(max-width:620px) {
  .r2-promocoes { padding:0 0 32px; }
  .r2-promocoes__cabecalho { padding:24px 16px; border-radius:0; margin-bottom:0; }
  .r2-promocoes__cabecalho-texto { padding-right:0; }
  .r2-promocoes__cabecalho::after { width:50px; height:53px; top:16px; right:16px; opacity:.55; }
  .r2-promocoes__cabecalho h2 { font-size:30px; padding-right:45px; }
  .r2-promocoes__cabecalho p { font-size:12px; }
  .r2-promocoes__total, .r2-promocoes__grade, .r2-promocoes__nota, .r2-promocoes__indisponivel { width:calc(100% - 32px); }
  .r2-promocoes__total { margin-top:24px; margin-bottom:12px; font-size:16px; }
  .r2-promocoes__grade { gap:12px; }
  .r2-promocao-card { display:grid; grid-template-columns:112px minmax(0,1fr); column-gap:12px; padding:16px; }
  .r2-promocao-card__imagem { height:90px; background:transparent; align-self:start; }
  .r2-promocao-card__imagem img { object-fit:contain; }
  .r2-promocao-card__corpo { display:contents; }
  .r2-promocao-card__info { grid-column:2; }
  .r2-promocao-card h3 { font-size:18px; }
  .r2-promocao-card p { font-size:12px; }
  .r2-promocao-card__acoes { grid-column:1/-1; flex-direction:row; margin-top:16px; }
  .r2-promocoes__nota { margin-top:24px; }
  .r2-promocao-modal__topo, .r2-promocao-modal__conteudo, .r2-promocao-cadastro__corpo { padding:16px; }
  .r2-promocao-modal__topo h3 { font-size:25px; }
  .r2-promocao-modal__conteudo { font-size:12px; }
  .r2-promocao-modal__rodape { padding:0 16px 16px; }
  .r2-promocao-etapa small { font-size:12px; }
  .r2-promocao-cadastro__acoes--duplas { flex-direction:row; }
}
@media(max-width:350px) { .r2-promocao-card { grid-template-columns:90px minmax(0,1fr); column-gap:8px; padding:12px; } }

/* Responsividade 2026-10-08: mesmos cards e ações, medidas fluidas. */
.r2-promocoes__cabecalho { padding-inline: max(var(--fm103-gutter, 32px), calc((100% - var(--fm103-content-max, 1440px)) / 2)); }
.r2-promocoes__cabecalho::after { right: max(var(--fm103-gutter, 32px), calc((100% - var(--fm103-content-max, 1440px)) / 2)); }
.r2-promocoes__cabecalho h2 { font-size: clamp(30px, 3.34vw, 48px); }
.r2-promocoes__total, .r2-promocoes__grade, .r2-promocoes__nota, .r2-promocoes__indisponivel { width: min(var(--fm103-content-max, 1440px), calc(100% - 2 * var(--fm103-gutter, 32px))); max-width: var(--fm103-content-max, 1440px); margin-inline: auto; }
.r2-promocoes__grade { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 1.7vw, 24px); }
.r2-promocao-card { min-width: 0; }
.r2-promocao-card__imagem { height: auto; max-height: 210px; aspect-ratio: 368 / 164; }
.r2-promocao-card h3 { font-size: clamp(20px, 1.6vw, 23px); }
.r2-promocao-card__acoes .r2-promocao-btn { overflow-wrap: anywhere; }
@media (min-width: 621px) and (max-width: 1000px) {
  .r2-promocoes__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .r2-promocoes__grade { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .r2-promocao-card__imagem { height: 90px; aspect-ratio: auto; }
  .r2-promocao-card h3 { font-size: 18px; }
}
