:root{--pine:#1f4839;--deep:#14352b;--leaf:#6f8f74;--mist:#edf3ed;--cream:#fbfaf5;--ink:#1a2822;--muted:#5d6964;--gold:#b59a63;--white:#fff;--shadow:0 20px 60px rgba(19,53,43,.14)}
@font-face{font-family:"Bui Vietnamese Serif";src:url("assets/fonts/DejaVuSerif.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.65}button,a{font:inherit}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.prototype-bar{background:var(--deep);color:#e9f1ec;text-align:center;padding:.45rem 1rem;font-size:.77rem;letter-spacing:.04em}.site-header{height:84px;padding:0 clamp(1.25rem,5vw,5rem);display:flex;align-items:center;justify-content:space-between;background:rgba(251,250,245,.96);position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(31,72,57,.1);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}.brand-mark{width:45px;height:45px;border:1px solid var(--gold);display:grid;place-items:center;border-radius:50%;color:var(--pine);font-family:Georgia,serif;font-size:.85rem;letter-spacing:.08em}.brand-logo{position:relative;display:block;flex:0 0 54px;width:54px;height:54px;overflow:hidden}.brand-logo img{position:absolute;width:80px;max-width:none;left:-13px;top:-13px}.brand strong,.brand small{display:block}.brand strong{font-family:Georgia,serif;font-weight:500;font-size:1.15rem}.brand small{font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-top:.1rem}.site-header .brand strong{font-size:1.08rem;line-height:1.2}.site-header .brand small{font-size:.66rem;letter-spacing:.11em}.site-header nav{display:flex;gap:clamp(1rem,2.2vw,2rem)}.site-header nav a{text-decoration:none;font-size:.88rem;color:#34483f}.site-header nav a:hover{color:var(--gold)}.menu-toggle{display:none;border:0;background:none;padding:.5rem}.menu-toggle span:not(.sr-only){display:block;width:24px;height:2px;background:var(--pine);margin:5px}
.hero{height:min(750px,calc(100vh - 110px));min-height:610px;position:relative;overflow:hidden;background:var(--deep)}.hero>img{width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,38,29,.88) 0%,rgba(12,38,29,.68) 36%,rgba(12,38,29,.12) 70%,rgba(12,38,29,.08) 100%)}.hero-copy{position:absolute;left:clamp(1.4rem,8vw,8rem);top:50%;transform:translateY(-50%);color:white;width:min(650px,82vw)}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-weight:700;font-size:.72rem;color:var(--leaf);margin:0 0 1rem}.hero .eyebrow{color:#bdd0c2}.hero h1{font:400 clamp(2.9rem,6vw,5.8rem)/.98 Georgia,serif;letter-spacing:-.04em;margin:.3rem 0 1.6rem}.hero h1 em{color:#d4c69d;font-weight:400}.hero-copy>p:not(.eyebrow){max-width:570px;font-size:clamp(1rem,1.5vw,1.25rem);color:#edf3ef}.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2.2rem}.button{border:1px solid transparent;border-radius:2px;padding:.9rem 1.25rem;min-height:48px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.87rem}.button.primary{background:var(--pine);color:#fff}.hero .button.primary{background:#d7c591;color:var(--deep)}.button.secondary{border-color:rgba(255,255,255,.6);color:#fff}.hero-note{position:absolute;right:clamp(1.4rem,5vw,5rem);bottom:2rem;background:rgba(251,250,245,.94);padding:1.1rem 1.4rem;min-width:230px;border-left:3px solid var(--gold);box-shadow:var(--shadow)}.hero-note span,.hero-note strong,.hero-note small{display:block}.hero-note span{font-size:.68rem;text-transform:uppercase;letter-spacing:.15em;color:var(--leaf)}.hero-note strong{font-family:Georgia,serif;font-size:1.25rem}.hero-note small{color:var(--muted)}
section{padding:clamp(4.5rem,9vw,8rem) clamp(1.4rem,8vw,8rem)}h2{font:400 clamp(2.3rem,4.7vw,4.2rem)/1.08 Georgia,serif;letter-spacing:-.035em;margin:.2rem 0 1.5rem}.intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,8vw,8rem);align-items:start}.intro-copy{font-size:1.08rem;color:#405149}.intro-copy p:first-child{font-size:1.3rem;color:var(--ink);margin-top:0}.services{background:var(--deep);color:#fff}.section-heading{max-width:750px;margin-bottom:3.2rem}.section-heading>p:not(.eyebrow){color:#c2d0c9}.services .eyebrow{color:#a9bda9}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.18)}.service-grid article{padding:2rem clamp(1rem,2.2vw,2rem);border-right:1px solid rgba(255,255,255,.18)}.service-grid article:last-child{border:0}.service-grid span{color:#cdbb88;font-size:.74rem;letter-spacing:.15em}.service-grid h3{font:400 1.5rem Georgia,serif;margin:2.5rem 0 1rem}.service-grid p{color:#bdcbc4;font-size:.94rem}.team{background:#f4f6f0}.section-heading.compact{margin-bottom:2.5rem}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.team-grid article{background:#fff;padding:1.1rem;display:flex;gap:1rem;align-items:center;border:1px solid #dce4dc}.team-grid .manager{grid-column:auto;max-width:none}.portrait-placeholder{flex:0 0 74px;height:84px;background:linear-gradient(145deg,#dce8dd,#acbea9);display:grid;place-items:center;color:var(--pine);font:400 1.2rem Georgia,serif}.team-grid h3{font:400 1.35rem Georgia,serif;margin:0 0 .3rem}.team-grid p{margin:0;color:var(--muted);font-size:.88rem}.team-note{color:var(--muted);font-size:.82rem;margin-top:1.3rem}.technology{display:grid;grid-template-columns:minmax(260px,.8fr) 1.2fr;gap:clamp(3rem,8vw,8rem);align-items:center}.tech-art{aspect-ratio:1;max-width:430px;background:var(--pine);position:relative;display:grid;place-items:center;overflow:hidden;color:#d7c591}.tech-art .rings{position:absolute;width:70%;height:70%;border:1px solid rgba(255,255,255,.35);border-radius:50%;box-shadow:0 0 0 45px rgba(255,255,255,.04),0 0 0 90px rgba(255,255,255,.04)}.tech-art span{font:400 4rem Georgia,serif;z-index:1}.technology>div:last-child>p:not(.eyebrow){font-size:1.1rem;color:#405149}.technology small{color:var(--muted)}.new-patients{text-align:center;background:var(--mist)}.new-patients>p:not(.eyebrow){max-width:770px;margin:0 auto 2rem;color:#405149}.new-patients>div{display:flex;gap:1.5rem;justify-content:center;align-items:center;flex-wrap:wrap}.text-button{border:0;background:none;color:var(--pine);text-decoration:underline;text-underline-offset:5px;cursor:pointer}.contact{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,8vw,8rem);align-items:start}.contact>div:first-child>p:not(.eyebrow){max-width:650px;color:#405149}.contact-card{background:#fff;padding:clamp(1.4rem,4vw,2.5rem);box-shadow:var(--shadow);border-top:4px solid var(--gold)}dl{margin:0}dl div{padding:1rem 0;border-bottom:1px solid #e3e8e2}dt{text-transform:uppercase;letter-spacing:.14em;color:var(--leaf);font-size:.68rem;font-weight:800}dd{margin:.2rem 0 0;font-family:Georgia,serif;font-size:1.15rem}.wide{width:100%;margin-top:1.4rem}footer{background:#102b23;color:#d9e3dd;padding:3rem clamp(1.4rem,8vw,8rem);display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem;align-items:center;font-size:.78rem}.footer-brand .brand-logo{background:var(--cream);border-radius:50%}.footer-brand small{color:#9eb0a6}footer p:last-child{text-align:right}
dialog{width:min(520px,calc(100% - 2rem));border:0;padding:2.4rem;box-shadow:0 30px 100px rgba(0,0,0,.35);background:var(--cream)}dialog::backdrop{background:rgba(9,29,23,.7);backdrop-filter:blur(5px)}dialog h2{font-size:2rem}dialog p:not(.eyebrow){color:var(--muted)}.dialog-close{position:absolute;right:1rem;top:.7rem;border:0;background:none;font-size:2rem;color:var(--muted);cursor:pointer}.dialog-ok{margin-top:1rem}

/* Readability refinements for patients across desktop, tablet, and mobile. */
.prototype-bar{font-size:.8rem}.brand small{font-size:.75rem}.site-header nav a{font-size:.9rem}.eyebrow{font-size:.8rem}.section-heading{max-width:820px;margin-bottom:2.2rem}.section-heading>p:not(.eyebrow){font-size:1.05rem}.service-grid span{font-size:.8rem}.service-grid h3{line-height:1.2;margin-top:1.75rem}.service-grid p{font-size:1rem;line-height:1.65}.team-grid p{font-size:.95rem;line-height:1.55}.team-note{font-size:.9rem}.technology small{font-size:.9rem}.combined-contact{display:block}.visit-heading{max-width:780px;margin-bottom:2rem}.visit-heading>p:not(.eyebrow){font-size:1.05rem;color:#405149}.visit-panels{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,4vw,3rem);align-items:start}.new-patient-card{background:var(--mist);padding:clamp(1.5rem,4vw,2.5rem);border-top:4px solid var(--leaf)}.new-patient-card h3{font:400 1.8rem/1.2 Georgia,serif;margin:.2rem 0 1rem}.new-patient-card>p:not(.eyebrow){color:#405149}.new-patient-card .text-button{width:100%;margin-top:1.2rem;padding:.75rem}.contact>div:first-child>p:not(.eyebrow){font-size:1.05rem}dt{font-size:.78rem}dd a{text-decoration:none}dd a:hover{text-decoration:underline}.hours{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:1rem}.hours-list{list-style:none;margin:.5rem 0 0;padding:0}.hours-list li{display:grid;grid-template-columns:6.5rem 1fr;gap:1rem;padding:.55rem 0;border-bottom:1px solid #edf0ec}.hours-list li:last-child{border-bottom:0}.hours-list strong{font-family:Georgia,serif;font-size:1.05rem;font-weight:500}.hours-list span,.hours-list small{display:block}.hours-list small{color:var(--muted);font-size:.82rem;margin-top:.05rem}section{padding:clamp(3.25rem,6vw,5.5rem) clamp(1.4rem,8vw,8rem)}.intro{gap:clamp(2rem,6vw,6rem)}.technology{gap:clamp(2rem,6vw,6rem)}footer{font-size:.85rem;padding-block:2.25rem}
@media(max-width:900px){.site-header nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--cream);padding:1rem 1.4rem 1.5rem;flex-direction:column;border-bottom:1px solid #dce4dc}.site-header nav.open{display:flex}.menu-toggle{display:block}.hero{min-height:650px}.hero-shade{background:linear-gradient(90deg,rgba(12,38,29,.88),rgba(12,38,29,.45))}.service-grid{grid-template-columns:1fr 1fr}.service-grid article:nth-child(2){border-right:0}.service-grid article:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.18)}.team-grid{grid-template-columns:1fr}.team-grid .manager{grid-column:auto}.technology{grid-template-columns:1fr}.tech-art{max-width:360px}.contact{grid-template-columns:1fr}.visit-panels{grid-template-columns:1fr}footer{grid-template-columns:1fr}footer p:last-child{text-align:left}}
@media(max-width:620px){.prototype-bar{font-size:.72rem}.site-header{height:70px;padding-inline:1rem}.site-header nav{top:70px}.site-header .brand{gap:.55rem}.site-header .brand strong{font-size:.84rem;line-height:1.12}.site-header .brand small{font-size:.55rem;letter-spacing:.07em;white-space:nowrap}.brand-mark{width:38px;height:38px}.brand-logo{flex-basis:44px;width:44px;height:44px}.brand-logo img{width:66px;left:-11px;top:-11px}.hero{height:700px}.hero-copy{top:43%}.hero h1{font-size:2.85rem}.hero-note{left:1.4rem;right:auto;bottom:1.3rem}.intro{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr}.service-grid article{border-right:0;border-bottom:1px solid rgba(255,255,255,.18)!important}.service-grid article:last-child{border-bottom:0!important}section{padding-block:3.25rem}.team-grid article{align-items:flex-start}.hours-list li{grid-template-columns:5.5rem 1fr;gap:.75rem}.new-patients .button,.new-patients .text-button{width:100%}footer{padding-block:2rem}}
@media(max-width:620px){body{overflow-x:hidden}.prototype-bar{padding:.45rem .75rem;line-height:1.4}.site-header{height:76px;padding-inline:.75rem;gap:.4rem}.site-header nav{top:76px;padding:.65rem 1rem 1rem;box-shadow:0 16px 30px rgba(19,53,43,.12)}.site-header nav a{display:flex;align-items:center;min-height:48px;font-size:1rem;border-bottom:1px solid #e3e8e2}.site-header nav a:last-child{border-bottom:0}.site-header .brand{gap:.5rem;min-width:0}.site-header .brand-copy{min-width:0}.site-header .brand strong{font-size:.86rem;line-height:1.15}.site-header .brand small{font-size:.75rem;line-height:1.25;letter-spacing:.03em;white-space:normal}.menu-toggle{flex:0 0 44px;width:44px;height:44px;padding:.45rem}.brand-logo{flex-basis:44px;width:44px;height:44px}.brand-logo img{width:66px;left:-11px;top:-11px}.hero{height:720px;min-height:0}.hero-copy{left:1.25rem;top:50%;width:calc(100% - 2.5rem)}.hero h1{font-size:clamp(2.45rem,12vw,3.1rem);line-height:1.02;margin-bottom:1.25rem}.hero-copy>p:not(.eyebrow){font-size:1rem;line-height:1.55}.hero-actions{display:grid;grid-template-columns:1fr;margin-top:1.6rem}.hero-actions .button{width:100%}.hero-note{display:none}section{padding:3rem 1.25rem}h2{font-size:clamp(2.05rem,10vw,2.65rem)}.intro{grid-template-columns:1fr;gap:1.25rem}.intro-copy{font-size:1rem}.intro-copy p:first-child{font-size:1.12rem;line-height:1.55}.service-grid{grid-template-columns:1fr}.service-grid article{padding:1.5rem .25rem;border-right:0;border-bottom:1px solid rgba(255,255,255,.18)!important}.service-grid article:last-child{border-bottom:0!important}.service-grid h3{font-size:1.45rem;margin-top:1rem}.team-grid article{align-items:center;padding:1rem}.portrait-placeholder{flex-basis:64px;height:72px}.technology{gap:2rem}.tech-art{width:100%;max-width:none}.contact-card,.new-patient-card{padding:1.25rem}.hours-list li{grid-template-columns:5.25rem minmax(0,1fr);gap:.65rem}.hours-list strong{font-size:1rem}.hours-list span{line-height:1.5}.new-patient-card .button,.new-patient-card .text-button{width:100%}footer{padding:2rem 1.25rem;gap:1rem}.footer-brand{align-items:center}.footer-brand .brand-copy{min-width:0}.footer-brand strong{font-size:1rem;line-height:1.25}.footer-brand small{font-size:.72rem;line-height:1.35;letter-spacing:.07em}footer p{margin:.25rem 0}dialog{padding:1.6rem}dialog h2{font-size:1.75rem}}
@media(max-width:380px){.site-header .brand-logo{flex-basis:40px;width:40px;height:40px}.site-header .brand-logo img{width:60px;left:-10px;top:-10px}.site-header .brand strong{font-size:.8rem}.site-header .brand small{font-size:.7rem}.hero{height:700px}.hero h1{font-size:2.35rem}.hours-list li{grid-template-columns:1fr;gap:.1rem}.hours-list span{padding-bottom:.2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.language-switch{display:inline-flex;align-items:center;gap:.35rem;margin-left:.35rem;padding:.25rem;border:1px solid rgba(31,72,57,.2);border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.08em}.language-switch a,.language-switch span{display:grid;place-items:center;min-width:2rem;height:1.75rem;padding:0 .45rem;text-decoration:none;border-radius:999px}.language-switch [aria-current="page"]{background:var(--pine);color:#fff}.language-switch a:hover{background:var(--mist);color:var(--pine)}
.header-actions{display:flex;align-items:center;gap:.65rem}.language-control{display:flex;flex-direction:column;align-items:center;gap:.15rem;flex:0 0 auto}.language-control>small{text-transform:uppercase;letter-spacing:.12em;font-size:.62rem;line-height:1;color:var(--muted);font-weight:800}.language-control .language-switch{margin:0}
.framed-hero{height:min(780px,calc(100vh - 110px));min-height:680px;background:var(--deep)}.framed-hero>img{position:absolute;left:clamp(2rem,4.2vw,3.5rem);top:3.5rem;width:calc(100% - clamp(4rem,8.4vw,7rem));height:calc(100% - 3.5rem)}.framed-hero .hero-shade{left:clamp(2rem,4.2vw,3.5rem);top:3.5rem;right:clamp(2rem,4.2vw,3.5rem)}.framed-hero .hero-copy{left:clamp(2rem,4.2vw,3.5rem);top:1rem;transform:none;width:min(1060px,88vw)}.framed-hero .hero-copy .eyebrow{margin-bottom:1.3rem}.framed-hero h1{font-size:clamp(3.8rem,8.1vw,7rem);line-height:.94;margin:0 0 1.2rem}.framed-hero h1 em{display:block}.framed-hero .hero-copy>p:not(.eyebrow){max-width:620px}.framed-hero .hero-actions{margin-top:1.25rem}
@media(max-width:900px){.site-header{gap:.7rem}.site-header .brand{flex:1;min-width:0}.header-actions{margin-left:auto}.language-control>small{font-size:.58rem}.language-switch a,.language-switch span{min-height:1.75rem!important;border-bottom:0!important;font-size:.72rem!important}}
@media(max-width:900px){.framed-hero .hero-copy{width:min(760px,86vw)}.framed-hero h1{font-size:clamp(3.3rem,10vw,5.25rem)}}
@media(max-width:620px){.framed-hero{height:720px;min-height:0}.framed-hero>img{position:absolute;inset:0;width:100%;height:100%}.framed-hero .hero-shade{inset:0}.framed-hero .hero-copy{left:1.25rem;top:50%;transform:translateY(-50%);width:calc(100% - 2.5rem)}.framed-hero .hero-copy .eyebrow{margin-bottom:1rem}.framed-hero h1{font-size:clamp(2.45rem,12vw,3.1rem);line-height:1.02;margin:.3rem 0 1.25rem}.framed-hero .hero-actions{margin-top:1.6rem}}
@media(max-width:380px){.framed-hero{height:700px}.framed-hero h1{font-size:2.35rem}}
@media(max-width:620px){.header-actions{gap:.3rem}.language-control{gap:.12rem}.language-control>small{font-size:.5rem;letter-spacing:.08em}.language-switch{gap:.1rem;padding:.18rem}.language-switch a,.language-switch span{min-width:1.65rem;height:1.55rem;padding:0 .25rem;font-size:.66rem!important}.menu-toggle{flex-basis:40px;width:40px;height:40px}.site-header .brand-copy small{display:none}}
@media(max-width:620px){.framed-hero>img{object-position:88% center;filter:saturate(.52) brightness(.58) contrast(.92)}.framed-hero .hero-shade{background:linear-gradient(90deg,rgba(12,38,29,.97) 0%,rgba(12,38,29,.9) 58%,rgba(12,38,29,.56) 100%)}}

/* Let the headline overlap the frame while giving supporting actions room to breathe. */
.framed-hero h1{transform:translateX(clamp(-1.5rem,-1.6vw,-.5rem));width:min(1120px,calc(100vw - 4rem))}
.framed-hero .hero-copy>p:not(.eyebrow){margin:1.7rem 0 0 clamp(1.25rem,2.4vw,2.5rem);max-width:650px}
.framed-hero .hero-actions{margin:2rem 0 0 clamp(1.25rem,2.4vw,2.5rem)}
@media(max-width:620px){.framed-hero h1{transform:translateX(-.35rem);width:calc(100% + .35rem)}.framed-hero .hero-copy>p:not(.eyebrow){margin:1.45rem .5rem 0}.framed-hero .hero-actions{margin:1.75rem .5rem 0}}

/* Keep the lighthouse atmospheric so the message remains the visual focus. */
.framed-hero>img{filter:saturate(1.08) brightness(1.18) contrast(.98)}
.framed-hero .hero-shade{background:linear-gradient(90deg,rgba(12,38,29,.72) 0%,rgba(12,38,29,.44) 38%,rgba(12,38,29,.1) 72%,rgba(12,38,29,.04) 100%)}

/* Alternate the technology section for clearer visual rhythm. */
.technology{background:var(--deep);color:#fff}
.technology .eyebrow{color:#a9bda9}
.technology>div:last-child>p:not(.eyebrow){color:#d0ddd6}
.technology small{color:#afc0b7}
.technology .tech-art{background:var(--cream);color:var(--gold);box-shadow:0 24px 70px rgba(5,22,17,.24)}
.technology .tech-art .rings{border-color:rgba(31,72,57,.28);box-shadow:0 0 0 45px rgba(31,72,57,.055),0 0 0 90px rgba(31,72,57,.04)}

/* Editorial polish inspired by high-performing family-practice websites. */
.site-header{box-shadow:0 8px 28px rgba(19,53,43,.055)}
.site-header nav a{position:relative;padding:.55rem 0}
.site-header nav a::after{content:"";position:absolute;left:0;right:100%;bottom:.3rem;height:1px;background:var(--gold);transition:right .2s ease}
.site-header nav a:hover::after,.site-header nav a:focus-visible::after{right:0}
.button{border-radius:999px;letter-spacing:.01em;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}
.button:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(13,42,32,.18)}
.button:focus-visible,.text-button:focus-visible,.site-header a:focus-visible{outline:3px solid rgba(181,154,99,.48);outline-offset:3px}
.hero .button.primary{box-shadow:0 10px 28px rgba(4,22,16,.2)}
.hero .button.secondary{background:rgba(9,31,23,.2);backdrop-filter:blur(8px)}
.hero-note{border-left:0;border-top:3px solid var(--gold);min-width:250px;backdrop-filter:blur(12px)}
.hero-note strong{font-size:1.55rem;line-height:1.25;margin:.12rem 0}
.intro-copy{border-left:1px solid rgba(181,154,99,.55);padding-left:clamp(1.25rem,2.5vw,2.25rem)}
.service-grid{gap:1px;background:rgba(255,255,255,.16);border-top:0}
.service-grid article{background:var(--deep);border:0;min-height:285px;transition:background-color .2s ease,transform .2s ease}
.service-grid article:hover{background:#1a4034;transform:translateY(-3px)}
.service-grid span{display:inline-flex;width:2.2rem;height:2.2rem;align-items:center;justify-content:center;border:1px solid rgba(205,187,136,.55);border-radius:50%}
.team-grid{gap:1.25rem}
.team-grid article{padding:1.35rem;border-color:rgba(31,72,57,.11);box-shadow:0 12px 34px rgba(19,53,43,.065);transition:transform .2s ease,box-shadow .2s ease}
.team-grid article:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(19,53,43,.11)}
.portrait-placeholder{border-radius:50%;height:74px;border:1px solid rgba(31,72,57,.16)}
.tech-art{border-radius:2px}
.contact-card,.new-patient-card{border-radius:2px;box-shadow:0 18px 50px rgba(19,53,43,.1)}
.visit-panels{align-items:start}.new-patient-card{display:flex;flex-direction:column}.new-patient-card .wide{margin-top:1.4rem}.text-button{font-weight:700}
@media(max-width:620px){.intro-copy{border-left:0;border-top:1px solid rgba(181,154,99,.45);padding:1.3rem 0 0}.service-grid article{min-height:0}.button:hover,.service-grid article:hover,.team-grid article:hover{transform:none}.hero .button.secondary{background:rgba(9,31,23,.34)}}

/* Vietnamese typography: embedded glyph support keeps every tone mark attached. */
html[lang="vi"] .brand strong,
html[lang="vi"] .hero h1,
html[lang="vi"] .hero-note strong,
html[lang="vi"] h2,
html[lang="vi"] .service-grid h3,
html[lang="vi"] .team-grid h3,
html[lang="vi"] .portrait-placeholder,
html[lang="vi"] .tech-art span,
html[lang="vi"] .new-patient-card h3,
html[lang="vi"] dd,
html[lang="vi"] .hours-list strong{font-family:"Bui Vietnamese Serif","DejaVu Serif",serif}
html[lang="vi"] .framed-hero h1{font-size:clamp(3.5rem,7.2vw,6.35rem);line-height:1.04;letter-spacing:-.025em}
html[lang="vi"] h2{line-height:1.16;letter-spacing:-.025em}
@media(max-width:900px){html[lang="vi"] .framed-hero h1{font-size:clamp(3rem,8.8vw,4.8rem)}}
@media(max-width:620px){html[lang="vi"] .framed-hero h1{font-size:clamp(2.15rem,10.2vw,2.8rem);line-height:1.12;letter-spacing:-.02em}html[lang="vi"] h2{font-size:clamp(1.9rem,8.8vw,2.45rem);line-height:1.2}}

/* Lower the lighthouse on phones so its lantern stays clear of the headline. */
@media(max-width:620px){.framed-hero>img{transform:translateY(7%);filter:saturate(.98) brightness(1.02) contrast(.96)}.framed-hero .hero-shade{inset:0;background:linear-gradient(90deg,rgba(12,38,29,.82) 0%,rgba(12,38,29,.66) 58%,rgba(12,38,29,.25) 100%)}}

/* Pair each service number with its illustration across desktop and mobile. */
.service-grid article{display:grid;grid-template-columns:auto 1fr;align-content:start;column-gap:.75rem;row-gap:0}.service-grid article>span{grid-column:1;line-height:1.2}.service-icon{grid-column:2;justify-self:end;display:block;width:clamp(96px,7.5vw,120px);height:clamp(96px,7.5vw,120px);object-fit:contain;margin:0;opacity:.94}.service-icon-gums{filter:saturate(.42) sepia(.08) brightness(1.04)}.service-grid .service-icon+h3,.service-grid article>p{grid-column:1/-1}.service-grid .service-icon+h3{margin:.25rem 0 .55rem}.service-grid article>p{margin:0}
@media(max-width:620px){.service-grid article{grid-template-columns:auto 1fr;column-gap:.6rem;padding-top:1.2rem;padding-bottom:1.2rem}.service-icon{width:90px;height:90px}.service-grid .service-icon+h3{margin:.2rem 0 .45rem}}

/* Patient-friendly context for the 3D imaging section. */
.tech-benefits{list-style:none;margin:1.75rem 0 1.2rem;padding:1.25rem 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}.tech-benefits li{padding:0 1.25rem 0 0}.tech-benefits li+li{padding-left:1.25rem;border-left:1px solid rgba(169,189,169,.65)}.tech-benefits li:last-child{padding-right:0}.tech-benefits strong,.tech-benefits span{display:block}.tech-benefits strong{font-family:Georgia,serif;font-size:1.2rem;line-height:1.2;font-weight:600;color:#e7d8ac;margin-bottom:.65rem}.tech-benefits span{font-size:.95rem;line-height:1.5;color:#c4d2cb}.technology>div:last-child>small{display:block;color:#aebfb7}
@media(max-width:620px){.tech-benefits{grid-template-columns:1fr;margin-top:1.25rem;padding:.25rem 0}.tech-benefits li{padding:1rem 0}.tech-benefits li+li{padding-left:0;border-left:0;border-top:1px solid rgba(169,189,169,.4)}.tech-benefits strong{font-size:1.2rem}.tech-benefits span{font-size:1rem}}

/* Preserve the existing portrait frame dimensions while introducing headshots. */
.portrait-placeholder{overflow:hidden}.provider-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center 18%}.provider-photo-newton,.provider-photo-philip,.provider-photo-morris,.provider-photo-linh{transform:scale(1.06);transform-origin:center center}.provider-photo-newton{object-position:47% 18%}.provider-photo-morris{object-position:49% 18%}.provider-photo-philip{object-position:50% 18%;transform:translateY(2px) scale(1.08)}.provider-photo-linh{object-position:50% 18%}

/* Separate language buttons open the same bilingual patient packet. */
.form-downloads{display:grid;gap:.75rem;margin-top:.5rem}.form-download{width:100%;min-height:3rem;line-height:1.5;font-size:1rem;text-align:center;white-space:normal}
.form-download[lang="vi"]{background:var(--white);color:var(--pine);border-color:var(--pine)}
.address-suite{white-space:nowrap}
.form-language-link{display:block;text-align:center;margin-top:1rem;padding:.65rem;color:var(--pine)}
.fax-display{cursor:default;user-select:text}.fax-display:hover{transform:none;box-shadow:none}

/* Pair phone and fax, with email and its security note on the next row. */
.contact-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}.contact-card dl>div{min-width:0}.contact-card .location-contact{grid-column:1;grid-row:1/span 2}.contact-card .phone-contact{grid-column:2;grid-row:1;border-bottom:0;padding-bottom:.5rem}.contact-card .fax-contact{grid-column:2;grid-row:2;padding-top:.5rem}.contact-card .email-contact{grid-column:1;grid-row:3}.contact-card .email-security-note{grid-column:2;grid-row:3}.contact-card dl>div:last-child{grid-column:1/-1}.contact-card dd a{overflow-wrap:anywhere}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:620px){.contact-card dl{display:block}.contact-card .phone-contact{padding-bottom:1rem;border-bottom:1px solid #e3e8e2}.contact-card .fax-contact{padding-top:1rem}.contact-card .email-contact{border-bottom:0;padding-bottom:.45rem}.contact-card .email-security-note{padding-top:0}}

/* Make the bilingual control prominent and easy to use for older patients. */
.language-control{gap:.25rem;padding:.3rem .4rem;border:1px solid rgba(31,72,57,.16);border-radius:12px;background:#fff;box-shadow:0 5px 16px rgba(19,53,43,.08)}.language-control>small{font-size:.7rem;letter-spacing:.1em;color:var(--pine)}.language-switch{gap:.25rem;padding:.22rem;font-size:.88rem}.language-switch a,.language-switch span{min-width:2.55rem;height:2.15rem;padding:0 .6rem;font-size:.88rem!important}
@media(max-width:620px){.language-control{gap:.18rem;padding:.25rem .3rem}.language-control>small{font-size:.64rem;letter-spacing:.06em}.language-switch{gap:.18rem;padding:.18rem}.language-switch a,.language-switch span{min-width:2.45rem;height:2.05rem;padding:0 .5rem;font-size:.85rem!important}}

/* Preserve the brighter coast while keeping the hero statement clear over water. */
.framed-hero .hero-copy>p:not(.eyebrow){padding:.5rem .75rem;background:linear-gradient(90deg,rgba(8,30,22,.68),rgba(8,30,22,.42));border-radius:8px;text-shadow:0 2px 10px rgba(0,0,0,.72);backdrop-filter:blur(3px)}
@media(max-width:620px){.framed-hero .hero-copy>p:not(.eyebrow){margin-inline:0;padding:.55rem .65rem;background:rgba(8,30,22,.62)}}

/* Temporary CBCT visual presented directly, with a restrained edge fade. */
.technology .tech-photo{width:100%;max-width:500px;margin:0 auto}.tech-photo-frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:#090b0a;border:1px solid rgba(218,195,136,.48);box-shadow:0 20px 50px rgba(4,22,16,.24)}.tech-photo-frame::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 30px rgba(15,59,44,.38)}.tech-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.96}
@media(max-width:620px){.technology .tech-photo{max-width:none;margin-inline:auto}.tech-photo-frame::after{box-shadow:inset 0 0 22px rgba(15,59,44,.36)}}

/* Useful practice details in the green header bar. */
.utility-bar{min-height:38px;background:var(--deep);color:#eef4f0;display:flex;align-items:center;justify-content:center;gap:.65rem;padding:.45rem 1rem;text-align:center;font-size:.82rem;letter-spacing:.025em}.utility-bar a{font-weight:700;text-decoration:none}.utility-bar a:hover,.utility-bar a:focus-visible{text-decoration:underline;text-underline-offset:3px}
@media(max-width:620px){.utility-bar{min-height:0;gap:.25rem .45rem;flex-wrap:wrap;padding:.4rem .75rem;font-size:.72rem;line-height:1.35}}

/* Bring the contact panels and footer into a tighter, intentional rhythm. */
.combined-contact{padding-bottom:clamp(2rem,3vw,3rem)}
@media(max-width:620px){.combined-contact{padding-bottom:2rem}}

/* Keep the footer compact, echoing the restrained spacing of the top address bar. */
footer{padding-top:1.25rem;padding-bottom:1.25rem}
@media(max-width:620px){footer{padding-top:1.1rem;padding-bottom:1.1rem}}

/* Keep required patient information discreet, readable, and out of the main navigation. */
.contact-card .email-security-note dd{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:.875rem;line-height:1.6;color:var(--muted)}
.footer-meta{text-align:right}.footer-meta p{margin:.1rem 0 .5rem}.footer-meta nav{display:flex;justify-content:flex-end;gap:.45rem 1rem;flex-wrap:wrap}.footer-meta nav a{color:#d9e3dd;text-underline-offset:3px}
.policy-page{min-height:100vh;background:var(--cream)}.policy-header{position:static;height:auto;min-height:84px}.policy-main{width:min(860px,calc(100% - 2.5rem));margin:0 auto;padding:clamp(2.5rem,6vw,5rem) 0}.policy-main h1{font:400 clamp(2.3rem,6vw,4rem)/1.08 Georgia,serif;letter-spacing:-.035em;margin:.25rem 0 .5rem}.policy-main h2{font:500 1.45rem/1.25 Georgia,serif;letter-spacing:0;margin:2.2rem 0 .7rem;padding-bottom:.35rem;border-bottom:1px solid rgba(181,154,99,.55)}.policy-main p,.policy-main li{font-size:1rem;line-height:1.7}.policy-main .effective-date{color:var(--muted);margin-bottom:2rem}.policy-main .policy-alert{padding:1rem 1.15rem;border-left:3px solid var(--gold);background:var(--mist)}.policy-main ul{padding-left:1.25rem}.policy-back{display:inline-flex;margin-top:2rem;color:var(--pine);font-weight:700;text-underline-offset:4px}
@media(max-width:900px){.footer-meta{text-align:left}.footer-meta nav{justify-content:flex-start}}
@media(max-width:620px){.footer-meta nav{display:grid;gap:.45rem}.policy-header{padding-block:.65rem}.policy-main{width:min(100% - 2rem,860px);padding-block:2.5rem}.policy-main h1{font-size:2.25rem}.policy-main h2{font-size:1.3rem}}

/* Group each print format with its English and Vietnamese buttons. */
.form-downloads{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.form-download-option{display:grid;gap:.45rem;align-content:start}.form-download-option+.form-download-option{border:0;padding:0}.new-patient-card .form-download{min-height:3rem;padding:.65rem .8rem;font-size:.875rem;line-height:1.35}.new-patient-card .form-download-note{font-size:.9rem;line-height:1.6;margin:1rem 0 0}
@media(max-width:420px){.form-downloads{grid-template-columns:1fr;gap:.85rem}.form-download-option{width:min(100%,19rem);justify-self:center}}

/* Keep the full email address together and size it to its own column. */
.contact-card .email-contact{container-type:inline-size}.contact-card .email-contact dd{font-size:1.05rem;font-size:min(1.15rem,7cqi)}.contact-card .email-contact dd a{white-space:nowrap;overflow-wrap:normal;word-break:normal}

/* Preserve single-line form labels with comfortable button widths. */
.new-patient-card{container-type:inline-size}.new-patient-card .form-download{white-space:nowrap;padding-inline:.65rem}
@container(max-width:28rem){.form-downloads{grid-template-columns:1fr;gap:.85rem}.form-download-option{width:min(100%,22rem);justify-self:center}}

/* Explain each form option before its buttons. */
.new-patient-card .form-downloads{grid-template-columns:1fr;gap:1.2rem}.new-patient-card .form-download-option{width:100%;justify-self:stretch}.new-patient-card .form-download-option .form-download{width:min(100%,22rem);justify-self:center}.new-patient-card .form-download-note{font-size:1rem;line-height:1.65;margin:0 0 .4rem;text-align:left}

/* Direct access to forms with clearance beneath the sticky header. */
#patient-forms{scroll-margin-top:100px}
.site-header nav a{white-space:nowrap}
@media(min-width:901px) and (max-width:1200px){
 .site-header nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--cream);padding:1rem 1.4rem 1.5rem;flex-direction:column;border-bottom:1px solid #dce4dc}
 .site-header nav.open{display:flex}
 .menu-toggle{display:block}
}

/* Final polish: consistent rhythm, readable labels, and comfortable tablet cards. */
main section[id],#home{scroll-margin-top:100px}
.eyebrow,dt{color:#4f7156}
.site-header{gap:1.25rem}
.header-actions{flex-shrink:0}
.site-header .brand-copy{min-width:0}
.site-header nav{align-items:center}
.site-header nav a:focus-visible{color:var(--pine)}
.menu-toggle{cursor:pointer;border-radius:6px}
.menu-toggle:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.site-header nav.open{max-height:calc(100dvh - 100px);overflow-y:auto}
.skip-link{position:fixed;left:1rem;top:1rem;z-index:30;padding:.7rem 1rem;border-radius:6px;background:var(--pine);color:white;transform:translateY(-160%);text-decoration:none}
.skip-link:focus{transform:translateY(0);outline:3px solid var(--gold);outline-offset:3px}
.intro-copy{line-height:1.7}
.intro-copy p:last-child,.section-heading>p:last-child,.visit-heading>p:last-child{margin-bottom:0}
.team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.team-grid article>div:last-child{min-width:0}
.team-grid h3{line-height:1.25}
.team-grid .portrait-placeholder{width:74px;flex:0 0 74px;height:74px}
.technology>div{min-width:0}
html[lang="vi"] .tech-benefits strong{font-family:"Bui Vietnamese Serif","DejaVu Serif",serif}
.new-patient-card h3{margin-bottom:.9rem}
.new-patient-card>p:not(.eyebrow){line-height:1.7;margin-top:0;margin-bottom:1.25rem}
.new-patient-card .form-downloads{margin-top:0;gap:1.4rem}
.new-patient-card .form-download-option{gap:.55rem}
.new-patient-card .form-download-option+.form-download-option{border-top:1px solid rgba(31,72,57,.18);padding-top:1.3rem}
.new-patient-card .form-download-note{margin:0 0 .5rem;line-height:1.7}
.form-download[lang="vi"]:hover{background:#f5f8f3}
.contact-card .email-security-note dd{line-height:1.7}
.contact-card dl>div:last-child{border-bottom:0;padding-bottom:0}
footer a:focus-visible{outline:2px solid #d7c591;outline-offset:4px;border-radius:2px}
@media(min-width:1201px) and (max-width:1400px){
 .site-header{padding-inline:2rem;gap:1rem}
 .site-header nav{gap:1rem}
 .site-header .brand strong{font-size:1rem}
}
@media(min-width:901px) and (max-width:1200px){
 .site-header nav a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid #e3e8e2}
 .site-header nav a:last-child{border-bottom:0}
 .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .team-grid .manager{max-width:none;grid-column:auto}
}
@media(min-width:901px) and (max-width:1100px){
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .visit-panels{grid-template-columns:1fr}
 .technology{grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:2rem}
 .tech-benefits{grid-template-columns:1fr;padding:.25rem 0}
 .tech-benefits li{padding:.9rem 0}
 .tech-benefits li+li{padding-left:0;border-left:0;border-top:1px solid rgba(169,189,169,.4)}
}
@media(max-width:900px){.team-grid{grid-template-columns:1fr}}
@media(max-width:620px){
 main section[id],#home,#patient-forms{scroll-margin-top:92px}
 .team-grid .portrait-placeholder{width:64px;flex-basis:64px;height:64px}
 .new-patient-card .form-downloads{gap:1.2rem}
 .new-patient-card .form-download-option+.form-download-option{padding-top:1.15rem}
}
@media(prefers-reduced-motion:reduce){
 .button,.service-grid article,.team-grid article,.site-header nav a::after{transition:none}
 .button:hover,.service-grid article:hover,.team-grid article:hover{transform:none}
}
