/* ─────────────────────────────────────────────────────────────────────
   SEP — Super Visa Insurance Cost Calculator
   Vanilla widget mounted into #sep-super-visa-insurance by
   super-visa-insurance.js. Namespaced under .svi- AND scoped to the mount
   id: the page's .article-body styles h3/h4/p/ul/li/a with (0,2,1)
   selectors, which beat a plain class namespace — every rule here carries
   #sep-super-visa-insurance so the widget's own styles always win. Shares
   the SEP --acc-* theme tokens.
   ───────────────────────────────────────────────────────────────────── */

#sep-super-visa-insurance {
  --svi-amber: rgb(var(--acc-amber, 252 188 69));
  --svi-amber-2: rgb(var(--acc-amber-2, 248 176 50));
  --svi-dark: rgb(var(--acc-dark, 37 36 37));
  --svi-gray: rgb(var(--acc-gray, 107 107 107));
  --svi-section: rgb(var(--acc-section, 249 249 249));
  --svi-border: rgb(var(--acc-border, 234 234 235));
  --svi-input-border: rgb(var(--acc-input-border, 213 213 215));
  --svi-amber-soft: #fff6e4;
  --svi-ok: #1f7a4d;
  --svi-ok-soft: #e8f5ee;
  --svi-ok-border: #cfe8db;

  font-family: 'Heebo', system-ui, -apple-system, sans-serif;
  font-weight: 400;
  line-height: 1.5;
  color: var(--svi-gray);
  max-width: 760px;
  margin: 0 auto;
  -webkit-font-smoothing: antialiased;
  text-align: left;
}
#sep-super-visa-insurance *, #sep-super-visa-insurance *::before, #sep-super-visa-insurance *::after { box-sizing: border-box; }
#sep-super-visa-insurance p, #sep-super-visa-insurance h3, #sep-super-visa-insurance h4, #sep-super-visa-insurance ul, #sep-super-visa-insurance li, #sep-super-visa-insurance fieldset, #sep-super-visa-insurance legend { margin: 0; padding: 0; }
#sep-super-visa-insurance ul, #sep-super-visa-insurance li { list-style: none; }
#sep-super-visa-insurance li { line-height: inherit; }
#sep-super-visa-insurance fieldset { border: 0; min-width: 0; }
#sep-super-visa-insurance button, #sep-super-visa-insurance input, #sep-super-visa-insurance select { font-family: inherit; }
#sep-super-visa-insurance [hidden] { display: none !important; }
#sep-super-visa-insurance svg { flex: 0 0 auto; }

#sep-super-visa-insurance .svi-card { background: #fff; border: 1px solid var(--svi-border); border-radius: 16px; box-shadow: 0 18px 50px -30px rgba(37,36,37,.35); overflow: hidden; }

/* ── Head ─────────────────────────────────────────────────────────── */
#sep-super-visa-insurance .svi-head { padding: 28px 28px 20px; border-bottom: 1px solid var(--svi-border); background: linear-gradient(180deg,#fff 0%,var(--svi-section) 100%); }
#sep-super-visa-insurance .svi-eyebrow { display: inline-flex; align-items: center; gap: 7px; background: var(--svi-amber); color: var(--svi-dark); font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .7px; text-transform: uppercase; padding: 5px 11px; border-radius: 999px; line-height: 1; }
#sep-super-visa-insurance .svi-eyebrow svg { width: 13px; height: 13px; }
#sep-super-visa-insurance .svi-title { font-family: 'Inter', sans-serif; font-size: 24px; font-weight: 700; line-height: 1.25; color: var(--svi-dark); margin-top: 12px !important; }
#sep-super-visa-insurance .svi-sub { font-size: 15px; line-height: 1.6; margin-top: 8px !important; max-width: 62ch; }
#sep-super-visa-insurance .svi-sub b { color: var(--svi-dark); font-weight: 600; }
@media (min-width: 640px) { #sep-super-visa-insurance .svi-title { font-size: 27px; } }

/* ── Form ─────────────────────────────────────────────────────────── */
#sep-super-visa-insurance .svi-body { padding: 22px 28px 6px; display: flex; flex-direction: column; gap: 18px; }
#sep-super-visa-insurance .svi-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
#sep-super-visa-insurance .svi-label { font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 700; color: var(--svi-dark); letter-spacing: .2px; }
#sep-super-visa-insurance .svi-hint { font-size: 13px; line-height: 1.5; color: var(--svi-gray); }
#sep-super-visa-insurance .svi-hint b { color: var(--svi-dark); font-weight: 600; }
#sep-super-visa-insurance .svi-ages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
#sep-super-visa-insurance .svi-ages + .svi-hint { margin-top: -10px; }
#sep-super-visa-insurance .svi-row2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }

#sep-super-visa-insurance .svi-input {
  width: 100%; min-width: 0; height: 48px; padding: 0 14px; border: 1.5px solid var(--svi-input-border);
  border-radius: 12px; font-size: 16px; color: var(--svi-dark); background: #fff;
  appearance: none; -webkit-appearance: none; -moz-appearance: textfield;
}
#sep-super-visa-insurance .svi-input::-webkit-outer-spin-button, #sep-super-visa-insurance .svi-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
#sep-super-visa-insurance .svi-input::placeholder { color: #9a9a9a; }
#sep-super-visa-insurance .svi-input:focus { outline: none; border-color: var(--svi-amber-2); box-shadow: 0 0 0 3px rgba(248,176,50,.18); }
#sep-super-visa-insurance .svi-select {
  padding-right: 40px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6b6b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 16px;
}

/* Segmented radio control */
#sep-super-visa-insurance .svi-seg { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 6px; padding: 4px; background: var(--svi-section); border: 1px solid var(--svi-border); border-radius: 12px; }
#sep-super-visa-insurance .svi-seg-opt { position: relative; display: block; min-width: 0; }
#sep-super-visa-insurance .svi-seg-opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
#sep-super-visa-insurance .svi-seg-opt span {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 42px; padding: 7px 8px;
  border-radius: 9px; font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; color: var(--svi-dark);
  text-align: center; line-height: 1.2; cursor: pointer; transition: background .15s, box-shadow .15s;
}
#sep-super-visa-insurance .svi-seg-opt span small { font-size: 10.5px; font-weight: 600; color: var(--svi-gray); letter-spacing: .2px; }
#sep-super-visa-insurance .svi-seg-opt:hover span { background: #fff; }
#sep-super-visa-insurance .svi-seg-opt input:checked + span { background: var(--svi-dark); color: #fff; box-shadow: 0 6px 14px -8px rgba(37,36,37,.6); }
#sep-super-visa-insurance .svi-seg-opt input:checked + span small { color: rgba(255,255,255,.75); }
#sep-super-visa-insurance .svi-seg-opt input:focus-visible + span { outline: 2px solid var(--svi-amber-2); outline-offset: 2px; }

@media (max-width: 560px) {
  #sep-super-visa-insurance .svi-head { padding: 22px 18px 16px; }
  #sep-super-visa-insurance .svi-body { padding: 18px 16px 4px; }
  #sep-super-visa-insurance .svi-row2 { grid-template-columns: minmax(0, 1fr); }
  #sep-super-visa-insurance .svi-seg-4 { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ── Results ──────────────────────────────────────────────────────── */
#sep-super-visa-insurance .svi-results { padding: 16px 28px 24px; display: flex; flex-direction: column; gap: 14px; }
@media (max-width: 560px) { #sep-super-visa-insurance .svi-results { padding: 14px 16px 20px; } }
#sep-super-visa-insurance .svi-status { display: flex; align-items: center; gap: 10px; font-size: 13.5px; min-height: 22px; }
#sep-super-visa-insurance .svi-spinner { width: 18px; height: 18px; border: 2.5px solid var(--svi-input-border); border-top-color: var(--svi-amber-2); border-radius: 50%; animation: svi-spin .7s linear infinite; }
@keyframes svi-spin { to { transform: rotate(360deg); } }
#sep-super-visa-insurance .svi-summary { font-size: 14px; line-height: 1.5; padding-top: 14px; border-top: 1px dashed var(--svi-border); }
#sep-super-visa-insurance .svi-summary b { color: var(--svi-dark); font-family: 'Inter', sans-serif; }

#sep-super-visa-insurance .svi-empty { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px; border-radius: 12px; background: var(--svi-section); border: 1px solid var(--svi-border); font-size: 14px; line-height: 1.55; }
#sep-super-visa-insurance .svi-empty svg { width: 20px; height: 20px; color: var(--svi-amber-2); margin-top: 1px; }
#sep-super-visa-insurance .svi-empty b { display: block; color: var(--svi-dark); font-family: 'Inter', sans-serif; font-size: 14.5px; margin-bottom: 2px; }

#sep-super-visa-insurance .svi-plan { position: relative; border: 1px solid var(--svi-border); border-radius: 14px; padding: 18px 20px; background: #fff; }
#sep-super-visa-insurance .svi-plan.is-best { border-color: var(--svi-amber-2); box-shadow: 0 0 0 3px rgba(248,176,50,.14); }
#sep-super-visa-insurance .svi-best { position: absolute; top: -11px; left: 18px; background: var(--svi-amber); color: var(--svi-dark); font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; }
#sep-super-visa-insurance .svi-plan-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
#sep-super-visa-insurance .svi-plan-name { font-family: 'Inter', sans-serif; font-size: 17px; font-weight: 700; color: var(--svi-dark); line-height: 1.3; }
#sep-super-visa-insurance .svi-plan-name span { font-weight: 500; color: var(--svi-gray); }
#sep-super-visa-insurance .svi-plan-uw { font-size: 12.5px; margin-top: 2px !important; }
#sep-super-visa-insurance .svi-tag { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 700; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--svi-border); background: #f0f0f1; color: var(--svi-gray); }
#sep-super-visa-insurance .svi-tag svg { width: 13px; height: 13px; }
#sep-super-visa-insurance .svi-tag-ok { background: var(--svi-ok-soft); border-color: var(--svi-ok-border); color: var(--svi-ok); }

#sep-super-visa-insurance .svi-price { display: flex; align-items: baseline; gap: 6px; margin-top: 12px; flex-wrap: wrap; }
#sep-super-visa-insurance .svi-amt { font-family: 'Inter', sans-serif; font-size: 28px; font-weight: 800; color: var(--svi-dark); letter-spacing: -.3px; font-variant-numeric: tabular-nums; }
#sep-super-visa-insurance .svi-per { font-size: 14px; }
#sep-super-visa-insurance .svi-alt { font-size: 13.5px; line-height: 1.5; margin-top: 6px !important; }
#sep-super-visa-insurance .svi-alt b { color: var(--svi-dark); }

#sep-super-visa-insurance .svi-steps { margin-top: 12px !important; border: 1px solid var(--svi-border); border-radius: 12px; overflow: hidden; }
#sep-super-visa-insurance .svi-steps li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 10px 14px; border-bottom: 1px solid var(--svi-border); font-size: 14px; }
#sep-super-visa-insurance .svi-steps li:last-child { border-bottom: 0; }
#sep-super-visa-insurance .svi-steps li span { color: var(--svi-dark); font-weight: 500; }
#sep-super-visa-insurance .svi-steps li b { color: var(--svi-dark); font-family: 'Inter', sans-serif; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
#sep-super-visa-insurance .svi-steps li em { grid-column: 1 / -1; font-style: normal; font-size: 12.5px; color: var(--svi-gray); }
#sep-super-visa-insurance .svi-steps .svi-steps-total { background: var(--svi-section); }

#sep-super-visa-insurance .svi-people { font-size: 13px; margin-top: 10px !important; }
#sep-super-visa-insurance .svi-notes { margin-top: 10px !important; display: flex; flex-direction: column; gap: 4px; }
#sep-super-visa-insurance .svi-notes li { position: relative; padding-left: 14px; font-size: 13px; line-height: 1.5; }
#sep-super-visa-insurance .svi-notes li::before { content: ''; position: absolute; left: 2px; top: .62em; width: 5px; height: 5px; border-radius: 50%; background: var(--svi-amber-2); }
#sep-super-visa-insurance .svi-src { font-size: 12.5px; margin-top: 12px !important; padding-top: 10px; border-top: 1px dashed var(--svi-border); }
#sep-super-visa-insurance .svi-src a { color: var(--svi-dark); font-weight: 600; text-decoration: underline; text-decoration-color: var(--svi-amber-2); text-underline-offset: 2px; display: inline-flex; align-items: center; gap: 4px; }
#sep-super-visa-insurance .svi-src a svg { width: 12px; height: 12px; }

#sep-super-visa-insurance .svi-unavail { border: 1px solid var(--svi-border); border-radius: 12px; background: var(--svi-section); padding: 12px 16px; font-size: 13.5px; }
#sep-super-visa-insurance .svi-unavail summary { cursor: pointer; color: var(--svi-dark); font-family: 'Inter', sans-serif; font-weight: 600; }
#sep-super-visa-insurance .svi-unavail ul { margin-top: 10px !important; display: flex; flex-direction: column; gap: 6px; }
#sep-super-visa-insurance .svi-unavail li { line-height: 1.5; }
#sep-super-visa-insurance .svi-unavail li b { color: var(--svi-dark); font-weight: 600; }

/* ── Footer ───────────────────────────────────────────────────────── */
#sep-super-visa-insurance .svi-foot { padding: 0 28px 26px; display: flex; flex-direction: column; gap: 14px; }
@media (max-width: 560px) { #sep-super-visa-insurance .svi-foot { padding: 0 16px 22px; } }
#sep-super-visa-insurance .svi-ircc { border-radius: 12px; background: var(--svi-amber-soft); border: 1px solid #f5dfae; padding: 14px 16px; font-size: 13.5px; line-height: 1.55; }
#sep-super-visa-insurance .svi-ircc > b { display: block; color: var(--svi-dark); font-family: 'Inter', sans-serif; font-size: 14px; margin-bottom: 6px; }
#sep-super-visa-insurance .svi-ircc li { position: relative; padding-left: 20px; margin-top: 3px; }
#sep-super-visa-insurance .svi-ircc li::before { content: ''; position: absolute; left: 3px; top: .45em; width: 9px; height: 5px; border-left: 2px solid var(--svi-ok); border-bottom: 2px solid var(--svi-ok); transform: rotate(-45deg); }
#sep-super-visa-insurance .svi-ircc li b { color: var(--svi-dark); font-weight: 600; }
#sep-super-visa-insurance .svi-cta { display: block; text-align: center; background: var(--svi-dark); color: #fff !important; text-decoration: none !important; font-family: 'Inter', sans-serif; font-size: 14.5px; font-weight: 700; padding: 14px 18px; border-radius: 12px; transition: background .15s; }
#sep-super-visa-insurance .svi-cta:hover { background: #000; }
#sep-super-visa-insurance .svi-disclaimer { font-size: 12px; line-height: 1.55; color: var(--svi-gray); }
#sep-super-visa-insurance .svi-disclaimer b { color: var(--svi-dark); font-weight: 600; }
