/* =========================================================
   Mídia Kit Band Maranhão — folha de estilo do sistema
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');

:root{
  --navy:#23395D;
  --navy-escuro:#1A2B47;
  --navy-medio:#2E4874;
  --navy-claro:#38547F;
  --texto:#293F62;
  --texto-suave:#5B6B85;
  --cinza:#E7E6E6;
  --cinza-claro:#F4F5F7;
  --linha:#E1E4EA;
  --branco:#FFFFFF;
  --verde:#0F8A4D;
  --vermelho:#C02B2B;
  --ambar:#B4740A;
  --roxo:#5B2E9E;
  --raio:14px;
  --sombra:0 10px 30px rgba(35,57,93,.10);
  --sombra-forte:0 18px 45px rgba(35,57,93,.18);
  --container:1220px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  color:var(--texto);background:var(--branco);line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;line-height:1.15;color:var(--navy)}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}
.container-largo{max-width:1400px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- Marca Band Maranhão ---------- */
.logo-band{display:inline-flex;align-items:center;gap:11px;flex-shrink:0}
.logo-band img{display:block;width:auto;max-width:none}
.logo-band .texto{position:relative;top:1px}
.logo-band.empilhado{flex-direction:column;gap:14px;align-items:center}
.logo-band.empilhado .texto{top:0}

/* ---------- Topo ---------- */
.topo{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--linha)}
.topo-inner{display:flex;align-items:center;gap:28px;height:74px}
.topo-menu{display:flex;align-items:center;gap:22px;margin-left:auto}
.topo-menu a{font-size:14px;font-weight:500;color:var(--texto-suave);padding:6px 0;border-bottom:2px solid transparent;transition:.18s}
.topo-menu a:hover,.topo-menu a.ativo{color:var(--navy);border-color:var(--navy)}
.topo-acoes{display:flex;align-items:center;gap:12px}
.btn-carrinho{position:relative;display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff;
  padding:10px 18px;border-radius:999px;font-size:14px;font-weight:600}
.btn-carrinho:hover{background:var(--navy-escuro)}
.contador{background:#fff;color:var(--navy);border-radius:999px;min-width:22px;height:22px;display:inline-flex;
  align-items:center;justify-content:center;font-size:12px;font-weight:700;padding:0 6px}
.menu-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}
.menu-toggle span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;border-radius:2px}

/* ---------- Botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;
  font-family:inherit;font-size:14px;font-weight:600;padding:12px 24px;border-radius:999px;transition:.2s;text-align:center}
.btn-primario{background:var(--navy);color:#fff}
.btn-primario:hover{background:var(--navy-escuro);transform:translateY(-1px);box-shadow:var(--sombra)}
.btn-secundario{background:#fff;color:var(--navy);border:1.5px solid var(--navy)}
.btn-secundario:hover{background:var(--navy);color:#fff}
.btn-claro{background:#fff;color:var(--navy)}
.btn-claro:hover{background:var(--cinza)}
.btn-contorno-claro{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.6)}
.btn-contorno-claro:hover{background:#fff;color:var(--navy)}
.btn-verde{background:var(--verde);color:#fff}
.btn-verde:hover{filter:brightness(.92)}
.btn-perigo{background:var(--vermelho);color:#fff}
.btn-perigo:hover{filter:brightness(.92)}
.btn-bloco{width:100%}
.btn-pequeno{padding:8px 16px;font-size:13px}
.btn-mini{padding:6px 12px;font-size:12px;border-radius:8px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ---------- Badges e flashes ---------- */
.badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.badge-cinza{background:#EEF0F4;color:#55627A}
.badge-azul{background:#E3ECFB;color:#1D4ED8}
.badge-verde{background:#E1F5E9;color:#0F8A4D}
.badge-ambar{background:#FCF0DC;color:#8A5A05}
.badge-vermelho{background:#FCE6E6;color:#B02020}
.badge-roxo{background:#EEE7FB;color:#5B2E9E}

.flash{padding:14px 18px;border-radius:12px;margin-bottom:16px;font-size:14px;font-weight:500;border-left:4px solid}
.flash-sucesso{background:#E9F7EF;border-color:var(--verde);color:#0B5F36}
.flash-erro{background:#FCEDED;border-color:var(--vermelho);color:#8E1F1F}
.flash-aviso{background:#FDF6E7;border-color:var(--ambar);color:#7A4E05}
.flash-info{background:#EAF0FA;border-color:var(--navy);color:var(--navy)}

/* ---------- Formulários ---------- */
label{display:block;font-size:13px;font-weight:600;color:var(--navy);margin-bottom:14px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],
input[type=tel],input[type=url],select,textarea{
  width:100%;margin-top:6px;padding:11px 14px;border:1.5px solid var(--linha);border-radius:10px;
  font-family:inherit;font-size:14px;font-weight:400;color:var(--texto);background:#fff;transition:.18s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(35,57,93,.10)}
textarea{resize:vertical;min-height:96px}
label.check{display:flex;align-items:flex-start;gap:10px;font-weight:400;font-size:13px;color:var(--texto-suave)}
label.check input{width:auto;margin:3px 0 0}
.form-vertical{margin-top:22px}
.grade-form{display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px}
.grade-form-3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 18px}
.col-2{grid-column:span 2}
.ajuda{font-size:12px;color:var(--texto-suave);font-weight:400;margin-top:4px}

/* ---------- Tela de autenticação ---------- */
.tela-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;
  background:linear-gradient(135deg,var(--cinza) 0%,#fff 55%,#DDE3EE 100%)}
.auth-caixa{width:100%;max-width:440px;background:#fff;border-radius:20px;padding:40px;box-shadow:var(--sombra-forte)}
.auth-marca{margin-bottom:26px}
.auth-caixa h1{font-size:26px;font-weight:800}
.auth-sub{font-size:14px;color:var(--texto-suave);margin-top:6px}
.auth-rodape{margin-top:22px;font-size:13px;color:var(--texto-suave);text-align:center}
.auth-rodape a{color:var(--navy);font-weight:600}
.lista-check{list-style:none;padding:0;margin:18px 0;font-size:14px}
.lista-check li{padding:7px 0 7px 26px;position:relative;color:var(--texto-suave)}
.lista-check li::before{content:'✓';position:absolute;left:0;color:var(--verde);font-weight:700}
.acoes-instalador{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.nota{font-size:12px;color:var(--texto-suave);margin-top:18px}

/* =========================================================
   MÍDIA KIT — seções públicas
   ========================================================= */
.secao{padding:96px 0}
.secao-cinza{background:var(--cinza-claro)}
.secao-navy{background:var(--navy);color:#fff}
.secao-navy h2,.secao-navy h3{color:#fff}

.titulo-kit{font-size:clamp(30px,4.2vw,52px);font-weight:800;letter-spacing:-.02em;text-transform:uppercase;line-height:1.05}
.titulo-kit .leve{font-weight:300;display:block}
.subtitulo-kit{font-size:clamp(15px,1.5vw,20px);font-weight:300;text-transform:uppercase;letter-spacing:.04em;color:var(--texto-suave);margin-top:8px}
.olho-kit{font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--navy-claro);margin-bottom:14px}
.secao-navy .olho-kit{color:#93A9CE}
.secao-navy .subtitulo-kit{color:#C4D0E4}

/* Ondas decorativas da identidade Band */
.ondas{position:absolute;left:0;top:0;width:190px;height:340px;opacity:.9;pointer-events:none}

/* ---------- CAPA ---------- */
.capa{position:relative;min-height:min(86vh,720px);background:var(--cinza);overflow:hidden;display:flex;align-items:center}

/* Capa com foto de fundo (opcional — sem imagem, fica o desenho da marca) */
.capa.com-foto{background-size:cover;background-position:center;background-repeat:no-repeat}
.capa-veu{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(100deg, rgba(13,23,45,.94) 0%, rgba(13,23,45,.86) 38%, rgba(13,23,45,.55) 70%, rgba(13,23,45,.38) 100%)}
.capa.com-foto .capa-formas{opacity:.22;mix-blend-mode:screen;z-index:2}
.capa.com-foto h1{color:#fff}
.capa.com-foto .capa-ano{color:#8FB4EA}
.capa.com-foto .capa-texto{color:#D6E0F0}
.capa.com-foto .btn-secundario{border-color:rgba(255,255,255,.75);color:#fff;background:transparent}
.capa.com-foto .btn-secundario:hover{background:#fff;color:var(--navy)}
@media (max-width:1000px){
  .capa-veu{background:linear-gradient(180deg, rgba(13,23,45,.88) 0%, rgba(13,23,45,.92) 100%)}
}
.capa-formas{position:absolute;top:0;right:0;bottom:0;left:52%;pointer-events:none}
.capa-formas svg{width:100%;height:100%;display:block}
.capa-conteudo{position:relative;z-index:3;max-width:560px;padding:78px 0}
.capa h1{font-size:clamp(40px,6.2vw,86px);font-weight:800;letter-spacing:-.02em;line-height:.98;text-transform:uppercase}
.capa h1 .leve{font-weight:300;display:block;font-size:.72em;letter-spacing:.01em;margin-top:6px}
.capa .capa-texto{margin-top:24px;font-size:17px;color:var(--texto-suave);max-width:520px}
.capa .capa-acoes{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap}
.capa-ano{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.28em;color:var(--navy-claro);margin-bottom:18px}

/* ---------- Números de destaque ---------- */
.faixa-numeros{background:var(--navy);color:#fff;padding:0}
.faixa-numeros .grade{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.faixa-numeros .num{padding:38px 26px;border-right:1px solid rgba(255,255,255,.14);text-align:center}
.faixa-numeros .num:last-child{border-right:0}
.faixa-numeros .valor{font-size:clamp(26px,3vw,40px);font-weight:800;color:#fff;line-height:1}
.faixa-numeros .rotulo{font-size:12.5px;color:#B9C7DE;margin-top:8px;font-weight:400;line-height:1.4}

/* ---------- Entregas (círculos sobre faixa navy) ---------- */
.entregas{position:relative;padding-bottom:0}
.entregas-grade{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;position:relative;z-index:2;margin-top:56px}
.entrega{text-align:center}
.entrega .foto{width:190px;height:190px;border-radius:50%;overflow:hidden;margin:0 auto;border:7px solid #fff;box-shadow:var(--sombra)}
.entrega .foto img{width:100%;height:100%;object-fit:cover}
.entrega .risco{width:70px;height:2px;background:#fff;margin:20px auto 14px}
.entrega p{font-size:14px;font-weight:600;color:#fff;line-height:1.45}
.entregas-faixa{position:absolute;left:0;right:0;bottom:0;height:340px;background:var(--navy);z-index:1}

/* ---------- Cobertura ---------- */
/* mapa + video lado a lado */
.cobertura-midia{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:44px;align-items:stretch}
.cobertura-midia.sozinho{grid-template-columns:1fr}
.cobertura-mapa,.cobertura-video{background:var(--navy);border-radius:4px;padding:26px 22px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.cobertura-mapa img{width:100%;max-width:430px;max-height:560px;height:auto;object-fit:contain}
.cobertura-video{justify-content:space-between;gap:22px}
.cobertura-destaques{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;width:100%}
.cobertura-destaques div{background:rgba(255,255,255,.07);border-radius:10px;padding:16px 14px;text-align:center;
  display:flex;flex-direction:column;justify-content:center;min-height:96px}
.cobertura-destaques strong{display:block;font-size:clamp(20px,2.1vw,27px);font-weight:800;color:#fff;line-height:1.1}
.cobertura-destaques span{font-size:11.5px;color:#A7BEE0;line-height:1.4;display:block;margin-top:6px}

/* ---------- Vídeo do YouTube (usado em várias seções) ---------- */
.bloco-video{margin-top:22px}
.video-wrap{position:relative;width:100%;aspect-ratio:16/9;border-radius:12px;overflow:hidden;
  box-shadow:var(--sombra-forte);background:#000}
.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-vazio{width:100%;aspect-ratio:16/9;border:2px dashed rgba(35,57,93,.3);border-radius:12px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:22px}
.video-vazio strong{color:var(--navy);font-size:16px;letter-spacing:.02em}
.video-vazio span{font-size:12.5px;color:var(--texto-suave);max-width:340px;line-height:1.55}
.video-vazio em{color:var(--navy);font-style:normal;font-weight:600}
.video-vazio .play{width:52px;height:52px;border-radius:50%;background:rgba(35,57,93,.12);position:relative}
.video-vazio .play::after{content:'';position:absolute;top:50%;left:53%;transform:translate(-50%,-50%);
  border-left:16px solid var(--navy);border-top:10px solid transparent;border-bottom:10px solid transparent}
.cobertura-video .video-vazio{border-color:rgba(255,255,255,.32)}
.cobertura-video .video-vazio strong,.cobertura-video .video-vazio em{color:#fff}
.cobertura-video .video-vazio span{color:#A7BEE0}
.cobertura-video .video-vazio .play{background:rgba(255,255,255,.14)}
.cobertura-video .video-vazio .play::after{border-left-color:#fff}

/* coluna de imagem + vídeo (Portal) */
.midia-coluna{display:flex;flex-direction:column;gap:20px}

/* grade de 4 fotos (Ação Blitz) */
.grade-fotos{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.grade-fotos.uma-foto{grid-template-columns:1fr}
.foto-blitz{border-radius:16px;overflow:hidden;box-shadow:var(--sombra);aspect-ratio:4/3;background:#e9edf4}
.foto-blitz img{width:100%;height:100%;object-fit:cover;display:block}
.grade-fotos.uma-foto .foto-blitz{aspect-ratio:auto;box-shadow:var(--sombra)}
.foto-blitz.vazia{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  text-align:center;padding:18px;box-shadow:none;border:2px dashed rgba(35,57,93,.3);background:transparent}
.foto-blitz.vazia strong{color:var(--navy);font-size:15px}
.foto-blitz.vazia span{font-size:11.5px;color:var(--texto-suave);line-height:1.5}
.foto-blitz.vazia em{color:var(--navy);font-style:normal;font-weight:600}

/* ---------- Band Digital ---------- */
.digital-grade{display:grid;grid-template-columns:1fr 1.1fr .8fr;gap:44px;align-items:center;margin-top:44px}
.bullets{list-style:none;padding:0;margin:24px 0 0}
.bullets li{position:relative;padding-left:40px;margin-bottom:20px;font-size:17px;font-weight:600;color:var(--navy)}
.bullets li::before{content:'';position:absolute;left:0;top:2px;width:24px;height:24px;border:2px solid var(--navy);border-radius:5px;background:#fff}
.bullets li::after{content:'';position:absolute;left:7px;top:7px;width:11px;height:6px;border-left:3px solid #22A6F2;border-bottom:3px solid #22A6F2;transform:rotate(-45deg)}
.grafico{display:flex;align-items:flex-end;gap:16px;height:300px;border-bottom:2px solid var(--linha);padding-bottom:0}
.grafico .barra-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.grafico .valor{font-size:26px;font-weight:800;color:var(--navy);line-height:1}
.grafico .unid{font-size:9.5px;font-weight:600;color:var(--texto-suave);margin:2px 0 8px;text-align:center}
.grafico .barra{width:100%;background:var(--navy);border-radius:3px 3px 0 0;min-height:8px}
.grafico-legenda{display:flex;gap:16px;margin-top:10px}
.grafico-legenda span{flex:1;text-align:center;font-size:10.5px;font-weight:700;color:var(--navy);line-height:1.25}
.print-instagram{border-radius:22px;overflow:hidden;box-shadow:var(--sombra-forte)}

/* ---------- Destaque (Portal / Conectada / Blitz) ---------- */
.destaque-grade{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.destaque-grade.inverso .destaque-texto{order:2}
.destaque-img{border-radius:18px;overflow:hidden;box-shadow:var(--sombra)}
.destaque-texto p{font-size:16px;color:var(--texto-suave)}
.destaque-texto strong{color:var(--navy)}
.faixa-frase{background:var(--navy-medio);color:#fff;padding:26px 0;margin-top:64px}
.faixa-frase p{font-size:clamp(15px,1.8vw,21px);font-weight:300;text-align:center;letter-spacing:.02em}
.faixa-frase strong{font-weight:700}
.faixa-site{background:var(--navy);color:#fff;padding:30px 0;text-align:center;
  font-size:clamp(22px,3.4vw,44px);font-weight:800;letter-spacing:.14em;text-transform:uppercase}

/* ---------- Tabela de preços (estilo TABELA do kit) ---------- */
.bloco-tabela{display:flex;margin-top:30px;border-radius:4px;overflow:hidden;box-shadow:var(--sombra)}
.bloco-tabela .aba{background:var(--navy-escuro);color:#fff;display:flex;align-items:center;justify-content:center;
  padding:0 12px;font-size:11px;font-weight:700;letter-spacing:.18em;writing-mode:vertical-rl;transform:rotate(180deg)}
.bloco-tabela .corpo{flex:1;background:var(--navy-medio);color:#fff;padding:20px 26px}
.tabela-kit{width:100%;border-collapse:collapse}
.tabela-kit th{font-size:13px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:6px 10px;text-align:center;color:#DCE4F1}
.tabela-kit thead tr{border-bottom:2px solid rgba(255,255,255,.6)}
.tabela-kit td{padding:9px 10px;text-align:center;font-size:15px;font-weight:700;color:#fff}
.tabela-kit td.esq{text-align:left}
.tabela-kit tbody tr+tr{border-top:1px solid rgba(255,255,255,.10)}
.obs-tabela{font-size:11.5px;color:var(--texto-suave);margin-top:12px;line-height:1.5}
.obs-tabela strong{color:var(--navy)}

/* ---------- Programas locais (faixas em seta) ---------- */
.programas-faixas{margin-top:48px;display:flex;flex-direction:column;gap:14px}
.faixa-programa{display:grid;grid-template-columns:300px 1fr 330px;align-items:stretch;border-radius:6px;overflow:hidden;
  color:#fff;position:relative;min-height:170px;transition:.25s}
.faixa-programa:hover{transform:translateX(4px);box-shadow:var(--sombra-forte)}
.fp-foto{position:relative;overflow:hidden}
.fp-foto img{width:100%;height:100%;object-fit:cover;object-position:center top}
.fp-info{padding:24px 30px;display:flex;flex-direction:column;justify-content:center;background:rgba(0,0,0,.14)}
.fp-info h3{color:#fff;font-size:21px;font-weight:800;text-transform:uppercase;letter-spacing:-.01em}
.fp-info .chamada{font-size:14px;font-weight:400;color:rgba(255,255,255,.92);margin-top:8px;line-height:1.5}
.fp-info .horario{font-size:12.5px;font-weight:700;margin-top:12px;color:rgba(255,255,255,.85)}
.fp-audiencia{padding:22px 26px;background:rgba(0,0,0,.24);display:flex;flex-direction:column;justify-content:center;gap:10px}
.fp-audiencia .tit{font-size:12.5px;font-weight:600;color:rgba(255,255,255,.85);text-align:center}
.fp-audiencia .sexo{display:flex;gap:18px;justify-content:center;font-size:19px;font-weight:800}
.fp-audiencia .linha{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px}
.fp-audiencia .pill{background:rgba(0,0,0,.55);border-radius:6px;padding:3px 10px;font-weight:800;font-size:13px}

/* ---------- Cards de projeto/produto ---------- */
.grade-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:28px;margin-top:44px}
.card-projeto{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--sombra);display:flex;flex-direction:column;transition:.22s}
.card-projeto:hover{transform:translateY(-4px);box-shadow:var(--sombra-forte)}
.card-projeto .circulo{width:150px;height:150px;border-radius:50%;overflow:hidden;margin:26px auto 0;border:5px solid #fff;box-shadow:var(--sombra)}
.card-projeto .circulo img{width:100%;height:100%;object-fit:cover}
.card-projeto .corpo{padding:20px 22px 24px;text-align:center;flex:1;display:flex;flex-direction:column}
.card-projeto h3{font-size:16px;font-weight:700;margin-bottom:8px}
.card-projeto p{font-size:13px;color:var(--texto-suave);line-height:1.5;flex:1}
.card-projeto .acao-card{margin-top:16px}
.secao-navy .card-projeto{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
.secao-navy .card-projeto h3{color:#fff}
.secao-navy .card-projeto p{color:#C9D4E6}

/* ---------- Catálogo ---------- */
.cabecalho-pagina{background:var(--navy);color:#fff;padding:64px 0 56px;position:relative;overflow:hidden}
.cabecalho-pagina h1{color:#fff;font-size:clamp(28px,3.6vw,44px);font-weight:800;text-transform:uppercase;letter-spacing:-.01em}
.cabecalho-pagina p{color:#BFCDE3;font-size:16px;margin-top:10px;max-width:660px}
.migalhas{font-size:12.5px;color:#93A9CE;margin-bottom:14px}
.migalhas a:hover{color:#fff}

.filtros{display:flex;gap:10px;flex-wrap:wrap;margin:34px 0 6px}
.filtros a{padding:9px 18px;border-radius:999px;font-size:13.5px;font-weight:600;background:#fff;
  border:1.5px solid var(--linha);color:var(--texto-suave);transition:.18s}
.filtros a:hover{border-color:var(--navy);color:var(--navy)}
.filtros a.ativo{background:var(--navy);border-color:var(--navy);color:#fff}

.grade-produtos{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:28px;margin-top:34px}
.card-produto{background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--sombra);display:flex;flex-direction:column;
  border:1px solid var(--linha);transition:.22s}
.card-produto:hover{transform:translateY(-5px);box-shadow:var(--sombra-forte)}
.card-produto .capa-card{height:210px;position:relative;overflow:hidden}
.card-produto .capa-card img{width:100%;height:100%;object-fit:cover;object-position:center top}
.card-produto .tag-cat{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.94);color:var(--navy);
  padding:5px 12px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.card-produto .corpo{padding:22px;flex:1;display:flex;flex-direction:column}
.card-produto h3{font-size:19px;font-weight:800;letter-spacing:-.01em}
.card-produto .sub{font-size:13px;color:var(--texto-suave);margin-top:6px;line-height:1.45;flex:1}
.card-produto .meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--texto-suave);margin-top:14px}
.card-produto .meta b{color:var(--navy)}
.card-produto .rodape-card{border-top:1px solid var(--linha);padding:16px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.preco-desde{font-size:11.5px;color:var(--texto-suave)}
.preco-desde strong{display:block;font-size:19px;color:var(--navy);font-weight:800;line-height:1.2}

/* ---------- Detalhe do produto ---------- */
.produto-hero{color:#fff;padding:0;position:relative;overflow:hidden}
.produto-hero .grade{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:center;padding:58px 0}
.produto-hero h1{color:#fff;font-size:clamp(30px,4vw,48px);font-weight:800;text-transform:uppercase;letter-spacing:-.02em}
.produto-hero .sub{font-size:clamp(15px,1.7vw,21px);font-weight:300;text-transform:uppercase;color:rgba(255,255,255,.9);margin-top:8px}
.produto-hero .desc{margin-top:22px;font-size:15.5px;color:rgba(255,255,255,.92);white-space:pre-line;max-width:620px}
.produto-hero .horario-box{display:inline-flex;align-items:center;gap:14px;margin-top:26px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);border-radius:14px;padding:14px 22px}
.produto-hero .horario-box strong{display:block;font-size:17px;font-weight:800;text-transform:uppercase;color:#fff}
.produto-hero .horario-box span{font-size:12.5px;color:rgba(255,255,255,.82)}
.produto-hero .foto{border-radius:18px;overflow:hidden;box-shadow:var(--sombra-forte)}

.painel-audiencia{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:20px;margin-top:-42px;position:relative;z-index:3}
.stat{background:#fff;border-radius:16px;padding:22px;box-shadow:var(--sombra);border:1px solid var(--linha)}
.stat .rot{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--texto-suave)}
.stat .val{font-size:29px;font-weight:800;color:var(--navy);line-height:1.15;margin-top:6px}
.stat .comp{font-size:12.5px;color:var(--texto-suave);margin-top:4px}

/* ---------- Tabela de formatos (compra) ---------- */
.formatos{margin-top:20px;border:1px solid var(--linha);border-radius:16px;overflow:hidden;background:#fff;box-shadow:var(--sombra)}
.formatos-cab{background:var(--navy);color:#fff;padding:16px 24px;display:flex;align-items:center;justify-content:space-between}
.formatos-cab h3{color:#fff;font-size:16px;font-weight:700;letter-spacing:.02em}
.formatos-cab span{font-size:12.5px;color:#B9C7DE}
.linha-formato{display:grid;grid-template-columns:1.35fr .8fr 1fr 1.05fr auto;gap:14px;align-items:center;padding:18px 24px;border-bottom:1px solid var(--linha)}
.linha-formato:last-child{border-bottom:0}
.linha-formato .nome{font-size:15.5px;font-weight:700;color:var(--navy)}
.linha-formato .nome small{display:block;font-weight:400;font-size:12px;color:var(--texto-suave);margin-top:2px}
.linha-formato .dur{font-size:13.5px;color:var(--texto-suave)}
.linha-formato .val{font-size:19px;font-weight:800;color:var(--navy);text-align:right;white-space:nowrap}
.linha-formato .val small{display:block;font-size:11px;font-weight:500;color:var(--texto-suave)}
.linha-formato form{display:flex;align-items:center;gap:8px}
.linha-formato .qtd{width:72px;margin:0;padding:9px 10px;text-align:center}
.linha-formato .cid .rot-cidade{display:block;font-size:10.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--texto-suave);margin-bottom:4px}
.linha-formato .sel-cidade{margin:0;padding:9px 10px;font-size:13.5px;font-weight:600;color:var(--navy)}

/* ---------- Adicionar mais espaços dentro do carrinho ---------- */
.add-rapido{margin-top:24px}
.add-grade{display:grid;grid-template-columns:1.5fr 1.1fr 1.1fr .6fr;gap:14px;align-items:end}
.add-grade label{margin:0}
.add-grade select,.add-grade input{margin:0}
.add-rodape{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;
  border-top:1px solid var(--linha);padding-top:16px;flex-wrap:wrap}
.add-preco span{display:block;font-size:22px;font-weight:800;color:var(--navy);line-height:1.1}
.add-preco small{display:block;font-size:12px;color:var(--texto-suave);margin-top:3px}
.add-rapido select:disabled{background:#f4f6fa;color:var(--texto-suave)}

/* ---------- Cupons disponíveis (modal do carrinho) ---------- */
.abrir-cupons{margin-top:12px}
.modal-cupons{width:min(460px,92vw);max-height:86vh;padding:0;border:0;border-radius:18px;
  box-shadow:0 24px 60px rgba(16,26,48,.28);color:var(--texto);overflow:hidden}
.modal-cupons::backdrop{background:rgba(16,26,48,.55)}
.modal-cupons .mc-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  background:var(--navy);color:#fff;padding:20px 22px}
.modal-cupons .mc-cab h3{color:#fff;font-size:17px;font-weight:700;letter-spacing:.01em}
.modal-cupons .mc-cab p{font-size:12.5px;color:#B9C7DE;margin-top:4px;line-height:1.45}
.modal-cupons .mc-fechar{background:none;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer;
  opacity:.75;padding:0 2px}
.modal-cupons .mc-fechar:hover{opacity:1}
.modal-cupons .mc-corpo{padding:18px 22px 6px;max-height:56vh;overflow-y:auto;background:#fff}
.modal-cupons .mc-rodape{padding:14px 22px 20px;background:#fff;text-align:center}
.cupom-card{border:1px dashed var(--linha);border-radius:12px;padding:13px 15px;margin-bottom:12px;background:#fff}
.cupom-card.indisponivel{opacity:.62;background:#fafbfd}
.cupom-card .cc-topo{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cupom-card .cc-economia{margin-left:auto;font-size:13.5px;font-weight:800;color:var(--verde,#0F8A4D)}
.cupom-card .cc-desc{font-size:13px;font-weight:600;color:var(--navy);margin-top:7px}
.cupom-card .cc-regra{font-size:11.5px;color:var(--texto-suave);margin-top:3px;line-height:1.45}
.cupom-card .cc-motivo{font-size:11.5px;color:var(--texto-suave);margin-top:8px;font-style:italic}
.cupom-card form{margin-top:9px}
.cupom-card .btn{width:100%}

.aviso-admin{margin-top:16px;border:1px dashed #C9A227;background:#FDF8E7;border-radius:12px;padding:12px 14px}
.aviso-admin strong{display:block;font-size:12.5px;color:#8A6D1B;margin-bottom:5px}
.aviso-admin span{display:block;font-size:11.5px;color:#6B5A2E;line-height:1.5}
.aviso-admin em{font-style:normal;font-weight:700}
.aviso-admin a{color:#8A6D1B;font-weight:700}
.aviso-admin .mini-obs{margin-top:7px;opacity:.75;font-size:10.5px}

/* ---------- Ordenar itens do catálogo (admin) ---------- */
.tabela-ordenavel tr[data-id]{cursor:default}
.tabela-ordenavel tr[data-id].arrastando{opacity:.45;background:#eef2f8}
.tabela-ordenavel tbody.salvando{opacity:.55;pointer-events:none}
.tabela-ordenavel .linha-grupo td{background:#eef2f8;font-size:10.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--navy);padding:8px 20px}
.celula-ordem{white-space:nowrap}
.celula-ordem .alca{display:inline-block;cursor:grab;color:#9AA8C0;font-size:15px;letter-spacing:-3px;
  padding:2px 6px 2px 0;user-select:none}
.celula-ordem .alca:active{cursor:grabbing}
.tabela-ordenavel tr[data-id]:hover .alca{color:var(--navy)}
.celula-ordem .pos{display:inline-block;min-width:26px;font-size:13px;font-weight:800;color:var(--navy)}
.celula-ordem .setas{display:inline-flex;gap:4px;vertical-align:middle;margin-left:6px}
.celula-ordem .setas form{display:inline}
.celula-ordem .setas button{width:26px;height:26px;padding:0;border:1px solid var(--linha);background:#fff;
  border-radius:7px;color:var(--navy);font-size:10px;line-height:1;cursor:pointer}
.celula-ordem .setas button:hover:not(:disabled){background:var(--navy);color:#fff;border-color:var(--navy)}
.celula-ordem .setas button:disabled{opacity:.32;cursor:default}

/* ---------- Matriz de preços por cidade (admin) ---------- */
.matriz-cidades th{vertical-align:bottom}
.matriz-cidades th .mini{font-weight:400;text-transform:none;letter-spacing:0}
.matriz-cidades .linha-praca td{background:#eef2f8;font-size:10.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--navy);padding:7px 12px}
.matriz-cidades .celula-preco{text-align:right}
.link-preencher{background:none;border:0;padding:0;margin-left:6px;color:#1D4ED8;font-size:11px;
  font-weight:600;cursor:pointer;text-decoration:underline}

/* ---------- Carrinho / checkout ---------- */
.layout-2col{display:grid;grid-template-columns:1fr 380px;gap:34px;align-items:start}
.painel{background:#fff;border:1px solid var(--linha);border-radius:18px;box-shadow:var(--sombra);overflow:hidden}
.painel-cab{padding:20px 26px;border-bottom:1px solid var(--linha);display:flex;align-items:center;justify-content:space-between;gap:14px}
.painel-cab h2{font-size:17px;font-weight:700}
.painel-corpo{padding:26px}
.painel-corpo.sem-pad{padding:0}

.tabela{width:100%;border-collapse:collapse}
.tabela th{text-align:left;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--texto-suave);padding:14px 20px;background:var(--cinza-claro);border-bottom:1px solid var(--linha)}
.tabela td{padding:16px 20px;border-bottom:1px solid var(--linha);font-size:14px;vertical-align:middle}
.tabela tr:last-child td{border-bottom:0}
.tabela tbody tr:hover{background:#FAFBFD}
.tabela .dir{text-align:right}
.tabela .cen{text-align:center}
.tabela .forte{font-weight:700;color:var(--navy)}
.mini{font-size:12px;color:var(--texto-suave)}

.resumo{position:sticky;top:96px}
.resumo .linha{display:flex;justify-content:space-between;align-items:baseline;gap:14px;font-size:14px;padding:9px 0;color:var(--texto-suave)}
.resumo .linha span:first-child{min-width:0}
.resumo .linha span:last-child{font-weight:600;color:var(--navy);white-space:nowrap;flex:0 0 auto}
.resumo .total{border-top:2px solid var(--linha);margin-top:10px;padding-top:16px;display:flex;justify-content:space-between;align-items:baseline}
.resumo .total span{font-size:14px;font-weight:700;color:var(--navy)}
.resumo .total strong{font-size:27px;font-weight:800;color:var(--navy)}
.vazio{text-align:center;padding:60px 24px;color:var(--texto-suave)}
.vazio h3{font-size:19px;margin-bottom:8px}
.vazio p{font-size:14px;margin-bottom:22px}

.passos{display:flex;gap:8px;align-items:center;justify-content:center;margin-bottom:34px;flex-wrap:wrap}
.passo{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--texto-suave)}
.passo .bola{width:30px;height:30px;border-radius:50%;background:#fff;border:2px solid var(--linha);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.passo.ativo{color:var(--navy)}
.passo.ativo .bola{background:var(--navy);border-color:var(--navy);color:#fff}
.passo.ok .bola{background:var(--verde);border-color:var(--verde);color:#fff}
.passo-linha{width:38px;height:2px;background:var(--linha)}

/* ---------- Contrato ---------- */
.folha{background:#fff;max-width:900px;margin:0 auto;padding:56px 64px;box-shadow:var(--sombra);border-radius:8px;
  font-size:14px;line-height:1.75;color:#25324A}
.folha h1{font-size:21px;text-align:center;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}
.folha .num-contrato{text-align:center;font-size:12.5px;color:var(--texto-suave);margin-bottom:34px}
.folha h2{font-size:14px;text-transform:uppercase;letter-spacing:.06em;margin:28px 0 10px;border-bottom:1px solid var(--linha);padding-bottom:6px}
.folha .cabecalho-folha{display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid var(--navy);
  padding-bottom:18px;margin-bottom:30px}
.folha table{width:100%;border-collapse:collapse;margin:14px 0 6px;font-size:13px}
.folha table th{background:var(--navy);color:#fff;padding:9px 12px;text-align:left;font-size:11px;
  text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.folha table td{padding:9px 12px;border-bottom:1px solid var(--linha)}
.folha table tfoot td{font-weight:700;background:var(--cinza-claro);color:var(--navy)}
.folha .dir{text-align:right}
.folha .cen{text-align:center}
.folha ol{padding-left:20px;margin:8px 0}
.folha ol li{margin-bottom:9px}
.dados-partes{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:8px}
.parte{background:var(--cinza-claro);border-radius:10px;padding:16px 18px;font-size:12.5px;line-height:1.6}
.parte h3{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--texto-suave);margin-bottom:8px}
.parte b{color:var(--navy)}

.area-assinatura{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:44px;align-items:end}
.campo-assinatura{text-align:center}
.campo-assinatura .traco{border-top:1.5px solid #25324A;margin-top:70px;padding-top:8px;font-size:12px}
.campo-assinatura img{max-height:110px;margin:0 auto;display:block}
.selo-assinatura{margin-top:34px;border:1px dashed var(--navy);border-radius:12px;padding:18px 22px;
  background:#F7F9FC;font-size:11.5px;color:var(--texto-suave);line-height:1.7}
.selo-assinatura b{color:var(--navy)}
.selo-assinatura .hash{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;word-break:break-all;color:var(--navy)}

.quadro-assinar{background:#fff;border:1px solid var(--linha);border-radius:18px;padding:30px;box-shadow:var(--sombra);margin-top:30px}
.quadro-assinar h2{font-size:18px;margin-bottom:6px}
.pad-assinatura{position:relative;margin-top:18px;border:2px dashed #B9C4D6;border-radius:14px;background:#FBFCFE;overflow:hidden}
.pad-assinatura canvas{display:block;width:100%;height:200px;touch-action:none;cursor:crosshair}
.pad-assinatura .dica{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:#9AA7BC;font-size:14px;pointer-events:none}
.pad-assinatura.assinado .dica{display:none}
.pad-acoes{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:12px;flex-wrap:wrap}

/* ---------- Timeline / arquivos ---------- */
.timeline{list-style:none;padding:0;margin:0}
.timeline li{position:relative;padding:0 0 22px 32px;border-left:2px solid var(--linha);margin-left:8px}
.timeline li:last-child{border-left-color:transparent;padding-bottom:0}
.timeline li::before{content:'';position:absolute;left:-8px;top:2px;width:14px;height:14px;border-radius:50%;
  background:#fff;border:3px solid var(--linha)}
.timeline li.ok::before{border-color:var(--verde);background:var(--verde)}
.timeline li.agora::before{border-color:var(--navy);background:var(--navy)}
.timeline .quando{font-size:11.5px;color:var(--texto-suave);text-transform:uppercase;letter-spacing:.06em}
.timeline .oque{font-size:14px;font-weight:600;color:var(--navy);margin-top:2px}
.timeline .det{font-size:13px;color:var(--texto-suave)}

.arquivo{display:flex;align-items:center;gap:14px;padding:14px 18px;border:1px solid var(--linha);border-radius:12px;margin-bottom:10px;background:#fff}
.arquivo .ic{width:42px;height:42px;border-radius:10px;background:var(--cinza-claro);display:flex;align-items:center;
  justify-content:center;font-size:11px;font-weight:800;color:var(--navy);text-transform:uppercase;flex-shrink:0}
.arquivo .info{flex:1;min-width:0}
.arquivo .info b{display:block;font-size:14px;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arquivo .info span{font-size:12px;color:var(--texto-suave)}
.zona-upload{border:2px dashed #B9C4D6;border-radius:16px;padding:30px;text-align:center;background:#FBFCFE}
.zona-upload input[type=file]{margin:14px auto 0;max-width:420px}

/* ---------- Rodapé ---------- */
.rodape{background:var(--navy-escuro);color:#B9C7DE;padding:56px 0 30px;font-size:13.5px}
.rodape-grade{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px}
.rodape h4{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px}
.rodape ul{list-style:none;padding:0;margin:0}
.rodape li{margin-bottom:9px}
.rodape a:hover{color:#fff}
.rodape-base{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:22px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px}

/* =========================================================
   PAINEL (admin e cliente)
   ========================================================= */
.app{display:flex;min-height:100vh;background:var(--cinza-claro)}
.lateral{width:262px;background:var(--navy);color:#fff;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh}
.lateral-topo{padding:24px 22px;border-bottom:1px solid rgba(255,255,255,.12)}
.lateral-topo .papel{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#8FA5C9;margin-top:10px}
.lateral nav{flex:1;padding:16px 14px;overflow-y:auto}
.lateral nav .grupo{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#7E95BC;margin:18px 12px 8px}
.lateral nav a{display:flex;align-items:center;gap:11px;padding:10px 14px;border-radius:10px;font-size:14px;
  color:#C6D3E7;margin-bottom:3px;transition:.16s}
.lateral nav a:hover{background:rgba(255,255,255,.09);color:#fff}
.lateral nav a.ativo{background:#fff;color:var(--navy);font-weight:700}
.lateral nav a .pino{margin-left:auto;background:#E9B949;color:#4A3405;border-radius:999px;font-size:11px;font-weight:800;padding:1px 8px}
.lateral-base{padding:16px 20px;border-top:1px solid rgba(255,255,255,.12);font-size:12.5px}
.lateral-base a{color:#9FB4D3}
.lateral-base a:hover{color:#fff}

.conteudo{flex:1;min-width:0;display:flex;flex-direction:column}
.barra{background:#fff;border-bottom:1px solid var(--linha);padding:0 32px;height:70px;display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:20}
.barra h1{font-size:19px;font-weight:700}
.barra .dir{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:13px;color:var(--texto-suave)}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;
  justify-content:center;font-size:13px;font-weight:700}
.area{padding:32px;flex:1}

.cards-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:28px}
.kpi{background:#fff;border:1px solid var(--linha);border-radius:16px;padding:22px;box-shadow:var(--sombra)}
.kpi .rot{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--texto-suave)}
.kpi .val{font-size:30px;font-weight:800;color:var(--navy);margin-top:8px;line-height:1.1}
.kpi .sub{font-size:12.5px;color:var(--texto-suave);margin-top:4px}
.kpi.destaque{background:var(--navy);border-color:var(--navy)}
.kpi.destaque .rot{color:#9FB4D3}
.kpi.destaque .val,.kpi.destaque .sub{color:#fff}

.grade-admin{display:grid;grid-template-columns:380px 1fr;gap:26px;align-items:start}
.grade-admin-inv{grid-template-columns:1fr 380px}
.acoes-linha{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.divisor{height:1px;background:var(--linha);margin:22px 0}
.titulo-secao{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--texto-suave);margin:26px 0 12px}
.tabela-precos{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:8px}
.tabela-precos th{background:var(--cinza-claro);padding:9px 12px;text-align:left;font-size:11px;text-transform:uppercase;
  letter-spacing:.06em;color:var(--texto-suave);border-bottom:1px solid var(--linha)}
.tabela-precos td{padding:8px 12px;border-bottom:1px solid var(--linha)}
.tabela-precos input,.tabela-precos select{margin-top:0;padding:8px 10px;font-size:13px}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--cinza-claro);border-radius:999px;
  padding:5px 12px;font-size:12px;color:var(--texto-suave);font-weight:600}
.cor-ponto{width:12px;height:12px;border-radius:50%;display:inline-block;flex-shrink:0}

/* ---------- Impressão ---------- */
@media print{
  .topo,.rodape,.nao-imprime,.barra,.lateral{display:none !important}
  body{background:#fff}
  .app,.conteudo,.area{display:block;padding:0;background:#fff}
  .folha{box-shadow:none;max-width:100%;padding:0;border-radius:0}
  @page{margin:18mm 16mm}
}

/* ---------- Responsivo ---------- */
@media (max-width:1100px){
  .layout-2col{grid-template-columns:1fr}
  .resumo{position:static}
  .grade-admin,.grade-admin-inv{grid-template-columns:1fr}
  .digital-grade{grid-template-columns:1fr;gap:32px}
  .faixa-programa{grid-template-columns:190px 1fr;min-height:0}
  .fp-audiencia{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;justify-content:space-around}
  .produto-hero .grade{grid-template-columns:1fr;gap:30px}
  .entregas-grade{grid-template-columns:repeat(2,1fr)}
  .faixa-numeros .grade{grid-template-columns:repeat(2,1fr)}
  .faixa-numeros .num:nth-child(2){border-right:0}
  .cobertura-midia{grid-template-columns:1fr}
  .rodape-grade{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .secao{padding:64px 0}
  .topo-menu{display:none}
  .menu-toggle{display:block}
  .topo-menu.aberto{display:flex;position:absolute;top:74px;left:0;right:0;background:#fff;flex-direction:column;
    align-items:flex-start;gap:0;padding:12px 24px 20px;border-bottom:1px solid var(--linha);box-shadow:var(--sombra)}
  .topo-menu.aberto a{width:100%;padding:12px 0;border-bottom:1px solid var(--linha)}
  .destaque-grade{grid-template-columns:1fr;gap:30px}
  .destaque-grade.inverso .destaque-texto{order:0}
  .grade-form,.grade-form-3{grid-template-columns:1fr}
  .col-2{grid-column:auto}
  .dados-partes,.area-assinatura{grid-template-columns:1fr}
  .folha{padding:32px 22px}
  .lateral{position:fixed;left:-262px;z-index:80;transition:.25s;box-shadow:var(--sombra-forte)}
  .lateral.aberta{left:0}
  .area{padding:20px}
  .barra{padding:0 18px}
  .add-grade{grid-template-columns:1fr 1fr}
  .linha-formato{grid-template-columns:1fr;gap:10px}
  .linha-formato .cid .rot-cidade{display:inline-block;margin-right:8px}
  .linha-formato .val{text-align:left}
}
/* No celular o resumo/total sobe: itens -> resumo -> adicionar mais */
@media (max-width:1100px){
  .coluna-campanha{display:contents}
  .painel-itens{order:1}
  .layout-2col > aside{order:2}
  .add-rapido{order:3;margin-top:0}
  .layout-2col{gap:22px}
}

/* ---------- Carrinho no celular: a tabela vira cartões ---------- */
@media (max-width:760px){
  .tabela-cartao,.tabela-cartao tbody,.tabela-cartao tr,.tabela-cartao td{display:block;width:100%}
  .tabela-cartao thead{display:none}
  .tabela-cartao tr{border-bottom:1px solid var(--linha);padding:16px 18px}
  .tabela-cartao tr:last-child{border-bottom:0}
  .tabela-cartao td{border:0;padding:5px 0;display:flex;align-items:center;justify-content:space-between;
    gap:14px;text-align:right;font-size:14px}
  .tabela-cartao td::before{content:attr(data-rotulo);flex:0 0 auto;font-size:10.5px;font-weight:700;
    letter-spacing:.1em;text-transform:uppercase;color:var(--texto-suave);text-align:left}
  .tabela-cartao td.td-principal{display:block;text-align:left;padding-bottom:10px;margin-bottom:6px;
    border-bottom:1px dashed var(--linha)}
  .tabela-cartao td.td-principal::before{display:none}
  .tabela-cartao td.td-principal .forte{font-size:15.5px}
  .tabela-cartao td.td-acao{justify-content:flex-end;padding-top:10px}
  .tabela-cartao td.td-acao::before{display:none}
  .tabela-cartao td.td-acao .btn{width:100%}
  .tabela-cartao td input[type=number]{width:92px!important;margin:0}
  .tabela-cartao .mini{margin-top:2px}

  .add-grade{grid-template-columns:1fr;gap:12px}
  .add-rodape{flex-direction:column;align-items:stretch;gap:12px}
  .add-rodape .btn{width:100%}
  .add-preco{text-align:center}
  .painel-cab{flex-wrap:wrap;gap:10px}
  .painel-cab .btn{width:100%}
  .modal-cupons{width:94vw;max-height:88vh}
  .modal-cupons .mc-corpo{max-height:62vh;padding:16px 16px 4px}
  .modal-cupons .mc-cab{padding:16px 18px}
  .cupom-ativo{flex-direction:column;align-items:flex-start;gap:8px}
  .cupom-ativo form{align-self:flex-end}
}

@media (max-width:560px){
  .entregas-grade{grid-template-columns:1fr}
  .faixa-numeros .grade{grid-template-columns:1fr}
  .faixa-numeros .num{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}
  .faixa-programa{grid-template-columns:1fr}
  .fp-foto{height:200px}
  .rodape-grade{grid-template-columns:1fr}
  .capa{min-height:auto}
}

/* ---------- Animações de entrada ---------- */
.pre-animar{opacity:0;transform:translateY(22px)}
[data-animar].visivel{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
@media (prefers-reduced-motion:reduce){.pre-animar{opacity:1;transform:none}}

/* Capa — as formas nunca invadem a coluna de texto */
@media (max-width:1240px){ .capa-formas{left:52%} .capa-conteudo{max-width:470px} }
@media (max-width:1000px){
  .capa-formas{left:0;opacity:.16}
  .capa-conteudo{max-width:100%;padding:86px 0}
}

/* Entregas — em telas médias a seção inteira fica navy (mantém o contraste) */
@media (max-width:1100px){
  .secao.entregas{background:var(--navy);padding-bottom:96px}
  .secao.entregas .titulo-kit{color:#fff}
  .entregas-faixa{display:none}
  .entregas-grade{margin-top:44px}
}


/* ---------- Navegação em telas intermediárias ---------- */
.topo-menu{flex-wrap:nowrap}
.btn-carrinho{white-space:nowrap}
@media (max-width:1240px){
  .topo-menu{gap:15px}
  .topo-menu a{font-size:13px}
  .btn-carrinho{padding:9px 15px;font-size:13px}
}
@media (max-width:1000px){
  .topo-menu{display:none}
  .menu-toggle{display:block}
  .topo-menu.aberto{display:flex;position:absolute;top:74px;left:0;right:0;background:#fff;
    flex-direction:column;align-items:flex-start;gap:0;padding:12px 24px 20px;
    border-bottom:1px solid var(--linha);box-shadow:var(--sombra);flex-wrap:wrap}
  .topo-menu.aberto a{width:100%;padding:12px 0;border-bottom:1px solid var(--linha);font-size:15px}
  .topo-menu.aberto .topo-acoes{width:100%;padding-top:14px}
  .topo-menu.aberto .btn-carrinho{width:100%;justify-content:center;font-size:14px;padding:11px 18px}
}

/* Botão do carrinho: garante o contraste dentro do menu */
.topo-menu a.btn-carrinho{color:#fff;border-bottom:0}
.topo-menu a.btn-carrinho:hover{color:#fff}
.topo-menu.aberto a.btn-carrinho{border-bottom:0}

/* ---------- Cupom de desconto ---------- */
.cupom-form{margin:16px 0 4px}
.cupom-form label{margin-bottom:6px}
.cupom-campo{display:flex;gap:8px}
.cupom-campo input{margin:0;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.cupom-campo .btn{flex-shrink:0}
.cupom-ativo{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 6px;
  padding:12px 14px;border-radius:12px;background:#E9F7EF;border:1px solid #BFE6CF}
.cupons-aplicados{display:flex;flex-direction:column;gap:8px;margin:14px 0 6px}
.cupons-aplicados .cupom-ativo{margin:0}
.cupom-ativo .ca-valor{display:block;font-size:12px;font-weight:700;color:#0B5F36;margin-top:2px}
.cupom-ativo b{display:block;font-size:14px;color:#0B5F36;letter-spacing:.04em}
.cupom-ativo span{font-size:12px;color:#3E7A5B}
.cupom-ativo button{background:none;border:0;color:#0B5F36;font-size:12px;font-weight:600;cursor:pointer;
  text-decoration:underline;padding:0;font-family:inherit}
.cupom-ativo button:hover{color:var(--vermelho)}
.codigo-cupom{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;letter-spacing:.08em;
  background:var(--cinza-claro);border:1px solid var(--linha);border-radius:8px;padding:5px 10px;
  display:inline-block;color:var(--navy);font-size:13px}

/* ---------- WhatsApp ---------- */
.wa-status{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600}
.wa-bolinha{width:10px;height:10px;border-radius:50%;background:#C9D2E0;flex-shrink:0}
.wa-conectado .wa-bolinha{background:#0F8A4D;box-shadow:0 0 0 4px rgba(15,138,77,.15)}
.wa-qr .wa-bolinha{background:#B4740A;box-shadow:0 0 0 4px rgba(180,116,10,.15)}
.wa-conectando .wa-bolinha{background:#1D4ED8;box-shadow:0 0 0 4px rgba(29,78,216,.15)}
.wa-erro .wa-bolinha{background:#C02B2B}
.wa-qr-caixa{text-align:center;padding:22px;background:#fff;border:2px dashed #B9C4D6;border-radius:16px}
.wa-qr-caixa img{width:260px;height:260px;margin:0 auto;image-rendering:pixelated}
.wa-passos{list-style:none;padding:0;margin:16px 0 0;font-size:13px;color:var(--texto-suave);text-align:left;
  max-width:320px;margin-left:auto;margin-right:auto}
.wa-passos li{padding:5px 0 5px 24px;position:relative;counter-increment:wa}
.wa-passos li::before{content:counter(wa);position:absolute;left:0;top:5px;width:17px;height:17px;border-radius:50%;
  background:var(--navy);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}
.wa-passos{counter-reset:wa}
.wa-modelo textarea{font-size:13px;line-height:1.6;min-height:130px}
.wa-vars{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.wa-vars code{background:var(--cinza-claro);border:1px solid var(--linha);border-radius:6px;padding:2px 7px;
  font-size:11px;color:var(--navy);cursor:pointer}
.wa-vars code:hover{background:var(--navy);color:#fff}
