.set-gic {
  --set-navy: #10243e;
  --set-blue: #1367a8;
  --set-blue-dark: #0b4b7f;
  --set-gold: #f3b63f;
  --set-green: #1c7c54;
  --set-red: #b42318;
  --set-ink: #172033;
  --set-muted: #667085;
  --set-line: #d8dee8;
  --set-soft: #f5f8fc;
  --set-white: #fff;
  color: var(--set-ink);
  font-family: inherit;
  max-width: 1240px;
  margin: 0 auto;
}

.set-gic *, .set-gic *::before, .set-gic *::after { box-sizing: border-box; }

.set-gic__intro { max-width: 820px; margin: 0 auto 28px; text-align: center; }
.set-gic__eyebrow { display: inline-block; color: var(--set-blue); font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 8px; }
.set-gic__intro h2 { margin: 0 0 12px; font-size: clamp(30px, 4vw, 48px); line-height: 1.08; color: var(--set-navy); }
.set-gic__intro p { margin: 0; color: var(--set-muted); font-size: 18px; line-height: 1.65; }

.set-gic__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .92fr); gap: 24px; align-items: start; }
.set-gic__form, .set-gic__summary { border: 1px solid var(--set-line); border-radius: 18px; background: var(--set-white); box-shadow: 0 16px 38px rgba(16, 36, 62, .08); overflow: hidden; }
.set-gic__summary { position: sticky; top: 24px; }

.set-gic__panel-heading { display: flex; gap: 14px; align-items: center; padding: 24px 26px; background: var(--set-navy); color: #fff; }
.set-gic__panel-heading h3 { margin: 0 0 2px; color: #fff; font-size: 24px; }
.set-gic__panel-heading p { margin: 0; opacity: .82; font-size: 14px; }
.set-gic__step { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; flex: 0 0 42px; background: var(--set-gold); color: var(--set-navy); font-weight: 900; font-size: 20px; }

.set-gic__field-group { border: 0; margin: 0; padding: 24px 26px; border-bottom: 1px solid var(--set-line); }
.set-gic__field-group:last-of-type { border-bottom: 0; }
.set-gic__field-group legend, .set-gic__label { display: block; margin: 0 0 12px; padding: 0; font-size: 17px; font-weight: 800; color: var(--set-navy); }
.set-gic__help { margin: 9px 0 0; color: var(--set-muted); font-size: 13px; line-height: 1.5; }
.set-gic__membership { background: #fffaf0; }

.set-gic__choice-row { display: flex; flex-wrap: wrap; gap: 10px; }
.set-gic__choice { position: relative; cursor: pointer; }
.set-gic__choice input { position: absolute; opacity: 0; pointer-events: none; }
.set-gic__choice span { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; border: 1px solid var(--set-line); border-radius: 10px; padding: 10px 16px; background: #fff; color: var(--set-ink); font-weight: 700; transition: .18s ease; }
.set-gic__choice input:checked + span { border-color: var(--set-blue); background: #eaf5ff; color: var(--set-blue-dark); box-shadow: 0 0 0 2px rgba(19, 103, 168, .12); }
.set-gic__choice input:focus-visible + span { outline: 3px solid rgba(19, 103, 168, .24); outline-offset: 2px; }

.set-gic__number-grid, .set-gic__contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.set-gic label > span:not(.set-gic__choice span) { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 700; color: var(--set-ink); }
.set-gic input[type="number"], .set-gic input[type="text"], .set-gic input[type="tel"], .set-gic input[type="email"], .set-gic textarea {
  width: 100%; border: 1px solid #cbd3df; border-radius: 9px; background: #fff; color: var(--set-ink); padding: 12px 13px; font: inherit; min-height: 46px;
}
.set-gic textarea { resize: vertical; }
.set-gic input:focus, .set-gic textarea:focus { outline: 0; border-color: var(--set-blue); box-shadow: 0 0 0 3px rgba(19, 103, 168, .13); }
.set-gic .has-error { border-color: var(--set-red) !important; box-shadow: 0 0 0 3px rgba(180, 35, 24, .1) !important; }
.set-gic__honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }

.set-gic__line-items { padding: 10px 24px 0; }
.set-gic__line-item { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 14px 0; border-bottom: 1px solid #e7ebf1; }
.set-gic__line-item > span { min-width: 0; }
.set-gic__line-item strong { color: var(--set-navy); }
.set-gic__line-item > strong { white-space: nowrap; font-size: 16px; }
.set-gic__line-item small { display: block; margin-top: 3px; color: var(--set-muted); font-size: 11px; line-height: 1.35; }
.set-gic__line-item.is-zero { opacity: .55; }

.set-gic__totals { margin: 20px 24px 0; padding: 18px; border-radius: 13px; background: var(--set-soft); }
.set-gic__totals > div { display: flex; justify-content: space-between; gap: 16px; padding: 5px 0; }
.set-gic__totals strong { color: var(--set-navy); }
.set-gic__savings strong { color: var(--set-green); }
.set-gic__price { margin-top: 10px; padding-top: 14px !important; border-top: 2px solid var(--set-navy); align-items: end; }
.set-gic__price span { font-weight: 800; color: var(--set-navy); }
.set-gic__price strong { font-size: clamp(27px, 4vw, 38px); line-height: 1; color: var(--set-blue); }

.set-gic__disclaimer { margin: 15px 24px; color: var(--set-muted); font-size: 11px; line-height: 1.45; }
.set-gic__next-step { margin-top: 18px; padding: 24px; background: #eef6fc; border-top: 1px solid #d7e8f5; }
.set-gic__next-step h4 { margin: 0 0 14px; color: var(--set-navy); font-size: 18px; }
.set-gic__lead-panel, .set-gic__survey-panel { margin-top: 18px; padding-top: 18px; border-top: 1px solid #c9dceb; }
.set-gic__full-field { display: block; margin-top: 14px; }

.set-gic__primary-button, .set-gic__secondary-button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; border-radius: 9px; padding: 12px 18px; font-weight: 800; text-decoration: none; cursor: pointer; transition: .18s ease; }
.set-gic__primary-button { width: 100%; margin-top: 15px; border: 0; background: var(--set-blue); color: #fff; font: inherit; }
.set-gic__primary-button:hover { background: var(--set-blue-dark); }
.set-gic__primary-button:disabled { opacity: .65; cursor: wait; }
.set-gic__action-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.set-gic__secondary-button { border: 1px solid var(--set-blue); background: #fff; color: var(--set-blue); }
.set-gic__secondary-button:hover { background: #eaf5ff; }

.set-gic__rating { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.set-gic__rating label { position: relative; cursor: pointer; }
.set-gic__rating input { position: absolute; opacity: 0; }
.set-gic__rating span { display: grid; place-items: center; min-height: 42px; border: 1px solid var(--set-line); border-radius: 8px; background: #fff; font-weight: 800; }
.set-gic__rating input:checked + span { border-color: var(--set-blue); background: var(--set-blue); color: #fff; }
.set-gic__rating-labels { display: flex; justify-content: space-between; margin-top: 5px; color: var(--set-muted); font-size: 11px; }

.set-gic__status { margin-top: 14px; border-radius: 9px; font-size: 14px; line-height: 1.5; }
.set-gic__status.is-success, .set-gic__status.is-error { padding: 12px 13px; }
.set-gic__status.is-success { background: #eaf8f1; color: #17643f; border: 1px solid #b8e3ce; }
.set-gic__status.is-error { background: #fff0ef; color: #9a1d14; border: 1px solid #f1c0bc; }

@media (max-width: 900px) {
  .set-gic__grid { grid-template-columns: 1fr; }
  .set-gic__summary { position: static; }
}

@media (max-width: 560px) {
  .set-gic__intro { text-align: left; }
  .set-gic__grid { gap: 16px; }
  .set-gic__form, .set-gic__summary { border-radius: 13px; }
  .set-gic__panel-heading, .set-gic__field-group, .set-gic__next-step { padding-left: 18px; padding-right: 18px; }
  .set-gic__line-items { padding-left: 18px; padding-right: 18px; }
  .set-gic__totals, .set-gic__disclaimer { margin-left: 18px; margin-right: 18px; }
  .set-gic__number-grid, .set-gic__contact-grid, .set-gic__action-buttons { grid-template-columns: 1fr; }
  .set-gic__choice-row { display: grid; grid-template-columns: 1fr 1fr; }
  .set-gic__choice span { width: 100%; }
  .set-gic__line-item { align-items: flex-start; }
  .set-gic__line-item > strong { font-size: 15px; }
}
