.rcpi-wrap {
  --rcpi-ink: #0D1511;
  --rcpi-forest: #006837;
  --rcpi-dark: #004E2A;
  --rcpi-green: #03A84E;
  --rcpi-muted: #5E6862;
  --rcpi-border: #E6E9E7;
  --rcpi-bg: #F7F9F8;
  --rcpi-radius: 30px;
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
  font-family: inherit;
  color: var(--rcpi-ink);
}

.rcpi-wrap *, .rcpi-wrap *::before, .rcpi-wrap *::after { box-sizing: border-box; }

.rcpi-card {
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(230, 233, 231, .94);
  border-radius: var(--rcpi-radius);
  padding: clamp(24px, 4.2vw, 54px);
  box-shadow: 0 34px 90px rgba(0, 32, 17, .16), 0 5px 18px rgba(0, 32, 17, .06);
  isolation: isolate;
}

.rcpi-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  width: 420px;
  height: 420px;
  top: -270px;
  right: -140px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(3,168,78,.13) 0%, rgba(3,168,78,0) 68%);
  pointer-events: none;
}

.rcpi-topline,
.rcpi-intro,
.rcpi-final-row,
.rcpi-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.rcpi-topline { margin-bottom: 17px; }
.rcpi-kicker,
.rcpi-step-eyebrow {
  display: inline-block;
  font-size: 12px;
  line-height: 1;
  letter-spacing: .16em;
  font-weight: 800;
  color: var(--rcpi-forest);
}
.rcpi-time { font-size: 13px; font-weight: 650; color: var(--rcpi-muted); }

.rcpi-intro { align-items: flex-end; margin-bottom: 34px; }
.rcpi-intro > div:first-child { max-width: 690px; }
.rcpi-intro h2 {
  margin: 0;
  max-width: 740px;
  font-size: clamp(38px, 5.5vw, 68px);
  line-height: .98;
  letter-spacing: -.045em;
  font-weight: 800;
  color: var(--rcpi-ink);
}
.rcpi-intro p {
  margin: 18px 0 0;
  max-width: 650px;
  font-size: clamp(16px, 2vw, 19px);
  line-height: 1.55;
  color: var(--rcpi-muted);
}

.rcpi-response-note {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  max-width: 230px;
  padding: 10px 14px;
  border: 1px solid var(--rcpi-border);
  border-radius: 999px;
  background: rgba(247,249,248,.82);
  font-size: 12px;
  line-height: 1.35;
  font-weight: 650;
  color: #415048;
}
.rcpi-response-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: var(--rcpi-green); box-shadow: 0 0 0 5px rgba(3,168,78,.10); }

.rcpi-progress {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto;
  gap: 14px;
  align-items: center;
  margin: 0 0 44px;
  padding: 14px 0 18px;
  border-bottom: 1px solid var(--rcpi-border);
}
.rcpi-progress-item { display: inline-flex; align-items: center; gap: 9px; color: #91a099; transition: color .2s ease; }
.rcpi-progress-num { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1px solid #d9dfdb; font-size: 11px; font-weight: 800; letter-spacing: .05em; background: #fff; transition: .2s ease; }
.rcpi-progress-label { font-size: 13px; font-weight: 750; }
.rcpi-progress-item.is-active,
.rcpi-progress-item.is-complete { color: var(--rcpi-ink); }
.rcpi-progress-item.is-active .rcpi-progress-num { border-color: var(--rcpi-forest); color: #fff; background: var(--rcpi-forest); box-shadow: 0 6px 18px rgba(0,104,55,.22); }
.rcpi-progress-item.is-complete .rcpi-progress-num { border-color: #b7e1c9; color: var(--rcpi-forest); background: #effaf4; }
.rcpi-progress-line { position: relative; height: 1px; background: #e4e9e6; overflow: hidden; }
.rcpi-progress-line span { display: block; width: 100%; height: 100%; background: var(--rcpi-forest); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }

.rcpi-step { animation: rcpiIn .26s ease both; }
@keyframes rcpiIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.rcpi-step-heading { margin-bottom: 26px; }
.rcpi-step-heading h3,
.rcpi-success h3 {
  margin: 7px 0 0;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.08;
  letter-spacing: -.035em;
  font-weight: 800;
  color: var(--rcpi-ink);
}
.rcpi-step-heading p { margin: 12px 0 0; max-width: 720px; color: var(--rcpi-muted); font-size: 16px; line-height: 1.6; }

.rcpi-grid { display: grid; gap: 18px; }
.rcpi-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rcpi-field { position: relative; }
.rcpi-field label,
.rcpi-choice-group legend {
  display: block;
  margin: 0 0 9px;
  padding: 0;
  font-size: 13px;
  line-height: 1.3;
  font-weight: 760;
  color: #26342d;
}
.rcpi-field label span,
.rcpi-choice-group legend span { color: var(--rcpi-green); }
.rcpi-field label small { font-size: 11px; font-weight: 650; color: #8a9790; }

.rcpi-field input,
.rcpi-field textarea,
.rcpi-field select {
  appearance: none;
  width: 100%;
  border: 1px solid #DDE4E0;
  border-radius: 15px;
  background: var(--rcpi-bg);
  color: var(--rcpi-ink);
  font: inherit;
  font-size: 16px;
  line-height: 1.35;
  padding: 15px 16px;
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease, transform .18s ease;
}
.rcpi-field select { padding-right: 42px; background-image: linear-gradient(45deg, transparent 50%, #526158 50%), linear-gradient(135deg, #526158 50%, transparent 50%); background-position: calc(100% - 20px) 53%, calc(100% - 15px) 53%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
.rcpi-field textarea { min-height: 190px; resize: vertical; line-height: 1.6; }
.rcpi-field input::placeholder,
.rcpi-field textarea::placeholder { color: #9aa69f; opacity: 1; }
.rcpi-field input:focus,
.rcpi-field textarea:focus,
.rcpi-field select:focus {
  border-color: var(--rcpi-forest);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(0,104,55,.09), 0 9px 26px rgba(0,54,29,.06);
}
.rcpi-field.has-error input,
.rcpi-field.has-error textarea,
.rcpi-field.has-error select,
.rcpi-field input.has-error,
.rcpi-field textarea.has-error,
.rcpi-field select.has-error { border-color: #b42318; box-shadow: 0 0 0 4px rgba(180,35,24,.08); }
.rcpi-field-foot { display: flex; justify-content: space-between; gap: 15px; margin-top: 8px; color: #7e8b84; font-size: 11px; }

.rcpi-choice-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.rcpi-choice-group.has-error > legend { color: #b42318; }
.rcpi-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rcpi-service-card { position: relative; display: grid; grid-template-columns: 1fr auto; grid-template-areas: "title check" "copy check"; gap: 5px 14px; min-height: 118px; padding: 19px 18px; border: 1px solid #dfe5e1; border-radius: 18px; background: #fff; cursor: pointer; transition: .2s ease; }
.rcpi-service-card:hover { border-color: #b9c9c0; transform: translateY(-1px); box-shadow: 0 9px 24px rgba(4,47,26,.06); }
.rcpi-service-card input { position: absolute; opacity: 0; pointer-events: none; }
.rcpi-service-title { grid-area: title; align-self: end; font-size: 15px; line-height: 1.25; font-weight: 800; color: var(--rcpi-ink); }
.rcpi-service-copy { grid-area: copy; align-self: start; max-width: 390px; font-size: 12px; line-height: 1.48; color: var(--rcpi-muted); }
.rcpi-service-check { grid-area: check; align-self: start; width: 26px; height: 26px; border: 1px solid #cad4ce; border-radius: 50%; background: #fff; position: relative; transition: .2s ease; }
.rcpi-service-card input:checked ~ .rcpi-service-check { background: var(--rcpi-forest); border-color: var(--rcpi-forest); box-shadow: 0 5px 14px rgba(0,104,55,.20); }
.rcpi-service-card input:checked ~ .rcpi-service-check::after { content: ""; position: absolute; width: 8px; height: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); left: 8px; top: 8px; }
.rcpi-service-card:has(input:checked) { border-color: rgba(0,104,55,.45); background: #f2fbf6; box-shadow: inset 0 0 0 1px rgba(0,104,55,.08), 0 9px 22px rgba(0,104,55,.06); }
.rcpi-choice-group.has-error .rcpi-service-grid { border-radius: 20px; box-shadow: 0 0 0 3px rgba(180,35,24,.08); }

.rcpi-space-top { margin-top: 28px; }
.rcpi-pills { display: flex; flex-wrap: wrap; gap: 9px; }
.rcpi-pill { position: relative; cursor: pointer; }
.rcpi-pill input { position: absolute; opacity: 0; pointer-events: none; }
.rcpi-pill span { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; padding: 9px 14px; border: 1px solid #dfe5e1; border-radius: 999px; background: #fff; color: #46544c; font-size: 12px; line-height: 1.2; font-weight: 750; transition: .18s ease; }
.rcpi-pill:hover span { border-color: #aebdb5; }
.rcpi-pill input:checked + span { background: var(--rcpi-ink); border-color: var(--rcpi-ink); color: #fff; box-shadow: 0 5px 16px rgba(13,21,17,.15); }
.rcpi-choice-group.has-error .rcpi-pill span { border-color: rgba(180,35,24,.35); }

.rcpi-nav { margin-top: 34px; }
.rcpi-nav-end { justify-content: flex-end; }
.rcpi-nav-back-only { margin-top: 16px; justify-content: flex-start; }
.rcpi-btn { appearance: none; border: 0; border-radius: 999px; min-height: 54px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: center; gap: 11px; font: inherit; font-size: 14px; font-weight: 800; line-height: 1; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, opacity .18s ease; }
.rcpi-btn:hover { transform: translateY(-1px); }
.rcpi-btn:focus-visible { outline: 3px solid rgba(3,168,78,.42); outline-offset: 3px; }
.rcpi-btn-primary,
.rcpi-btn-submit { color: #fff; background: var(--rcpi-green); box-shadow: 0 10px 24px rgba(3,168,78,.23); }
.rcpi-btn-primary:hover,
.rcpi-btn-submit:hover { background: var(--rcpi-forest); box-shadow: 0 14px 30px rgba(0,104,55,.25); }
.rcpi-btn-ghost { min-height: 46px; padding: 0 10px; background: transparent; color: #536158; }
.rcpi-btn-ghost:hover { color: var(--rcpi-ink); transform: none; }
.rcpi-btn-submit { min-width: 230px; min-height: 60px; font-size: 15px; }
.rcpi-btn-submit:disabled { cursor: wait; opacity: .75; transform: none; }
.rcpi-spinner { display: none; width: 17px; height: 17px; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: rcpiSpin .7s linear infinite; }
.rcpi-btn-submit.is-loading .rcpi-spinner { display: inline-block; }
.rcpi-btn-submit.is-loading > i { display: none; }
@keyframes rcpiSpin { to { transform: rotate(360deg); } }

.rcpi-turnstile-wrap { margin-top: 28px; padding: 15px; border: 1px solid var(--rcpi-border); border-radius: 16px; background: var(--rcpi-bg); overflow: hidden; }
.rcpi-final-row { align-items: flex-end; margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--rcpi-border); }
.rcpi-privacy { display: grid; gap: 5px; max-width: 390px; }
.rcpi-privacy strong { font-size: 13px; color: var(--rcpi-ink); }
.rcpi-privacy span { font-size: 12px; line-height: 1.5; color: var(--rcpi-muted); }

.rcpi-alert { margin: -14px 0 26px; padding: 13px 15px; border: 1px solid rgba(180,35,24,.18); border-radius: 13px; background: #fff5f4; color: #912018; font-size: 13px; line-height: 1.5; font-weight: 650; }

.rcpi-success { padding: 44px 0 12px; text-align: center; outline: none; }
.rcpi-success-mark { position: relative; display: grid; place-items: center; width: 76px; height: 76px; margin: 0 auto 28px; border-radius: 50%; background: #eefbf4; border: 1px solid #caecd9; box-shadow: 0 14px 34px rgba(0,104,55,.12); }
.rcpi-success-mark span { width: 28px; height: 14px; border-left: 4px solid var(--rcpi-forest); border-bottom: 4px solid var(--rcpi-forest); transform: rotate(-45deg) translate(2px,-2px); }
.rcpi-success h3 { max-width: 650px; margin: 12px auto 0; }
.rcpi-success p { max-width: 620px; margin: 16px auto 0; color: var(--rcpi-muted); font-size: 17px; line-height: 1.65; }
.rcpi-reference { display: inline-flex; gap: 8px; margin-top: 24px; padding: 10px 14px; border-radius: 999px; background: var(--rcpi-bg); border: 1px solid var(--rcpi-border); color: var(--rcpi-muted); font-size: 12px; }
.rcpi-reference strong { color: var(--rcpi-ink); letter-spacing: .04em; }

.rcpi-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }

@media (max-width: 820px) {
  .rcpi-card { border-radius: 24px; padding: 26px 22px 28px; }
  .rcpi-intro { display: block; margin-bottom: 26px; }
  .rcpi-intro h2 { font-size: clamp(38px, 10vw, 54px); }
  .rcpi-response-note { margin-top: 18px; max-width: none; }
  .rcpi-progress { gap: 8px; margin-bottom: 32px; }
  .rcpi-progress-item { gap: 6px; }
  .rcpi-progress-label { display: none; }
  .rcpi-progress-num { width: 31px; height: 31px; }
  .rcpi-grid-2,
  .rcpi-service-grid { grid-template-columns: 1fr; }
  .rcpi-service-card { min-height: 105px; }
  .rcpi-final-row { display: grid; gap: 20px; }
  .rcpi-btn-submit { width: 100%; }
}

@media (max-width: 520px) {
  .rcpi-card { padding: 24px 18px 24px; border-radius: 22px; }
  .rcpi-topline { gap: 12px; }
  .rcpi-time { font-size: 11px; }
  .rcpi-intro h2 { font-size: 40px; }
  .rcpi-intro p { font-size: 16px; }
  .rcpi-step-heading h3, .rcpi-success h3 { font-size: 30px; }
  .rcpi-field input, .rcpi-field textarea, .rcpi-field select { font-size: 16px; }
  .rcpi-nav { gap: 10px; }
  .rcpi-nav .rcpi-btn-primary { flex: 1; }
  .rcpi-pills { gap: 7px; }
  .rcpi-pill span { padding: 9px 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .rcpi-wrap *, .rcpi-wrap *::before, .rcpi-wrap *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; }
}

/* 0.2.7 premium interaction layer */
.rcpi-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(3,168,78,.55), rgba(255,255,255,0) 34%, rgba(0,104,55,.24) 72%, rgba(3,168,78,.5));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.rcpi-card { background: linear-gradient(180deg,#fff 0%,#fbfdfc 100%); }
.rcpi-card > * { position: relative; z-index: 1; }
.rcpi-progress { position: relative; }
.rcpi-progress::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:linear-gradient(90deg,transparent,rgba(3,168,78,.22),transparent); }
.rcpi-service-card { overflow: hidden; transform-style: preserve-3d; will-change: transform; transition: transform .24s cubic-bezier(.2,.8,.2,1), box-shadow .24s ease, border-color .2s ease, background .2s ease; }
.rcpi-service-card::before { content:""; position:absolute; inset:-1px; opacity:0; background:radial-gradient(260px circle at var(--rcpi-x,50%) var(--rcpi-y,50%),rgba(3,168,78,.13),transparent 62%); transition:opacity .2s ease; pointer-events:none; }
.rcpi-service-card:hover::before,.rcpi-service-card:has(input:checked)::before{opacity:1}
.rcpi-service-card > * { position:relative; z-index:1; }
.rcpi-service-card:has(input:checked) .rcpi-service-title{color:var(--rcpi-forest)}
.rcpi-btn-primary,.rcpi-btn-submit{position:relative;overflow:hidden;isolation:isolate}
.rcpi-btn-primary::before,.rcpi-btn-submit::before{content:"";position:absolute;inset:-2px;z-index:-1;background:linear-gradient(100deg,var(--rcpi-green),#11c965 45%,var(--rcpi-forest));transform:translateX(-18%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.rcpi-btn-primary:hover::before,.rcpi-btn-submit:hover::before{transform:translateX(0)}
.rcpi-grid-span-2{grid-column:1/-1}
.rcpi-location-shell{position:relative;display:flex;align-items:center}
.rcpi-location-shell>i{position:absolute;left:17px;color:var(--rcpi-forest);z-index:2;font-size:14px}
.rcpi-location-shell input{padding-left:44px;padding-right:146px}
.rcpi-location-status{position:absolute;right:11px;display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;background:#eaf6ef;color:#436052;font-size:10px;line-height:1;font-weight:800;letter-spacing:.02em;pointer-events:none;white-space:nowrap}
.rcpi-location-status.is-matched{background:#dff7e8;color:#006837}
.rcpi-field-hint{display:block;margin-top:8px;color:#7b8880;font-size:11px;line-height:1.45}
.pac-container{z-index:999999!important;border:1px solid #dfe6e2!important;border-radius:14px!important;box-shadow:0 22px 50px rgba(0,32,17,.18)!important;font-family:inherit!important;margin-top:5px!important;overflow:hidden!important}
.pac-item{padding:10px 13px!important;border-top:1px solid #eef2ef!important;font-size:12px!important;cursor:pointer!important}
.pac-item:first-child{border-top:0!important}.pac-item:hover{background:#f2fbf6!important}.pac-item-query{font-size:13px!important;color:#0d1511!important}
@media(max-width:820px){.rcpi-location-shell input{padding-right:16px}.rcpi-location-status{position:static;margin:8px 0 0;width:max-content}.rcpi-location-shell{display:block}.rcpi-location-shell>i{top:18px}.rcpi-grid-span-2{grid-column:auto}.rcpi-field-location{grid-column:1/-1}}
