/* =====================================================
   TEM VISTO SAINDO — Formulário B1/B2 EUA
   CSS v4.0.0 — Design Profissional + Mobile First
   ===================================================== */

.tvs {
  --navy:         #1a2744;
  --navy2:        #243058;
  --gold:         #c9a84c;
  --gold-light:   #e8c97a;
  --gold-pale:    #fdf8ec;
  --red:          #b22234;
  --cream:        #faf7f0;
  --dark:         #0d1626;
  --text:         #1e1e1e;
  --text-muted:   #6b7280;
  --border:       #e2d5a8;
  --border-light: #f0ead8;
  --bg:           #f5f6fa;
  font-family: 'Barlow', sans-serif;
  color: var(--text);
  -webkit-font-smoothing: antialiased;
}

.tvs *, .tvs *::before, .tvs *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* LOGOMARK */
.tvs-logo { background: linear-gradient(170deg,#0d1626 0%,#1a2744 60%,#1f3060 100%); padding: 40px 24px 36px; display: flex; flex-direction: column; align-items: center; gap: 14px; border-bottom: 3px solid var(--gold); text-align: center; border-radius: 16px 16px 0 0; position: relative; overflow: hidden; }
.tvs-logo::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(135deg,transparent 0px,transparent 30px,rgba(255,255,255,.015) 30px,rgba(255,255,255,.015) 31px); pointer-events:none; }
#tvs-logo-img,
.tvs-logo #tvs-logo-img,
div#tvs-logo-img {
  width: 120px !important;
  height: 120px !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: drop-shadow(0 4px 18px rgba(0,0,0,.4));
  position: relative;
  z-index: 1;
  display: block;
  margin: 0 auto;
}
.tvs-logo-nome { font-family:'Playfair Display',serif; font-size:2.1rem; font-weight:900; color:#fff; letter-spacing:-.5px; line-height:1; position:relative; z-index:1; }
.tvs-logo-nome span { color:#fff; }
.tvs-logo-sub { font-family:'Barlow Condensed',sans-serif; font-size:.8rem; font-weight:600; letter-spacing:3.5px; text-transform:uppercase; color:rgba(255,255,255,.7); position:relative; z-index:1; }
.tvs-logo-badge { display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); border-radius:20px; padding:6px 18px; font-family:'Barlow Condensed',sans-serif; font-size:.78rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.85); position:relative; z-index:1; }

/* HERO */
.tvs-hero { background:linear-gradient(150deg,#f0f4ff 0%,#fff 55%,#fdf9f0 100%); border-bottom:1px solid #e5dcc8; padding:48px 36px 44px; }
.tvs-hero-grid { max-width:1040px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.tvs-hero h2 { font-family:'Playfair Display',serif; font-size:2.6rem; font-weight:900; color:var(--navy); line-height:1.08; margin-bottom:16px; }
.tvs-hero h2 em { color:var(--navy); font-style:normal; display:block; }
.tvs-hero-desc { font-size:1.02rem; line-height:1.75; color:#4b5563; margin-bottom:24px; }
.tvs-chips { display:flex; gap:8px; flex-wrap:wrap; }
.tvs-chip { background:rgba(26,39,68,.05); border:1.5px solid rgba(26,39,68,.14); border-radius:100px; padding:7px 14px; font-size:.8rem; font-weight:600; color:var(--navy); display:flex; align-items:center; gap:5px; }
.tvs-chip::before { content:'✈'; color:var(--gold); }
.tvs-cards { display:flex; flex-direction:column; gap:12px; }
.tvs-card { background:#fff; border:1.5px solid #e8dfc4; border-left:5px solid var(--gold); border-radius:12px; padding:16px 20px; display:flex; align-items:flex-start; gap:14px; box-shadow:0 2px 16px rgba(26,39,68,.06); transition:transform .2s,box-shadow .2s; }
.tvs-card:hover { transform:translateX(3px); box-shadow:0 4px 20px rgba(26,39,68,.1); }
.tvs-card-icon { font-size:1.5rem; flex-shrink:0; line-height:1; margin-top:2px; }
.tvs-card h4 { font-family:'Barlow Condensed',sans-serif; font-size:.8rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--navy); margin-bottom:4px; }
.tvs-card p { font-size:.9rem; color:#6b7280; line-height:1.55; }

/* FORM SECTION */
.tvs-fsec { background:var(--bg); border-top:1px solid #e5dcc8; padding:0 36px 56px; }
.tvs-ftitle { text-align:center; padding-top:52px; margin-bottom:36px; }
.tvs-ftag { display:inline-block; font-family:'Barlow Condensed',sans-serif; font-size:.76rem; font-weight:700; letter-spacing:4px; text-transform:uppercase; color:var(--gold); background:rgba(201,168,76,.1); border:1.5px solid rgba(201,168,76,.35); border-radius:100px; padding:6px 20px; margin-bottom:14px; }
.tvs-ftitle h3 { font-family:'Playfair Display',serif; font-size:2rem; font-weight:900; color:var(--navy); margin-bottom:8px; }
.tvs-ftitle p { color:var(--text-muted); font-size:.95rem; }
.tvs-divider { width:56px; height:3px; background:linear-gradient(90deg,var(--gold),var(--red)); margin:14px auto 0; border-radius:2px; }

/* FORM CARD */
.tvs-fcard { background:var(--cream); border-radius:20px; border:1.5px solid var(--border); box-shadow:0 4px 6px rgba(0,0,0,.04),0 10px 30px rgba(0,0,0,.07),0 30px 60px rgba(0,0,0,.06); overflow:hidden; max-width:1040px; margin:0 auto; }
.tvs-fhead { background:linear-gradient(135deg,var(--navy) 0%,var(--dark) 100%); padding:20px 32px; display:flex; align-items:center; justify-content:space-between; border-bottom:2px solid var(--gold); }
.tvs-fhead h4 { font-family:'Barlow Condensed',sans-serif; font-weight:700; letter-spacing:3px; font-size:.8rem; text-transform:uppercase; color:var(--gold-light); }
.tvs-prog { display:flex; gap:8px; align-items:center; }
.tvs-dot { width:10px; height:10px; border-radius:50%; background:rgba(201,168,76,.18); border:1.5px solid rgba(201,168,76,.35); transition:all .3s ease; }
.tvs-dot.on { background:var(--gold); border-color:var(--gold); box-shadow:0 0 10px rgba(201,168,76,.55); transform:scale(1.2); }

/* FORM STEPS */
.tvs-fi { padding:40px 44px; }
.tvs-step { display:none; }
.tvs-step.on { display:block; animation:tvsIn .4s cubic-bezier(.4,0,.2,1); }
@keyframes tvsIn { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
.tvs-sh { font-family:'Playfair Display',serif; font-size:1.5rem; color:var(--navy); font-weight:700; margin-bottom:6px; line-height:1.2; }
.tvs-ss { font-size:.92rem; color:var(--text-muted); margin-bottom:28px; padding-bottom:20px; border-bottom:1.5px solid var(--border-light); line-height:1.5; }

/* GRIDS */
.tvs-g { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
.tvs-g.f { grid-template-columns:1fr; }
.tvs-f { display:flex; flex-direction:column; gap:7px; }

/* LABELS */
.tvs-lbl { font-family:'Barlow Condensed',sans-serif; font-size:.82rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--navy); display:flex; align-items:center; gap:5px; }
.tvs-lbl .r { color:var(--red); font-size:.9rem; }
.tvs-lbl .t { font-size:.72rem; font-weight:500; letter-spacing:0; text-transform:none; color:#9ca3af; font-family:'Barlow',sans-serif; background:#f0ead8; padding:2px 9px; border-radius:10px; margin-left:auto; }

/* INPUTS */
.tvs input, .tvs select, .tvs textarea { border:2px solid #ddd5b0; border-radius:10px; padding:13px 16px; font-family:'Barlow',sans-serif; font-size:1rem; color:var(--text); background:#fff; transition:border-color .2s,box-shadow .2s,background .2s; outline:none; width:100%; appearance:none; -webkit-appearance:none; min-height:50px; }
.tvs input:focus, .tvs select:focus, .tvs textarea:focus { border-color:var(--gold); box-shadow:0 0 0 4px rgba(201,168,76,.14); background:#fffef8; }
.tvs input::placeholder, .tvs textarea::placeholder { color:#b0a890; font-weight:400; }
.tvs select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath fill='%231a2744' d='M7 9L2 4h10z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:42px; cursor:pointer; }
.tvs textarea { resize:vertical; min-height:100px; line-height:1.6; }

/* RADIO */
.tvs-rg { display:flex; flex-wrap:wrap; gap:10px; }
.tvs-rg input[type=radio] { display:none; }
.tvs-rg label { cursor:pointer; border:2px solid #ddd5b0; border-radius:10px; padding:11px 18px; font-size:.92rem; font-weight:500; color:#374151; background:#fff; transition:all .2s; display:flex; align-items:center; gap:8px; user-select:none; min-height:48px; line-height:1.2; }
.tvs-rg label:hover { border-color:var(--gold); background:var(--gold-pale); color:var(--navy); }
.tvs-rg input[type=radio]:checked+label { border-color:var(--gold); background:linear-gradient(135deg,#fdf8ec,#fffef8); color:var(--navy); font-weight:700; box-shadow:0 2px 10px rgba(201,168,76,.22); }

/* SCORE BOX */
.tvs-sbox { background:linear-gradient(135deg,var(--navy) 0%,var(--navy2) 100%); border-radius:14px; padding:24px 28px; margin:28px 0; border:1.5px solid rgba(201,168,76,.3); box-shadow:0 8px 24px rgba(26,39,68,.2); }
.tvs-sbox h4 { font-family:'Barlow Condensed',sans-serif; font-weight:700; letter-spacing:2.5px; font-size:.8rem; text-transform:uppercase; color:var(--gold-light); margin-bottom:16px; }
.tvs-bwrap { background:rgba(255,255,255,.07); border-radius:100px; height:18px; overflow:hidden; margin-bottom:14px; border:1px solid rgba(201,168,76,.15); }
.tvs-bfill { height:100%; border-radius:100px; transition:width 1s cubic-bezier(.4,0,.2,1); background:linear-gradient(90deg,var(--gold),var(--gold-light)); width:0%; }
.tvs-smeta { display:flex; justify-content:space-between; align-items:center; }
.tvs-sval { font-family:'Playfair Display',serif; font-size:2.2rem; font-weight:900; color:var(--gold-light); line-height:1; }
.tvs-slbl { font-size:.9rem; color:rgba(245,240,232,.72); max-width:60%; text-align:right; line-height:1.55; }

/* ACTIONS */
.tvs-act { display:flex; justify-content:space-between; align-items:center; margin-top:32px; padding-top:24px; border-top:1.5px solid var(--border-light); gap:12px; }
.tvs-sc { font-size:.82rem; color:#b0aaa0; font-weight:500; white-space:nowrap; }

/* BUTTONS */
.tvs-btn { font-family:'Barlow Condensed',sans-serif; font-size:.95rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; border:none; border-radius:10px; padding:15px 30px; cursor:pointer; transition:all .22s ease; line-height:1; min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.tvs-back { background:#fff; border:2px solid #d1c9a8; color:#9ca3af; min-width:120px; }
.tvs-back:hover { border-color:var(--navy); color:var(--navy); background:#f8f6f0; }
.tvs-next { background:linear-gradient(135deg,var(--navy) 0%,var(--navy2) 100%); color:var(--gold-light); border:2px solid rgba(201,168,76,.35); box-shadow:0 4px 16px rgba(26,39,68,.28); min-width:160px; }
.tvs-next:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(26,39,68,.38); border-color:var(--gold); }
.tvs-submit { background:linear-gradient(135deg,var(--gold) 0%,#b8902a 100%); color:var(--dark); font-weight:800; box-shadow:0 4px 18px rgba(201,168,76,.38); font-size:1rem; padding:16px 40px; min-width:220px; }
.tvs-submit:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(201,168,76,.5); }

/* RESULT */
.tvs-result { display:none; padding:44px 40px; text-align:center; animation:tvsIn .5s ease; }
.tvs-result.on { display:block; }
.tvs-rbadge { width:120px; height:120px; border-radius:50%; margin:0 auto 24px; display:flex; align-items:center; justify-content:center; font-size:3rem; border:4px solid var(--gold); box-shadow:0 0 0 8px rgba(201,168,76,.1),0 12px 32px rgba(0,0,0,.15); }
.tvs-rbadge.alto  { background:linear-gradient(135deg,#1a4a1a,#2d7a2d); }
.tvs-rbadge.medio { background:linear-gradient(135deg,#4a3a10,#8a6e20); }
.tvs-rbadge.baixo { background:linear-gradient(135deg,#4a1a1a,#8a2525); }
.tvs-rtitle { font-family:'Playfair Display',serif; font-size:1.85rem; font-weight:900; color:var(--navy); margin-bottom:10px; line-height:1.2; }
.tvs-rsub { font-family:'Barlow Condensed',sans-serif; font-size:.84rem; letter-spacing:2.5px; text-transform:uppercase; font-weight:700; padding:6px 20px; border-radius:100px; display:inline-block; margin-bottom:20px; }
.tvs-rsub.alto  { background:#e6f4e6; color:#1a6b1a; }
.tvs-rsub.medio { background:#fdf3dc; color:#8a6e20; }
.tvs-rsub.baixo { background:#fde8e8; color:#8a2525; }
.tvs-rscore { background:linear-gradient(135deg,var(--navy),var(--navy2)); border-radius:16px; padding:28px; margin:20px 0; border:1.5px solid rgba(201,168,76,.3); box-shadow:0 8px 24px rgba(26,39,68,.18); }
.tvs-rnum { font-family:'Playfair Display',serif; font-size:4rem; font-weight:900; color:var(--gold-light); line-height:1; }
.tvs-rnuml { font-size:.87rem; color:rgba(245,240,232,.6); margin-top:6px; }
.tvs-rpts { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:22px 0; text-align:left; }
.tvs-rpt { background:#f8f5ec; border-radius:12px; padding:14px 16px; border:1.5px solid #e8dfc4; display:flex; gap:10px; align-items:flex-start; }
.tvs-rpt .d { width:9px; height:9px; border-radius:50%; margin-top:5px; flex-shrink:0; }
.tvs-rpt .d.g { background:#2d7a2d; box-shadow:0 0 6px rgba(45,122,45,.4); }
.tvs-rpt .d.y { background:#c9a84c; box-shadow:0 0 6px rgba(201,168,76,.4); }
.tvs-rpt .d.r { background:#b22234; box-shadow:0 0 6px rgba(178,34,52,.4); }
.tvs-rpt p { font-size:.88rem; color:#374151; line-height:1.55; }
.tvs-rcta { background:linear-gradient(135deg,var(--navy),var(--dark)); border-radius:16px; padding:28px 32px; margin-top:20px; border:2px solid var(--gold); box-shadow:0 8px 32px rgba(201,168,76,.15); }
.tvs-rcta h4 { font-family:'Playfair Display',serif; font-size:1.35rem; color:#fff; font-weight:900; margin-bottom:10px; }
.tvs-rcta p { font-size:.93rem; color:rgba(245,240,232,.72); margin-bottom:22px; line-height:1.65; }

/* FOOTER */
.tvs-foot { background:var(--navy); border-top:3px solid var(--gold); padding:24px 32px; text-align:center; border-radius:0 0 16px 16px; }
.tvs-foot p { font-size:.82rem; color:rgba(245,240,232,.4); font-weight:300; line-height:1.6; }
.tvs-foot img { width:28px; border-radius:50%; vertical-align:middle; margin-right:8px; border:1px solid rgba(255,255,255,.25); opacity:.8; }

/* =====================================================
   MOBILE — 768px
   ===================================================== */
@media (max-width: 768px) {
  .tvs-logo { padding:32px 20px 28px; gap:11px; border-radius:12px 12px 0 0; }
  
  .tvs-logo-nome { font-size:1.65rem; }
  .tvs-logo-sub { font-size:.74rem; letter-spacing:2.5px; }
  .tvs-logo-badge { font-size:.72rem; padding:5px 15px; }
  .tvs-hero { padding:32px 20px 28px; }
  .tvs-hero-grid { grid-template-columns:1fr; gap:0; }
  .tvs-cards { display:none; }
  .tvs-hero h2 { font-size:1.85rem; margin-bottom:12px; }
  .tvs-hero-desc { font-size:.97rem; margin-bottom:18px; }
  .tvs-fsec { padding:0 14px 40px; }
  .tvs-ftitle { padding-top:36px; margin-bottom:26px; }
  .tvs-ftitle h3 { font-size:1.6rem; }
  .tvs-fhead { padding:15px 18px; }
  .tvs-fhead h4 { font-size:.74rem; letter-spacing:2px; }
  .tvs-fi { padding:26px 18px; }
  .tvs-sh { font-size:1.3rem; }
  .tvs-ss { font-size:.88rem; margin-bottom:22px; }
  .tvs-g { grid-template-columns:1fr; gap:15px; margin-bottom:15px; }
  .tvs-lbl { font-size:.8rem; }
  .tvs input, .tvs select, .tvs textarea { font-size:16px; padding:14px 16px; border-radius:12px; min-height:52px; }
  .tvs select { padding-right:44px; }
  .tvs textarea { min-height:108px; }
  .tvs-rg { gap:9px; }
  .tvs-rg label { font-size:.93rem; padding:13px 16px; min-height:50px; border-radius:12px; flex:1 1 calc(50% - 5px); min-width:140px; }
  .tvs-sbox { padding:20px 18px; margin:22px 0; }
  .tvs-sval { font-size:2rem; }
  .tvs-slbl { font-size:.86rem; max-width:58%; }
  .tvs-act { flex-direction:column-reverse; gap:10px; margin-top:26px; padding-top:20px; }
  .tvs-sc { order:-1; text-align:center; }
  .tvs-btn { width:100%; font-size:.9rem; padding:15px 20px; min-height:54px; border-radius:12px; }
  .tvs-back { order:1; }
  .tvs-next { order:0; }
  .tvs-submit { font-size:.95rem; padding:17px 20px; min-height:56px; }
  .tvs-result { padding:32px 18px; }
  .tvs-rpts { grid-template-columns:1fr; }
  .tvs-rbadge { width:100px; height:100px; font-size:2.5rem; }
  .tvs-rtitle { font-size:1.5rem; }
  .tvs-rnum { font-size:3.5rem; }
  .tvs-rcta { padding:22px 20px; }
  .tvs-foot { padding:20px 18px; border-radius:0 0 12px 12px; }
}

/* =====================================================
   MUITO PEQUENO — 420px
   ===================================================== */
@media (max-width: 420px) {
  .tvs-hero h2 { font-size:1.65rem; }
  .tvs-logo-nome { font-size:1.5rem; }
  
  .tvs-fi { padding:22px 14px; }
  .tvs-fsec { padding:0 10px 32px; }
  .tvs-sh { font-size:1.2rem; }
  .tvs-rg label { flex:1 1 100%; }
  .tvs-submit { font-size:.88rem; }
  .tvs-fhead h4 { display:none; }
}
