.teacher-directory-page .intro{max-width:100%;padding:35px 0 22px}.teacher-directory-page .intro h1{font-size:clamp(38px,5vw,64px)}.teacher-directory-page .lead{max-width:950px}.teacher-directory-page{max-width:1400px!important}.directory{margin:0 0 60px}.directory-toolbar{display:grid;grid-template-columns:minmax(250px,2.7fr) repeat(3,minmax(135px,1fr));gap:14px;padding:18px;border:1px solid #DCE9E0;border-radius:18px;background:#EDF7F0}.directory-toolbar label{display:grid;gap:5px;font:600 13px/1.4 Arial,sans-serif;color:#123F35}.directory-toolbar input,.directory-toolbar select,.directory-sort select{width:100%;font:15px/1.5 Arial,sans-serif;color:#123F35;background:#fff;border:1px solid #DCE9E0;border-radius:10px;padding:13px 14px;min-height:48px}.directory-results{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:16px 0 22px;font:14px/1.5 Arial,sans-serif}.directory-results p{margin:0}.directory-sort{display:flex;align-items:center;gap:12px;white-space:nowrap}.directory-sort select{width:auto;min-width:170px}.directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.directory-card{display:flex;flex-direction:column;background:#fff;border:1px solid #DCE9E0;border-radius:18px;overflow:hidden;color:#123F35}.directory-card[hidden]{display:none}.directory-portrait{display:block;position:relative;padding:0;width:100%;border:0;background:#EDF7F0;cursor:pointer;overflow:hidden;aspect-ratio:1.85}.directory-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform .25s}.directory-portrait>span{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:#155545;color:#fff;padding:10px 18px;white-space:nowrap;border-radius:10px;font:600 14px Arial,sans-serif;opacity:0;transition:opacity .2s}.directory-portrait:hover>span,.directory-portrait:focus-visible>span{opacity:1}.directory-portrait:hover img{transform:scale(1.025)}.directory-card-copy{padding:20px;display:flex;flex-direction:column;flex:1}.directory-card h2{font:400 25px/1.2 Georgia,serif;margin:0 0 6px}.directory-card h2 button{font:inherit;color:inherit;text-align:left;border:0;background:none;padding:0;cursor:pointer}.directory-role{font:14px/1.5 Arial,sans-serif;color:#526B60;margin:0 0 16px}.directory-credentials{margin:0 0 16px;font:14px/1.5 Arial,sans-serif}.directory-credentials>div{margin-bottom:12px}.directory-credentials dt{font-weight:600;color:#155545;margin-bottom:4px}.directory-credentials dd{margin:0;color:#526B60}.directory-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.directory-tags span{font:12px/1.4 Arial,sans-serif;padding:5px 9px;border-radius:7px;background:#EDF7F0}.directory-profile-link{margin-top:auto;border:0;border-top:1px solid #DCE9E0;padding:15px 0 0;text-align:left;cursor:pointer;font:600 15px/1.4 Arial,sans-serif;color:#155545;background:none}.directory-profile-link span{margin-left:8px}.directory-pagination{display:flex;justify-content:center;gap:8px;margin:28px 0;flex-wrap:wrap}.directory-pagination button{width:40px;height:40px;border:1px solid #DCE9E0;border-radius:9px;background:white;color:#155545;cursor:pointer}.directory-pagination [aria-current=page]{background:#155545;color:#fff}.directory-pagination button:disabled{opacity:.4;cursor:default}.directory-empty{padding:35px;background:white;border:1px solid #DCE9E0;border-radius:18px}.directory-clear{color:#155545;border:0;background:none;text-decoration:underline;padding:8px 0;cursor:pointer;font:inherit}.directory :is(button,input,select):focus-visible,.teacher-drawer :is(button,a):focus-visible{outline:3px solid #37785C;outline-offset:4px}
.teacher-drawer{position:fixed;inset:0 0 0 auto;width:min(1120px,72vw);height:100dvh;max-width:100%;max-height:100dvh;margin:0;padding:0;border:0;background:#fff;color:#123F35;overflow:hidden;font:16px/1.65 Arial,sans-serif;box-shadow:-20px 0 70px #103E3233}.teacher-drawer[open]{display:flex;flex-direction:column}.teacher-drawer::backdrop{background:#103E3299}.teacher-drawer-close{position:absolute;right:20px;top:16px;z-index:2;width:44px;height:44px;border:1px solid #DCE9E0;border-radius:50%;background:#fff;color:#155545;font:30px Arial,sans-serif;cursor:pointer}.teacher-drawer-body{display:grid;grid-template-columns:minmax(230px,.95fr) minmax(0,2fr);flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.teacher-drawer-summary{padding:60px 28px 32px;background:#EDF7F0}.teacher-drawer-summary>img{width:min(100%,220px);height:auto;aspect-ratio:1;display:block;margin:0 auto 24px;border-radius:50%;object-fit:cover;object-position:center 20%}.teacher-drawer h2,.teacher-drawer h3{font-family:Georgia,serif;font-weight:400;line-height:1.2}.teacher-drawer-summary h2{font-size:29px;margin:0 0 8px}.teacher-drawer-summary p{font-size:15px;color:#526B60;margin:0 0 22px}.teacher-drawer-summary .profile-role{color:#155545;font-size:16px}.profile-qualifications,.profile-focus{border-top:1px solid #DCE9E0;padding-top:22px;margin-top:25px}.teacher-drawer h3{font-size:24px;margin:0 0 18px}.profile-qualifications details{padding:14px;background:#D8F1E266;border:1px solid #DCE9E0;border-radius:10px;margin:10px 0}.profile-qualifications summary{font-size:15px;cursor:pointer}.profile-qualifications ul{font-size:14px;padding-left:20px}.profile-qualifications a{color:#155545;text-underline-offset:3px}.teacher-drawer-videos{padding:74px 32px 32px;min-width:0}.teacher-drawer-videos h2{font-size:clamp(29px,3vw,43px);margin:0 0 25px}.profile-player,.profile-video-empty{aspect-ratio:16/10;position:relative;background:#103E32;border-radius:16px;overflow:hidden}.profile-player iframe,.profile-player video{width:100%;height:100%;border:0;object-fit:contain}.profile-video-empty img{width:100%;height:100%;object-fit:cover;object-position:center 25%}.profile-video-empty::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#103E32ee)}.profile-video-empty p{position:absolute;bottom:15px;left:22px;right:22px;color:#F5FCF7;z-index:1;margin:0;font-size:15px}.profile-video-title{font-size:17px;margin:14px 0 8px}.profile-video-description{font-size:14px;color:#526B60}.profile-video-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}.profile-video-choice{border:1px solid #DCE9E0;border-radius:12px;background:white;cursor:pointer;overflow:hidden;padding:0;text-align:left;color:#123F35;font:14px/1.5 Arial,sans-serif}.profile-video-choice img{width:100%;aspect-ratio:16/9;object-fit:cover}.profile-video-choice span{display:block;padding:12px}.profile-video-choice[aria-pressed=true]{border:2px solid #155545}.teacher-drawer-footer{display:flex;justify-content:flex-end;gap:14px;padding:20px 28px;background:#F5FCF7;border-top:1px solid #DCE9E0;flex-shrink:0}.teacher-drawer-footer a{border:1px solid #155545;border-radius:40px;padding:12px 24px;font:600 15px/1.4 Arial,sans-serif;text-decoration:none;text-align:center}.profile-primary{background:#155545;color:#fff}.profile-secondary{background:white;color:#155545}.teacher-profile .teacher-poster{cursor:pointer}.teacher-profile-open{border:1px solid currentColor;background:transparent;color:inherit;border-radius:30px;padding:12px 22px;font:600 15px Arial,sans-serif;cursor:pointer;margin-top:12px}
@media(max-width:1100px){.teacher-drawer{width:88vw}.teacher-drawer-body{grid-template-columns:minmax(220px,.9fr) minmax(0,1.7fr)}.teacher-drawer-summary{padding:65px 22px 28px}.teacher-drawer-videos{padding:74px 24px 28px}.directory-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.directory-search{grid-column:1/-1}.directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.teacher-drawer{width:100vw}.teacher-drawer-body{grid-template-columns:1fr}.teacher-drawer-summary{padding:55px 24px 25px}.teacher-drawer-summary>img{width:120px;margin-left:0}.teacher-drawer-videos{padding:30px 24px}.teacher-drawer-footer{padding:14px 18px;gap:10px}.teacher-drawer-footer a{flex:1;padding:12px 14px;font-size:14px}.directory-grid{grid-template-columns:1fr}.directory-toolbar{grid-template-columns:1fr;padding:14px}.directory-search{grid-column:auto}.directory-results{align-items:start;flex-direction:column;gap:12px}.directory-portrait{aspect-ratio:1.7}.directory-portrait>span{opacity:1}.directory-sort{width:100%;justify-content:space-between}.directory-card h2{font-size:28px}.directory-card-copy{padding:22px}}
@media(prefers-reduced-motion:reduce){.directory-portrait img,.directory-portrait>span{transition:none}}

/* Approved portrait grid: compact heading and credential rows. */
.teacher-directory-page .intro{padding:18px 0 20px}.teacher-directory-page .intro .eyebrow{margin:8px 0}.teacher-directory-page .intro h1{margin:8px 0 12px}.teacher-directory-page .intro .lead{margin:0}.directory-portrait{aspect-ratio:2.7}.directory-credentials>div{display:grid;grid-template-columns:minmax(100px,.9fr) minmax(0,1.4fr);gap:12px}.directory-card-copy{padding:16px 20px}.directory-role{margin-bottom:12px}.directory-credentials{margin-bottom:8px}.directory-tags{margin-bottom:12px}.profile-mobile-views{display:none}
@media(max-width:700px){
 .directory-portrait{aspect-ratio:1.8}.directory-credentials>div{grid-template-columns:minmax(100px,.9fr) minmax(0,1.4fr)}
 .teacher-drawer{height:100dvh;max-height:100dvh}.teacher-drawer-close{top:calc(12px + env(safe-area-inset-top));right:14px;width:40px;height:40px;font-size:26px}
 .teacher-drawer-body{display:block}.teacher-drawer-summary{display:grid;grid-template-columns:88px minmax(0,1fr);column-gap:16px;row-gap:6px;padding:calc(64px + env(safe-area-inset-top)) 20px 20px}
 .teacher-drawer-summary>img{width:88px;height:88px;aspect-ratio:1;grid-column:1;grid-row:1/3;margin:0;align-self:start;border-radius:50%;object-fit:cover}
 .teacher-drawer-summary h2{grid-column:2;font-size:25px;margin:3px 0 0;align-self:end;overflow-wrap:anywhere}.teacher-drawer-summary .profile-role{grid-column:2;font-size:14px;line-height:1.4;margin:0;align-self:start}
 .teacher-drawer-summary>[data-profile-bio],.teacher-drawer-summary>.profile-qualifications,.teacher-drawer-summary>.profile-focus{grid-column:1/-1;margin:18px 0 0}.teacher-drawer-summary>[data-profile-bio]{font-size:15px;line-height:1.6}
 .profile-mobile-views{display:flex;grid-column:1/-1;gap:6px;padding:5px;margin-top:18px;border:1px solid #DCE9E0;border-radius:12px;background:#fff}.profile-mobile-views button{flex:1;border:0;border-radius:8px;background:none;color:#155545;font:600 13px/1.4 Arial,sans-serif;padding:11px 8px;cursor:pointer}.profile-mobile-views [aria-pressed=true]{background:#155545;color:#fff}
 .teacher-drawer[data-mobile-view=recitation] :is([data-profile-bio],.profile-qualifications,.profile-focus){display:none}.teacher-drawer[data-mobile-view=about] .teacher-drawer-videos{display:none}
 .teacher-drawer-videos{padding:24px 20px 30px}.teacher-drawer-videos h2{font-size:29px;margin-bottom:18px}.profile-player,.profile-video-empty{aspect-ratio:16/9}.profile-video-grid{gap:12px}.teacher-drawer-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:8px}.teacher-drawer-footer a{padding:12px 10px;font-size:13px;white-space:nowrap}
}

/* One scrolling surface; the footer stays outside it on iOS. */
.teacher-drawer{top:var(--profile-top,0px);bottom:auto;height:var(--profile-height,100dvh);max-height:none;max-width:none;box-sizing:border-box}
.teacher-drawer-body{overflow-anchor:none;touch-action:pan-y;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}
.profile-video-choice,.profile-video-choice img,.profile-video-choice span{touch-action:pan-y}
.profile-video-choice img{display:block;pointer-events:none;user-select:none;-webkit-user-drag:none}
@media(max-width:700px){.teacher-drawer{left:0;right:0;width:100%;border-radius:0}.teacher-drawer-body{flex:1 1 0;min-height:0;overflow-y:auto}.teacher-drawer-footer{position:relative;flex:0 0 auto}.teacher-drawer-close{position:fixed;top:calc(var(--profile-top,0px) + 12px + env(safe-area-inset-top))}}

/* On phones, the dialog itself is the sole scrolling container. */
@media(max-width:700px){
 .teacher-drawer[open]{display:block;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
 .teacher-drawer-body{display:block;overflow:visible;min-height:calc(var(--profile-height,100dvh) - 80px);touch-action:auto;overscroll-behavior:auto}
 .teacher-drawer-footer{position:sticky;bottom:0;z-index:3}
 .profile-video-grid,.profile-video-grid *{touch-action:pinch-zoom}
}
