/* SN Metrô — guia (escopado em #sn-metro-app) */
#sn-metro-app{
  --azul:#0D2B6B; --vermelho:#E31B23; --branco:#fff;
  --grafite:#0a1018; --card:#13203a; --card2:#1a2c4d;
  --texto:#eaf0fb; --apagado:#9fb0cf; --linha:#22325a; --dourado:#f4b740;
  font-family:'DM Sans','Segoe UI',system-ui,sans-serif;
  background:var(--grafite); color:var(--texto); line-height:1.6;
  width:100%; margin:0; padding:0 0 10px; overflow-x:hidden;
}
#sn-metro-app *{box-sizing:border-box}
#sn-metro-app .snm-wrap{max-width:1080px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}

/* Hero */
#sn-metro-app .snm-hero{background:linear-gradient(135deg,var(--azul) 0%,#06143a 100%);border-bottom:4px solid var(--vermelho);padding:40px 0 32px;position:relative;overflow:hidden}
#sn-metro-app .snm-hero::after{content:"";position:absolute;right:-60px;top:-60px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(244,183,64,.12),transparent 70%)}
#sn-metro-app .snm-eyebrow{font-size:.72rem;letter-spacing:3px;text-transform:uppercase;color:var(--dourado);font-weight:700;margin-bottom:10px}
#sn-metro-app .snm-hero h1{font-family:'Oswald','DM Sans',sans-serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;line-height:1.08;margin:0 0 12px;max-width:760px;color:#fff}
#sn-metro-app .snm-lead{color:#cdd9f0;font-size:1.05rem;max-width:680px;margin:0}
#sn-metro-app .snm-stats{display:flex;gap:28px;margin-top:22px;flex-wrap:wrap}
#sn-metro-app .snm-stat b{font-family:'Oswald',sans-serif;font-size:1.9rem;color:#fff;display:block;line-height:1}
#sn-metro-app .snm-stat span{font-size:.78rem;color:var(--apagado);text-transform:uppercase;letter-spacing:.5px}

/* Aviso */
#sn-metro-app .snm-aviso{background:var(--card2);border:1px solid var(--linha);border-left:4px solid var(--dourado);border-radius:12px;padding:14px 18px;margin:26px 0;display:flex;gap:14px;align-items:flex-start}
#sn-metro-app .snm-aviso-ic{font-size:1.5rem;flex-shrink:0}
#sn-metro-app .snm-aviso-txt{font-size:.92rem;color:#dce6fa}
#sn-metro-app .snm-aviso-txt a{color:var(--dourado);font-weight:600;text-decoration:none}
#sn-metro-app .snm-aviso-txt a:hover{text-decoration:underline}

#sn-metro-app section{padding:28px 0}
#sn-metro-app .snm-sec-titulo{font-family:'Oswald',sans-serif;font-size:1.5rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin:0 0 6px;display:flex;align-items:center;gap:10px;color:var(--texto)}
#sn-metro-app .snm-sec-titulo::before{content:"";width:5px;height:24px;background:var(--vermelho);border-radius:2px}
#sn-metro-app .snm-sec-sub{color:var(--apagado);font-size:.92rem;margin:0 0 22px}

/* Busca */
#sn-metro-app .snm-busca{width:100%;max-width:420px;background:var(--card);border:1px solid var(--linha);color:var(--texto);padding:12px 16px;border-radius:10px;font-size:.95rem;font-family:inherit;margin-bottom:22px}
#sn-metro-app .snm-busca:focus{outline:none;border-color:var(--vermelho)}
#sn-metro-app .snm-busca::placeholder{color:var(--apagado)}

/* Linhas */
#sn-metro-app .snm-linhas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
#sn-metro-app .snm-linha-card{background:var(--card);border:1px solid var(--linha);border-radius:14px;padding:16px;display:flex;gap:14px;align-items:flex-start;transition:transform .15s,border-color .15s;border-left:5px solid var(--cor)}
#sn-metro-app .snm-linha-card:hover{transform:translateY(-2px);border-color:var(--cor)}
#sn-metro-app .snm-linha-num{width:42px;height:42px;border-radius:10px;background:var(--cor);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:'Oswald',sans-serif;font-weight:700;font-size:1.3rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}
#sn-metro-app .snm-linha-card.txt-escuro .snm-linha-num{color:#1a1a1a;text-shadow:none}
#sn-metro-app .snm-linha-cor-nome{font-size:.82rem;font-weight:600;color:var(--cor);margin-bottom:4px}
#sn-metro-app .snm-linha-op{display:inline-block;font-size:.66rem;text-transform:uppercase;letter-spacing:.5px;color:var(--apagado);background:var(--card2);padding:2px 8px;border-radius:6px;margin-bottom:6px}
#sn-metro-app .snm-linha-trajeto{font-size:.84rem;color:#cdd9f0}
#sn-metro-app .snm-linha-est{font-size:.76rem;color:var(--apagado);margin-top:3px}

/* Tabela */
#sn-metro-app .snm-tabela-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--linha)}
#sn-metro-app table{width:100%;border-collapse:collapse;min-width:480px}
#sn-metro-app th,#sn-metro-app td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--linha);font-size:.9rem}
#sn-metro-app th{background:var(--card2);font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:.78rem;letter-spacing:.5px;color:var(--dourado)}
#sn-metro-app td{background:var(--card)}
#sn-metro-app tr:last-child td{border-bottom:none}
#sn-metro-app td strong{color:#fff}

/* Tarifas */
#sn-metro-app .snm-tarifas{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
#sn-metro-app .snm-tarifa-card{background:var(--card);border:1px solid var(--linha);border-radius:14px;padding:20px;text-align:center}
#sn-metro-app .snm-tarifa-card.destaque{border-color:var(--dourado);border-width:2px}
#sn-metro-app .snm-tarifa-nome{font-size:.82rem;color:var(--apagado);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
#sn-metro-app .snm-tarifa-valor{font-family:'Oswald',sans-serif;font-size:2.2rem;font-weight:700;color:#fff;line-height:1}
#sn-metro-app .snm-tarifa-obs{font-size:.8rem;color:#cdd9f0;margin-top:8px}

#sn-metro-app .snm-dica{background:var(--card2);border:1px solid var(--linha);border-radius:12px;padding:16px 18px;margin-top:16px;font-size:.9rem;color:#dce6fa}
#sn-metro-app .snm-dica b{color:var(--dourado)}

/* Dicas grid */
#sn-metro-app .snm-dicas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
#sn-metro-app .snm-d{background:var(--card);border:1px solid var(--linha);border-radius:12px;padding:18px}
#sn-metro-app .snm-dt{font-weight:700;font-size:.95rem;margin-bottom:6px}
#sn-metro-app .snm-dd{font-size:.86rem;color:#cdd9f0}

/* FAQ */
#sn-metro-app .snm-faq-item{background:var(--card);border:1px solid var(--linha);border-radius:12px;margin-bottom:10px;overflow:hidden}
#sn-metro-app .snm-faq-q{padding:16px 18px;font-weight:600;font-size:.96rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;list-style:none}
#sn-metro-app .snm-faq-q::-webkit-details-marker{display:none}
#sn-metro-app .snm-faq-q::after{content:"+";font-size:1.4rem;color:var(--dourado);flex-shrink:0}
#sn-metro-app details[open] .snm-faq-q::after{content:"–"}
#sn-metro-app .snm-faq-a{padding:0 18px 16px;font-size:.9rem;color:#cdd9f0}

/* Links */
#sn-metro-app .snm-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
#sn-metro-app .snm-link{background:var(--card);border:1px solid var(--linha);border-radius:10px;padding:13px 16px;color:var(--texto);text-decoration:none;font-size:.9rem;font-weight:600;display:flex;align-items:center;gap:8px;transition:border-color .15s}
#sn-metro-app .snm-link:hover{border-color:var(--vermelho)}

#sn-metro-app .snm-rodape{border-top:1px solid var(--linha);margin-top:30px;padding:20px 0 10px;color:var(--apagado);font-size:.8rem;text-align:center}

/* Blindagem do H1 contra margens do tema */
#sn-metro-app .snm-hero h1, #sn-metro-app .snm-sec-titulo{margin-top:0}

@media(max-width:600px){
  #sn-metro-app .snm-stats{gap:18px}
  #sn-metro-app .snm-stat b{font-size:1.5rem}
}

/* ====== Mapa esquemático ====== */
#sn-metro-app .snm-mapa-box{background:var(--card);border:1px solid var(--linha);border-radius:14px;padding:18px}
#sn-metro-app .snm-mapa-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
#sn-metro-app .snm-mapa-svg{width:100%;min-width:560px;height:auto;display:block;border-radius:10px}
#sn-metro-app .snm-mapa-nota{font-size:.8rem;color:var(--apagado);margin:12px 0 14px;font-style:italic}
#sn-metro-app .snm-mapa-links{display:flex;gap:10px;flex-wrap:wrap}
#sn-metro-app .snm-mapa-btn{background:var(--card2);border:1px solid var(--linha);border-radius:10px;padding:11px 16px;color:var(--texto);text-decoration:none;font-size:.86rem;font-weight:600;transition:border-color .15s}
#sn-metro-app .snm-mapa-btn:hover{border-color:var(--dourado)}
