/* Focused refinements to the restored phone layout. Loaded only up to 760px.
   Dental-story layout is maintained separately in styles.css. */
.treatments,.first-visit,.locations{padding-block:60px}
.home-questions{padding-block:60px;gap:28px}
.section-heading{margin-bottom:28px}
.section-heading .eyebrow,.home-questions-intro .eyebrow{margin-bottom:14px;color:#46627c}
.treatments h2,.team-copy h2,.first-visit h2,.home-questions-intro h2,.locations h2{font-size:clamp(30px,8.2vw,38px);line-height:1.2;letter-spacing:-.025em}
.section-intro{margin-top:18px;line-height:1.7}
.treatments .section-intro{max-width:36ch}

/* Light treatment cards with a consistent model tile and clear reading area. */
.treatments{background:#f5f8fb}
.service-grid{grid-template-columns:minmax(0,1fr);gap:12px}
.service-card{display:grid;grid-template-columns:clamp(68px,20vw,96px) minmax(0,1fr);align-items:center;gap:18px;min-height:142px;padding:18px;border-radius:20px;border:1px solid #dce6ef;color:var(--ink);box-shadow:0 3px 12px #203f6105;transition:border-color .2s,background .2s}
.service-card,.service-card:nth-child(n){background:#fff}
.service-card-number{display:none}
.service-visual{width:100%;height:104px;margin:0;overflow:hidden;border:1px solid #e1ebf3;border-radius:14px;background:linear-gradient(145deg,#edf5fb,#dceaf5)}
.service-visual::before{display:none}
.service-visual img{width:100%;height:100%;max-width:100%;padding:5px;object-fit:contain;transform:none;filter:none}
.service-card-copy{padding:0;margin:0;min-width:0}
.service-card h3{font-size:1.1875rem;font-weight:600;line-height:1.3;letter-spacing:-.025em;padding-right:22px;max-width:none;text-wrap:pretty;color:#203f61}
.service-card p{font-size:.9375rem;line-height:1.55;margin-top:8px;max-width:29ch;color:#536b80;hyphens:auto}
.service-arrow{top:12px;right:12px;width:26px;height:26px;border:0;font-size:.875rem;background:#eef4f9;color:#356b97}
.sleep-symbol{width:52px;height:52px;color:#477da8;filter:none}
.service-card:hover,.service-card:hover img{transform:none;box-shadow:none}
.service-card:hover{border-color:#b5cddd}
.service-card:active{background:#f1f7fc;border-color:#9abbd2}
.service-card:focus-visible{outline:2px solid #175b99;outline-offset:4px}
.services-action{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-top:24px}
.services-action .button{width:100%;min-height:52px;justify-content:space-between}
.services-action .text-link{align-self:center;min-height:48px}

/* Preserve the compact blue photo panel and portrait-first team section. */
.practice-intro{padding-bottom:60px}
.practice-intro-panel{border-radius:20px}
.practice-intro-copy{padding:30px 24px}
.practice-intro-copy h2{font-size:clamp(30px,8.2vw,38px);line-height:1.2}
.practice-intro-copy .eyebrow{margin-bottom:18px}
.practice-intro-copy>p:not(.eyebrow){font-size:1.125rem;line-height:1.7;margin-top:20px}
.practice-intro-panel::before{background:linear-gradient(100deg,#214c7bf5,#28578bd9)}
.practice-intro-copy .text-link{font-size:1rem;line-height:1.5;margin-top:18px}
.practice-intro-locations{padding:12px 24px 18px;gap:0 20px}
.practice-intro-locations a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding-block:10px;border-bottom:1px solid #ffffff38;font-size:.875rem}
.practice-intro-locations a:focus-visible{outline-color:#fff}
.team-grid{padding-block:52px;gap:30px}
.doctor-portrait{border-radius:18px}
.doctor-portrait img{aspect-ratio:1.25}
.doctor-portrait figcaption{padding:18px 22px;line-height:1.6}
.doctor-portrait figcaption>span{font-size:.875rem;line-height:1.6;margin-top:5px}
.team-copy>p:not(.eyebrow){line-height:1.75;margin-top:20px}
.team-facts{gap:11px;margin-top:22px;font-size:.9375rem;line-height:1.65}
.team-copy .text-link{font-size:1rem;margin-top:18px}
.visit-steps{gap:14px}
.visit-steps article{padding:24px 22px;border-radius:16px;background:#f3f7fb;border-color:#dfe9f1}
.visit-steps .step-number{margin-bottom:14px;width:32px;height:32px;font-size:.75rem}
.visit-steps h3{margin-bottom:10px;font-size:1.25rem;line-height:1.4}
.visit-steps p{font-size:1.125rem;line-height:1.7}
.first-visit .section-heading>.button{margin-top:22px;min-height:52px}
.home-questions .patient-questions summary{font-size:1.0625rem;line-height:1.6;padding-block:22px;gap:16px}
.home-questions .patient-questions summary>span{width:28px;height:28px}
.home-questions .patient-questions p{font-size:1.125rem;line-height:1.75;padding-bottom:24px}

/* Keep all four cities visible; selection is distinct without extra navigation. */
.practice-tabs{gap:5px;padding:5px;border:1px solid #d9e5ed;border-radius:16px;background:#e8f0f6;margin-bottom:18px}
.practice-tabs button{min-height:50px;padding:12px 8px;font-size:.9375rem;border-radius:11px;line-height:1.4}
.practice-tabs button[aria-selected=true]{background:#245c8c;border-color:#245c8c;color:white;box-shadow:0 2px 5px #1d456514}
.practice-panel{padding:26px 22px;border-radius:18px;gap:22px;box-shadow:none}
.practice-address h3{font-size:1.875rem;line-height:1.25;margin-top:8px}
.practice-note{font-size:.9375rem;line-height:1.6;margin-top:10px}
.practice-address address{font-size:1.0625rem;line-height:1.7;margin-top:18px}
.practice-contact{padding-top:22px}
.practice-contact .phone-number{font-size:1.625rem;line-height:1.4;min-height:48px}
.practice-contact .email-link{font-size:.9375rem;line-height:1.6;overflow-wrap:anywhere}
.practice-contact .button{min-height:52px;padding:14px 16px;font-size:.9375rem;line-height:1.5;gap:12px}
.practice-more{gap:10px;font-size:.9375rem;line-height:1.5;min-height:48px}
.urgent-help{padding:22px 20px;border-radius:16px;margin-top:18px}
.urgent-help h3{font-size:1.125rem;line-height:1.45}
.urgent-help p{font-size:1rem;line-height:1.7}
.mobile-actions>.button{box-shadow:none}
.mobile-section-link{font-size:.875rem;line-height:1.35}

/* The booking sheet keeps the close control visible while only choices scroll. */
.booking-dialog{max-height:calc(100dvh - 16px);overflow:hidden;border:0;border-radius:24px 24px 0 0}
.booking-dialog .dialog-inner{display:flex;flex-direction:column;max-height:calc(100dvh - 16px);padding:0;overflow:hidden}
.booking-dialog-header{position:relative;flex-shrink:0;padding:30px var(--space) 0}
.booking-dialog-header .dialog-close{top:12px;right:12px;width:44px;height:44px;background:#edf3f8}
.booking-dialog-header>.eyebrow{font-size:.6875rem;line-height:1.5;letter-spacing:.07em;margin:0 44px 12px 0}
.booking-dialog-header h2{font-size:clamp(27px,7.5vw,32px);line-height:1.25;letter-spacing:-.025em;max-width:none}
.booking-dialog-header>p:not(.eyebrow){font-size:1rem;line-height:1.6;margin-top:14px;color:var(--muted)}
.booking-dialog .booking-options{min-height:0;overflow-y:auto;overscroll-behavior:contain;flex:0 1 auto;gap:8px;margin:20px 0 0;padding:0 var(--space) 8px;scroll-padding-block:8px}
.booking-dialog .booking-choice{min-height:82px;padding:16px 18px;border:1px solid #d9e5ed;border-radius:14px;gap:14px;flex-shrink:0}
.booking-dialog .booking-choice strong{font-size:1.125rem;line-height:1.4;font-weight:600}
.booking-dialog .booking-choice small{font-size:.875rem;line-height:1.55;margin-top:5px}
.booking-dialog .booking-choice>span:last-child{font-size:1.25rem}
.booking-dialog .booking-choice:focus-visible{outline-offset:-4px}
.booking-dialog .dialog-inner>p.booking-note{font-size:.75rem;line-height:1.6;flex-shrink:0;margin:0;padding:12px var(--space) calc(20px + env(safe-area-inset-bottom));color:var(--muted)}
.footer{padding-top:32px;padding-bottom:24px}
.footer-pages{gap:0 20px}
.footer-pages .text-link{line-height:1.6;min-height:48px}
@media(max-width:360px){
 .service-card{gap:14px;padding:16px 14px;min-height:136px}
 .service-card h3{font-size:1.0625rem;padding-right:18px}
 .service-card p{font-size:.875rem;line-height:1.5}
 .service-visual{height:96px;border-radius:12px}
 .service-arrow{top:10px;right:10px;width:24px;height:24px}
 .practice-panel{padding:24px 20px}
 .practice-intro-copy{padding:28px 22px}
 .mobile-section-link{font-size:.8125rem}
}
@media(max-height:500px){
 .booking-dialog-header{padding-top:18px}
 .booking-dialog-header>.eyebrow{display:none}
 .booking-dialog-header h2{font-size:1.625rem;padding-right:46px}
 .booking-dialog-header>p:not(.eyebrow){margin-top:8px}
 .booking-dialog .booking-options{margin-top:12px}
 .booking-dialog .dialog-inner>p.booking-note{padding-top:8px;padding-bottom:12px}
}
