/* Editorial directory. Scoped to this page; existing condition pages keep their layout. */
body.directory-page { background:#faf9f6; color:#202923; }
.directory-page .directory-main { width:min(1160px,calc(100% - 80px)); margin:0 auto; }
.directory-page .directory-breadcrumb { position:static; display:flex; justify-content:flex-start; gap:12px; align-items:center; min-height:0; padding:28px 0 0; margin:0; border:0; background:transparent; box-shadow:none; font-size:12px; color:#59645e; }
.directory-breadcrumb a { color:inherit; text-decoration:none; }
.directory-breadcrumb a:hover { text-decoration:underline; }
.directory-page .directory-hero { display:grid; grid-template-columns:1.35fr 1fr; align-items:center; gap:72px; padding:46px 0 55px; }
.directory-page .directory-eyebrow { display:block; margin:0 0 17px; color:#47604e; font:600 10px/1.6 var(--sans); letter-spacing:.13em; }
.directory-page .directory-hero h1 { max-width:680px; margin:0 0 25px; font:400 clamp(42px,4.8vw,68px)/1.06 var(--serif); letter-spacing:-.045em; color:#202923; }
.directory-hero h1 em { font-weight:400; color:#486b53; }
.directory-page .directory-intro { max-width:470px; margin:0 0 26px; color:#58645c; font-size:15px; line-height:1.8; }
.directory-page .directory-text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; color:#2e4635; font-size:13px; font-weight:600; text-decoration:none; padding:10px 0; border-bottom:1px solid #607c64; }
.directory-text-link:hover { color:#111f15; border-color:currentColor; }
.directory-page .directory-doctor { display:grid; grid-template-columns:1fr 1fr; align-items:end; min-width:0; overflow:hidden; margin:0; padding:25px 23px 0; border-radius:32px 32px 8px 32px; background:#e5eade; }
.directory-doctor-photo { min-width:0; align-self:stretch; }
.directory-doctor-photo img { display:block; width:100%; height:300px; object-fit:cover; object-position:50% 20%; border-radius:90px 90px 0 0; }
.directory-page .directory-doctor-caption { padding:24px 0 26px 18px; }
.directory-page .directory-doctor-caption .directory-eyebrow { font-size:9px; margin-bottom:18px; }
.directory-page .directory-doctor-caption p { color:#283e2d; font:400 25px/1.12 var(--serif); letter-spacing:-.025em; margin:0 0 12px; }
.directory-doctor-caption > span:last-child { display:block; color:#4c6051; font-size:10px; line-height:1.7; }
.directory-service { display:grid; grid-template-columns:1.3fr 1fr 1fr; padding:26px 0; border-block:1px solid #d9ded4; }
.directory-page .directory-service p { margin:0; padding:0 30px; border-right:1px solid #d9ded4; }
.directory-service p:first-child { padding-left:0; }
.directory-service p:last-child { border:0; }
.directory-service span { display:block; margin-bottom:5px; font-size:11px; color:#5c675f; }
.directory-service strong { font-size:14px; font-weight:500; color:#273c2c; }
.directory-page .directory-explore { padding:68px 0 0; scroll-margin-top:110px; }
.directory-section-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:28px; }
.directory-page .directory-section-heading h2 { margin:0; color:#202923; font:400 clamp(30px,3.4vw,43px)/1.1 var(--serif); letter-spacing:-.035em; }
.directory-page .directory-section-heading .directory-eyebrow { margin-bottom:10px; }
.directory-section-heading > p { margin:0 0 2px; font-size:12px; line-height:1.8; color:#59645e; }
.directory-page .directory-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:0; margin:0; list-style:none; }
.directory-card { min-width:0; border:1px solid #e0e4db; border-radius:17px; overflow:hidden; background:#fff; transition:border-color .2s,box-shadow .2s; }
.directory-card:hover { border-color:#9fae9b; box-shadow:0 10px 25px #2032240a; }
.directory-card > a { display:flex; flex-direction:column; height:100%; color:inherit; text-decoration:none; }
.directory-card-image { position:relative; aspect-ratio:1.8; overflow:hidden; background:#e9eae5; }
.directory-card-image img { display:block; width:100%; height:100%; object-fit:cover; }
.directory-card-image > span { position:absolute; left:16px; bottom:14px; padding:5px 10px; border-radius:20px; background:#fffdf5; color:#314837; font-size:10px; line-height:1.5; }
.directory-card-copy { display:flex; flex:1; flex-direction:column; padding:24px; }
.directory-page .directory-card h3 { font:400 28px/1.15 var(--serif); letter-spacing:-.025em; color:#253b2b; margin:0 0 12px; }
.directory-page .directory-card p { color:#58645c; font-size:13px; line-height:1.75; margin:0 0 25px; }
.directory-card-action { display:flex; gap:12px; justify-content:space-between; align-items:center; margin-top:auto; color:#38563f; font-size:11px; font-weight:600; }
.directory-card-action > span { display:grid; place-items:center; flex:none; width:27px; height:27px; border-radius:50%; border:1px solid #d4dece; font-size:17px; }
.directory-help { grid-column:span 2; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:40px 48px; border-radius:17px; background:#e5ecdf; }
.directory-page .directory-help h3 { font:400 clamp(28px,3.5vw,42px)/1.1 var(--serif); letter-spacing:-.03em; color:#253d2c; margin:0 0 16px; }
.directory-page .directory-help p { max-width:350px; color:#4b6051; font-size:13px; line-height:1.8; margin:0 0 23px; }
.directory-page .directory-button { display:inline-flex; justify-content:space-between; align-items:center; gap:22px; border:1px solid #243b2b; border-radius:6px; padding:15px 20px; background:#243b2b; color:#fff; font:500 12px/1.5 var(--sans); text-decoration:none; }
.directory-button:hover { background:#15291b; }
.directory-page .directory-guide { display:flex; align-items:center; gap:28px; margin:50px 0 0; padding:36px; background:#f0ede3; border-radius:16px; }
.directory-guide-icon { display:grid; place-items:center; flex:none; width:54px; height:66px; border:1px solid #b7bda8; border-radius:5px 12px 12px 5px; font:400 28px/1 var(--serif); color:#536049; }
.directory-page .directory-guide .directory-eyebrow { margin-bottom:6px; }
.directory-page .directory-guide h2 { font:400 27px/1.2 var(--serif); letter-spacing:-.02em; margin:0 0 7px; color:#2c3c2c; }
.directory-page .directory-guide p:not(.directory-eyebrow) { font-size:12px; color:#58634f; margin:0; }
.directory-guide .directory-text-link { margin-left:auto; flex-shrink:0; }
.directory-page .directory-close { display:grid; grid-template-columns:1fr 1fr; gap:60px; padding:66px 0; }
.directory-page .directory-close h2 { margin:0; font:400 41px/1.08 var(--serif); letter-spacing:-.03em; color:#243a2a; }
.directory-close > div:last-child { align-self:center; }
.directory-page .directory-close p:not(.directory-eyebrow) { max-width:360px; color:#58645c; font-size:14px; line-height:1.8; margin:0 0 20px; }
.directory-page .directory-main a:focus-visible { outline:3px solid #326246; outline-offset:5px; }
@media(min-width:901px) and (max-width:1100px) { .directory-page .directory-hero { gap:35px; } .directory-page .directory-doctor { padding-inline:15px; } .directory-page .directory-doctor-caption p { font-size:22px; } }
@media(max-width:900px) {
 .directory-page .directory-main { width:calc(100% - 48px); }
 .directory-page .directory-hero { gap:30px; grid-template-columns:1.25fr 1fr; }
 .directory-page .directory-hero h1 { font-size:43px; }
 .directory-page .directory-doctor { display:block; padding:20px 20px 0; }
 .directory-doctor-photo img { width:140px; height:170px; margin:auto; border-radius:80px 80px 8px 8px; }
 .directory-page .directory-doctor-caption { padding:20px 0; text-align:center; }
 .directory-page .directory-doctor-caption .directory-eyebrow { display:none; }
 .directory-page .directory-doctor-caption p { font-size:25px; }
 .directory-page .directory-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
 .directory-help { grid-column:auto; padding:30px; }
 .directory-help .directory-button { padding-inline:14px; font-size:11px; }
 .directory-page .directory-guide { padding:28px; flex-wrap:wrap; }
 .directory-guide .directory-text-link { margin-left:82px; }
}
@media(max-width:600px) {
 .directory-page .directory-main { width:calc(100% - 40px); }
 .directory-page .directory-breadcrumb { padding-top:24px; font-size:11px; }
 .directory-page .directory-hero { display:block; padding:31px 0 28px; }
 .directory-page .directory-hero h1 { max-width:450px; font-size:43px; }
 .directory-page .directory-intro { font-size:14px; line-height:1.75; }
 .directory-page .directory-doctor { margin-top:30px; display:grid; grid-template-columns:124px 1fr; align-items:center; padding:20px 18px 0; border-radius:24px 24px 7px 24px; }
 .directory-doctor-photo img { width:124px; height:182px; object-position:50% 15%; border-radius:65px 65px 0 0; }
 .directory-page .directory-doctor-caption { padding:10px 0 25px 18px; text-align:left; }
 .directory-page .directory-doctor-caption p { font-size:25px; }
 .directory-page .directory-doctor-caption .directory-eyebrow { display:block; font-size:8px; line-height:1.6; margin-bottom:9px; letter-spacing:.06em; }
 .directory-service { padding:19px 0; grid-template-columns:1fr 1fr; row-gap:18px; }
 .directory-page .directory-service p { padding:0 15px; }
 .directory-service p:first-child { grid-column:1 / -1; padding:0; border:0; }
 .directory-service p:nth-child(2) { padding-left:0; }
 .directory-service span { font-size:10px; }
 .directory-service strong { font-size:13px; }
 .directory-page .directory-explore { padding-top:39px; }
 .directory-section-heading { display:block; margin-bottom:22px; }
 .directory-page .directory-section-heading h2 { font-size:32px; }
 .directory-section-heading > p { margin-top:14px; font-size:12px; }
 .directory-section-heading > p br { display:none; }
 .directory-page .directory-cards { grid-template-columns:minmax(0,1fr); gap:20px; }
 .directory-card-image { aspect-ratio:1.9; }
 .directory-card-copy { padding:23px; }
 .directory-page .directory-card h3 { font-size:29px; }
 .directory-help { padding:32px 24px; }
 .directory-page .directory-help h3 { font-size:32px; }
 .directory-page .directory-guide { position:relative; display:block; margin-top:30px; padding:25px; }
 .directory-guide-icon { display:none; }
 .directory-page .directory-guide h2 { font-size:29px; }
 .directory-guide .directory-text-link { margin:17px 0 0; }
 .directory-page .directory-close { grid-template-columns:1fr; gap:24px; padding:42px 0; }
 .directory-page .directory-close h2 { font-size:35px; }
 .directory-page .directory-close p:not(.directory-eyebrow) { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { .directory-card { transition:none; } }
.directory-page .directory-cards > li { margin:0; }
