.directory-mobile-nav {display:none}
.footer-nav {display:flex;flex-wrap:wrap;gap:var(--s2) var(--s6);padding-bottom:var(--s6);font-size:var(--text-sm)}
.footer-nav a {display:inline-flex;align-items:center;min-height:44px}
.footer-nav a:hover {color:var(--accent)}
body[data-directory] {--catalog-muted:#626671;--catalog-title:40px;--promo-title:32px;--card-title:20px;--profile-title:28px;--cover-title:24px;--catalog-price:24px}
body[data-directory] .text-link,body[data-directory] .header-actions .login,body[data-directory] .header-actions .small {min-height:44px}
body[data-directory] .icon-button {min-width:44px;min-height:44px}
body[data-directory] .brand {min-height:44px}
body[data-directory] #search-form,body[data-directory] #search-form button,body[data-directory] #search {min-height:44px}
.directory-main .eyebrow,.detail-profile .eyebrow {color:var(--accent-hover)}
.directory-main {padding-bottom:var(--s20)}
.breadcrumbs {display:flex;gap:var(--s3);font-size:var(--text-xs);color:var(--catalog-muted);padding-top:var(--s6)}
.directory-heading {display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s6);margin-block:var(--s8)}
.directory-heading h1,.teacher-intro h1 {font-size:var(--catalog-title);line-height:1.3;margin:var(--s2) 0 var(--s4);letter-spacing:-.05em;text-wrap:balance}
.directory-heading p,.teacher-intro p {color:var(--catalog-muted);font-size:var(--text-sm);line-height:1.8}
.heading-link {display:inline-flex;align-items:center;gap:var(--s3);min-height:44px;font-size:var(--text-sm);font-weight:600;flex-shrink:0}
.heading-link:hover {color:var(--accent)}
.heading-link svg {width:18px;height:18px}
.portrait-frame {display:block;position:relative;aspect-ratio:300/260;overflow:hidden;border-radius:var(--r2);background:var(--surface)}
.portrait-frame img {position:absolute;top:0;left:-46%;width:192%;max-width:none;height:auto}
.portrait-122 img {left:-80%}
.portrait-120 img {left:-40%}
.promo-grid {display:grid;grid-template-columns:minmax(0,2.3fr) minmax(0,1fr);gap:var(--s5)}
.promo-main {position:relative;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:var(--s5);padding:var(--s6);padding-bottom:var(--s12);background:var(--accent-soft);border-radius:var(--r3)}
.promo-label {display:inline-block;font-size:var(--text-xs);font-weight:700;color:var(--accent-hover);margin-bottom:var(--s3)}
.promo-copy h2 {font-size:var(--promo-title);line-height:1.35;letter-spacing:-.05em;margin-bottom:var(--s3);white-space:pre-line}
.promo-copy>p {color:var(--catalog-muted);font-size:var(--text-sm);line-height:1.75}
.promo-copy .promo-facts {margin-block:var(--s4);font-size:var(--text-xs);color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.promo-copy .button {font-size:var(--text-sm);padding-inline:var(--s4);gap:var(--s3)}
.promo-person {align-self:center;min-width:0;width:100%;max-width:200px;justify-self:center}
.promo-person-name {display:flex;flex-direction:column;gap:var(--s1);padding-top:var(--s3)}
.promo-person-name strong {font-size:var(--text-base)}
.promo-person-name span {font-size:var(--text-xs);color:var(--catalog-muted)}
.promo-controls {position:absolute;bottom:var(--s4);right:var(--s8);display:flex;gap:var(--s2);align-items:center;font-size:var(--text-xs);font-variant-numeric:tabular-nums}
.promo-controls>span {margin-right:var(--s3)}
.promo-controls button {width:44px;height:44px;border-radius:50%;background:var(--white);font-size:var(--text-lg)}
.promo-controls button:hover {background:var(--line)}
.promo-side {display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:var(--surface);border-radius:var(--r3);padding:var(--s6)}
.promo-side h2 {font-size:var(--cover-title);line-height:1.4;letter-spacing:-.04em;margin-bottom:var(--s3)}
.promo-side p {font-size:var(--text-sm);color:var(--catalog-muted)}
.mini-portraits {display:flex;gap:var(--s2);margin-block:var(--s5) var(--s2)}
.mini-portraits .portrait-frame {width:64px}
.promo-side .text-link {font-size:var(--text-sm)}
.catalog-section {padding-block:var(--s12)}
.catalog-heading {display:flex;align-items:center;justify-content:space-between;gap:var(--s6);margin-bottom:var(--s6)}
.catalog-heading h2 {font-size:var(--profile-title);letter-spacing:-.045em}
.catalog-heading .eyebrow {font-size:var(--text-xs);color:var(--catalog-muted);letter-spacing:.06em}
.catalog-heading #search-form {margin-left:0;border:1px solid var(--line);border-radius:var(--pill);background:var(--white);width:min(380px,100%)}
.directory-filters {display:flex;gap:var(--s2);flex-wrap:wrap;padding-bottom:var(--s6);border-bottom:1px solid var(--line)}
.directory-filters .filter {font-size:var(--text-sm);padding-inline:var(--s5);border-radius:var(--pill);min-height:44px}
.directory-filters .filter:not(.active) {color:var(--catalog-muted)}
.catalog-toolbar {display:flex;justify-content:space-between;align-items:center;gap:var(--s4);padding-block:var(--s5)}
.catalog-toolbar>p {font-size:var(--text-sm);font-weight:600}
.catalog-selects {display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}
.catalog-selects label {display:flex;gap:var(--s2);align-items:center;font-size:var(--text-xs);color:var(--catalog-muted)}
.catalog-selects select {font:inherit;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:var(--r1);min-height:44px;padding:var(--s2)}
.reset-filters {font-size:var(--text-xs);color:var(--catalog-muted);text-decoration:underline;background:none;min-height:44px}
.catalog-note {font-size:var(--text-xs);color:var(--catalog-muted);margin-top:var(--s8);max-width:90ch;line-height:1.8}
.lesson-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6)}
.lesson-card {position:relative;min-width:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r2);background:var(--white);overflow:hidden}
.topic-cover {display:flex;position:relative;align-items:flex-end;justify-content:center;aspect-ratio:2;overflow:hidden;border-bottom:1px solid var(--line)}
.tone-warm {background:var(--warm)}
.tone-pink {background:var(--accent-soft)}
.tone-mint {background:var(--mint)}
.tone-neutral {background:var(--surface)}
.topic-cover .portrait-frame {width:57%;flex-shrink:0;border-radius:var(--r2) var(--r2) 0 0}
.lesson-card .favorite {top:var(--s2);right:var(--s2);width:44px;height:44px;background:var(--white)}
.lesson-copy {display:flex;flex-direction:column;flex:1;padding:var(--s5)}
.lesson-tags {display:flex;align-items:center;justify-content:space-between;gap:var(--s2);font-size:var(--text-xs);color:var(--catalog-muted);margin-bottom:var(--s2)}
.session-badge {background:var(--surface);color:var(--ink);padding:var(--s1) var(--s2);border-radius:var(--s1);font-weight:500}
.lesson-card h3 {font-size:var(--card-title);font-weight:700;line-height:1.5;letter-spacing:-.035em}
.lesson-card h3 a {display:flex;align-items:center;min-height:44px}
.lesson-card h3 a:hover {color:var(--accent-hover)}
.lesson-teacher {font-size:var(--text-sm);font-weight:600;margin-block:0 var(--s2)}
.lesson-teacher span {font-weight:400;font-size:var(--text-xs);color:var(--catalog-muted)}
.lesson-teacher a {display:inline-flex;align-items:center;min-height:44px}
.lesson-teacher a:hover {color:var(--accent-hover)}
.lesson-facts {display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);font-size:var(--text-xs);color:var(--catalog-muted);margin-top:auto;padding-bottom:var(--s4)}
.lesson-facts>span:first-child {display:flex;gap:var(--s1);align-items:center}
.lesson-facts svg {width:16px;height:16px}
.lesson-price {border-top:1px solid var(--line);display:flex;align-items:center;gap:var(--s2);padding-top:var(--s2)}
.lesson-price strong {font-size:var(--catalog-price);font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.lesson-price>span {font-size:var(--text-xs);color:var(--catalog-muted)}
.lesson-price a {margin-left:auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%}
.lesson-price a:hover {background:var(--surface);color:var(--accent-hover)}
.lesson-price svg {width:20px;height:20px}
.package-strip {display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:var(--s8);padding:var(--s8);background:var(--warm);border-radius:var(--r3)}
.package-intro h2 {font-size:var(--profile-title);line-height:1.4}
.package-intro .text-link {font-size:var(--text-sm);margin-top:var(--s4)}
.package-item {display:flex;flex-direction:column;align-items:flex-start;text-align:left;position:relative;gap:var(--s3);padding:var(--s5);border-radius:var(--r2);background:var(--white)}
.package-item>span {font-size:var(--text-xs);color:var(--catalog-muted)}
.package-item strong {font-size:var(--card-title);letter-spacing:-.035em;line-height:1.5}
.package-item b {font-size:var(--text-lg);font-variant-numeric:tabular-nums}
.package-item small {font-size:var(--text-xs);font-weight:400;color:var(--catalog-muted)}
.package-item>svg {position:absolute;right:var(--s5);bottom:var(--s5);width:18px;height:18px}
.package-item:hover strong {color:var(--accent-hover)}
.teacher-intro {display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--s10);align-items:center;padding-block:var(--s10);border-bottom:1px solid var(--line)}
.teacher-intro h1 em {font-style:normal;color:var(--accent)}
.teacher-intro .heading-link {margin-top:var(--s5)}
.featured-teachers {display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);background:var(--accent-soft);padding:var(--s6);border-radius:var(--r3)}
.featured-teachers>a {display:block;min-width:0}
.featured-teachers>a:nth-child(2) {padding-top:var(--s6)}
.featured-teachers>a>span:last-child {display:flex;flex-direction:column;gap:var(--s1);margin-top:var(--s3)}
.featured-teachers strong {font-size:var(--text-lg)}
.featured-teachers small {font-size:var(--text-xs);color:var(--catalog-muted)}
.featured-teachers>a:hover strong {color:var(--accent-hover)}
.teacher-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s10)}
.profile-card {display:grid;grid-template-columns:180px minmax(0,1fr);gap:var(--s5) var(--s6);padding-bottom:var(--s6);border-bottom:1px solid var(--line);min-width:0}
.profile-photo {display:block;grid-column:1;grid-row:1}
.profile-photo:hover+.profile-identity h3 {color:var(--accent-hover)}
.profile-identity {align-self:center;min-width:0;grid-column:2;grid-row:1}
.profile-category {display:block;font-size:var(--text-xs);letter-spacing:.06em;color:var(--catalog-muted)}
.profile-identity h3 {font-size:var(--profile-title);margin-block:var(--s1) var(--s2);line-height:1.35;letter-spacing:-.05em}
.profile-identity h3 small {font-size:var(--text-sm);font-weight:500;margin-left:var(--s2);letter-spacing:0}
.profile-career {font-size:var(--text-sm);color:var(--catalog-muted)}
.specialty-tags {display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s4)}
.specialty-tags span {font-size:var(--text-xs);padding:var(--s1) var(--s2);border-radius:var(--s1);background:var(--surface);color:var(--catalog-muted)}
.profile-lesson {grid-column:1/-1;grid-row:3}
.profile-lesson>span {font-size:var(--text-xs);color:var(--catalog-muted)}
.profile-lesson h4 {font-size:var(--text-lg);font-weight:600;line-height:1.55;margin:var(--s1) 0 0;letter-spacing:-.03em}
.profile-lesson h4 small {font-size:var(--text-xs);font-weight:400;color:var(--catalog-muted)}
.profile-footer {grid-column:1/-1;grid-row:4;display:flex;justify-content:space-between;align-items:center;gap:var(--s3)}
.profile-footer p {display:flex;gap:var(--s3);font-size:var(--text-xs);color:var(--catalog-muted);flex-wrap:wrap}
.profile-footer .text-link {font-size:var(--text-sm);gap:var(--s3)}
.profile-footer strong {font-weight:600;color:var(--ink)}
.profile-stats {grid-column:1/-1;grid-row:2;display:flex;gap:var(--s6);border-top:1px solid var(--line);padding-top:var(--s4)}
.profile-stats>div {flex:1;min-width:0}
.profile-stats span {display:block;font-size:var(--text-xs);color:var(--catalog-muted)}
.profile-stats strong {display:block;font-size:var(--text-lg);font-weight:700;margin-top:var(--s1);font-variant-numeric:tabular-nums}
.session-disclosure {font-size:var(--text-xs);color:var(--catalog-muted);margin-top:var(--s3)}
.teacher-context {display:flex;align-items:center;gap:var(--s5);flex-wrap:wrap;background:var(--accent-soft);border-radius:var(--r2);padding:var(--s4) var(--s5);margin-top:var(--s5)}
.teacher-context[hidden] {display:none}
.teacher-context>div {margin-right:auto}
.teacher-context strong {display:block;font-size:var(--text-base)}
.teacher-context span {font-size:var(--text-xs);color:var(--catalog-muted)}
.teacher-context .text-link {font-size:var(--text-sm)}
.detail-teacher-link {display:flex;font-size:var(--text-xs)}
.teacher-class-heading {display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:var(--s6);margin-bottom:var(--s3)}
.teacher-class-heading h3 {font-size:var(--text-lg)}
.teacher-class-heading>span {font-size:var(--text-xs);color:var(--catalog-muted);white-space:nowrap}
.teacher-course-list {margin-bottom:var(--s6)}
.teacher-course-list>a {display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s4) 0;border-bottom:1px solid var(--line);min-height:44px}
.teacher-course-list strong {display:block;font-size:var(--text-sm);font-weight:600;line-height:1.7}
.teacher-course-list span {display:block;font-size:var(--text-xs);color:var(--catalog-muted);margin-top:var(--s1)}
.teacher-course-list>a:hover strong {color:var(--accent-hover)}
.teacher-course-list svg {width:18px;height:18px}
.teacher-next {display:flex;justify-content:space-between;align-items:center;gap:var(--s6);padding:var(--s8);background:var(--surface);border-radius:var(--r3)}
.teacher-next h2 {font-size:var(--profile-title);margin-bottom:var(--s3)}
.teacher-next p {font-size:var(--text-sm);color:var(--catalog-muted)}
.teacher-next .button {flex-shrink:0}
.directory-main .empty-state {grid-column:1/-1;padding:var(--s12) var(--s6)}
.main-nav a[aria-current=page],.directory-mobile-nav a[aria-current=page] {color:var(--accent-hover);font-weight:700}
body[data-directory] .detail-profile {display:flex;align-items:center;gap:var(--s5);margin-bottom:var(--s6)}
.detail-profile .portrait-frame {width:112px;flex-shrink:0}
.detail-name {font-size:var(--card-title);font-weight:700}
body[data-directory] #modal-content>h2 {font-size:var(--profile-title);margin-bottom:var(--s4)}
body[data-directory] #modal-content>p {font-size:var(--text-sm);color:var(--catalog-muted)}
.detail-recommend {background:var(--surface);padding:var(--s4);border-radius:var(--r1);margin-top:var(--s5)}
.detail-recommend>span {display:block;font-size:var(--text-xs);color:var(--catalog-muted);margin-bottom:var(--s1)}
.detail-recommend strong {font-size:var(--text-sm)}
.detail-recommend p {font-size:var(--text-xs);color:var(--catalog-muted);margin-top:var(--s2)}
@media(max-width:1000px) {
 body[data-directory] {--catalog-title:32px;--promo-title:28px}
 .directory-heading {align-items:flex-start}
 .promo-grid {grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
 .promo-main {grid-template-columns:minmax(0,1fr);padding:var(--s6);padding-bottom:var(--s16)}
 .promo-person {display:flex;align-items:center;gap:var(--s3);max-width:none}
 .promo-person #promo-portrait {width:80px;flex-shrink:0}
 .promo-person-name {padding-top:0}
 .promo-side {padding:var(--s5)}
 .lesson-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
 .teacher-intro {grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--s6)}
 .featured-teachers {padding:var(--s4);gap:var(--s3)}
 .teacher-grid {grid-template-columns:1fr}
 .profile-card {grid-template-columns:180px minmax(0,1fr) minmax(0,1fr);gap:var(--s5)}
 .profile-photo {grid-row:1/3}
 .profile-stats {grid-column:2;grid-row:2;border-top:0;padding-top:0;gap:var(--s3)}
 .profile-lesson {grid-column:3;grid-row:1/3;align-self:center}
 .profile-footer {grid-column:1/-1;grid-row:3}
 .package-strip {gap:var(--s5);padding:var(--s6)}
 .package-intro h2 {font-size:var(--cover-title)}
 .package-item {padding:var(--s4)}
}
@media(max-width:767px) {
 body[data-directory] {--catalog-title:28px;--promo-title:24px;--profile-title:24px;--cover-title:20px}
 html:has(body[data-directory]) {scroll-padding-top:128px}
 .directory-mobile-nav {display:flex;justify-content:center;gap:var(--s8);border-top:1px solid var(--line);font-size:var(--text-sm)}
 .directory-mobile-nav a {display:flex;align-items:center;min-height:44px}
 .breadcrumbs {padding-top:var(--s5)}
 .directory-heading {flex-direction:column;margin-block:var(--s6);gap:var(--s3)}
 .directory-heading h1 {margin-bottom:var(--s3)}
 .promo-grid {grid-template-columns:1fr;gap:var(--s4)}
 .promo-main {grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);padding:var(--s5);padding-bottom:var(--s16);gap:var(--s3)}
 .promo-person {display:block}
 .promo-person #promo-portrait {width:100%}
 .promo-person-name {padding-top:var(--s3)}
 .promo-copy>p:not(.promo-facts) {grid-column:1/-1;font-size:var(--text-xs)}
 .promo-copy h2 {font-size:var(--cover-title)}
 .promo-copy .button {font-size:var(--text-xs);padding:var(--s3);gap:var(--s2);white-space:normal}
 .promo-person-name strong {font-size:var(--text-sm)}
 .promo-person-name span {font-size:var(--text-xs)}
 .promo-controls {right:var(--s5)}
 .promo-side {display:grid;grid-template-columns:1fr auto;column-gap:var(--s4);padding:var(--s5)}
 .promo-side .eyebrow {grid-column:1/-1}
 .promo-side h2 {font-size:var(--cover-title);grid-column:1}
 .promo-side p {display:none}
 .promo-side .mini-portraits {grid-column:2;grid-row:2/4;margin:0}
 .mini-portraits .portrait-frame {width:56px}
 .promo-side .text-link {grid-column:1;font-size:var(--text-xs)}
 .catalog-section {padding-block:var(--s10)}
 .catalog-heading {align-items:flex-start;flex-direction:column;gap:var(--s4)}
 .catalog-heading #search-form {width:100%}
 .directory-filters {gap:var(--s2);padding-bottom:var(--s4)}
 .directory-filters .filter {padding-inline:var(--s3);font-size:var(--text-xs)}
 .catalog-toolbar {align-items:flex-start;flex-direction:column;gap:var(--s2)}
 .catalog-selects {gap:var(--s3)}
 .lesson-grid {grid-template-columns:1fr;gap:var(--s6)}
 .lesson-facts {padding-bottom:var(--s3)}
 .package-strip {grid-template-columns:1fr 1fr;gap:var(--s3);padding:var(--s5)}
 .package-intro {grid-column:1/-1}
 .package-intro h2 br {display:none}
 .package-intro h2 {font-size:var(--profile-title)}
 .package-intro .text-link {margin-top:var(--s2)}
 .package-item {padding:var(--s3);gap:var(--s2)}
 .package-item strong {font-size:var(--text-base)}
 .package-item b {font-size:var(--text-base)}
 .package-item>svg {display:none}
 .teacher-intro {grid-template-columns:1fr;padding-block:var(--s6);gap:var(--s6)}
 .teacher-intro p br {display:none}
 .teacher-intro .heading-link {margin-top:var(--s3)}
 .featured-teachers {padding:var(--s5);gap:var(--s5)}
 .featured-teachers>a:nth-child(2) {padding-top:var(--s5)}
 .profile-card {grid-template-columns:120px minmax(0,1fr);gap:var(--s4);padding-bottom:var(--s5)}
 .profile-photo {grid-row:1}
 .profile-stats {grid-column:1/-1;grid-row:2;border-top:1px solid var(--line);padding-top:var(--s4);gap:var(--s6)}
 .profile-lesson {grid-column:1/-1;grid-row:3}
 .profile-footer {grid-column:1/-1;grid-row:4;flex-wrap:wrap}
 .profile-identity h3 small {font-size:var(--text-xs);margin-left:var(--s1)}
 .profile-career {font-size:var(--text-xs)}
 .specialty-tags {gap:var(--s1);margin-top:var(--s2)}
 .specialty-tags span {font-size:var(--text-xs);padding-inline:var(--s1)}
 .profile-lesson h4 {font-size:var(--text-base)}
 .profile-footer p {gap:var(--s1);flex-direction:column}
 .teacher-next {align-items:flex-start;flex-direction:column;padding:var(--s6);gap:var(--s5)}
 .teacher-next h2 {font-size:var(--profile-title)}
 body[data-directory] #modal-content>h2 {font-size:var(--cover-title)}
 .detail-profile .portrait-frame {width:88px}
}
@media(min-width:768px) and (max-width:900px) {
 .main-nav a:nth-child(3) {display:inline-flex}
 .main-nav a:first-child {display:none}
}
