/* Expat Healthcare 360 — Quote Form. Scoped under .eh360-quote so it does not leak into the theme. */
.eh360-quote {
  --eh360-brand-900: #13302a;
  --eh360-brand-800: #1b4332;
  --eh360-brand-700: #234e39;
  --eh360-brand-100: #dceae0;
  --eh360-brand-50:  #f1f7f3;
  --eh360-accent:    #d4a017;
  --eh360-slate-900: #0f172a;
  --eh360-slate-700: #334155;
  --eh360-slate-600: #475569;
  --eh360-slate-500: #64748b;
  --eh360-slate-300: #cbd5e1;
  --eh360-slate-200: #e2e8f0;
  --eh360-slate-100: #f1f5f9;
  --eh360-white: #ffffff;
  --eh360-radius: 12px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: var(--eh360-slate-700);
  line-height: 1.5;
  box-sizing: border-box;
}
.eh360-quote *, .eh360-quote *::before, .eh360-quote *::after { box-sizing: inherit; }

.eh360-quote__inner {
  max-width: 880px;
  margin: 0 auto;
  background: var(--eh360-white);
  border-radius: 16px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);
  border: 1px solid var(--eh360-slate-100);
  padding: 32px;
}

.eh360-loading, .eh360-error {
  text-align: center;
  padding: 32px;
  color: var(--eh360-slate-600);
}
.eh360-error {
  color: #b91c1c;
  background: #fef2f2;
  border-radius: 8px;
}

/* Steps indicator */
.eh360-steps { margin-bottom: 32px; }
.eh360-steps__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  position: relative;
}
.eh360-steps__list::before {
  content: '';
  position: absolute;
  top: 18px;
  left: 12.5%;
  right: 12.5%;
  height: 2px;
  background: var(--eh360-slate-200);
  border-radius: 1px;
  z-index: 0;
}
.eh360-steps__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  position: relative;
  z-index: 1;
}
.eh360-steps__num {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  background: var(--eh360-white);
  border: 2px solid var(--eh360-slate-300);
  color: var(--eh360-slate-500);
  transition: background .2s, border-color .2s, color .2s;
}
.eh360-steps__label {
  font-size: 12px;
  color: var(--eh360-slate-500);
  max-width: 12rem;
  line-height: 1.3;
}
.eh360-steps__item.is-current .eh360-steps__num,
.eh360-steps__item.is-done .eh360-steps__num {
  border-color: var(--eh360-brand-700);
  color: var(--eh360-brand-700);
}
.eh360-steps__item.is-done .eh360-steps__num {
  background: var(--eh360-brand-700);
  color: var(--eh360-white);
}
.eh360-steps__item.is-current .eh360-steps__label {
  color: var(--eh360-brand-900);
  font-weight: 600;
}

/* Step container */
.eh360-step__header { margin-bottom: 20px; }
.eh360-step__header h2 {
  margin: 0 0 6px;
  font-size: 22px;
  color: var(--eh360-brand-900);
  font-weight: 700;
  line-height: 1.2;
}
.eh360-step__header p {
  margin: 0;
  color: var(--eh360-slate-600);
  font-size: 14px;
}

.eh360-section {
  margin: 24px 0 0;
  padding: 0;
  border: none;
}
.eh360-section legend {
  font-size: 13px;
  font-weight: 600;
  color: var(--eh360-brand-900);
  margin-bottom: 10px;
  padding: 0;
}
.eh360-section--callout {
  background: var(--eh360-brand-50);
  border: 1px solid var(--eh360-brand-100);
  border-radius: 12px;
  padding: 20px;
}

.eh360-note {
  margin: 8px 0 0;
  font-size: 12px;
  color: var(--eh360-slate-500);
}

/* Fields */
.eh360-grid { display: grid; gap: 16px; }
.eh360-grid--2 { grid-template-columns: 1fr 1fr; }
.eh360-grid--3 { grid-template-columns: 1fr 1fr 1fr; }
.eh360-field--full { grid-column: 1 / -1; }

.eh360-field {
  display: flex;
  flex-direction: column;
}
.eh360-field > span {
  font-size: 13px;
  font-weight: 500;
  color: var(--eh360-slate-600);
  margin-bottom: 4px;
}
.eh360-field input,
.eh360-field select,
.eh360-select {
  width: 100%;
  padding: 10px 12px;
  font-size: 14px;
  font-family: inherit;
  color: var(--eh360-slate-900);
  background: var(--eh360-white);
  border: 1px solid var(--eh360-slate-200);
  border-radius: 8px;
}
.eh360-field input:focus,
.eh360-field select:focus,
.eh360-select:focus {
  outline: none;
  border-color: var(--eh360-brand-700);
  box-shadow: 0 0 0 3px rgba(35, 78, 57, .15);
}
.eh360-select--small { max-width: 220px; }
.eh360-input--small { max-width: 220px; }

/* Buttons */
.eh360-actions {
  margin-top: 24px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  align-items: center;
}
.eh360-actions > span { flex: 0 0 1px; }
.eh360-btn {
  appearance: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  padding: 12px 20px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background .2s, transform .05s;
}
.eh360-btn:disabled { opacity: .55; cursor: not-allowed; }
.eh360-btn:active:not(:disabled) { transform: translateY(1px); }
.eh360-btn--primary {
  background: var(--eh360-brand-800);
  color: var(--eh360-white);
}
.eh360-btn--primary:hover:not(:disabled) { background: var(--eh360-brand-700); }
.eh360-btn--secondary {
  background: var(--eh360-brand-100);
  color: var(--eh360-brand-900);
}
.eh360-btn--secondary:hover:not(:disabled) { background: var(--eh360-brand-50); }

/* Plan cards */
.eh360-plans {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.eh360-plan {
  appearance: none;
  cursor: pointer;
  background: var(--eh360-white);
  border: 1px solid var(--eh360-slate-200);
  border-radius: 12px;
  padding: 20px 16px;
  text-align: center;
  font-family: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  position: relative;
  transition: border-color .2s, box-shadow .2s;
}
.eh360-plan:hover { box-shadow: 0 8px 20px rgba(15, 23, 42, .08); border-color: var(--eh360-brand-100); }
.eh360-plan.is-selected {
  border-color: var(--eh360-brand-700);
  box-shadow: 0 0 0 2px var(--eh360-brand-700) inset;
}
.eh360-plan__badge {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--eh360-brand-700);
  color: var(--eh360-white);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
  white-space: nowrap;
}
.eh360-plan__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--eh360-brand-100);
  color: var(--eh360-brand-700);
}
.eh360-plan.is-selected .eh360-plan__icon {
  background: var(--eh360-brand-700);
  color: var(--eh360-white);
}
.eh360-plan__name {
  font-weight: 600;
  color: var(--eh360-brand-900);
  font-size: 15px;
}
.eh360-plan__cover {
  font-size: 11px;
  color: var(--eh360-slate-500);
}
.eh360-plan__features {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  text-align: left;
  width: 100%;
}
.eh360-plan__features li {
  font-size: 12px;
  color: var(--eh360-slate-600);
  margin: 3px 0;
}
.eh360-plan__select {
  margin-top: auto;
  width: 100%;
  padding: 8px 0;
  border: 1px solid var(--eh360-brand-100);
  color: var(--eh360-brand-800);
  border-radius: 8px;
  font-weight: 600;
  font-size: 13px;
}
.eh360-plan.is-selected .eh360-plan__select {
  background: var(--eh360-brand-700);
  border-color: var(--eh360-brand-700);
  color: var(--eh360-white);
}

/* Applicant cards */
.eh360-applicants { display: flex; flex-direction: column; gap: 14px; }
.eh360-applicant {
  background: rgba(241, 247, 243, .55);
  border: 1px solid var(--eh360-slate-200);
  border-radius: 10px;
  padding: 18px;
}
.eh360-applicant__head {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--eh360-brand-800);
  margin-bottom: 12px;
}
.eh360-applicant__num {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--eh360-brand-700);
  color: var(--eh360-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
}

/* Toggle cards (evacuation / co-insurance) */
.eh360-toggles { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; }
.eh360-toggle {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--eh360-slate-200);
  border-radius: 12px;
  background: var(--eh360-white);
  cursor: pointer;
}
.eh360-toggle:has(input:checked) {
  border-color: var(--eh360-brand-700);
  background: var(--eh360-brand-50);
}
.eh360-toggle__icon {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: var(--eh360-brand-100);
  color: var(--eh360-brand-700);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.eh360-toggle:has(input:checked) .eh360-toggle__icon {
  background: var(--eh360-brand-700);
  color: var(--eh360-white);
}
.eh360-toggle__body { flex: 1; min-width: 0; }
.eh360-toggle__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.eh360-toggle__title {
  font-weight: 600;
  color: var(--eh360-brand-900);
  font-size: 14px;
}
.eh360-toggle__price {
  font-size: 12px;
  font-weight: 600;
  color: var(--eh360-slate-600);
  white-space: nowrap;
}
.eh360-toggle__price.is-positive { color: var(--eh360-brand-700); }
.eh360-toggle__desc {
  display: block;
  font-size: 13px;
  color: var(--eh360-slate-600);
  margin-top: 4px;
}
.eh360-toggle input[type=checkbox] {
  width: 18px;
  height: 18px;
  margin-top: 4px;
  accent-color: var(--eh360-brand-700);
}

/* Frequency */
.eh360-freq {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.eh360-freq__option {
  appearance: none;
  cursor: pointer;
  background: var(--eh360-white);
  border: 1px solid var(--eh360-slate-200);
  border-radius: 8px;
  padding: 14px 10px;
  font-family: inherit;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.eh360-freq__option:hover { border-color: var(--eh360-brand-200, var(--eh360-brand-100)); }
.eh360-freq__option.is-selected {
  border-color: var(--eh360-brand-700);
  background: var(--eh360-brand-50);
}
.eh360-freq__label { font-weight: 600; color: var(--eh360-brand-900); font-size: 14px; }
.eh360-freq__hint { font-size: 11px; color: var(--eh360-slate-500); }

/* Price card */
.eh360-pricecard {
  margin-top: 24px;
  padding: 24px;
  background: var(--eh360-brand-50);
  border: 1px solid var(--eh360-brand-100);
  border-radius: 16px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 20px;
  align-items: center;
}
.eh360-pricecard.is-error { background: #fef2f2; border-color: #fecaca; }
.eh360-pricecard__eyebrow {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--eh360-slate-500);
}
.eh360-pricecard__planname { font-weight: 700; color: var(--eh360-brand-900); margin-top: 4px; }
.eh360-pricecard__region { font-size: 12px; color: var(--eh360-slate-500); }
.eh360-pricecard__price { text-align: center; }
.eh360-pricecard__amount {
  font-size: 36px;
  font-weight: 700;
  color: var(--eh360-brand-700);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
  margin-top: 4px;
}
.eh360-pricecard__amount--sm { font-size: 22px; color: var(--eh360-brand-900); }
.eh360-pricecard__sub { font-size: 12px; color: var(--eh360-slate-500); margin-top: 4px; }
.eh360-pricecard__annual { text-align: right; }
.eh360-pricecard__err { grid-column: 1 / -1; color: #b91c1c; text-align: center; }

/* Step 4 summary band + mini summary */
.eh360-summary-band {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  border-radius: 12px;
  background: var(--eh360-brand-50);
  border: 1px solid var(--eh360-brand-100);
  margin: 16px 0 8px;
}
.eh360-summary-band__eyebrow {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--eh360-slate-500);
}
.eh360-summary-band__title { font-weight: 700; color: var(--eh360-brand-900); }
.eh360-summary-band__right { text-align: right; }
.eh360-summary-band__amount {
  font-size: 22px;
  font-weight: 700;
  color: var(--eh360-brand-700);
  font-variant-numeric: tabular-nums;
}
.eh360-summary-band__sub { font-size: 12px; color: var(--eh360-slate-500); }

.eh360-additional-applicants > .eh360-section { margin-top: 24px; }

.eh360-notice {
  background: #fef3c7;
  border: 1px solid #fde68a;
  color: #78350f;
  border-radius: 12px;
  padding: 16px;
  font-size: 14px;
  margin-top: 24px;
}

/* Declarations */
.eh360-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 8px 0;
  font-size: 14px;
  color: var(--eh360-slate-700);
  cursor: pointer;
}
.eh360-checkbox input { margin-top: 3px; accent-color: var(--eh360-brand-700); }

/* Review */
.eh360-review__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.eh360-review__row {
  background: var(--eh360-white);
  border: 1px solid var(--eh360-slate-200);
  border-radius: 8px;
  padding: 10px 14px;
}
.eh360-review__lbl { font-size: 11px; text-transform: uppercase; color: var(--eh360-slate-500); letter-spacing: .04em; }
.eh360-review__val { font-weight: 600; color: var(--eh360-slate-900); }
.eh360-review__h {
  margin: 24px 0 12px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--eh360-brand-800);
  font-weight: 700;
}
.eh360-review__breakdown {
  border: 1px solid var(--eh360-slate-200);
  border-radius: 12px;
  overflow: hidden;
}
.eh360-review__line {
  display: flex;
  justify-content: space-between;
  padding: 10px 16px;
  font-size: 13px;
  border-top: 1px solid var(--eh360-slate-100);
  color: var(--eh360-slate-700);
}
.eh360-review__line:first-child { border-top: none; }
.eh360-review__line--subtotal { background: var(--eh360-slate-100); font-weight: 600; color: var(--eh360-slate-900); }
.eh360-review__line--total { background: var(--eh360-brand-50); font-weight: 700; color: var(--eh360-brand-900); }
.eh360-review__line--discount { color: var(--eh360-brand-700); }
.eh360-review__total {
  margin-top: 20px;
  padding: 24px;
  background: var(--eh360-brand-700);
  color: var(--eh360-white);
  border-radius: 12px;
  text-align: center;
}
.eh360-review__big {
  font-size: 32px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  margin: 4px 0;
}

/* Thank you */
.eh360-thanks { text-align: center; padding: 40px 20px; }
.eh360-thanks__tick {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--eh360-brand-700);
  color: var(--eh360-white);
  font-size: 32px;
  margin-bottom: 16px;
}
.eh360-thanks h2 { color: var(--eh360-brand-900); margin: 8px 0; font-size: 26px; }

/* Responsive */
@media (max-width: 900px) {
  .eh360-quote__inner { padding: 20px; }
  .eh360-plans { grid-template-columns: repeat(2, 1fr); }
  .eh360-freq { grid-template-columns: repeat(2, 1fr); }
  .eh360-pricecard { grid-template-columns: 1fr; text-align: center; }
  .eh360-pricecard__annual { text-align: center; }
  .eh360-grid--3 { grid-template-columns: 1fr 1fr; }
  .eh360-steps__label { display: none; }
  .eh360-review__grid { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
  .eh360-plans { grid-template-columns: 1fr; }
  .eh360-grid--2, .eh360-grid--3 { grid-template-columns: 1fr; }
  .eh360-actions { flex-direction: column-reverse; }
  .eh360-actions .eh360-btn { width: 100%; justify-content: center; }
}

/* Reference-style quote flow refinements */
.eh360-quote {
  font-family: inherit;
  color: #0f172a;
}
.eh360-quote__inner {
  max-width: 1216px;
  padding: 32px;
  border: 2px solid #e5ece8;
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}
.eh360-steps {
  max-width: 860px;
  margin: 0 auto 42px;
}
.eh360-steps__list {
  gap: 0;
}
.eh360-steps__list::before {
  top: 43px;
  left: 8%;
  right: 8%;
  background: #dbe5ee;
}
.eh360-steps__item {
  gap: 9px;
}
.eh360-steps__label {
  order: 0;
  color: #8492ac;
  font-size: 14px;
  max-width: none;
}
.eh360-steps__num {
  order: 1;
  width: 26px;
  height: 26px;
  font-size: 12px;
  background: #c9d5e4;
  border-color: #c9d5e4;
  color: #486179;
}
.eh360-steps__item.is-current .eh360-steps__label {
  color: #155e3e;
}
.eh360-steps__item.is-current .eh360-steps__num,
.eh360-steps__item.is-done .eh360-steps__num {
  background: #155e3e;
  border-color: #155e3e;
  color: #fff;
}
.eh360-step__header {
  text-align: center;
  margin-bottom: 32px;
}
.eh360-step__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: #ecf4ef;
  display: block;
  position: relative;
}
.eh360-step__icon::before,
.eh360-step__icon::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  border: 2px solid #155e3e;
}
.eh360-step__icon::before {
  width: 15px;
  height: 15px;
  top: 17px;
  border-radius: 50%;
}
.eh360-step__icon::after {
  width: 24px;
  height: 14px;
  top: 36px;
  border-radius: 14px 14px 0 0;
  border-bottom: none;
}
.eh360-step__header h2 {
  font-size: 28px;
  color: #071f1a;
}
.eh360-step__header p {
  font-size: 16px;
}
.eh360-field > span,
.eh360-section legend {
  color: #0f172a;
  font-weight: 700;
}
.eh360-field input,
.eh360-field select,
.eh360-select {
  min-height: 50px;
  border: 2px solid #cbd5e1;
  border-radius: 8px;
  font-size: 15px;
}
.eh360-field input:hover,
.eh360-field select:hover,
.eh360-select:hover,
.eh360-plan:hover,
.eh360-freq__option:hover,
.eh360-toggle:hover,
.eh360-review-plan:hover,
.eh360-mini-option:hover {
  border-color: #155e3e;
}
.eh360-btn,
.eh360-plan,
.eh360-freq__option,
.eh360-toggle,
.eh360-review-plan,
.eh360-mini-option {
  border-width: 2px;
}
.eh360-btn {
  border: 2px solid transparent;
}
.eh360-btn:hover:not(:disabled),
.eh360-btn:focus-visible:not(:disabled) {
  border-color: #155e3e;
}
.eh360-btn--secondary {
  background: #fff;
  border-color: #b9d5c3;
}
.eh360-review__grid {
  grid-template-columns: repeat(4, 1fr);
}
.eh360-review__row {
  background: #f8fafc;
  border-width: 2px;
}
.eh360-review-frequency,
.eh360-review-plans,
.eh360-application-options__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.eh360-review-plan,
.eh360-mini-option {
  appearance: none;
  cursor: pointer;
  background: #fff;
  border: 2px solid #e2e8f0;
  border-radius: 10px;
  padding: 16px;
  font-family: inherit;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
}
.eh360-review-plan strong,
.eh360-mini-option {
  color: #071f1a;
  font-weight: 800;
}
.eh360-review-plan span,
.eh360-review-plan em {
  color: #475569;
  font-size: 12px;
  font-style: normal;
}
.eh360-review-plan b {
  color: #155e3e;
}
.eh360-review-plan.is-selected,
.eh360-mini-option.is-selected {
  border-color: #155e3e;
  box-shadow: 0 0 0 2px #155e3e inset;
}
.eh360-next-steps__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.eh360-next-step {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 6px 10px;
  padding: 14px;
  background: #f1f7f3;
  border-radius: 10px;
}
.eh360-next-step span {
  grid-row: span 2;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #155e3e;
  color: #fff;
  font-weight: 800;
}
.eh360-next-step strong {
  color: #071f1a;
}
.eh360-next-step em {
  color: #475569;
  font-style: normal;
  font-size: 13px;
}
.eh360-application-options {
  margin: 18px 0;
}
.eh360-application-options h4 {
  margin: 0 0 10px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #155e3e;
}
@media (max-width: 900px) {
  .eh360-review__grid,
  .eh360-review-frequency,
  .eh360-review-plans,
  .eh360-application-options__grid,
  .eh360-next-steps__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 540px) {
  .eh360-quote__inner { padding: 20px; }
  .eh360-steps__label { display: none; }
  .eh360-steps__list::before { top: 13px; }
  .eh360-review__grid,
  .eh360-review-frequency,
  .eh360-review-plans,
  .eh360-application-options__grid,
  .eh360-next-steps__grid {
    grid-template-columns: 1fr;
  }
}
.eh360-quote .eh360-plan .eh360-plan__badge,
.eh360-quote .eh360-review-plan .eh360-plan__badge {
  background: #155e3e;
  color: #fff;
}
