.jaunt-visa-tool {
  --navy: #1b2f63;
  --wine: #b62044;
  --orange: #de7d24;
  --bg: #ecf1f7;
  --card: #f8f8f6;
  --text: #1f2a3d;
  --line: #ced6e1;
  --danger: #b42318;
  --warn: #b54708;
  --ok: #13795b;
}
.jaunt-visa-tool * { box-sizing: border-box; }
.jaunt-visa-tool .page { max-width: 1120px; margin: 24px auto; padding: 0 12px; }
.jaunt-visa-tool .tool-card { border-radius: 22px; background: var(--card); border: 1px solid #d4dbe5; overflow: hidden; color: var(--text); }
.jaunt-visa-tool .tool-header { padding: 28px 30px; color: #fff; background: linear-gradient(120deg, #25356a 8%, #bf2746 92%); }
.jaunt-visa-tool .tool-header h1 { margin: 0 0 8px; font-size: 2rem; color: #fff; }
.jaunt-visa-tool .tool-header p { margin: 0; font-size: 1.2rem; opacity: .95; }
.jaunt-visa-tool #wizard-view, .jaunt-visa-tool #result-view { padding: 26px 30px 32px; }
.jaunt-visa-tool .progress-label { display: flex; justify-content: space-between; margin-bottom: 8px; font-weight: 600; color: var(--navy); }
.jaunt-visa-tool .progress-bar { height: 9px; background: #dbe4f0; border-radius: 30px; overflow: hidden; }
.jaunt-visa-tool .progress-bar span { display: block; height: 100%; width: 20%; background: linear-gradient(120deg, var(--navy), var(--wine)); }
.jaunt-visa-tool .form-step { display: none; }
.jaunt-visa-tool .form-step.active { display: block; }
.jaunt-visa-tool h2 { color: var(--navy); margin: 20px 0 14px; }
.jaunt-visa-tool h3 { margin: 18px 0 10px; color: #2d436f; }
.jaunt-visa-tool .grid-2 { display: grid; gap: 14px 20px; grid-template-columns: repeat(2, minmax(0,1fr)); }
.jaunt-visa-tool label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 1rem; color: #1f3566; }
.jaunt-visa-tool input, .jaunt-visa-tool select { width: 100%; padding: 13px 14px; border-radius: 14px; border: 1px solid #c7ced8; background: #fff; font-size: 1rem; }
.jaunt-visa-tool .nav-actions { margin-top: 22px; display: flex; gap: 10px; }
.jaunt-visa-tool button { background: var(--orange); border: none; color: #fff; font-weight: 700; padding: 12px 18px; border-radius: 999px; cursor: pointer; }
.jaunt-visa-tool button.ghost { background: transparent; border: 1px solid #9eaec5; color: #31466f; }
.jaunt-visa-tool .hidden { display: none !important; }
.jaunt-visa-tool .conditional { margin-top: 8px; padding: 10px 12px; background: #eef3fa; border: 1px solid #d6deea; border-radius: 14px; }
.jaunt-visa-tool .result-summary { display: grid; grid-template-columns: 1.1fr 1fr; gap: 16px; }
.jaunt-visa-tool .stat-card, .jaunt-visa-tool .detail-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 16px; }
.jaunt-visa-tool .score { font-size: 2.3rem; font-weight: 800; color: var(--navy); margin: 0; }
.jaunt-visa-tool .tag { display: inline-block; margin-top: 8px; padding: 7px 10px; border-radius: 999px; font-weight: 700; }
.jaunt-visa-tool .tag.ok { background: #e7f7f1; color: var(--ok); }
.jaunt-visa-tool .tag.warn { background: #fff4e5; color: var(--warn); }
.jaunt-visa-tool .tag.danger { background: #fde9e7; color: var(--danger); }
.jaunt-visa-tool ul { margin: 8px 0 0; padding-left: 19px; }
.jaunt-visa-tool .cta { margin-top: 18px; background: #fff8ef; border: 1px solid #f6d4ad; border-radius: 16px; padding: 14px; }
.jaunt-visa-tool .cta strong { color: #8f4a0f; }

@media (max-width: 800px) {
  .jaunt-visa-tool .grid-2, .jaunt-visa-tool .result-summary { grid-template-columns: 1fr; }
  .jaunt-visa-tool .tool-header h1 { font-size: 1.55rem; }
}

.help-note{margin:10px 0;color:#344e78;font-size:.95rem;}
.info-note{margin:10px 0;padding:10px 12px;background:#e9f5ff;border:1px solid #c4dff7;border-radius:10px;color:#11416f;}
.warning-note{margin:10px 0;padding:10px 12px;background:#fde9e7;border:1px solid #f2c6c2;border-radius:10px;color:#9a1f16;font-weight:600;}

.jaunt-visa-tool .step-summary { margin: -6px 0 16px; max-width: 72ch; color: #5b6d88; line-height: 1.55; font-size: .98rem; }
.jaunt-visa-tool .result-reset-btn { margin-top: 14px; }


.jaunt-visa-tool label[title] { position: relative; }
.jaunt-visa-tool label[title]::before {
  content: "";
  position: absolute;
  top: 11px;
  right: 12px;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #d9e6f7;
  color: #27436f;
  box-shadow: inset 0 0 0 1px #afc3df;
}
.jaunt-visa-tool label[title]::after {
  content: "i";
  position: absolute;
  top: 10px;
  right: 18px;
  font-size: 12px;
  font-weight: 800;
  color: #27436f;
  pointer-events: none;
}
.jaunt-visa-tool label[title]:hover::before,
.jaunt-visa-tool label[title]:focus-within::before {
  content: attr(title);
  width: min(220px, calc(100vw - 96px));
  height: auto;
  top: calc(100% + 8px);
  right: 0;
  padding: 10px 12px;
  border-radius: 12px;
  background: #1f3566;
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.45;
  box-shadow: 0 10px 26px rgba(17, 33, 61, 0.2);
  z-index: 20;
}
.jaunt-visa-tool label[title]:hover::after,
.jaunt-visa-tool label[title]:focus-within::after {
  content: "";
  top: calc(100% + 2px);
  right: 16px;
  width: 14px;
  height: 14px;
  background: #1f3566;
  transform: rotate(45deg);
}

.jaunt-visa-tool .conditional label[title]:hover::before,
.jaunt-visa-tool .conditional label[title]:focus-within::before {
  top: auto;
  bottom: calc(100% + 16px);
}

.jaunt-visa-tool .conditional label[title]:hover::after,
.jaunt-visa-tool .conditional label[title]:focus-within::after {
  top: auto;
  bottom: calc(100% + 10px);
}
