/* ============================================================
   Northline Dental Co. — shared tool styles
   Cost calculator + treatment finder. Token-driven so they sit
   on any section background.
   ============================================================ */

/* ---------- cost calculator ---------- */
.calc-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:36px;align-items:start;}
.calc-items{display:flex;flex-direction:column;gap:12px;}
.ci{display:flex;align-items:center;gap:18px;background:var(--paper);border:1.5px solid var(--line);border-radius:12px;padding:18px 20px;transition:border-color .18s,background .18s;}
.ci.on{border-color:var(--petrol);background:var(--bone);}
.ci-main{flex:1;}
.ci-main h4{font-size:16px;font-weight:600;color:var(--ink);margin:0 0 3px;}
.ci-main p{font-size:13px;color:var(--slate);margin:0;}
.ci-price{font-family:var(--font-display);font-size:20px;color:var(--petrol);white-space:nowrap;}
.ci-price small{font-size:12px;color:var(--slate);font-family:var(--font-sans);}
.stepper{display:flex;align-items:center;gap:0;border:1.5px solid var(--line);border-radius:30px;overflow:hidden;background:var(--paper);}
.stepper button{width:34px;height:34px;border:0;background:none;font-size:18px;color:var(--petrol);cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.stepper button:hover{background:var(--mist);}
.stepper button:disabled{color:var(--line);cursor:default;}
.stepper .qv{width:30px;text-align:center;font-weight:600;font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums;}
.calc-summary{position:sticky;top:calc(var(--nav-h) + 20px);}
.cs-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;box-shadow:var(--shadow);}
.cs-cov{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;}
.cs-cov>span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--slate);font-weight:600;}
.cs-toggle{display:flex;background:var(--bone);border:1px solid var(--line);border-radius:30px;padding:4px;gap:4px;}
.cs-seg{flex:1;font-family:var(--font-sans);font-size:13.5px;font-weight:600;color:var(--slate);background:none;border:0;border-radius:24px;padding:9px 8px;cursor:pointer;transition:.16s;}
.cs-seg.active{background:var(--petrol);color:var(--bone);}
.cs-lines{min-height:40px;border-top:1px solid var(--line);padding-top:16px;margin-bottom:8px;}
.cs-empty{font-size:14px;color:var(--slate);margin:6px 0;}
.cs-li{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:7px 0;color:var(--ink);}
.cs-li span:first-child{color:var(--slate);}
.cs-total{border-top:1px solid var(--line);padding-top:14px;}
.cs-row{display:flex;justify-content:space-between;align-items:center;font-size:14.5px;padding:5px 0;}
.cs-ins{color:var(--accent-deep);}
.cs-final{padding-top:12px;margin-top:6px;border-top:1px solid var(--line);align-items:baseline;}
.cs-final span{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--slate);font-weight:600;}
.cs-final b{font-family:var(--font-display);font-size:38px;color:var(--petrol);font-weight:400;}
.cs-promise{display:flex;gap:11px;align-items:flex-start;background:var(--mist);border-radius:10px;padding:14px 16px;margin-top:18px;font-size:13px;color:var(--ink);line-height:1.5;}
.cs-promise svg{width:18px;height:18px;stroke:var(--petrol);flex:0 0 auto;margin-top:1px;}
.cs-fine{font-size:12px;color:var(--slate);text-align:center;margin:12px 0 0;}
@media(max-width:860px){.calc-grid{grid-template-columns:1fr;}.calc-summary{position:static;}}

/* ---------- treatment finder ---------- */
.finder{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px 40px 40px;}
.fd-progress{height:4px;background:var(--stone);border-radius:4px;margin:0 -40px 34px;}
.fd-bar{display:block;height:100%;background:var(--accent);border-radius:4px;width:33%;transition:width .35s var(--ease);}
.fd-q{font-family:var(--font-display);font-size:clamp(24px,3vw,32px);color:var(--petrol);letter-spacing:-0.01em;margin-bottom:26px;text-align:center;}
.fd-opts{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.fd-opt{display:flex;align-items:center;gap:14px;text-align:left;background:var(--bone);border:1.5px solid var(--line);border-radius:12px;padding:18px 20px;cursor:pointer;font-family:var(--font-sans);font-size:15.5px;font-weight:500;color:var(--ink);transition:.16s;}
.fd-opt:hover{border-color:var(--petrol);transform:translateY(-2px);}
.fd-opt .fo-ico{width:40px;height:40px;border-radius:10px;background:var(--mist);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.fd-opt .fo-ico svg{width:20px;height:20px;stroke:var(--petrol);stroke-width:1.5;fill:none;}
.fd-back{background:none;border:0;color:var(--slate);font-family:var(--font-sans);font-size:14px;cursor:pointer;margin-top:22px;display:inline-flex;gap:6px;align-items:center;}
.fd-back:hover{color:var(--ink);}
.fd-result{text-align:center;}
.fd-result .fr-tag{display:inline-block;margin-bottom:14px;}
.fd-result h3{font-family:var(--font-display);font-size:clamp(26px,3.4vw,38px);color:var(--petrol);margin-bottom:14px;}
.fd-result p{font-size:16.5px;color:var(--slate);max-width:50ch;margin:0 auto 28px;line-height:1.6;}
.fd-result .cta-row{justify-content:center;}
@media(max-width:560px){.fd-opts{grid-template-columns:1fr;}}

/* ---------- coverage check band ---------- */
.cov-grid{display:grid;grid-template-columns:1fr .9fr;gap:60px;align-items:center;}
.cov-points{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:14px;}
.cov-points li{display:flex;gap:12px;font-size:15px;color:var(--bone);}
.cov-points li svg{width:18px;height:18px;stroke:var(--accent);flex:0 0 auto;margin-top:3px;}
.cov-card{background:var(--bone);border-radius:18px;padding:34px;box-shadow:var(--shadow-lg);}
.cov-sub{font-size:14px;color:var(--slate);margin:6px 0 22px;}
.cov-fine{font-size:13px;color:var(--slate);text-align:center;margin:18px 0 0;}
@media(max-width:860px){.cov-grid{grid-template-columns:1fr;gap:28px;}}

/* ---------- shared booking CTA band ---------- */
.book-grid{display:grid;grid-template-columns:1fr .9fr;gap:60px;align-items:center;}
.book-points{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:14px;}
.book-points li{display:flex;gap:12px;font-size:15px;color:var(--bone);}
.book-points li svg{width:18px;height:18px;stroke:var(--accent);flex:0 0 auto;margin-top:3px;}
.book-card{background:var(--bone);border-radius:18px;padding:34px;box-shadow:var(--shadow-lg);}
.book-sub{font-size:14px;color:var(--slate);margin:6px 0 22px;}
@media(max-width:980px){.book-grid{grid-template-columns:1fr;gap:36px;}}
