.public-site { --blue:#254c72; --green:#297b62; --pale:#f0f6f4; --navy:#20374a; background:#fff; color:#243d4c; font-family:var(--body); }
.public-site *, .public-site *::before, .public-site *::after { letter-spacing:0; }
.public-site h1, .public-site h2 { font-family:var(--display); font-weight:500; line-height:1.1; color:var(--navy); }
.public-site h1 { font-size:56px; margin:12px 0 24px; }
.public-site h2 { font-size:40px; margin:0 0 24px; }
.public-site h3 { line-height:1.3; }
.public-site p { color:#61717b; line-height:1.7; }
.public-site svg { width:20px; height:20px; flex:0 0 20px; stroke-width:1.6; vertical-align:middle; }
.public-site button, .public-site a, .panel-site button, .panel-site a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #4594bf; outline-offset:4px; }
.public-container { width:calc(100% - 96px); max-width:1280px; margin-inline:auto; }
.public-header { height:92px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:12px 48px; background:#fff; border-bottom:1px solid #e8eeed; position:relative; z-index:30; }
.public-brand { flex:0 1 220px; min-width:170px; }
.public-brand img { width:220px; height:auto; max-height:64px; object-fit:contain; }
.public-navigation { display:flex; gap:30px; align-items:center; font-size:14px; }
.public-navigation a { padding:10px 0; }
.public-navigation a:hover { color:var(--green); }
.public-navigation .public-contact { display:flex; gap:9px; align-items:center; background:var(--pale); padding:11px 18px; border-radius:4px; color:#22694f; }
.tool-button { width:42px; height:42px; border:1px solid #dce6e8; border-radius:4px; background:#fff; color:#254c72; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; flex:0 0 42px; }
.tool-button svg { width:20px; height:20px; }
.mobile-menu { display:none; }
.clinic-hero { height:570px; max-height:calc(100svh - 170px); min-height:470px; position:relative; overflow:hidden; background:#e8eeee; }
.clinic-hero-photo { position:absolute; width:100%; height:100%; object-fit:cover; object-position:center 48%; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(247,250,248,.98) 0%,rgba(247,250,248,.90) 27%,rgba(247,250,248,.16) 64%,transparent 100%); }
.hero-inner { position:relative; padding-top:76px; padding-bottom:60px; }
.hero-location { display:flex; align-items:center; gap:9px; color:#3e6963; font-size:13px; }
.hero-location span, .availability-label span { width:7px; height:7px; background:#4b9c71; border-radius:50%; display:inline-block; }
.public-site .clinic-hero h1 { font-size:94px; margin:18px 0 5px; color:#264e70; }
.public-site .hero-subtitle { font-family:var(--display); font-size:35px; color:#31594f; margin:0 0 16px; }
.public-site .hero-description { font-size:15px; max-width:455px; color:#526d73; margin-bottom:28px; }
.public-actions { display:flex; align-items:center; flex-wrap:wrap; gap:22px; }
.public-button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:48px; padding:12px 22px; border:1px solid #235b64; background:#235b64; color:#fff; border-radius:4px; font-size:14px; font-weight:600; cursor:pointer; line-height:1.4; }
.public-button:hover { background:#19434a; color:#fff; }
.hero-secondary, .text-link { display:inline-flex; align-items:center; gap:10px; color:#2c6b62; font-weight:600; font-size:14px; }
.hero-caption { position:absolute; right:40px; bottom:24px; display:flex; align-items:center; gap:9px; background:#fffffff0; color:#426267; border-radius:4px; padding:10px 14px; font-size:12px; }
.public-band { padding-block:80px; }
.public-eyebrow { font-size:11px; font-weight:700; text-transform:uppercase; color:#64856d !important; margin:0 0 18px; }
.intro-band { padding-block:60px; border-bottom:1px solid #e3eae6; }
.intro-grid { display:grid; grid-template-columns:.7fr 1.5fr .5fr; gap:50px; }
.intro-grid h2 { font-size:33px; }
.intro-grid p { margin-top:0; }
.intro-count { display:flex; flex-direction:column; justify-content:center; border-left:1px solid #d8e5dd; padding-left:35px; }
.intro-count strong { color:#315d74; font-size:54px; font-family:var(--display); line-height:1.2; font-weight:500; }
.intro-count span { font-size:13px; color:#718184; }
.public-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:25px; margin-bottom:36px; }
.public-section-heading h2 { margin-bottom:0; }
.public-section-heading .text-link { flex-shrink:0; margin-bottom:4px; }
.specialties-band { background:#f6f9f7; }
.specialty-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 30px; }
.specialty-links a { display:flex; justify-content:space-between; gap:16px; padding:20px 0; border-bottom:1px solid #d9e4dc; font-size:16px; }
.specialty-links a > span:last-child { color:#74918c; display:flex; align-items:center; gap:12px; font-size:13px; }
.specialty-links a:hover { color:var(--green); }
.doctor-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 28px; }
.doctor-card { min-width:0; }
.doctor-portrait { display:block; aspect-ratio:1.25; background:#edf2f0; position:relative; overflow:hidden; border-radius:5px; }
.doctor-portrait img { width:100%; height:100%; object-fit:cover; }
.doctor-initials { display:flex; height:100%; align-items:center; justify-content:center; font:500 76px var(--display); color:#8da7aa; background:#e9f0f0; }
.doctor-card:nth-child(3n+2) .doctor-initials { background:#edf1e8; color:#93a384; }
.doctor-card:nth-child(3n+3) .doctor-initials { background:#edf0f5; color:#9aa8bd; }
.portrait-arrow { position:absolute; bottom:14px; right:14px; background:#fff; border-radius:50%; width:38px; height:38px; display:flex; align-items:center; justify-content:center; color:#326c6f; }
.doctor-info { padding-top:18px; }
.doctor-info > p { font-size:12px; margin:0 0 7px; color:#517d6e; }
.doctor-info h3 { font-size:20px; margin:0 0 10px; font-weight:600; }
.doctor-info p.doctor-intro { font-size:14px; color:#6b7b83; }
.doctor-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; align-items:center; border-top:1px solid #e7eded; margin-top:16px; padding-top:12px; }
.doctor-bottom span { font-size:11px; color:#71867c; }
.doctor-bottom a { font-size:12px; font-weight:600; color:#2d6176; }
.doctor-bottom svg { width:16px; height:16px; }
.facilities-band { background:#f4f7f7; }
.home-gallery, .facility-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.gallery-photo { border:0; background:transparent; padding:0; display:block; cursor:pointer; text-align:left; width:100%; min-width:0; color:#3d555f; }
.gallery-photo img { width:100%; aspect-ratio:1.22; object-fit:cover; border-radius:4px; }
.gallery-photo > span { display:flex; justify-content:space-between; gap:10px; padding-top:13px; font-size:14px; }
.visit-layout { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.visit-layout p { max-width:420px; }
.public-footer { border-top:1px solid #dfe7e5; background:#f5f8f6; padding-top:56px; }
.footer-grid { display:grid; grid-template-columns:1.1fr 1.1fr .8fr; gap:80px; padding-bottom:40px; }
.footer-grid img { max-width:230px; height:auto; }
.footer-grid h2 { font:600 14px var(--body); margin-bottom:20px; }
.footer-grid p, .footer-grid a { font-size:13px; }
.footer-grid a { display:block; margin-bottom:8px; overflow-wrap:anywhere; }
.footer-grid p { line-height:1.7; }
.footer-grid a svg { width:16px; height:16px; }
.footer-bottom { border-top:1px solid #dce5df; display:flex; justify-content:space-between; gap:20px; padding-block:22px; color:#7a8b86; font-size:11px; }
.footer-bottom > div { display:flex; gap:22px; }
.page-intro { background:#f1f6f4; padding-block:58px; }
.page-intro p:not(.public-eyebrow) { max-width:650px; margin-bottom:0; }
.directory-section { padding-top:38px; }
.directory-filters { display:grid; grid-template-columns:1fr .7fr .7fr auto; gap:16px; align-items:end; padding-bottom:28px; border-bottom:1px solid #e4ece8; }
.directory-filters label { display:block; font-size:12px; margin-bottom:8px; color:#59736e; }
.directory-filters input, .directory-filters select { width:100%; border:1px solid #d6e2dd; border-radius:4px; background:#fff; height:48px; padding:10px 14px; min-width:0; }
.directory-count { font-size:12px; margin:25px 0; }
.directory-empty { grid-column:1/-1; padding:30px 0; }
.public-pagination { display:flex; align-items:center; justify-content:center; gap:24px; padding:32px 0; font-size:14px; }
.public-pagination a { display:flex; align-items:center; gap:8px; text-decoration:underline; text-underline-offset:4px; }
.gallery-filters { display:flex; flex-wrap:wrap; gap:24px; border-bottom:1px solid #dae6df; margin-bottom:32px; }
.gallery-filters a { font-size:14px; padding:8px 0 14px; }
.gallery-filters a[aria-current] { color:#237757; border-bottom:2px solid #237757; }
.facility-gallery { row-gap:32px; }
.photo-dialog { border:0; padding:18px; max-width:min(1100px,94vw); width:max-content; max-height:94vh; border-radius:6px; }
.photo-dialog::backdrop { background:#102932d9; }
.photo-dialog img { max-height:77vh; width:auto; max-width:100%; margin:auto; object-fit:contain; }
.photo-dialog .tool-button { position:absolute; top:24px; right:24px; }
.photo-dialog p { font-size:14px; margin:14px 0 0; }
.public-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:85px; align-items:start; }
.public-contact-grid .stack-form { padding:28px; border:1px solid #dfe8e4; border-radius:6px; }
.public-contact-grid .stack-form .btn-primary { background:#235b64; box-shadow:none; }
.contact-methods { display:grid; gap:18px; margin-block:30px; }
.contact-methods a { display:flex; align-items:center; gap:13px; font-size:15px; overflow-wrap:anywhere; }
.physician-header { padding-block:55px; background:#f2f6f5; }
.physician-intro { display:grid; grid-template-columns:260px 1fr; gap:55px; align-items:center; }
.physician-photo { aspect-ratio:1; overflow:hidden; border-radius:6px; display:flex; align-items:center; justify-content:center; background:#e2eae7; }
.physician-photo img { width:100%; height:100%; object-fit:cover; }
.physician-photo span { font:500 90px var(--display); color:#8aaba3; }
.profile-back { display:inline-flex; gap:8px; align-items:center; font-size:12px; margin-bottom:22px; color:#68877c; }
.physician-intro .public-eyebrow { margin-bottom:10px; }
.physician-intro h1 { font-size:46px; margin-bottom:14px; overflow-wrap:anywhere; }
.physician-title { font-size:18px; margin:0 0 12px; }
.physician-intro .public-actions { margin-top:20px; }
.availability-label { display:flex; gap:8px; align-items:center; font-size:12px; color:#4c7d67 !important; }
.outline-button { background:transparent; color:#235b64; border-color:#b0c9c2; }
.physician-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(310px,1fr); gap:70px; align-items:start; }
.physician-content > section { margin-bottom:45px; padding-bottom:35px; border-bottom:1px solid #e5ece8; }
.physician-content h2 { font-size:30px; }
.physician-content h3 { font-size:17px; font-weight:600; }
.physician-content p { font-size:15px; }
.service-list article { display:flex; justify-content:space-between; gap:22px; padding:17px 0; border-bottom:1px solid #e8ede9; }
.service-list h3 { margin:0; }
.service-list p { font-size:13px; margin-bottom:0; }
.service-list strong { flex:0 0 auto; font-size:13px; font-weight:600; color:#2f7b65; max-width:45%; }
.education-list { list-style:none; padding:0 0 0 22px; border-left:1px solid #bad1c8; }
.education-list li { margin-bottom:23px; }
.education-list h3 { margin-bottom:5px; }
.education-list p { font-size:13px; margin-top:0; }
.profile-faq { border-block-end:1px solid #e2eae5; padding:17px 0; }
.profile-faq summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:15px; }
.profile-faq p { font-size:14px; }
.profile-socials { display:flex; flex-wrap:wrap; gap:20px; font-size:14px; color:#307c69; }
.profile-socials a { display:flex; align-items:center; gap:8px; }
.subtle { font-size:12px !important; color:#84948e !important; }
.appointment-aside { background:#f5f8f6; padding:28px; border:1px solid #dce6e0; border-radius:6px; position:sticky; top:24px; }
.appointment-aside h2 { font-size:30px; }
.appointment-aside > p { font-size:13px; }
.appointment-form { margin-top:24px; }
.appointment-form > div:not(.check-label) { display:grid; gap:6px; }
.appointment-form label { font-size:13px; }
.appointment-form .check-label { flex-direction:row-reverse; justify-content:flex-end; }
.appointment-form .check-control { flex:0 0 18px; }
.appointment-form .privacy-copy { font-size:11px; color:#7c8f86; margin:0; }
.privacy-copy a { text-decoration:underline; }
.appointment-success { padding:20px 0; }
.appointment-success > svg { color:#378063; width:34px; height:34px; margin-bottom:20px; }
.preview-banner { padding:14px 30px; background:#fff2d2; display:flex; gap:20px; justify-content:center; font-size:14px; }
.preview-banner a { text-decoration:underline; }
.privacy-information { max-width:780px; }
.privacy-information h2 { font-size:27px; margin-top:35px; }
.privacy-information a { text-decoration:underline; }
@media (min-width:1600px) { .clinic-hero { height:650px; } .hero-inner { padding-top:110px; } }
@media (max-width:1050px) {
    .public-container { width:calc(100% - 56px); }
    .public-header { padding-inline:28px; }
    .public-navigation { gap:18px; font-size:13px; }
    .public-brand { flex-basis:190px; }
    .intro-grid { grid-template-columns:1.5fr .5fr; gap:30px; }
    .intro-grid > .public-eyebrow { grid-column:1/-1; margin-bottom:0; }
    .public-contact-grid { gap:40px; }
    .physician-layout { gap:32px; grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr); }
    .footer-grid { gap:35px; }
}
@media (max-width:760px) {
    .public-header { height:78px; padding:12px 22px; }
    .public-brand img { width:184px; max-height:54px; }
    .public-header .mobile-menu { display:inline-flex; }
    .public-navigation { display:none; position:absolute; top:78px; left:0; right:0; background:#fff; padding:15px 24px 25px; border-bottom:1px solid #dde7e2; box-shadow:0 12px 20px #243c4510; }
    .public-navigation.is-open { display:grid; gap:3px; }
    .public-navigation .public-contact { width:fit-content; margin-top:8px; }
    .public-container { width:calc(100% - 44px); }
    .public-band { padding-block:50px; }
    .public-site h1 { font-size:40px; }
    .public-site h2 { font-size:32px; }
    .clinic-hero { height:620px; min-height:520px; max-height:calc(100svh - 140px); }
    .hero-inner { padding-top:40px; }
    .hero-shade { background:linear-gradient(180deg,rgba(248,251,249,.97),rgba(248,251,249,.85) 48%,rgba(248,251,249,.05) 85%); }
    .clinic-hero-photo { object-position:63% bottom; }
    .public-site .clinic-hero h1 { font-size:64px; }
    .public-site .hero-subtitle { font-size:29px; }
    .public-site .hero-description { font-size:14px; max-width:400px; }
    .public-actions { gap:16px; }
    .hero-secondary { font-size:13px; background:#fffffff0; padding:10px 12px; border-radius:4px; }
    .hero-caption { right:20px; bottom:18px; max-width:calc(100% - 40px); font-size:11px; }
    .intro-grid { grid-template-columns:1fr; gap:20px; }
    .intro-count { flex-direction:row; justify-content:flex-start; align-items:center; gap:20px; border:0; padding:0; }
    .intro-count strong { font-size:42px; }
    .specialty-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
    .specialty-links a { font-size:13px; padding:16px 0; }
    .specialty-links a > span:last-child { gap:6px; }
    .public-section-heading { align-items:flex-start; flex-direction:column; gap:18px; }
    .doctor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 17px; }
    .doctor-info h3 { font-size:17px; }
    .doctor-bottom { align-items:flex-start; flex-direction:column; }
    .doctor-info > p { font-size:11px; }
    .home-gallery { grid-template-columns:1fr; gap:28px; }
    .home-gallery .gallery-photo img { aspect-ratio:1.6; }
    .visit-layout, .public-contact-grid { grid-template-columns:1fr; gap:30px; }
    .footer-grid { grid-template-columns:1fr 1fr; }
    .footer-grid > div:first-child { grid-column:1/-1; }
    .footer-bottom { flex-direction:column; }
    .directory-filters { grid-template-columns:1fr; }
    .directory-filters .public-button { width:100%; }
    .facility-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 16px; }
    .gallery-photo > span { font-size:12px; }
    .gallery-filters { gap:16px; }
    .public-contact-grid .stack-form { padding:20px; }
    .physician-intro { grid-template-columns:1fr; gap:25px; }
    .physician-photo { width:180px; }
    .physician-intro h1 { font-size:34px; }
    .physician-layout { display:flex; flex-direction:column; gap:10px; }
    .physician-content { width:100%; }
    .appointment-aside { position:static; width:100%; padding:24px; order:-1; margin-bottom:30px; }
    .service-list article { flex-direction:column; gap:10px; }
    .service-list strong { max-width:none; }
}
@media (max-width:370px) { .doctor-grid, .facility-gallery { grid-template-columns:1fr; } .public-site .hero-subtitle { font-size:26px; } .public-actions { align-items:flex-start; flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
