/* RoamVisa Trip Cost Calculator — shared styles v2.1 (Passport Blue)
   All rules scoped under .rv-calc so they can't leak into your theme.
   Fonts and radius inherit the theme's tokens when present. */

.rv-calc, .rv-calc * { box-sizing: border-box; }

.rv-calc {
  --ink:#0B1F33; --mut:#5B6B7C; --line:rgba(11,31,51,.12); --surf:#F4F7FB;
  --acc:#1668B8; --accdeep:#0F4F8F; --accbg:#DCEEF9; --sky:#7FD1E8;
  --coral:#FF6A3D; --coraldeep:#E14E22; --hl:#FFF1E9; --hlline:#FFD3BE;
  --navy:#0B1F33;
  font-family:var(--font-sans,'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif);
  color:var(--ink); max-width:100%; margin:0 auto; line-height:1.55; font-size:16px;
}

.rv-calc h2 { font-family:var(--font-serif,'Instrument Serif',Georgia,serif); font-weight:400; font-size:30px; margin:0 0 6px; line-height:1.15; color:var(--ink); }
.rv-calc h3 { font-size:15px; font-weight:700; margin:0 0 4px; color:var(--ink); }
.rv-calc .rvc-sub { color:var(--mut); font-size:14.5px; margin:0 0 22px; }

.rv-calc .rvc-card { border:1px solid var(--line); border-radius:18px; padding:26px; background:#fff; box-shadow:0 10px 30px rgba(11,31,51,.07); }

.rv-calc .rvc-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; }
.rv-calc .rvc-f-wide { grid-column:1/-1; }
.rv-calc label { display:block; font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--mut); margin:0 0 6px; }

.rv-calc select,
.rv-calc input[type=number] {
  width:100%; height:44px; padding:0 12px; font-size:15px; font-family:inherit;
  color:var(--ink); border:1px solid var(--line); border-radius:10px; background:#fff;
  -webkit-appearance:none; appearance:none;
}
.rv-calc select {
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%235B6B7C' stroke-width='1.6' fill='none' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat; background-position:right 12px center; padding-right:32px;
}
.rv-calc select:focus, .rv-calc input:focus {
  outline:none; border-color:var(--acc); box-shadow:0 0 0 3px rgba(22,104,184,.16);
}

.rv-calc .rvc-seg { display:flex; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.rv-calc .rvc-seg button {
  flex:1; height:44px; border:0; background:#fff; font-family:inherit; font-size:14px;
  color:var(--mut); cursor:pointer; border-right:1px solid var(--line);
}
.rv-calc .rvc-seg button:last-child { border-right:0; }
.rv-calc .rvc-seg button[aria-pressed=true] { background:var(--accbg); color:var(--accdeep); font-weight:700; }

/* country-specific module block */
.rv-calc .rvc-mod {
  margin-top:20px; padding:18px; border:1px solid var(--line);
  border-radius:14px; background:var(--surf);
}
.rv-calc .rvc-mod h3 { font-size:15px; }
.rv-calc .rvc-modintro { font-size:13px; color:var(--mut); margin:0 0 14px; }

.rv-calc .rvc-chips { display:flex; flex-wrap:wrap; gap:8px; }
.rv-calc .rvc-chip {
  border:1px solid var(--line); background:#fff; border-radius:999px;
  padding:8px 14px; font-family:inherit; font-size:13.5px; color:var(--ink); cursor:pointer;
}
.rv-calc .rvc-chip .rvc-chip-c { color:var(--mut); font-size:12.5px; }
.rv-calc .rvc-chip[aria-pressed=true] { background:var(--accbg); border-color:var(--acc); color:var(--accdeep); font-weight:700; }
.rv-calc .rvc-chip[aria-pressed=true] .rvc-chip-c { color:var(--accdeep); }

.rv-calc .rvc-check { display:flex; align-items:center; gap:9px; font-size:14.5px; color:var(--ink); font-weight:400; letter-spacing:0; text-transform:none; cursor:pointer; }
.rv-calc .rvc-check input { width:18px; height:18px; accent-color:var(--acc); }

/* the number — dark band, same family as the theme's insurance section */
.rv-calc .rvc-hero { margin:24px 0 0; padding:26px 20px; background:var(--navy); border-radius:16px; text-align:center; color:#fff; }
.rv-calc .rvc-total { font-size:46px; font-weight:700; letter-spacing:-.02em; line-height:1.05; font-variant-numeric:tabular-nums; color:#fff; }
.rv-calc .rvc-heroline { color:rgba(255,255,255,.66); font-size:14px; margin-top:8px; }
.rv-calc .rvc-pills { display:flex; gap:10px; justify-content:center; margin-top:16px; flex-wrap:wrap; }
.rv-calc .rvc-pill { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.8); border-radius:999px; padding:7px 15px; font-size:13px; }
.rv-calc .rvc-pill b { font-variant-numeric:tabular-nums; color:#fff; }

/* the country-specific payoff line — this is the shareable bit */
.rv-calc .rvc-insights { margin-top:14px; display:grid; gap:8px; }
.rv-calc .rvc-insight {
  background:var(--hl); border:1px solid var(--hlline); border-radius:12px;
  padding:13px 15px; font-size:14px; line-height:1.5;
}
.rv-calc .rvc-insight b { font-weight:700; }
.rv-calc .rvc-ibadge {
  display:inline-block; background:var(--coraldeep); color:#fff; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em; padding:3px 8px; border-radius:6px; margin-right:7px;
}

.rv-calc table { width:100%; border-collapse:collapse; margin-top:24px; font-size:15px; }
.rv-calc th {
  text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--mut); font-weight:700; padding:0 0 9px; border-bottom:1px solid var(--line);
}
.rv-calc th:last-child, .rv-calc td:last-child { text-align:right; }
.rv-calc td { padding:13px 0; border-bottom:1px solid var(--line); vertical-align:top; }
.rv-calc tr.rvc-hl td { background:var(--hl); padding-left:12px; padding-right:12px; }
.rv-calc tr.rvc-hl td:first-child { border-radius:10px 0 0 10px; }
.rv-calc tr.rvc-hl td:last-child { border-radius:0 10px 10px 0; }
.rv-calc .rvc-item { font-weight:600; }
.rv-calc .rvc-note { display:block; color:var(--mut); font-size:12.5px; margin-top:2px; }
.rv-calc .rvc-amt { font-variant-numeric:tabular-nums; font-weight:600; white-space:nowrap; }
.rv-calc tr.rvc-sum td { border-bottom:0; padding-top:18px; font-size:19px; font-weight:700; }

.rv-calc a.rvc-cta { display:inline-block; margin-top:5px; font-size:12.5px; color:var(--acc); text-decoration:none; font-weight:700; }
.rv-calc a.rvc-cta:hover { color:var(--accdeep); text-decoration:underline; }

.rv-calc .rvc-actions { display:flex; gap:10px; margin-top:22px; flex-wrap:wrap; }
.rv-calc .rvc-btn {
  flex:1; min-width:170px; height:48px; border-radius:999px; border:1px solid var(--line);
  background:#fff; color:var(--ink); font-family:inherit; font-size:14.5px; font-weight:700;
  cursor:pointer; display:flex; align-items:center; justify-content:center; text-decoration:none;
}
.rv-calc .rvc-btn.rvc-pri { background:var(--coral); border-color:var(--coral); color:#fff; }
.rv-calc .rvc-btn.rvc-pri:hover { background:var(--coraldeep); border-color:var(--coraldeep); }
.rv-calc .rvc-btn:hover { border-color:var(--acc); color:var(--accdeep); }

.rv-calc details { margin-top:20px; font-size:13.5px; color:var(--mut); }
.rv-calc summary { cursor:pointer; font-weight:700; color:var(--ink); font-size:14px; }
.rv-calc details p, .rv-calc details li { margin:8px 0; }
.rv-calc .rvc-stamp { font-size:12px; color:var(--mut); margin-top:14px; }
.rv-calc .rvc-err { color:#a32d2d; font-size:14px; }

@media (max-width:520px) {
  .rv-calc .rvc-total { font-size:36px; }
  .rv-calc h2 { font-size:25px; }
  .rv-calc .rvc-card { padding:18px; }
  .rv-calc .rvc-mod { padding:14px; }
}
