/* Public plan discovery: scoped to these three sandbox pages. */
body.drb-sandbox .cp-shell { --cp-ink:#18394f;--cp-muted:#566b79;--cp-line:#d9e3eb;--cp-blue:#175b99;--cp-teal:#116557; max-width:1200px; margin:0 auto; padding:0 28px 60px; color:var(--cp-ink); font:15px/1.6 Inter,Arial,sans-serif; }
.cp-shell *, .cp-shell *::before, .cp-shell *::after { box-sizing:border-box; }
body.drb-sandbox .cp-shell h1,body.drb-sandbox .cp-shell h2,body.drb-sandbox .cp-shell h3 { font-family:Inter,Arial,sans-serif; color:var(--cp-ink)!important; letter-spacing:-.045em; font-weight:650; line-height:1.13; margin:0; text-transform:none; }
body.drb-sandbox .cp-shell h1 { font-size:clamp(36px,4.4vw,58px)!important; }
body.drb-sandbox .cp-shell h2 { font-size:clamp(28px,3vw,38px)!important; }
body.drb-sandbox .cp-shell h3 { font-size:24px!important; }
body.drb-sandbox .cp-shell p { font-size:inherit; line-height:1.65; margin:0; }
.cp-shell a { color:var(--cp-blue); text-underline-offset:4px; }
.cp-shell svg { width:22px; height:22px; flex-shrink:0; }
.cp-shell img { display:block; width:100%; height:100%; object-fit:cover; }
.cp-shell [hidden] { display:none!important; }
.cp-shell :is(a,button,summary,select):focus-visible { outline:3px solid #4585c0; outline-offset:4px; }
.cp-shell :is(section,aside)[id] { scroll-margin-top:100px; }
.cp-hero { display:grid; grid-template-columns:1.12fr 1fr; align-items:center; gap:48px; padding:36px 0 20px; }
body.drb-sandbox .cp-shell .cp-eyebrow { font-size:10px; font-weight:750; letter-spacing:.14em; line-height:1.5; color:var(--cp-blue); margin-bottom:14px; text-transform:uppercase; }
body.drb-sandbox .cp-shell .cp-lead { font-size:16px; color:var(--cp-muted); max-width:42ch; margin:20px 0 22px; }
.cp-hero-art { height:300px; border-radius:24px 80px 24px 24px; overflow:hidden; position:relative; background:#eaf0f5; }
.cp-hero-art img { object-position:center 42%; }
.cp-hero-art picture { display:block; width:100%; height:100%; }
.cp-image-caption { display:flex; align-items:center; gap:10px; position:absolute; bottom:14px; left:14px; right:14px; padding:11px 14px; background:#ffffffed; border:1px solid #fff; border-radius:12px; font-size:11px; font-weight:650; }
body.drb-sandbox .cp-shell .cp-button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:48px; border-radius:11px; padding:12px 18px; border:1px solid var(--cp-ink); background:var(--cp-ink); color:#fff!important; text-decoration:none; font-size:13px; font-weight:650; line-height:1.4; letter-spacing:0; box-shadow:none; }
.cp-button svg { width:18px; height:18px; }
body.drb-sandbox .cp-shell .cp-button:hover { background:#235475; border-color:#235475; }
body.drb-sandbox .cp-shell .cp-button--light { background:#edf3f9; color:#194f7c!important; border-color:#d1dfeb; }
body.drb-sandbox .cp-shell .cp-button--light:hover { background:#e1edf7; border-color:#b1cadd; }
.cp-text-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:12px; font-weight:650; text-decoration:none; }
.cp-text-link:hover { text-decoration:underline; }
.cp-section { padding:42px 0; }
.cp-section-heading { display:flex; justify-content:space-between; align-items:end; gap:36px; margin-bottom:25px; }
.cp-section-heading>p { color:var(--cp-muted); max-width:33ch; font-size:13px!important; }
.cp-plan-grid,.cp-visit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.cp-plan,.cp-visit-card { background:#fff; border:1px solid var(--cp-line); border-radius:20px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 8px 26px #1b425508; }
.cp-plan-photo { height:152px; position:relative; background:#eaf2f6; overflow:hidden; }
.cp-plan-photo img { object-position:center 20%; }
.cp-plan--weight .cp-plan-photo img { object-position:72% 15%; }
.cp-plan-photo>span { position:absolute; left:12px; bottom:12px; background:#ffffffee; border-radius:7px; padding:5px 9px; font-size:10px; font-weight:650; }
.cp-plan-content { display:flex; flex-direction:column; flex:1; padding:22px; }
body.drb-sandbox .cp-shell .cp-plan-tagline { color:var(--cp-muted); font-size:12px; margin-top:6px; }
body.drb-sandbox .cp-shell .cp-plan-price { display:flex; align-items:baseline; flex-wrap:wrap; gap:7px; margin:17px 0 19px; line-height:1.2; }
.cp-plan-price strong { font-size:43px; letter-spacing:-.05em; font-weight:650; }
.cp-plan-price>span { font-size:12px; color:var(--cp-muted); }
.cp-features { list-style:none; padding:0; margin:0 0 20px; display:grid; gap:12px; }
.cp-features li { display:flex; align-items:start; gap:8px; padding:0; font-size:12px; line-height:1.6; color:#344f61; }
.cp-features svg { width:17px; height:17px; color:var(--cp-blue); margin-top:2px; }
body.drb-sandbox .cp-shell .cp-plan-extra { margin:auto 0 18px; padding-top:15px; border-top:1px solid var(--cp-line); font-size:11px; color:var(--cp-muted); }
body.drb-sandbox .cp-shell .cp-renewal { font-size:10px; text-align:center; color:var(--cp-muted); margin-top:9px; }
.cp-plan--weight { border-color:#b7d2c9; background:#f3faf6; }
body.drb-sandbox .cp-shell .cp-plan--weight :is(h3,.cp-plan-price strong),.cp-plan--weight .cp-features svg { color:var(--cp-teal)!important; }
body.drb-sandbox .cp-shell .cp-plan--weight .cp-button { color:#fff!important; background:var(--cp-teal); border-color:var(--cp-teal); }
.cp-plan--family .cp-plan-photo>span { color:#674c88; }
.cp-plan--individual .cp-plan-photo>span { color:#195b94; }
body.drb-sandbox .cp-shell .cp-note { font-size:11px; color:var(--cp-muted); margin-top:16px; }
.cp-plan-switch { display:none; }
.cp-included { display:flex; align-items:center; gap:20px; border:1px solid #c9dfd6; background:#eaf5ef; border-radius:18px; padding:24px; }
body.drb-sandbox .cp-shell .cp-included h2 { font-size:21px!important; color:var(--cp-teal)!important; }
body.drb-sandbox .cp-shell .cp-included p { font-size:12px; color:#416056; margin-top:10px; }
.cp-included>div { flex:1; }
.cp-included>.cp-text-link { color:var(--cp-teal); white-space:nowrap; }
.cp-icon { display:grid; place-items:center; flex-shrink:0; width:43px; height:43px; border-radius:12px; background:#eaf2fa; color:var(--cp-blue); }
.cp-included>.cp-icon { background:#fff; color:var(--cp-teal); }
.cp-savings { display:grid; grid-template-columns:1fr 1fr; gap:46px; align-items:center; }
.cp-savings-copy>p:not(.cp-eyebrow) { color:var(--cp-muted); font-size:13px!important; max-width:37ch; margin-top:16px!important; }
.cp-savings-controls { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:22px; }
.cp-savings label { font-size:11px; font-weight:650; }
body.drb-sandbox .cp-shell select { display:block; width:100%; height:47px; margin-top:7px; font:13px Inter,Arial,sans-serif; border:1px solid #bacddc; border-radius:9px; background:#fff; color:var(--cp-ink); padding:10px 28px 10px 12px; }
.cp-savings-result { background:#fff; border:1px solid var(--cp-line); border-radius:20px; padding:26px; }
.cp-savings-result>div { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:15px 0; border-bottom:1px solid #e8edf1; font-size:13px; }
.cp-savings-result>div strong { font-size:24px; letter-spacing:-.04em; }
body.drb-sandbox .cp-shell .cp-calc-equation { font-size:11px; color:var(--cp-muted); margin-top:10px; }
body.drb-sandbox .cp-shell .cp-calc-answer { font-size:20px; font-weight:650; color:var(--cp-blue); margin:18px 0 10px; }
.cp-savings-result>small { display:block; font-size:10px; line-height:1.6; color:var(--cp-muted); }
/* Matching rows keep headings, benefits and actions aligned without tall empty cards. */
.cp-visit-grid { align-items:stretch; }
.cp-visit-card { display:grid; grid-template-rows:auto 1fr auto auto; gap:14px; padding:20px; }
.cp-visit-heading { display:flex; align-items:center; gap:11px; min-height:36px; }
.cp-visit-heading .cp-icon { width:34px; height:34px; border-radius:10px; }
.cp-visit-heading .cp-icon svg { width:21px; height:21px; }
.cp-visit-card--insurance .cp-icon { border-radius:50%; }
body.drb-sandbox .cp-shell .cp-visit-heading h3 { font-size:21px!important; letter-spacing:-.035em; }
.cp-visit-summary { display:flex; flex-direction:column; justify-content:space-between; gap:8px; }
body.drb-sandbox .cp-shell .cp-visit-card .cp-plan-price { margin:0; min-height:44px; }
.cp-visit-card .cp-plan-price strong { font-size:39px; }
body.drb-sandbox .cp-shell .cp-visit-sub { font-size:12px; line-height:1.55; color:var(--cp-muted); margin:0; }
body.drb-sandbox .cp-shell .cp-insurance-caption { display:flex; align-items:center; min-height:44px; font-size:18px; line-height:1.3; font-weight:550; color:var(--cp-ink); margin:0; max-width:22ch; }
.cp-visit-card .cp-features { gap:7px; margin:0; padding-top:14px; border-top:1px solid #e8edf1; }
.cp-visit-card .cp-features li { min-height:30px; line-height:1.5; }
.cp-visit-card .cp-button { margin:0; align-self:end; width:100%; }
.cp-weight-band { display:grid; grid-template-columns:.8fr 1fr; overflow:hidden; border:1px solid #b7d2c9; border-radius:24px; background:#edf7f0; }
.cp-weight-band>img { object-position:70% center; min-height:440px; }
.cp-weight-band>div { padding:36px; }
body.drb-sandbox .cp-shell .cp-weight-band :is(h2,.cp-eyebrow,.cp-plan-price strong) { color:var(--cp-teal)!important; }
.cp-weight-band>div>p:not(.cp-eyebrow):not(.cp-plan-price) { color:#416056; font-size:13px; }
body.drb-sandbox .cp-shell .cp-weight-terms { font-size:11px!important; margin:14px 0 20px; }
body.drb-sandbox .cp-shell .cp-weight-band .cp-button { background:var(--cp-teal); border-color:var(--cp-teal); }
.cp-weight-band .cp-text-link { display:flex; color:var(--cp-teal); margin-top:4px; }
.cp-faq { display:grid; grid-template-columns:.8fr 1.2fr; gap:50px; border-top:1px solid var(--cp-line); margin-top:35px; }
.cp-faq .cp-text-link { margin-top:18px; }
.cp-faq-list details { border-bottom:1px solid var(--cp-line); }
.cp-faq-list details:first-child { border-top:1px solid var(--cp-line); }
.cp-faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:60px; padding:16px 0; list-style:none; cursor:pointer; font-size:14px; font-weight:600; line-height:1.5; }
.cp-faq-list summary::-webkit-details-marker { display:none; }
.cp-faq-list summary>span { display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:#e9f1f8; color:#215777; font-size:21px; flex-shrink:0; font-weight:400; }
.cp-faq-list details[open] summary>span { transform:rotate(45deg); }
.cp-faq-list details>div { color:var(--cp-muted); font-size:13px; padding:0 36px 18px 0; }
.cp-closing { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:32px; background:#e7f0f8; border:1px solid #cadce9; border-radius:20px; }
body.drb-sandbox .cp-shell .cp-closing h2 { font-size:28px!important; }
body.drb-sandbox .cp-shell .cp-closing p:not(.cp-eyebrow) { font-size:13px; color:var(--cp-muted); margin-top:10px; }
.cp-closing .cp-button { flex-shrink:0; }
.cp-steps { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:0; margin:0; }
.cp-steps>li { padding:0; background:#fff; border:1px solid var(--cp-line); border-radius:18px; overflow:hidden; }
.cp-step-art { position:relative; height:155px; }
.cp-step-art img { object-position:center 40%; }
.cp-step-art>span { position:absolute; bottom:12px; left:16px; padding:3px 11px; border-radius:9px; background:#fff; color:var(--cp-blue); font-size:24px; letter-spacing:-.06em; font-weight:650; }
.cp-step-copy { padding:22px; }
body.drb-sandbox .cp-shell .cp-step-copy h3 { font-size:21px!important; }
body.drb-sandbox .cp-shell .cp-step-copy>p { color:var(--cp-muted); font-size:12px; margin-top:14px; }
.cp-step-caption { display:flex; align-items:start; gap:8px; margin-top:18px; padding-top:14px; border-top:1px solid var(--cp-line); color:var(--cp-blue); font-size:10px; line-height:1.6; font-weight:650; }
.cp-step-caption svg { width:17px; height:17px; }
.cp-choose { border-top:1px solid var(--cp-line); }
.cp-service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.cp-service { position:relative; background:#fff; border:1px solid var(--cp-line); border-radius:16px; overflow:hidden; text-decoration:none; }
.cp-service>img { height:152px; object-position:center 20%; }
.cp-service--weight>img { object-position:75% 15%; }
.cp-service>span { display:block; padding:16px 26px 17px 16px; }
.cp-service strong { display:block; color:#23577b; font-size:17px; }
.cp-service small { display:block; margin-top:6px; color:var(--cp-muted); font-size:11px; line-height:1.55; }
.cp-service>svg { position:absolute; right:9px; bottom:21px; width:17px; height:17px; }
.cp-service--weight { background:#edf7f0; }.cp-service--weight strong,.cp-service--weight>svg { color:var(--cp-teal); }
.cp-service--primary { background:#f0f7f4; }.cp-service--primary strong { color:#26716b; }
.cp-service--mental { background:#faf0f4; }.cp-service--mental strong { color:#974a72; }
.cp-ready { display:grid; grid-template-columns:1fr 1fr; gap:48px; border:1px solid var(--cp-line); border-radius:20px; background:#fff; padding:30px; }
.cp-ready>div>p:not(.cp-eyebrow) { margin:17px 0 9px!important; max-width:37ch; font-size:13px!important; color:var(--cp-muted); }
.cp-ready ul { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.cp-ready li { display:flex; gap:15px; align-items:center; padding:12px 0; color:var(--cp-muted); font-size:12px; }
.cp-ready li svg { color:var(--cp-blue); width:26px; height:26px; }
.cp-ready li strong { display:block; color:var(--cp-ink); font-size:14px; margin-bottom:4px; }
/* Share row sizes across desktop cards, including when a benefit wraps. */
@supports (grid-template-rows:subgrid) {
 @media(min-width:761px) {
  .cp-visit-grid { row-gap:14px; }
  .cp-visit-card { grid-row:span 4; grid-template-rows:subgrid; }
 }
}
@media(max-width:1000px) {
 .cp-hero { gap:28px; }.cp-plan-content { padding:17px; }.cp-plan-grid,.cp-visit-grid { gap:12px; }.cp-visit-card { padding:19px; }
 .cp-included { flex-wrap:wrap; }.cp-included>.cp-text-link { margin-left:63px; }.cp-savings { gap:25px; }
 .cp-section-heading { gap:20px; }.cp-steps { gap:14px; }.cp-step-copy { padding:17px; }
}
@media(max-width:760px) {
 body.drb-sandbox .cp-shell { padding:0 18px 34px; }
 .cp-shell :is(section,aside)[id] { scroll-margin-top:72px; }
 .cp-hero { grid-template-columns:1.25fr .75fr; gap:16px; padding:23px 0 6px; align-items:start; }
 .cp-hero-copy { display:contents; }
 .cp-hero .cp-eyebrow { grid-column:1 / -1; margin:0!important; font-size:9px!important; }
 body.drb-sandbox .cp-shell .cp-hero h1 { grid-column:1; grid-row:2; font-size:clamp(28px,7.5vw,43px)!important; align-self:center; }
 .cp-hero-art { grid-column:2; grid-row:2; height:156px; border-radius:16px 46px 16px 16px; }
 .cp-hero-art img { object-position:55% center; }.cp-membership .cp-hero-art img { object-position:52% center; }
 .cp-image-caption { display:none; }
 body.drb-sandbox .cp-shell .cp-hero .cp-lead { grid-column:1 / -1; grid-row:3; margin:0; max-width:42ch; font-size:14px; }
 .cp-hero>.cp-hero-copy>.cp-button { grid-column:1 / -1; grid-row:4; justify-self:start; }
 .cp-section { padding:29px 0; }
 .cp-section-heading { display:block; margin-bottom:18px; }.cp-section-heading>p { margin-top:11px!important; max-width:43ch; font-size:12px!important; }
 body.drb-sandbox .cp-shell .cp-eyebrow { font-size:9px; margin-bottom:9px; }
 body.drb-sandbox .cp-shell h2 { font-size:28px!important; }
 .cp-plan-switch:not([hidden]) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin-bottom:12px; }
 .cp-plan-switch button { display:block; text-align:left; width:100%; min-width:0; cursor:pointer; border:1px solid var(--cp-line); border-radius:11px; background:#fff; padding:10px; color:#405b6e; font:600 12px/1.4 Inter,Arial,sans-serif; }
 .cp-plan-switch button>span { display:block; font-size:11px; margin-bottom:4px; }.cp-plan-switch strong { font-size:19px; letter-spacing:-.04em; }.cp-plan-switch small { font-size:10px; font-weight:450; }
 .cp-plan-switch button[aria-pressed=true] { background:#eaf2fa; border-color:#397db5; color:#175b99; box-shadow:inset 0 0 0 1px #397db5; }
 .cp-plan-switch button[data-plan=weight][aria-pressed=true] { background:#e6f2ec; color:var(--cp-teal); border-color:#438a74; box-shadow:inset 0 0 0 1px #438a74; }
 .cp-plan-grid { grid-template-columns:1fr; gap:16px; }.cp-plan-photo { height:140px; }
 .cp-plan-content { padding:20px; }.cp-plan-content .cp-plan-price { margin:12px 0 18px!important; }.cp-plan-price strong { font-size:39px; }
 .cp-features { gap:10px; }.cp-features li { font-size:12px; }.cp-plan-extra { padding-top:12px!important; }.cp-plan .cp-button { width:100%; }
 .cp-included { display:grid; grid-template-columns:32px 1fr; gap:12px; padding:18px; border-radius:15px; }
 .cp-included>.cp-icon { width:32px; height:32px; border-radius:9px; }.cp-included>.cp-icon svg { width:20px; height:20px; }
 body.drb-sandbox .cp-shell .cp-included h2 { font-size:19px!important; }.cp-included>.cp-text-link { margin:0; grid-column:2; white-space:normal; }
 .cp-savings { grid-template-columns:1fr; gap:20px; }.cp-savings h2 br { display:none; }.cp-savings-copy>p { max-width:none; }.cp-savings-controls { margin-top:17px; gap:8px; }.cp-savings label { font-size:10px; }
 body.drb-sandbox .cp-shell select { font-size:12px; padding-left:9px; }.cp-savings-result { padding:20px; }.cp-savings-result>div { padding:12px 0; }
 .cp-visit-grid { grid-template-columns:1fr; gap:14px; }
 .cp-visit-card { grid-template-rows:auto; gap:13px; padding:18px; border-radius:17px; }
 body.drb-sandbox .cp-shell .cp-visit-heading h3 { font-size:21px!important; }
 .cp-visit-card .cp-features { gap:9px; padding-top:12px; }
 .cp-visit-card .cp-features li { min-height:0; }
 .cp-visit-summary { gap:5px; }
 body.drb-sandbox .cp-shell .cp-insurance-caption { min-height:0; font-size:16px; max-width:none; }
 .cp-weight-band { grid-template-columns:1fr; border-radius:19px; }.cp-weight-band>img { min-height:0; height:170px; object-position:70% 38%; }.cp-weight-band>div { padding:23px; }.cp-weight-band h2 br { display:none; }.cp-weight-band .cp-button { width:100%; }
 .cp-faq { grid-template-columns:1fr; gap:16px; margin-top:24px; }.cp-faq h2 br { display:none; }.cp-faq .cp-text-link { margin-top:8px; }.cp-faq-list summary { font-size:13px; min-height:60px; }.cp-faq-list details>div { padding-right:8px; font-size:13px; }
 .cp-closing { display:block; padding:23px; border-radius:17px; }.cp-closing .cp-button { margin-top:20px; width:100%; }
 .cp-steps { grid-template-columns:1fr; gap:12px; }.cp-steps>li { display:grid; grid-template-columns:86px 1fr; padding:15px; gap:15px; border-radius:15px; }.cp-step-art { height:105px; border-radius:12px; overflow:hidden; }.cp-step-art>span { left:7px; bottom:7px; font-size:19px; padding:1px 8px; }.cp-step-art img { object-position:58% center; }.cp-step-copy { padding:0; }
 body.drb-sandbox .cp-shell .cp-step-copy h3 { font-size:19px!important; }.cp-step-copy>p { margin-top:9px!important; }.cp-step-caption { margin-top:12px; padding-top:10px; }
 .cp-service-grid { grid-template-columns:1fr 1fr; gap:11px; }.cp-service>img { height:110px; }.cp-service>span { padding:13px 20px 13px 13px; }.cp-service strong { font-size:15px; }.cp-service small { font-size:10px; }.cp-service>svg { right:7px; bottom:17px; width:14px; }
 .cp-ready { grid-template-columns:1fr; padding:23px; gap:12px; }.cp-ready h2 br { display:none; }.cp-ready li { padding:9px 0; }.cp-ready li strong { font-size:13px; }
}
@media(max-width:360px) {
 body.drb-sandbox .cp-shell { padding-inline:14px; }.cp-hero { gap:12px; grid-template-columns:1.3fr .7fr; }.cp-hero-art { height:154px; }.cp-plan-switch button { padding:9px 7px; }.cp-plan-switch button>span { font-size:10px; }.cp-steps>li { grid-template-columns:65px 1fr; padding:13px; gap:12px; }.cp-step-art { height:95px; }.cp-savings-controls { grid-template-columns:1fr; }
}

/* How it works: phone-first instruction art, without cropping the device. */
.cp-how .cp-step-art { height:190px; }
.cp-how .cp-step-art--phone { background:#eaf2f9; }
.cp-how .cp-step-art--phone img { object-fit:contain; object-position:center; }
.cp-how .cp-step-number { display:block; margin:0 0 8px; color:var(--cp-blue); font-size:10px; font-weight:700; letter-spacing:.12em; }
body.drb-sandbox .cp-how .cp-step-copy>p { font-size:13px; line-height:1.65; }
.cp-how .cp-step-caption { font-size:11px; }
@media(max-width:760px) {
 .cp-how .cp-steps>li { grid-template-columns:100px minmax(0,1fr); align-items:start; }
 .cp-how .cp-step-art { height:170px; }
 .cp-how .cp-step-art--phone img { object-fit:cover; }
 body.drb-sandbox .cp-how .cp-step-copy h3 { font-size:19px!important; line-height:1.25!important; }
 .cp-how .cp-step-caption { margin-top:12px; padding-top:10px; }
}
@media(max-width:380px) {
 .cp-how .cp-steps>li { grid-template-columns:82px minmax(0,1fr); gap:12px; padding:13px; }
 .cp-how .cp-step-art { height:144px; }
}
