/* Insurance verification page — styles are scoped to preserve Haven's shared shell. */
.insurance-page {
  --ins-cream: #f8f3ee;
  --ins-paper: #fffdfa;
  --ins-ink: #352b35;
  --ins-muted: #70666f;
  --ins-plum: var(--primary-color, #8b4c8b);
  --ins-deep: #512d55;
  --ins-lavender: #f0e8f1;
  --ins-lavender-strong: #e9ddeb;
  --ins-gold: #c39558;
  --ins-line: #e8dfe5;
  color: var(--ins-ink);
  background: var(--ins-cream);
  overflow: clip;
}
.insurance-page .container { width: 100%; max-width: 1000px; }
.insurance-page section[id] { scroll-margin-top: 7rem; }
.insurance-page a { text-underline-offset: .18em; }
.insurance-page a:focus-visible,
.insurance-page summary:focus-visible { outline: 3px solid var(--ins-gold); outline-offset: 3px; }

.ins-hero {
  position: relative;
  min-height: 172px;
  padding: 1.2rem 0 1rem;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 85% 45%, rgba(199,176,199,.24), transparent 35%),
    linear-gradient(105deg, #fbf7f1 0%, #faf6f1 59%, #f2e9f0 100%);
}
.ins-hero .container { position: relative; min-height: 144px; display: flex; align-items: center; }
.ins-hero-content { position: relative; z-index: 1; width: min(58%, 550px); }
.ins-kicker { margin: 0 0 .22rem; color: var(--ins-plum); font-size: .8rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.ins-hero h1 { margin: 0 0 .34rem; color: var(--ins-deep); font: 600 clamp(1.9rem, 4vw, 2.45rem)/.98 'Playfair Display', Georgia, serif; letter-spacing: -.035em; }
.ins-hero-lede { max-width: 470px; margin: 0; color: #655b63; font-size: .9rem; line-height: 1.45; }
.ins-hero-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .55rem; }
.ins-button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 6px; padding: .48rem .78rem; font-size: .9rem; font-weight: 700; line-height: 1.2; text-align: center; text-decoration: none; transition: transform .18s ease, background-color .18s ease, color .18s ease; }
.ins-button:hover { transform: translateY(-1px); }
.ins-button-primary { border-color: var(--ins-plum); background: var(--ins-plum); color: #fff; }
.ins-button-primary:hover { background: var(--ins-deep); color: #fff; }
.ins-button-outline { border-color: #b99cba; background: rgba(255,253,250,.66); color: var(--ins-deep); }
.ins-button-outline:hover { background: var(--ins-lavender); color: var(--ins-deep); }
.ins-text-link { display: inline-flex; min-height: 44px; align-items: center; gap: .25rem; margin-top: .18rem; color: var(--ins-plum); font-size: .8rem; font-weight: 650; }
.ins-botanical { position: absolute; top: 50%; right: -16px; width: 310px; height: 310px; transform: translateY(-50%); opacity: .58; pointer-events: none; }
.ins-botanical img { display: block; width: 100%; height: 100%; object-fit: contain; }

.ins-steps-band { padding: .28rem 0; background: linear-gradient(100deg, #eee5ef, #f3edf4 52%, #eee5ef); }
.ins-steps { display: grid; grid-template-columns: 1fr 20px 1fr 20px 1fr; align-items: center; gap: .38rem; margin: 0; padding: .42rem .58rem; border: 1px solid rgba(116,73,118,.08); border-radius: 8px; list-style: none; }
.ins-steps li:not(.ins-step-arrow) { display: grid; min-width: 0; grid-template-columns: 1.55rem minmax(0,1fr); align-items: start; gap: .55rem; }
.ins-step-number { display: grid; width: 1.42rem; height: 1.42rem; place-items: center; border-radius: 50%; background: var(--ins-plum); color: #fff; font-size: .75rem; font-weight: 800; }
.ins-steps h2 { margin: 0 0 .1rem; color: var(--ins-deep); font-size: .9rem; font-weight: 750; line-height: 1.24; }
.ins-steps p { margin: 0; color: #716671; font-size: .8rem; line-height: 1.35; }
.ins-step-arrow { color: #a994a8; font-size: 1.45rem; line-height: 1; text-align: center; }

.ins-form-section { padding: .65rem 0 .55rem; background: var(--ins-paper); }
.ins-section-heading { max-width: 770px; margin-bottom: .62rem; }
.ins-section-heading h2, .ins-plans-section h2, .ins-faq-section h2 { margin: 0 0 .2rem; color: var(--ins-deep); font: 600 clamp(1.45rem, 3vw, 1.85rem)/1.1 'Playfair Display', Georgia, serif; letter-spacing: -.025em; }
.ins-section-heading p { max-width: 760px; margin: 0; color: var(--ins-muted); font-size: .9rem; line-height: 1.5; }
.ins-form-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(205px, .78fr); align-items: start; gap: .7rem; }
.ins-embed-card { min-width: 0; overflow: hidden; border: 1px solid var(--ins-line); border-radius: 8px; background: #fff; box-shadow: 0 4px 16px rgba(63,42,59,.045); }
.ins-embed-heading { display: flex; align-items: center; gap: .48rem; padding: .6rem .72rem .48rem; }
.ins-embed-heading h3 { margin: 0; color: var(--ins-deep); font-size: .82rem; font-weight: 750; line-height: 1.25; }
.ins-embed-heading p { margin: .08rem 0 0; color: var(--ins-muted); font-size: .8rem; }
.ins-lock { display: grid; width: 1.28rem; height: 1.28rem; flex: 0 0 auto; place-items: center; color: var(--ins-plum); }
.ins-lock svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ins-embed-card iframe { display: block; width: 100%; height: 1050px; border: 0; background: #fff; }
.ins-side-column { display: grid; gap: .62rem; }
.ins-qr-card { display: flex; flex-direction: column; align-items: center; padding: .75rem .65rem .7rem; border: 1px solid #eadfec; border-radius: 8px; background: #f5eef6; text-align: center; }
.ins-qr-card h3 { margin: 0 0 .42rem; color: var(--ins-deep); font: 600 1.05rem/1.2 'Playfair Display', Georgia, serif; }
.ins-qr-link { display: block; width: 160px; max-width: 100%; border: 4px solid #fff; border-radius: 4px; background: #fff; line-height: 0; }
.ins-qr-link img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.ins-qr-card > p { margin: .3rem 0 .32rem; color: var(--ins-muted); font-size: .8rem; }
.ins-qr-button { width: 100%; max-width: 190px; }
.ins-help-card { display: grid; grid-template-columns: 1.9rem minmax(0,1fr); align-items: start; gap: .58rem; padding: .7rem; border: 1px solid var(--ins-line); border-radius: 8px; background: #fff; }
.ins-phone-mark { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: 50%; background: #f3eaf3; color: var(--ins-plum); }
.ins-phone-mark svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.ins-help-card h3 { margin: 0 0 .1rem; color: var(--ins-deep); font: 600 1rem/1.15 'Playfair Display', Georgia, serif; }
.ins-help-card p { margin: 0; font-size: .8rem; font-weight: 700; line-height: 1.4; }
.ins-help-card a { color: var(--ins-deep); text-decoration: none; }
.ins-help-card > div > span { display: block; margin-top: .18rem; color: var(--ins-muted); font-size: .8rem; line-height: 1.4; }
.ins-form-disclaimer { margin: .42rem 0 0; color: var(--ins-muted); font-size: .8rem; line-height: 1.4; text-align: center; }

.ins-self-pay { padding: .6rem 0; background: linear-gradient(100deg, #efe5f0, #f5edf4 55%, #eee5ef); }
.ins-self-pay-inner { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .55rem 1rem; }
.ins-self-pay h2 { margin: 0 0 .16rem; color: var(--ins-deep); font: 600 clamp(1.2rem,2.5vw,1.55rem)/1.12 'Playfair Display', Georgia, serif; letter-spacing: -.02em; }
.ins-self-pay > .container > div:first-child > p:last-child { max-width: 630px; margin: 0; color: #655c66; font-size: .9rem; line-height: 1.45; }
.ins-self-pay-actions { display: flex; min-width: 160px; flex-direction: column; align-items: center; gap: .13rem; }
.ins-self-pay-actions .ins-button { padding: .42rem .72rem; }
.ins-self-pay-actions > a:not(.ins-button) { color: var(--ins-deep); font-size: .8rem; font-weight: 700; }
.ins-self-pay-actions .ins-gfe-link { font-size: .8rem !important; font-weight: 500 !important; }
.ins-gfe-details { grid-column: 1 / -1; color: var(--ins-muted); font-size: .9rem; }
.ins-gfe-details summary { display: inline-flex; min-height: 44px; align-items: center; color: var(--ins-plum); font-weight: 650; cursor: pointer; }
.ins-gfe-details p { max-width: 750px; margin: .05rem 0 .2rem; line-height: 1.5; }

.ins-plans-section { padding: .55rem 0 .38rem; background: var(--ins-paper); }
.ins-plans-section h2, .ins-faq-section h2 { margin-bottom: .24rem; font-size: clamp(1.28rem, 2.5vw, 1.65rem); }
.ins-plans-intro { margin: 0 0 .42rem; color: var(--ins-muted); font-size: .8rem; line-height: 1.4; }
.ins-plan-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .22rem .55rem; }
.ins-plan-list details { min-width: 0; border: 1px solid #e8dfe6; border-radius: 5px; background: #fffdfa; }
.ins-plan-list summary, .ins-faq-list summary { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: .55rem; padding: .34rem .55rem; color: var(--ins-ink); cursor: pointer; font-size: .9rem; font-weight: 650; line-height: 1.3; list-style: none; }
.ins-plan-list summary::-webkit-details-marker, .ins-faq-list summary::-webkit-details-marker, .ins-gfe-details summary::-webkit-details-marker { display: none; }
.ins-plan-list summary::after, .ins-faq-list summary::after { content: "⌄"; flex: 0 0 auto; color: var(--ins-deep); font-size: .86rem; line-height: 1; }
.ins-plan-list details[open] summary, .ins-faq-list details[open] summary { border-bottom: 1px solid var(--ins-line); }
.ins-plan-list details[open] summary::after, .ins-faq-list details[open] summary::after { content: "⌃"; }
.ins-plan-content { padding: .45rem .58rem .55rem; color: var(--ins-muted); font-size: .9rem; line-height: 1.5; }
.ins-plan-content p { margin: 0 0 .28rem; }
.ins-plan-content ul { margin: .1rem 0 .25rem; padding-left: 1.15rem; }
.ins-plan-content li + li { margin-top: .08rem; }
.ins-plan-content .ins-plan-note { margin-bottom: 0; }

.ins-networks-section { padding: .3rem 0 .45rem; background: var(--ins-paper); }
.ins-network-row { display: grid; grid-template-columns: 190px minmax(0,1fr); align-items: baseline; gap: .12rem .75rem; padding-top: .35rem; border-top: 1px solid #dfd5dd; }
.ins-network-row h2 { margin: 0; color: var(--ins-deep); font-size: .9rem; font-weight: 750; }
.ins-network-row p { margin: 0; color: var(--ins-muted); font-size: .9rem; line-height: 1.4; }
.ins-network-row .ins-network-note { grid-column: 2; font-size: .8rem; }

.ins-faq-section { padding: .25rem 0 .58rem; background: var(--ins-paper); }
.ins-faq-section h2 { margin-bottom: .32rem; }
.ins-faq-list { display: grid; gap: .2rem; }
.ins-faq-list details { border: 1px solid #e7dfe5; border-radius: 5px; background: #fffdfa; }
.ins-faq-list summary { min-height: 44px; font-size: .9rem; }
.ins-faq-answer { padding: .45rem .6rem .55rem; color: var(--ins-muted); font-size: .9rem; line-height: 1.5; }
.ins-faq-answer p { margin: 0 0 .3rem; }
.ins-faq-answer p:last-child { margin-bottom: 0; }
.ins-final-cta { padding: .45rem 0; background: linear-gradient(100deg, #78437d, #85518a 55%, #704075); color: #fff; }
.ins-final-cta .container { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }
.ins-final-cta h2 { margin: 0; color: #fff; font: 500 clamp(1.2rem,2.8vw,1.55rem)/1.15 'Playfair Display', Georgia, serif; }
.ins-final-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .38rem; }
.ins-button-light { border-color: #fff; background: #fff; color: var(--ins-deep); }
.ins-button-light:hover { background: #f4edf4; color: var(--ins-deep); }
.ins-button-clear { border-color: rgba(255,255,255,.76); background: transparent; color: #fff; }
.ins-button-clear:hover { background: rgba(255,255,255,.12); color: #fff; }

@media (min-width: 1200px) {
  .ins-hero { min-height: 176px; }
  .ins-hero .container { min-height: 148px; }
}
@media (max-width: 767.98px) {
  .insurance-page .container { width: min(100% - 1.5rem, 640px); }
  .ins-hero { min-height: 0; padding: 1.2rem 0 1rem; }
  .ins-hero .container { min-height: 0; }
  .ins-hero-content { width: min(78%, 500px); }
  .ins-hero h1 { font-size: clamp(1.9rem, 7vw, 2.4rem); }
  .ins-botanical { right: -95px; width: 270px; height: 270px; opacity: .34; }
  .ins-steps { grid-template-columns: 1fr; gap: .32rem; padding: .52rem .62rem; }
  .ins-steps li:not(.ins-step-arrow) { grid-template-columns: 1.6rem minmax(0,1fr); }
  .ins-steps h2 br { display: none; }
  .ins-steps p { font-size: .8rem; }
  .ins-step-arrow { display: none; }
  .ins-form-layout { grid-template-columns: minmax(0,1fr); }
  .ins-side-column { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; }
  .ins-qr-card { justify-content: center; }
  .ins-qr-link { width: min(150px, 65%); }
  .ins-help-card { align-content: center; }
  .ins-self-pay-inner { grid-template-columns: minmax(0,1fr) auto; }
  .ins-network-row { grid-template-columns: minmax(0,1fr); gap: .18rem; }
  .ins-network-row .ins-network-note { grid-column: 1; }
}
@media (max-width: 520px) {
  .ins-hero-content { width: 100%; padding-right: 1.4rem; }
  .ins-botanical { top: 1.6rem; right: -148px; width: 250px; height: 250px; transform: none; opacity: .23; }
  .ins-desktop-break { display: none; }
  .ins-hero-actions { align-items: stretch; flex-direction: column; max-width: 270px; }
  .ins-button { min-height: 44px; }
  .ins-text-link { min-height: 44px; }
  .ins-side-column { grid-template-columns: minmax(0,1fr); }
  .ins-qr-card { padding: .7rem; }
  .ins-qr-link { width: 160px; }
  .ins-embed-card iframe { height: 1050px; }
  .ins-self-pay-inner { grid-template-columns: minmax(0,1fr); }
  .ins-self-pay-actions { align-items: flex-start; }
  .ins-self-pay-actions .ins-button { width: 100%; }
  .ins-gfe-details { grid-column: 1; }
  .ins-plan-list { grid-template-columns: minmax(0,1fr); gap: .25rem; }
  .ins-plan-list summary, .ins-faq-list summary { min-height: 44px; font-size: .9rem; }
  .ins-faq-list summary { padding: .45rem .58rem; }
  .ins-final-cta .container { align-items: stretch; flex-direction: column; }
  .ins-final-actions { align-items: stretch; flex-direction: column; }
  .ins-final-actions .ins-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .insurance-page *, .insurance-page *::before, .insurance-page *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
