:root{--navy:#24536b;--ink:#30383b;--blue:#287f9a;--cyan:#43a5bf;--sky:#eaf7fa;--cream:#fffaf2;--muted:#5b6467;--line:#dfe3e1;--neutral:#f5f5f2;--white:#fff;--warm:#f2bf7d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:#fff;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a,button,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #cc6b23;outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink);line-height:1.12}h1{font-size:clamp(3.2rem,5.4vw,5rem);letter-spacing:-.055em;margin-bottom:26px}h2{font-size:clamp(2.1rem,3.5vw,3.2rem);letter-spacing:-.04em;margin-bottom:22px}h3{font-size:1.4rem;letter-spacing:-.02em}p{color:var(--muted)}.wrap{width:min(1200px,calc(100% - 80px));margin:auto}.narrow{max-width:850px}.skip{position:fixed;top:-100px;left:16px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}.topline{background:var(--navy);color:#fff;font-size:.875rem}.topline .wrap{display:flex;justify-content:space-between;align-items:center;min-height:36px;gap:20px}.topline a{opacity:.95}header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.nav{display:flex;align-items:center;justify-content:space-between;height:108px;gap:24px}.logo{width:180px;height:88px;display:block;position:relative;overflow:hidden;flex-shrink:0}.logo img{position:absolute;width:280px;max-width:none;height:280px;left:-44px;top:-72px}.nav nav{display:flex;align-items:center;gap:25px;font-size:.875rem;font-weight:600}.nav nav>a:not(.button){padding:16px 0}.nav nav>a[aria-current]{color:var(--blue);box-shadow:inset 0 -2px var(--blue)}.nav nav>a:hover{color:var(--blue)}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:15px 23px;min-height:52px;border-radius:100px;background:var(--blue);border:1px solid var(--blue);color:#fff;font-size:.9375rem;font-weight:700;cursor:pointer;transition:background .18s,transform .18s;text-align:center}.button:hover{background:var(--navy);color:white!important;transform:translateY(-2px)}.nav-cta{font-size:.875rem;padding:12px 19px;min-height:46px}.menu-toggle{display:none}.eyebrow{text-transform:uppercase;font-size:.8125rem;font-weight:700;letter-spacing:.14em;color:var(--blue);margin-bottom:19px}.hero{background:linear-gradient(112deg,#ffffff 15%,#f4f4f0 100%);padding:62px 0 64px}.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.hero h1{font-size:clamp(3.6rem,6.4vw,5.7rem);line-height:1.02;margin-bottom:25px;letter-spacing:-.06em}.hero h1 span{color:var(--blue)}.hero-copy>p{font-size:1.15rem;max-width:430px;margin-bottom:29px;line-height:1.7}.hero-note{margin-top:25px;font-size:.875rem;color:var(--muted)}.hero-note span{margin:0 6px;color:var(--blue)}.hero-people{border-radius:150px 150px 28px 28px;background:#eeefec;overflow:hidden;box-shadow:0 20px 45px #30383b0d}.people-title{padding:38px 45px 18px;display:flex;align-items:center;gap:15px;justify-content:space-between;font-size:.75rem;letter-spacing:.11em;font-weight:700}.people-title a{font-size:1.5rem}.hero-portraits{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 20px}.hero-portraits img{width:100%;height:295px;object-fit:cover;object-position:center 20%;border-radius:85px 85px 8px 8px;background:#d2e1e6}.hero-portraits img:nth-child(2){margin-top:35px;height:260px}.people-caption{padding:25px 30px 30px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:16px}.people-caption strong{font-size:2rem;line-height:1.05;letter-spacing:-.04em}.people-caption p{font-size:.875rem;color:var(--muted);margin:0}.care-strip{background:linear-gradient(90deg,#287d98 0%,#44a3b5 65%,#4ba6a5 100%);color:white}.care-strip .wrap{display:grid;grid-template-columns:repeat(4,1fr)}.care-strip span{padding:19px 10px;text-align:center;border-right:1px solid #ffffff30;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:700}.care-strip span:last-child{border-right:0}.section{padding:84px 0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:70px;margin-bottom:36px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:340px;margin:0 0 3px;font-size:1.0625rem}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-card{position:relative;padding:28px 25px 51px;border:1px solid var(--line);border-radius:18px;background:#fff;transition:transform .2s,box-shadow .2s}.service-card:hover{transform:translateY(-5px);box-shadow:0 15px 25px #24536b0d}.service-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;color:var(--blue);background:var(--sky);border-radius:14px;margin-bottom:30px}.service-icon svg{height:27px;width:27px}.service-card h3{font-size:1.25rem;line-height:1.2;margin-bottom:14px}.service-card p{font-size:.9375rem;line-height:1.6;margin:0}.card-arrow{position:absolute;bottom:18px;right:24px;color:var(--blue);font-size:1.4rem}.practice-band{background:linear-gradient(115deg,#eaf6f8 0%,#fff4e1 100%);padding:78px 0}.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.practice-grid>div>p{font-size:1.0625rem;max-width:450px}.text-link{color:var(--blue);font-weight:700;font-size:.9375rem;display:inline-block}.text-link:hover{text-decoration:underline;text-underline-offset:4px}.values>div{display:flex;gap:24px;padding:21px 0;border-bottom:1px solid #24536b20}.values>div:first-child{padding-top:0}.values>div>span{font-size:.875rem;color:var(--blue);padding-top:3px}.values h3{font-size:1.125rem;margin:0 0 9px}.values p{font-size:.9375rem;margin:0}.locations-section{background:var(--neutral)}.office-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.office-card{background:white;border:1px solid var(--line);border-radius:20px;padding:28px;display:flex;flex-direction:column}.office-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.office-top svg{width:25px;height:25px;color:var(--blue)}.office-number{font-size:.8125rem;letter-spacing:.1em;color:var(--blue)}.office-card h3{font-size:1.6rem;margin:0 0 14px}.office-card p{font-size:1rem;margin-bottom:12px}.phone{display:block;color:var(--blue);font-size:1.0625rem;font-weight:700;margin:10px 0 22px}.office-actions{border-top:1px solid var(--line);padding-top:19px;margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.directions{font-size:.875rem;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.office-actions .button{font-size:.875rem;padding:10px 15px;min-height:45px;width:100%}.page-intro{padding:62px 0 65px;background:linear-gradient(115deg,#fafaf8,#f0f1ee)}.page-intro h1{max-width:850px}.lead{font-size:1.1875rem;max-width:660px;line-height:1.65;margin:0}.doctor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px 26px}.doctor-card{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:white}.portrait{height:340px;background:#eeefec}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 18%}.doctor-info{padding:27px}.doctor-info h2{font-size:1.4rem;letter-spacing:-.025em;margin:0 0 8px}.doctor-info .eyebrow{font-size:.75rem}.doctor-info p{font-size:.9375rem;line-height:1.7;margin:16px 0 0}.service-detail{display:grid;grid-template-columns:70px 1fr;gap:24px;padding:0 0 42px;margin-bottom:44px;border-bottom:1px solid var(--line);scroll-margin-top:140px}.service-detail h2{font-size:2.2rem}.service-detail .eyebrow{margin:0 0 12px}.service-detail .service-icon{width:58px;height:58px}.location-detail{display:grid;grid-template-columns:1fr 1fr;gap:90px}.location-address{padding:36px;border-radius:22px;background:var(--neutral)}.location-address h2{font-size:2.2rem}.location-address .text-link{display:block;margin-top:25px}.location-information h2{font-size:2rem}.location-information dl>div{border-bottom:1px solid var(--line);padding:18px 0;display:grid;grid-template-columns:120px 1fr;gap:18px}.location-information dd{margin:0;color:var(--muted)}.location-information dt{font-weight:700}.notice{padding:22px 25px;background:var(--neutral);border-left:3px solid var(--blue);border-radius:0 12px 12px 0;margin-bottom:32px}.notice p{margin:6px 0 0;font-size:.9375rem}.below-note{margin:28px 0 0;font-size:.9375rem}.checklist{padding:34px;background:var(--neutral);border-radius:20px;margin-bottom:50px}.checklist h2{font-size:1.8rem}.checklist ul{padding-left:23px;margin:0}.checklist li{padding:6px 0}.faq{margin:25px 0 38px}.faq details{border-bottom:1px solid var(--line);padding:3px 0}.faq summary{cursor:pointer;padding:20px 30px 20px 0;font-size:1.0625rem;font-weight:700;color:var(--ink)}.faq p{margin:0 0 24px;max-width:730px}.contact-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;margin-top:90px}.contact-layout h2{font-size:2.8rem}.contact-layout .notice{margin-top:27px}.question-form{background:#f7f7f5;border:1px solid var(--line);border-radius:20px;padding:30px}.question-form label{display:block;font-size:.875rem;font-weight:700;margin-bottom:8px}.question-form input,.question-form select,.question-form textarea{display:block;width:100%;background:white;color:var(--ink);border:1px solid #bdc5c3;border-radius:8px;padding:12px;margin-bottom:18px;min-height:48px}.question-form :disabled{cursor:not-allowed;background:#eceeeb;color:#68716d;border-color:#d9ded9;opacity:1}.question-form button:disabled{transform:none;background:#e2e6e2!important;color:#59635e!important}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-note,#office-help{font-size:.875rem}.form-note{margin:17px 0 0}#office-help a{text-decoration:underline;font-weight:700}footer{background:#29373d;color:#fff;padding:58px 0 0}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:60px}.footer-brand{font-size:2.4rem;letter-spacing:-.06em;line-height:1;margin-bottom:22px;font-weight:800}.footer-brand span{font-size:.9rem;letter-spacing:.08em;margin-left:7px;font-weight:400}.footer-grid h2{font-size:1rem;color:white;letter-spacing:0;margin-bottom:19px}.footer-grid p{font-size:.9375rem;color:#e2e7e5}.footer-grid a{display:block;color:#e2e7e5;font-size:.9375rem;margin-bottom:11px}.footer-grid a:hover{text-decoration:underline}.muted-light{opacity:.8}.footer-bottom{border-top:1px solid #ffffff25;padding:24px 0;margin-top:38px;color:#c4cdca;font-size:.8125rem;display:flex;justify-content:space-between;gap:20px}@media(min-width:1440px){.hero{padding:82px 0}.hero-portraits img{height:325px}.hero-portraits img:nth-child(2){height:290px}}@media(max-width:1100px){.wrap{width:calc(100% - 48px)}.nav nav{gap:17px}.nav{gap:12px}.logo{width:150px;height:80px}.logo img{width:237px;height:237px;left:-37px;top:-60px}.nav-cta{font-size:.8125rem;padding:10px 13px}.hero-grid{gap:35px}.hero h1{font-size:4.5rem}.people-title{padding:30px 33px 16px;font-size:.75rem}.hero-portraits img{height:265px}.hero-portraits img:nth-child(2){height:230px}.practice-grid{gap:50px}.office-card{padding:24px}.service-card{padding:24px 19px 47px}.contact-layout{gap:40px}}@media(max-width:900px){.nav{height:90px}.menu-toggle{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--navy);padding:10px 14px;cursor:pointer}.nav nav{display:none;position:absolute;left:0;right:0;top:90px;background:white;padding:24px;box-shadow:0 10px 20px #14344715;align-items:stretch;font-size:1rem}.nav nav.open{display:flex;flex-direction:column;gap:8px}.nav nav>a:not(.button){padding:10px}.hero-grid{grid-template-columns:1fr 1fr;gap:30px}.hero h1{font-size:3.6rem}.hero-copy>p{font-size:1rem}.hero-portraits{padding:0 13px}.hero-portraits img{height:230px}.hero-portraits img:nth-child(2){height:195px}.people-caption{padding:24px 20px;display:block}.people-caption strong{font-size:1.8rem}.people-caption p{margin-top:12px}.people-title{padding:28px 24px 15px}.service-grid{grid-template-columns:repeat(2,1fr)}.section-heading{gap:35px}.office-grid{gap:15px}.office-card{padding:22px 18px}.office-card h3{font-size:1.4rem}.phone{font-size:1rem}.doctor-grid{grid-template-columns:repeat(2,1fr)}.location-detail{gap:35px}.contact-layout{gap:35px}.care-strip span{font-size:.75rem}.footer-grid{gap:35px}}@media(max-width:650px){.wrap{width:calc(100% - 40px)}.topline .wrap{justify-content:center;min-height:34px;font-size:.75rem}.topline a{display:none}.hero{padding:42px 0}.hero-grid{grid-template-columns:1fr;gap:35px}.hero h1{font-size:clamp(3.4rem,13vw,4.6rem)}.hero-copy>p{max-width:100%;font-size:1.0625rem}.hero-people{max-width:440px;width:100%;margin:auto;border-radius:100px 100px 24px 24px}.people-title{padding:26px 40px 14px;font-size:.75rem}.hero-portraits img{height:260px}.hero-portraits img:nth-child(2){height:225px}.people-caption{display:flex}.people-caption p{margin:0}.care-strip .wrap{grid-template-columns:1fr 1fr}.care-strip span{font-size:.75rem;padding:14px 6px}.care-strip span:nth-child(2){border:0}.care-strip span:nth-child(-n+2){border-bottom:1px solid #ffffff30}.section{padding:56px 0}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:20px;max-width:none}.section-heading h2{font-size:2.35rem}.service-grid{gap:12px}.service-card{padding:22px 17px 45px}.service-card h3{font-size:1.12rem}.service-card p{font-size:.875rem}.service-icon{margin-bottom:24px}.practice-band{padding:55px 0}.practice-grid{grid-template-columns:1fr;gap:32px}.office-grid{grid-template-columns:1fr;gap:20px}.office-card{padding:27px}.office-top{margin-bottom:19px}.office-card h3{font-size:1.65rem}.office-actions{flex-wrap:nowrap}.office-actions .button{width:auto}.page-intro{padding:42px 0 46px}.page-intro h1{font-size:3rem}.lead{font-size:1.0625rem}.doctor-grid{grid-template-columns:1fr}.portrait{height:390px}.doctor-info{padding:25px}.service-detail{grid-template-columns:1fr;gap:8px}.service-detail .service-icon{margin-bottom:14px}.service-detail h2{font-size:2rem}.location-detail{grid-template-columns:1fr;gap:40px}.location-address{padding:27px}.location-address h2{font-size:1.9rem}.contact-layout{grid-template-columns:1fr;gap:20px;margin-top:60px}.contact-layout h2{font-size:2.5rem}.question-form{padding:23px}.form-row{grid-template-columns:1fr;gap:0}.footer-grid{grid-template-columns:1fr 1fr;gap:32px}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{display:block}.footer-bottom span{display:block;margin-bottom:6px}.checklist{padding:25px}.hero-note{font-size:.8125rem}.eyebrow{font-size:.75rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Fit the full supplied logo, including its optometrist subtitle. */
.logo{width:150px;height:92px}.logo img{width:236px;height:236px;left:-37px;top:-62px}@media(max-width:900px){.logo{width:130px;height:80px}.logo img{width:205px;height:205px;left:-32px;top:-54px}}

/* Five familiar faces, with every doctor visible without a carousel. */
.hero-people{border-radius:30px}.people-title{padding:23px 24px 18px}.hero-team{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;padding:0 20px 20px}.hero-doctor{display:block;grid-column:span 2;background:#fff;border-radius:12px;overflow:hidden;transition:box-shadow .18s}.hero-doctor:nth-child(-n+2){grid-column:span 3}.hero-doctor img{width:100%;height:145px;object-fit:cover;object-position:center 18%}.hero-doctor:nth-child(-n+2) img{height:190px}.hero-doctor span{display:block;text-align:center;font-size:.8125rem;font-weight:700;padding:8px 4px;line-height:1.35;color:var(--navy)}.hero-doctor:hover{box-shadow:0 0 0 3px var(--cyan)}.hero-people .people-caption{padding:23px 26px}.hero-people .people-caption strong{font-size:1.8rem}.doctor-card[id]{scroll-margin-top:140px}.google-reviews{background:#faf8f3}.google-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.google-review-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 10px 26px #24536b08}.google-word{font-size:1.35rem;color:#4285f4;font-weight:700;margin-bottom:25px;letter-spacing:-.025em}.google-word span{font-size:.875rem;color:var(--muted);font-weight:400;letter-spacing:0;margin-left:8px}.google-review-card h3{font-size:1.6rem;margin-bottom:13px}.google-review-card p{font-size:.9375rem;min-height:3.2em;margin-bottom:24px}.google-review-card .text-link{display:block;border-top:1px solid var(--line);padding-top:20px}.google-review-card .text-link span{float:right}
@media(max-width:1100px){.hero-doctor img{height:130px}.hero-doctor:nth-child(-n+2) img{height:170px}.hero-team{gap:9px;padding:0 15px 16px}.people-title{padding:21px 20px 16px}.google-review-card{padding:24px}}
@media(max-width:900px) and (min-width:651px){.hero-grid{grid-template-columns:1fr 1.15fr}.hero-doctor img{height:120px}.hero-doctor:nth-child(-n+2) img{height:150px}.hero-people .people-caption{display:block}.hero-people .people-caption p{margin-top:12px}.google-review-grid{gap:15px}.google-review-card{padding:22px 18px}.google-review-card h3{font-size:1.4rem}}
@media(max-width:650px){.hero-people{border-radius:24px;max-width:460px}.hero-team{gap:9px;padding:0 14px 16px}.hero-doctor img{height:125px}.hero-doctor:nth-child(-n+2) img{height:175px}.people-title{padding:21px 21px 16px}.hero-people .people-caption{padding:22px}.hero-people .people-caption strong{font-size:1.65rem}.google-review-grid{grid-template-columns:1fr;gap:18px}.google-review-card{padding:26px}.google-review-card p{min-height:0}.google-word{margin-bottom:20px}}

/* Compact location overview shared by the homepage and Locations page. */
.office-overview{width:min(100%,720px);margin:24px auto 0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:20px}
.office-overview picture,.office-overview img{display:block;width:100%;height:auto}
.office-overview figcaption{padding:10px 18px;text-align:right;font-size:.875rem;color:var(--muted)}
.office-overview figcaption a{text-decoration:underline;text-underline-offset:3px}

/* One opening section: our promise, team, and approach to care. */
.hero-combined{padding:48px 0 34px}
.hero-combined .hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:52px}
.hero-combined h1{font-size:clamp(3.2rem,5.6vw,4.7rem);margin-bottom:24px}
.hero-promise{font-size:clamp(1.5rem,2.2vw,1.85rem);line-height:1.18;letter-spacing:-.025em;margin-bottom:16px}
.hero-combined .hero-copy>p{font-size:1rem;line-height:1.65;max-width:510px;margin-bottom:24px}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 24px}
.hero-actions .button{gap:18px}
.hero-combined .hero-note{margin-top:20px}
.hero-values{list-style:none;margin:34px 0 0;padding:28px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.hero-values li{display:flex;align-items:flex-start;gap:14px;min-width:0}
.value-number{flex-shrink:0;font-size:.875rem;font-weight:700;color:var(--blue);padding-top:1px}
.hero-values h3{font-size:1.0625rem;line-height:1.3;margin:0 0 8px;letter-spacing:-.015em}
.hero-values p{font-size:1rem;line-height:1.55;margin:0}
@media(max-width:900px){.hero-combined .hero-grid{gap:28px}.hero-combined h1{font-size:3.4rem}.hero-values{gap:22px}.hero-values li{gap:10px}}
@media(max-width:650px){.hero-combined{padding:36px 0 28px}.hero-combined .hero-grid{grid-template-columns:1fr;gap:32px}.hero-combined h1{font-size:clamp(3.2rem,12vw,4.2rem)}.hero-promise{font-size:1.6rem}.hero-combined .hero-copy>p{font-size:1.0625rem}.hero-actions{gap:18px 22px}.hero-values{grid-template-columns:1fr;gap:0;margin-top:28px;padding-top:8px}.hero-values li{gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}.hero-values li:last-child{border-bottom:0;padding-bottom:0}.hero-values h3{font-size:1.125rem}}

/* Official Google mark and office-specific online appointment requests. */
.google-word{display:flex;align-items:center;gap:0;margin-bottom:25px;min-height:48px}
.google-word img{width:96px;height:96px;margin-block:-24px;object-fit:contain;flex-shrink:0}
.google-word span{margin-left:0;font-size:1rem}
.booking-grid .office-actions{flex-direction:column;align-items:stretch;gap:16px}
.booking-grid .office-actions .button{width:100%;white-space:normal;gap:10px;padding:12px;font-size:.9375rem;min-height:50px}
.booking-grid .directions{align-self:flex-start}

/* Keep the map compact on phones and allow room for the contact navigation item. */
@media(max-width:650px){.office-overview{max-width:300px}.office-overview figcaption{padding:8px 12px;text-align:center}}
@media(min-width:901px) and (max-width:1100px){.nav{height:90px}.menu-toggle{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--navy);padding:10px 14px;cursor:pointer}.nav nav{display:none;position:absolute;left:0;right:0;top:90px;background:white;padding:24px;box-shadow:0 10px 20px #14344715;align-items:stretch;font-size:1rem}.nav nav.open{display:flex;flex-direction:column;gap:8px}.nav nav>a:not(.button){padding:10px}}

/* Concise office review links follow the location information. */
.reviews-compact{padding:44px 0}
.reviews-compact h2{font-size:2rem;margin-bottom:24px}
.review-office{display:flex;align-items:center;gap:16px;padding:20px 24px;background:#fff;border:1px solid var(--line);border-radius:14px;transition:border-color .18s,box-shadow .18s}
.review-office:hover{border-color:var(--blue);box-shadow:0 4px 16px #30383b0a}
.review-google{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;overflow:hidden}
.review-google img{width:108px;height:108px;max-width:none;flex-shrink:0}
.review-office-copy{display:flex;flex-direction:column;gap:3px}
.review-office-copy strong{font-size:1.125rem;color:var(--ink)}
.review-office-copy>span{font-size:.875rem;color:var(--blue)}
@media(max-width:900px) and (min-width:651px){.review-office{gap:12px;padding:18px 16px}}
@media(max-width:650px){.reviews-compact{padding:36px 0}.reviews-compact .google-review-grid{gap:12px}.review-office{padding:16px 20px}}

/* Patient resources: topic navigation and readable, expandable guidance. */
.resources-main{padding-top:44px}
.resources-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;align-items:start}
.resource-nav{display:flex;flex-direction:column;position:sticky;top:132px;border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--neutral)}
.resource-nav a{padding:11px 12px;font-size:.9375rem;line-height:1.4;border-radius:7px}
.resource-nav a:hover{background:#fff;color:var(--blue)}
.resource-section{scroll-margin-top:132px;padding-bottom:32px;margin-bottom:38px;border-bottom:1px solid var(--line)}
.resource-section:last-child{margin-bottom:0;border-bottom:0}
.resource-section h2{font-size:2rem}
.resource-section p,.resource-section li{font-size:1rem}
.resource-section .faq{margin:12px 0 20px}
.resource-section .faq p a{text-decoration:underline;color:var(--blue);text-underline-offset:3px}
.resource-checklist{background:var(--neutral);padding:18px 24px;border-radius:14px;margin-bottom:22px}
.resource-checklist ul,.resource-list{padding-left:21px;margin:0}
.resource-checklist li,.resource-list li{padding:5px 0}
.resource-list{margin-bottom:20px}
/* Office contact details and the email area share the first desktop view. */
.contact-intro{padding:28px 0 20px;background:var(--neutral)}
.contact-intro h1{font-size:2.5rem;margin-bottom:10px}
.contact-intro p{margin:0;font-size:1rem}
.contact-main{padding:24px 0 36px}
.contact-workspace{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:32px;align-items:start}
.contact-office-list{display:grid;gap:12px}
.contact-office{border:1px solid var(--line);border-radius:14px;padding:16px 22px;background:#fff}
.contact-office h2{font-size:1.25rem;margin-bottom:7px}
.contact-office p{font-size:.9375rem;line-height:1.45;margin-bottom:8px}
.contact-office-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 16px}
.contact-office .phone{font-size:1rem;margin:0}
.contact-office .text-link{font-size:.875rem}
.contact-urgent{font-size:.875rem;margin:0}
.compact-form{padding:20px 24px}
.compact-form h2{font-size:1.5rem;margin-bottom:10px}
.email-preview{font-size:.875rem;line-height:1.45;margin-bottom:14px;padding:10px 12px;background:#fff;border-left:3px solid var(--blue)}
.compact-form label{margin-bottom:4px}
.compact-form input,.compact-form select,.compact-form textarea{min-height:42px;padding:8px 10px;margin-bottom:10px}
.compact-form #office-help{font-size:.875rem;margin:0 0 10px;line-height:1.4}
.compact-form textarea{min-height:76px;resize:vertical}
.compact-form .button{min-height:42px;padding:10px 18px;font-size:.875rem}
@media(max-width:1000px){.resources-layout{grid-template-columns:200px minmax(0,1fr);gap:32px}}
@media(max-width:767px){.resources-layout{grid-template-columns:1fr;gap:30px}.resource-nav{position:static;display:grid;grid-template-columns:1fr 1fr}.resource-section h2{font-size:1.75rem}.contact-workspace{grid-template-columns:1fr;gap:24px}.contact-intro h1{font-size:2.1rem}.contact-office{padding:18px 20px}.compact-form{padding:22px 20px}}
@media(max-width:400px){.resource-nav{grid-template-columns:1fr}.compact-form .form-row{grid-template-columns:1fr}}

/* A reserved marketplace entry beside the practice logo. */
.brand-navigation{display:flex;align-items:center;gap:16px;flex-shrink:0}
.marketplace-coming{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:8px 14px;background:var(--neutral);border:1px solid var(--line);border-radius:12px;color:var(--ink);opacity:1;line-height:1.3;cursor:default;flex-shrink:0}
.marketplace-coming>span{font-size:.875rem;font-weight:700}
.marketplace-coming small{font-size:.75rem;color:var(--muted)}
@media(min-width:1101px) and (max-width:1250px){.nav{height:90px}.menu-toggle{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--navy);padding:10px 14px;cursor:pointer}.nav nav{display:none;position:absolute;left:0;right:0;top:90px;background:white;padding:24px;box-shadow:0 10px 20px #14344715;align-items:stretch;font-size:1rem}.nav nav.open{display:flex;flex-direction:column;gap:8px}.nav nav>a:not(.button){padding:10px}}
@media(max-width:650px){.brand-navigation{gap:8px}.marketplace-coming{padding:7px 10px}.nav{gap:8px}.menu-toggle{gap:6px;padding:10px}}
@media(max-width:380px){.brand-navigation{flex-direction:column;gap:0;align-items:center}.nav{height:130px}.nav nav{top:130px}.marketplace-coming{flex-direction:row;gap:6px;padding:4px 8px}.marketplace-coming>span{font-size:.8125rem}.resource-section{scroll-margin-top:150px}}

/* Refined RVA identity: deep blue anchors, clear white surfaces, and restrained teal. */
:root{--navy:#173f5c;--blue:#236d8b;--cyan:#5cc4d7;--sky:#edf7fb;--line:#dbe6ec;--neutral:#f3f7fa;--elevated-shadow:0 12px 32px rgba(20,61,88,.07)}
header{border-bottom:1px solid #dbe6ec;box-shadow:0 3px 18px rgba(20,61,88,.035)}
.button{background:linear-gradient(115deg,#225d7c,#267e98);border-color:transparent;box-shadow:0 5px 14px rgba(27,89,117,.14);transition:background .18s,transform .18s,box-shadow .18s}
.button:hover{background:var(--navy);box-shadow:0 8px 20px rgba(27,89,117,.2)}
.marketplace-coming{background:#f1f7fa;border-color:#d5e5ed}
.marketplace-coming small{color:#526d7c}
.hero-combined{position:relative;overflow:hidden;padding:64px 0;background:radial-gradient(ellipse at 94% 15%,rgba(66,167,190,.16),transparent 56%),linear-gradient(118deg,#143750 0%,#1c506f 60%,#22627d 100%);border-bottom:4px solid #52b6cb}
.hero-combined .hero-grid{position:relative;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:64px}
.hero-combined .eyebrow{color:#caedf5;font-size:.875rem;letter-spacing:.17em;margin-bottom:22px}
.hero-combined h1{color:#fff;font-size:clamp(3.1rem,5.3vw,4.6rem);font-weight:700;line-height:1.06;letter-spacing:-.05em;margin-bottom:26px}
.hero-combined h1 span{color:#a3e6f2}
.hero-combined .hero-copy>p{color:#e0edf4;max-width:490px;font-size:1.0625rem;line-height:1.75;margin-bottom:28px}
.hero-combined .hero-actions{gap:20px 24px}
.hero-combined .hero-actions .button{background:#fff;border-color:#fff;color:#184761;box-shadow:0 8px 20px #0a243333}
.hero-combined .hero-actions .button:hover{background:#e7f7fb;color:#143750!important}
.hero-combined .hero-actions .text-link{color:#fff;text-underline-offset:5px}
.hero-combined .hero-note{color:#e0edf4;margin-top:26px;padding-top:20px;border-top:1px solid #ffffff26;font-size:.875rem}
.hero-combined .hero-note span{color:#a3e6f2}
.hero-combined .hero-people{background:#eff6fa;border:1px solid #ffffffa6;border-radius:24px;box-shadow:0 24px 60px rgba(7,29,44,.25)}
.hero-combined .people-title{color:#244f68;padding:20px 22px 16px;letter-spacing:.12em}
.hero-combined .people-title a{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#fff;color:var(--blue);line-height:1}
.hero-combined .hero-team{gap:12px;padding:0 18px 18px}
.hero-combined .hero-doctor{border:1px solid #dbe7ee;border-radius:12px;box-shadow:0 3px 9px #153b5208;transition:box-shadow .18s,transform .18s}
.hero-combined .hero-doctor:hover{box-shadow:0 0 0 2px #75c8dc;transform:translateY(-2px)}
.hero-combined .hero-doctor span{color:#244f68;font-size:.875rem;padding:10px 3px}
.hero-combined .hero-doctor img{height:140px}
.hero-combined .hero-doctor:nth-child(-n+2) img{height:185px}
.section-heading{margin-bottom:32px}
.section-heading h2{color:var(--navy);font-size:clamp(2rem,3.2vw,2.75rem);letter-spacing:-.035em}
.section-heading h2::before{content:"";display:block;width:42px;height:3px;margin-bottom:16px;background:#47a6c1;border-radius:2px}
.service-grid{gap:20px}
.service-card{border-radius:20px;padding-top:30px;background:linear-gradient(145deg,#fff 65%,#f5fafc);box-shadow:0 4px 18px rgba(20,61,88,.035);transition:transform .2s,box-shadow .2s,border-color .2s}
.service-card:hover{border-color:#8dbfd1;box-shadow:var(--elevated-shadow);transform:translateY(-4px)}
.service-icon{background:#edf7fb;color:#246a89;border:1px solid #d7ebf3;border-radius:14px}
.service-card h3{color:#173f5c}
.card-arrow{border-radius:50%;background:#edf7fb;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:1.125rem}
.locations-section{background:linear-gradient(125deg,#eef6fa,#f6fafc);border-block:1px solid #e0edf3}
.office-card{box-shadow:0 8px 24px rgba(20,61,88,.045);border-color:#d5e5ee;border-radius:20px}
.office-card h3{color:var(--navy)}
.office-number{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 6px;background:#edf7fb;border-radius:9px;letter-spacing:.04em}
.office-top svg{color:#2e809e}
.office-overview{padding:7px;background:#fff;border-color:#d5e5ee;box-shadow:var(--elevated-shadow);border-radius:20px}
.office-overview picture{border-radius:13px;overflow:hidden}
.office-overview figcaption{padding:8px 12px 3px}
.google-reviews{background:#fff}
.reviews-compact h2{color:var(--navy);font-size:1.75rem;letter-spacing:-.025em}
.review-office{background:#f8fbfc;border-color:#e0eaf0}
.review-office:hover{background:#fff;box-shadow:var(--elevated-shadow)}
.page-intro,.contact-intro{background:radial-gradient(ellipse at 100% 0,rgba(67,165,191,.23),transparent 60%),linear-gradient(115deg,#183f59,#235f7d);border-bottom:3px solid #52b6cb}
.page-intro h1,.contact-intro h1{color:#fff}
.page-intro .eyebrow{color:#caedf5}
.page-intro .lead,.contact-intro p{color:#e0edf4}
.doctor-card{border-color:#d5e5ee;box-shadow:var(--elevated-shadow)}
.doctor-info{border-top:3px solid #8dc7d8;background:linear-gradient(145deg,#fff,#f7fbfd)}
.doctor-info h2{color:var(--navy)}
.location-address,.checklist,.resource-checklist{background:#edf6fa;border:1px solid #d7e8f0}
.resource-nav{background:#f0f7fa;border-color:#d5e5ee}
.resource-nav a{color:#244f68}
.resource-nav a:hover{box-shadow:0 2px 8px #173f5c08}
.resource-section h2{color:var(--navy)}
.faq details[open] summary{color:var(--blue)}
.contact-office{border-color:#d5e5ee;box-shadow:0 4px 14px #173f5c06}
.contact-office h2,.compact-form h2{color:var(--navy)}
.compact-form{background:#f0f7fa;border-color:#d5e5ee;box-shadow:var(--elevated-shadow)}
footer{background:linear-gradient(115deg,#14364f,#1c4963);border-top:3px solid #3c849e}
.footer-grid p,.footer-grid a{color:#dcebf2}
.footer-bottom{color:#bed5e1}
@media(min-width:651px) and (max-width:1000px){.hero-combined{padding:46px 0}.hero-combined .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px}.hero-combined h1{font-size:clamp(2.5rem,5vw,3.8rem)}.hero-combined .hero-copy>p{font-size:1rem}.hero-combined .hero-team{gap:8px;padding:0 12px 12px}.hero-combined .hero-doctor img{height:115px}.hero-combined .hero-doctor:nth-child(-n+2) img{height:150px}.hero-combined .hero-doctor span{font-size:.8125rem;padding:8px 2px}.hero-combined .people-title{padding:15px 16px 12px;font-size:.75rem}.hero-combined .hero-actions{gap:18px}.hero-combined .hero-actions .button{padding:13px 18px}}
@media(max-width:650px){.hero-combined{padding:40px 0}.hero-combined .hero-grid{grid-template-columns:1fr;gap:32px}.hero-combined h1{font-size:clamp(2.65rem,10.9vw,4rem);margin-bottom:22px}.hero-combined .hero-copy>p{font-size:1rem;line-height:1.7;margin-bottom:24px}.hero-combined .hero-note{font-size:.8125rem;margin-top:22px;padding-top:18px}.hero-combined .hero-team{gap:8px;padding:0 12px 12px}.hero-combined .hero-doctor img{height:120px}.hero-combined .hero-doctor:nth-child(-n+2) img{height:165px}.hero-combined .hero-doctor span{font-size:.8125rem;padding:9px 2px}.hero-combined .people-title{padding:16px 18px 12px}.service-grid{gap:12px}.service-card{padding-top:23px}.section-heading{margin-bottom:26px}.section-heading h2{font-size:2rem}.section-heading h2::before{margin-bottom:13px}.office-overview{padding:5px;border-radius:16px}.office-overview figcaption{padding:8px 6px 3px}}
@media(prefers-reduced-motion:reduce){.hero-combined .hero-doctor:hover,.service-card:hover,.button:hover{transform:none}}

/* Full biographies use a readable text column beside each portrait. */
.doctor-grid{grid-template-columns:1fr;gap:28px}
.doctor-card{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:stretch}
.doctor-card .portrait{height:100%;min-height:350px;background:#e8f2f7}
.doctor-card .portrait img{object-position:center 18%}
.doctor-info{padding:30px 36px;border-top:0;border-left:3px solid #8dc7d8}
.doctor-info h2{font-size:1.75rem;line-height:1.2;margin-bottom:10px}
.doctor-info p{font-size:1rem;line-height:1.7;max-width:760px;margin:16px 0 0}
@media(min-width:651px) and (max-width:1000px){.doctor-card{grid-template-columns:210px minmax(0,1fr)}.doctor-info{padding:26px}.doctor-card .portrait{min-height:340px}}
@media(max-width:650px){.doctor-card{grid-template-columns:1fr}.doctor-card .portrait{height:360px;min-height:0}.doctor-info{padding:26px 24px;border-left:0;border-top:3px solid #8dc7d8}.doctor-info h2{font-size:1.5rem}}

/* Consistent office names with a compact practice-name line. */
.office-brand{display:block;font-size:.875rem;font-weight:600;line-height:1.4;letter-spacing:.025em;margin-bottom:5px;color:var(--blue)}
.page-intro h1 .office-brand{color:#caedf5;font-size:1.125rem;margin-bottom:12px;letter-spacing:.02em}
.contact-office .office-brand{font-size:.8125rem;margin-bottom:3px}

/* Published office opening hours. */
.office-hours{margin:0 0 22px;font-size:.875rem;color:var(--muted)}
.office-hours>div{display:flex;justify-content:space-between;gap:12px;padding:4px 0}
.office-hours dt{font-weight:600;color:var(--ink)}
.office-hours dd{margin:0;text-align:right}
.location-information .office-hours{padding:16px 20px;background:var(--sky);border:1px solid var(--line);border-radius:12px;font-size:1rem}
.location-information .office-hours>div{display:flex;border:0;padding:6px 0}

/* Essential launch adjustments. */
.logo{width:190px;height:auto;overflow:visible;flex-shrink:0}.logo img{width:100%;height:auto;max-width:100%;object-fit:contain;transform:none;position:static}.launch-notice{font-size:1rem;line-height:1.6;border-left:3px solid var(--blue);padding:14px 18px;background:#eef5fa;margin-bottom:24px}.form-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.office-email{overflow-wrap:anywhere;text-decoration:underline}.contact-office .office-hours{margin:10px 0}.contact-office p{margin-bottom:8px}.hero-doctor img,.doctor-card .portrait img{object-position:50% 22%}.privacy-content h2{font-size:1.6rem;margin-top:32px}.privacy-content li{margin-bottom:10px}@media(max-width:650px){.logo{width:150px}.brand-navigation{min-width:0;gap:10px}.marketplace-coming{font-size:12px}.launch-notice{font-size:.9375rem}.contact-office-list{min-width:0}}
/* Production accessibility: visible keyboard focus and reduced motion. */
/* Individual portrait framing: keep Dr. Vakili's longer bio from enlarging his photo. */
.hero-doctor[href="/doctors/#alex-vakili"] img{object-position:50% 12%}
.doctor-card#alex-vakili .portrait img{object-position:50% 0%}
@media(min-width:651px){.doctor-card#alex-vakili .portrait{height:476px;min-height:0;align-self:start}}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #b34f00;outline-offset:3px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
