/* Proa Firme 0.23.2 — Unified service journey, insurance selection and registration review.
   Scoped to service pages; no pricing or submission logic. */
.service-page{--pf-navy:#102f49;--pf-blue:#126a9b;--pf-slate:#607b8b;--pf-edge:#d4e3e9;--pf-air:#f5f9fb}
.service-page .service-form{border-radius:24px}
.service-page .service-progress{border-radius:20px 20px 0 0;background:linear-gradient(180deg,#f6fafb 0%,#ecf4f7 100%);border-bottom:1px solid #d5e5e9}
.service-page .service-progress li{position:relative}
.service-page .service-progress li+li::before{content:'';position:absolute;top:50%;left:0;width:1px;height:35px;background:#d4e3e7;transform:translateY(-50%)}
.service-page .service-progress-button{min-height:78px;gap:10px;padding:13px 9px}
.service-page .service-progress li span{width:32px;height:32px;flex:none;border-radius:50%;font-size:11px;font-weight:850;letter-spacing:-.02em}
.service-page .service-progress li strong{font-size:12px;letter-spacing:-.015em}
.service-page .service-progress li.is-active{background:linear-gradient(180deg,#fff 0%,#f3f9fb 100%);box-shadow:inset 0 -3px 0 #1588aa}
.service-page-registration .service-progress li.is-active{box-shadow:inset 0 -3px 0 #ae8139}
.service-page .service-progress li.is-done .service-progress-button:not(:disabled):hover{background:#e6f3f8}
.service-page .service-step{scroll-margin-top:105px}
.service-page .service-step h3{font-size:clamp(29px,3.6vw,44px);line-height:1.12;letter-spacing:-.045em;margin-bottom:12px;text-wrap:balance}
.service-page .service-step-intro{max-width:730px;margin-bottom:24px;color:#627d90;font-size:15px;line-height:1.7;text-wrap:pretty}
.service-page .insurance-choice,.service-page .registration-choice{min-width:0;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.service-page .insurance-choice:hover,.service-page .registration-choice:hover{transform:translateY(-2px)}
.service-page .insurance-choice:has(input:checked),.service-page .registration-choice:has(input:checked){box-shadow:inset 0 0 0 1px var(--service-accent-strong),0 11px 20px #12354d15}
.service-page :is(.insurance-inline-choice,.registration-pills,.insurance-cover-grid,.registration-document-grid) label{transition:background .15s ease,border-color .15s ease}
.service-page :is(.insurance-inline-choice,.registration-pills,.insurance-cover-grid,.registration-document-grid) label:has(input:checked){box-shadow:0 4px 12px #12354d10}
.service-page .service-summary-card-head{gap:12px}
.service-page :is(.insurance-summary-card,.registration-summary-card){border:1px solid #cfdee6;border-radius:16px;background:linear-gradient(180deg,#fff,#f6fafc);box-shadow:0 5px 13px #12354d08;min-height:110px;padding:17px 18px;display:flex;flex-direction:column;gap:13px}
.service-page-registration .registration-summary-card{border-color:#e1d8c7;background:linear-gradient(180deg,#fff,#fdfaf3)}
.service-page :is(.insurance-summary-card,.registration-summary-card) .service-summary-card-head>span{font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:#567a8d}
.service-page-registration .registration-summary-card .service-summary-card-head>span{color:#846c42}
.service-page :is(.insurance-summary-card,.registration-summary-card)>strong{display:block;color:var(--pf-navy);font-size:15px;line-height:1.45;font-weight:780;letter-spacing:-.01em;overflow-wrap:anywhere}
.service-page .service-summary-edit{border:1px solid #b5d3e0;background:#fff;color:#175b82;border-radius:10px;min-width:70px;min-height:38px;font-size:12px;white-space:nowrap;box-shadow:0 3px 8px #12354d08}
.service-page .service-summary-edit:hover{background:#e9f5fa}
.service-page .service-review-hint{margin:4px 0 28px;color:#667f8f;font-size:12px;line-height:1.55}
.service-page .service-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:25px;margin-top:30px;border-top:1px solid #dfeaf0}
.service-page .service-actions :is(.insurance-back,.registration-back){min-width:130px;border:1px solid #c4d9e3;border-radius:13px;color:#2c5b78;background:#fff;box-shadow:0 3px 10px #12354d06}
.service-page .service-actions :is(.insurance-next,.registration-next,.insurance-submit,.registration-submit){min-height:54px;border-radius:13px;padding:0 26px;background:linear-gradient(110deg,#102f49,#12659c);box-shadow:0 10px 21px #12497721;color:#fff;font-size:14px;letter-spacing:.005em}
.service-page .service-actions :is(.insurance-next,.registration-next,.insurance-submit,.registration-submit):hover{background:linear-gradient(110deg,#174c70,#1683b4)}
.service-page .service-actions :is(.insurance-next,.registration-next,.insurance-submit,.registration-submit):focus-visible{outline:3px solid #79bbdf;outline-offset:3px}
.service-page-registration .service-actions :is(.registration-next,.registration-submit){background:linear-gradient(110deg,#142d40,#76603a)}
.service-page-registration .service-actions :is(.registration-next,.registration-submit):hover{background:linear-gradient(110deg,#18405e,#9e7740)}
/* Insurance comparison: a restrained visual hierarchy, less repeated copy */
#insurance-flow .insurance-quote-results{gap:16px}
#insurance-flow .insurance-quote-results-head{display:flex;align-items:baseline;gap:15px;justify-content:space-between;flex-wrap:wrap;margin:2px 0 5px;padding:0 2px}
#insurance-flow .insurance-quote-results-head strong{font-size:22px;letter-spacing:-.04em}
#insurance-flow .insurance-quote-results-head p{max-width:430px;margin:0}
#insurance-flow .insurance-quote-card{border-color:#cddfe8;border-radius:20px;box-shadow:0 10px 24px #12354d0e;background:linear-gradient(180deg,#fff,#fbfdfe)}
#insurance-flow .insurance-quote-card.is-best{border-color:#77adc5;box-shadow:0 12px 28px #12659c21}
#insurance-flow .insurance-quote-card-head{gap:16px;padding:23px 22px 16px}
#insurance-flow .insurance-quote-intro h4{font-size:23px;letter-spacing:-.04em}
#insurance-flow .insurance-quote-intro p{max-width:260px;line-height:1.5}
#insurance-flow .insurance-quote-price strong{font-size:34px;letter-spacing:-1.35px;font-weight:850;color:#105b8e}
#insurance-flow .insurance-quote-price small{font-size:11px;line-height:1.35}
#insurance-flow .insurance-quote-facts{gap:7px;padding:0 22px 19px}
#insurance-flow .insurance-quote-facts span{min-height:31px;background:#f2f7fa;border-color:#d8e7ee;color:#3d6880;font-weight:750;padding:7px 11px}
#insurance-flow .insurance-quote-details{padding:0 22px;background:#f8fbfd}
#insurance-flow .insurance-quote-details summary{min-height:54px}
#insurance-flow .insurance-quote-footer{padding:15px 22px 20px;align-items:center}
#insurance-flow .insurance-quote-select{border-radius:12px;min-height:48px;padding:12px 20px;font-weight:850;box-shadow:0 9px 16px #0a527d25}
#insurance-flow .insurance-contact-panel{background:linear-gradient(160deg,#f7fbfd,#eff7fb);border-color:#bdd7e5;border-radius:22px;padding:25px}
#insurance-flow .insurance-contact-intro{gap:16px;margin-bottom:19px}
#insurance-flow .insurance-contact-intro h4{font-size:clamp(22px,2.4vw,29px)}
#insurance-flow .insurance-selected-recap{display:grid;gap:15px;margin:0 0 23px;padding:20px;border:1px solid #b4d3e0;border-radius:19px;background:#fff;box-shadow:0 10px 24px #12354d0d}
#insurance-flow .insurance-selected-recap[hidden]{display:none!important}
#insurance-flow .insurance-selected-recap-top{display:flex;align-items:center;gap:12px;min-width:0}
#insurance-flow .insurance-selected-recap-mark{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:12px;background:#e0f3ed;color:#16765d;font-size:20px;font-weight:850}
#insurance-flow .insurance-selected-recap-top>div{min-width:0;display:grid;gap:4px}
#insurance-flow .insurance-selected-recap-top small{color:#57798d;font-size:10px;letter-spacing:.1em;font-weight:850}
#insurance-flow .insurance-selected-recap-top strong{color:#143d5a;font-size:18px;line-height:1.2;letter-spacing:-.02em;overflow-wrap:anywhere}
#insurance-flow .insurance-selected-recap-demo{margin-left:auto;padding:7px 10px;background:#fff4e4;border:1px solid #ebd6b0;border-radius:999px;color:#91592c;font-size:11px;font-weight:800}
#insurance-flow .insurance-selected-recap-demo[hidden]{display:none!important}
#insurance-flow .insurance-selected-recap-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#insurance-flow .insurance-selected-recap-facts>div{display:grid;gap:6px;padding:14px 16px;border:1px solid #dce9ee;border-radius:13px;background:#f7fbfd}
#insurance-flow .insurance-selected-recap-facts span{color:#637e90;font-size:11px;line-height:1.3;font-weight:650}
#insurance-flow .insurance-selected-recap-facts strong{color:#105b8e;font-size:22px;line-height:1.1;font-weight:850;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
#insurance-flow .insurance-selected-recap>p{margin:0;color:#6d8291;font-size:12px;line-height:1.5}
@media(max-width:900px){
 #insurance-flow .insurance-quote-card-head{flex-wrap:wrap}
 #insurance-flow .insurance-quote-price{text-align:left}
 #insurance-flow .insurance-quote-intro p{max-width:none}
}
@media(max-width:620px){
 .service-page .service-form{border-radius:19px}
 .service-page .service-progress{border-radius:19px 19px 0 0;scrollbar-width:none}
 .service-page .service-progress::-webkit-scrollbar{display:none}
 .service-page .service-progress li+li::before{display:none}
 .service-page .service-progress-button{min-height:67px}
 .service-page .service-mobile-step{margin:14px 0 0;padding:13px;border:1px solid #d1e4ed;background:linear-gradient(120deg,#ecf6fa,#f9fcfd)}
 .service-page .service-step{scroll-margin-top:80px;padding-top:30px}
 .service-page .service-step h3{font-size:clamp(29px,7vw,36px)}
 .service-page .service-step-intro{font-size:14px;line-height:1.65}
 .service-page :is(.insurance-summary-card,.registration-summary-card){min-height:92px;padding:15px 14px;gap:10px}
 .service-page .service-actions{flex-wrap:wrap;gap:10px;margin-top:25px;padding-top:20px}
 .service-page .service-actions :is(.insurance-next,.registration-next,.insurance-submit,.registration-submit){min-height:54px;flex:1 1 auto}
 .service-page .service-actions :is(.insurance-back,.registration-back){min-height:50px;min-width:100px}
 #insurance-flow .insurance-quote-results-head{display:block}
 #insurance-flow .insurance-quote-results-head strong{font-size:20px}
 #insurance-flow .insurance-quote-results-head p{margin-top:6px}
 #insurance-flow .insurance-quote-card-head{padding:18px 16px 13px;gap:10px}
 #insurance-flow .insurance-quote-intro h4{font-size:21px}
 #insurance-flow .insurance-quote-price strong{font-size:32px}
 #insurance-flow .insurance-quote-facts{padding:0 16px 15px}
 #insurance-flow .insurance-quote-details{padding:0 16px}
 #insurance-flow .insurance-quote-footer{padding:12px 16px 17px}
 #insurance-flow .insurance-contact-panel{padding:16px}
 #insurance-flow .insurance-selected-recap{padding:15px;gap:12px;border-radius:15px}
 #insurance-flow .insurance-selected-recap-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 #insurance-flow .insurance-selected-recap-facts>div{padding:12px}
 #insurance-flow .insurance-selected-recap-facts>div:first-child{grid-column:1/-1}
 #insurance-flow .insurance-selected-recap-facts strong{font-size:20px}
 #insurance-flow .insurance-selected-recap-top{flex-wrap:wrap}
 #insurance-flow .insurance-selected-recap-demo{margin-left:0}
}
@media(prefers-reduced-motion:reduce){.service-page .insurance-choice,.service-page .registration-choice{transition:none}}

/* 0.23.2 — Distinct price module and ranked card identity. */
#insurance-flow .insurance-quote-card-head{align-items:stretch}
#insurance-flow .insurance-quote-intro{display:block;position:relative;min-width:0;padding-left:45px;flex:1}
#insurance-flow .insurance-quote-number{position:absolute;left:0;top:0;display:grid;place-items:center;width:34px;height:34px;border:1px solid #c6dae4;border-radius:11px;background:#ecf5f9;color:#236d93;font:850 12px/1 var(--service-font,system-ui,sans-serif)}
#insurance-flow .insurance-quote-card.is-best .insurance-quote-number{background:#d8eef5;border-color:#8bbfd1;color:#0e628d}
#insurance-flow .insurance-quote-eyebrow{font-size:10px;line-height:1.35}
#insurance-flow .insurance-quote-price{display:grid;align-content:center;gap:7px;min-width:156px;margin:0;padding:14px 13px;background:#f1f7fb;border:1px solid #d4e6ed;border-radius:15px}
#insurance-flow .insurance-quote-price strong{color:#0e5f8e;font-size:32px}
#insurance-flow .insurance-quote-price small{margin:0;line-height:1.35}
#insurance-flow .insurance-quote-card.is-best .insurance-quote-price{background:#e9f6fa;border-color:#acd3e0}
@media(max-width:620px){
 #insurance-flow .insurance-quote-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
 #insurance-flow .insurance-quote-intro{padding-left:0}
 #insurance-flow .insurance-quote-number{position:static;margin-bottom:8px;width:30px;height:30px;border-radius:9px}
 #insurance-flow .insurance-quote-eyebrow{font-size:9px}
 #insurance-flow .insurance-quote-price{min-width:0;width:130px;justify-content:start;align-self:start;padding:13px 11px}
 #insurance-flow .insurance-quote-price strong{font-size:26px;letter-spacing:-.065em}
 #insurance-flow .insurance-quote-price small{font-size:10px}
}
@media(max-width:360px){#insurance-flow .insurance-quote-card-head{grid-template-columns:1fr}#insurance-flow .insurance-quote-price{width:100%}#insurance-flow .insurance-quote-price strong{font-size:29px}}

/* Readable mobile quote prices: never squeeze long names against premiums. */
@media(max-width:620px){
 #insurance-flow .insurance-quote-card-head{grid-template-columns:minmax(0,1fr);gap:12px}
 #insurance-flow .insurance-quote-price{width:100%;grid-template-columns:auto 1fr;align-items:baseline;gap:12px;padding:13px 15px}
 #insurance-flow .insurance-quote-price strong{font-size:34px}
 #insurance-flow .insurance-quote-price small{text-align:right;font-size:11px}
 #insurance-flow .insurance-quote-intro h4{font-size:23px}
 #insurance-flow .insurance-quote-intro p{font-size:13px;max-width:none}
}
@media(max-width:360px){#insurance-flow .insurance-quote-price{grid-template-columns:1fr;gap:3px}#insurance-flow .insurance-quote-price small{text-align:left}}
/* Small screens: prevent contact fields from forcing the page wider than its card. */
@media(max-width:620px){
 .service-page .insurance-contact-grid,.service-page .registration-contact-grid{display:grid;grid-template-columns:minmax(0,1fr);max-width:100%;min-width:0}
 .service-page .insurance-contact-grid label,.service-page .registration-contact-grid label{display:block;min-width:0;max-width:100%}
 .service-page .insurance-contact-grid :is(input,select),.service-page .registration-contact-grid :is(input,select){box-sizing:border-box;width:100%;max-width:100%;min-width:0}
 .service-page .insurance-contact-panel{min-width:0;max-width:100%}
}

/* 0.23.4 — Shared, non-overlapping page layout.
 * Hero benefits are informational content, not decoration: the flow must never
 * cover them. Applies equally to insurance and registration at every width.
 */
.service-page .insurance-form,
.service-page .registration-form,
.service-page .service-form {
  position:relative;
  margin:22px 18px 0;
  z-index:1;
}
.service-page .service-hero { isolation:isolate; }
.service-page .service-proof {
  position:relative;
  z-index:2;
  align-items:stretch;
  gap:10px;
  margin-bottom:0;
}
.service-page .service-proof > span {
  box-sizing:border-box;
  min-width:0;
  min-height:44px;
  padding:10px 12px;
  height:auto;
  line-height:1.35;
  overflow-wrap:break-word;
  white-space:normal;
}
.service-page .service-progress {
  margin-top:0;
  border-radius:24px 24px 0 0;
}
.service-page .service-progress li,
.service-page .service-progress-button {
  min-width:0;
}
.service-page .service-progress-button strong {
  overflow-wrap:anywhere;
}
@media (max-width:800px) {
  .service-page .insurance-form,
  .service-page .registration-form,
  .service-page .service-form { margin:18px 12px 0; }
  .service-page .service-proof { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .service-page .service-progress { border-radius:22px 22px 0 0; }
}
@media (max-width:620px) {
  .service-page .insurance-form,
  .service-page .registration-form,
  .service-page .service-form { margin:16px 0 0; }
  .service-page .service-proof { grid-template-columns:minmax(0,1fr); }
  .service-page .service-proof > span { min-height:40px; }
  .service-page .service-progress { border-radius:20px 20px 0 0; }
}

/* 0.23.4 — Avoid intrinsic-width clipping in narrow hero grids. */
.service-page .service-hero-copy,
.service-page .service-hero-visual {
  min-width:0;
  max-width:100%;
}
.service-page .insurance-label,
.service-page .registration-label {
  max-width:100%;
  box-sizing:border-box;
  overflow-wrap:anywhere;
  white-space:normal;
  text-align:left;
  line-height:1.35;
  padding-top:8px;
  padding-bottom:8px;
  height:auto;
}
@media (max-width:800px) {
  .service-page .insurance-hero,
  .service-page .registration-hero {
    grid-template-columns:minmax(0,1fr);
  }
}
@media (max-width:620px) {
  /* The current step's complete name remains in .service-mobile-step. */
  .service-page .service-progress {
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:0;
    overflow:hidden;
  }
  .service-page .service-progress li {
    min-width:0;
    width:auto;
    flex:auto;
  }
  .service-page .service-progress-button {
    min-height:54px;
    padding:8px 2px;
  }
  .service-page .service-progress-button strong {
    display:none!important;
  }
  .service-page .service-progress-button span {
    flex:none;
    font-size:11px;
  }
}
