/* Public directory: small browsing cards, a separate intentional detail/selection flow. */
#matchmakers{--dir-paper:#faf7f2;--dir-ink:#302926;--dir-wine:#701c2b;--dir-line:#ded6cb;--dir-sage:#edf0e6;color:var(--dir-ink);scroll-margin-top:0}
#matchmakers .section-heading{align-items:end;margin-bottom:22px}
#matchmakers h2{font-family:var(--display-serif);font-size:clamp(24px,3vw,38px);font-weight:600;line-height:1.5}
#matchmakers .section-note{max-width:34em}
.directory-tools{display:grid;grid-template-columns:minmax(200px,1.6fr) 1fr 1fr auto;gap:12px;align-items:end;padding:20px 0;border-top:1px solid var(--dir-line)}
.directory-tools label{display:grid;gap:6px;font-size:12px;color:#685b53;min-width:0}
.directory-tools input,.directory-tools select,.directory-tools button{font:inherit;font-size:14px;color:var(--dir-ink);background:var(--dir-paper);border:1px solid var(--dir-line);border-radius:4px;min-height:44px;width:100%;padding:9px 12px;min-width:0}
.directory-tools button{color:var(--dir-wine);width:auto;cursor:pointer}
.directory-count{font-size:13px;line-height:1.6;margin:0 0 18px;color:#6b6058}
.directory-mobile-order{display:none}
#matchmaker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start}
#matchmaker-grid>.status-box{grid-column:1/-1}
#matchmakers .directory-card{display:flex;flex-direction:column;width:100%;padding:0;border:1px solid var(--dir-line);border-radius:4px;background:var(--dir-paper);overflow:hidden;text-align:left;cursor:pointer;color:inherit;min-width:0;box-shadow:none;font:inherit}
#matchmakers .directory-card:hover{border-color:#997568}
#matchmakers .directory-card[aria-expanded=true]{border-color:var(--dir-wine);outline:1px solid var(--dir-wine)}
.directory-photo{position:relative;width:100%;aspect-ratio:4/5;background:#e9e3da;overflow:hidden;flex-shrink:0;display:grid;place-items:center}
.directory-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%;opacity:0}
.directory-photo.has-photo img{opacity:1}
.directory-photo.has-photo .directory-photo-empty{display:none}
.directory-photo-empty{padding:10px;text-align:center;color:#756a60;font-size:12px;line-height:1.7}
.directory-card-copy{padding:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto minmax(3.4em,auto) minmax(24px,auto) auto;align-items:start;gap:7px;min-width:0;width:100%}
.directory-name{font-family:var(--display-serif);font-size:22px;line-height:1.4;font-weight:600;overflow-wrap:anywhere}
.directory-status{display:inline-block;width:fit-content;font-size:12px;line-height:1.6;color:#3d523c;background:var(--dir-sage,#edf0e6);padding:2px 6px;border-radius:3px;max-width:100%;overflow-wrap:anywhere}
.directory-status.busy{background:#f3ead7;color:#745528}.directory-status.closed{background:#eae6e1;color:#655d55}
.directory-card-note{grid-column:1/-1;font-size:13px;line-height:1.7;color:#6d6057;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.directory-tags{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;align-content:start}
.directory-tag{font-size:12px;line-height:1.5;padding:4px 8px;color:#485440;background:#eaece1;border-radius:3px}
.directory-card-more{grid-column:1/-1;font-size:13px;color:var(--dir-wine);margin-top:2px}
.directory-pages{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:24px 0}
.directory-pages button,.directory-pages span{min-height:44px;min-width:44px;padding:9px;border:1px solid var(--dir-line);border-radius:3px;background:var(--dir-paper);font:inherit;font-size:14px;color:var(--dir-wine);cursor:pointer}
.directory-pages button[aria-current=page]{background:var(--dir-wine);color:#fff}.directory-pages button:disabled{opacity:.4;cursor:default}
.directory-pages span{border:0;min-width:0;cursor:default;color:#75675e}
#matchmakers :focus-visible,.directory-overlay :focus-visible{outline:3px solid #9b5661;outline-offset:3px}
.directory-overlay[hidden]{display:none!important}
.directory-overlay{position:fixed;inset:0;z-index:1000;display:flex;justify-content:flex-end;background:#261b164d;overscroll-behavior:contain;color:#302926;--display-serif:"Songti SC","STSong","Noto Serif CJK SC",serif}
.directory-dialog{width:min(440px,calc(100vw - 32px));height:100dvh;max-height:100dvh;background:#faf7f2;box-shadow:-8px 0 36px #30201614;display:flex;flex-direction:column;position:relative;animation:directory-enter .18s ease-out}
.directory-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-shrink:0;padding:12px 20px;border-bottom:1px solid #e6dfd5;min-height:60px}
.directory-dialog-head button,.directory-dialog button,.directory-dialog a{font:inherit}
.directory-close{background:transparent;border:0;min-height:44px;padding:8px 0 8px 14px;color:#701c2b;cursor:pointer;flex-shrink:0}
.directory-handle{display:none}
.directory-scroll{overflow:auto;overscroll-behavior:contain;min-height:0;flex:1;padding:20px;scrollbar-gutter:stable}
.directory-detail-intro>.directory-photo{max-width:272px;margin:0 auto 18px}
.directory-detail-title{font-family:var(--display-serif);font-size:30px;line-height:1.45;font-weight:600;margin:0 0 3px;overflow-wrap:anywhere}
.directory-role{margin:0 0 14px;color:#701c2b;font-size:14px}
.directory-bio{font-size:15px;line-height:1.85;white-space:pre-line;overflow-wrap:anywhere;color:#60534b;margin:14px 0}
.directory-long-bio{font-size:14px;line-height:1.85;color:#60534b;margin-bottom:12px}.directory-long-bio summary{cursor:pointer;color:#701c2b;padding:7px 0}
.directory-block{border-top:1px solid #e2dbd0;margin-top:22px;padding-top:18px;overflow-wrap:anywhere}
.directory-block h3{font-size:16px;margin:0 0 10px}.directory-block p{font-size:14px;line-height:1.85;color:#645950;white-space:pre-line;margin:7px 0}
.directory-contact-button{display:block;width:100%;text-align:left;padding:12px;border:1px solid #d9cfc3;border-radius:4px;min-height:48px;background:transparent;color:#701c2b;margin:10px 0;cursor:pointer;text-decoration:none;overflow-wrap:anywhere}
.directory-contact-note,.directory-date{font-size:12px!important;color:#72665d!important}
.directory-contact-live{font-size:13px;line-height:1.7;min-height:1.7em;color:#701c2b}
.directory-dialog-foot{flex-shrink:0;background:#faf7f2;border-top:1px solid #e2dbd0;padding:12px 20px max(14px,env(safe-area-inset-bottom));display:grid;gap:8px}
.directory-dialog-foot button{width:100%;min-height:48px;border:0;border-radius:4px;background:#701c2b;color:white;font-size:15px;padding:12px;cursor:pointer}
.directory-dialog-foot button.secondary{background:transparent;border:1px solid #d9cfc3;color:#701c2b}
.directory-dialog-foot p{font-size:12px;line-height:1.6;color:#78675c;margin:0}
.directory-detail-switch{display:flex;justify-content:space-between;gap:10px;margin-top:24px}
.directory-detail-switch button{min-height:44px;background:transparent;color:#701c2b;border:1px solid #d9cfc3;border-radius:4px;padding:8px 12px;cursor:pointer}
.directory-detail-switch button:disabled{opacity:.4;cursor:default}
@keyframes directory-enter{from{opacity:.4;transform:translateX(16px)}to{opacity:1;transform:none}}
@media(min-width:1024px){
 #matchmaker-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px 12px}
 #matchmakers .directory-photo{height:auto;aspect-ratio:4/5}
 #matchmakers .directory-card>.directory-photo img{object-position:50% 26%}
 #matchmakers .directory-card-copy{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto minmax(3.1em,auto) minmax(20px,auto);align-items:start;gap:6px;padding:9px 10px 10px}
 #matchmakers .directory-name{font-size:17px;line-height:1.35}
 #matchmakers .directory-status{font-size:10px;white-space:nowrap;padding:1px 5px}
 #matchmakers .directory-card-note{grid-column:1/-1;font-size:12px;line-height:1.55;-webkit-line-clamp:2}
 #matchmakers .directory-card .directory-tags{display:flex;grid-column:1/-1;flex-wrap:nowrap;gap:4px;overflow:hidden}
 #matchmakers .directory-tag{font-size:10px;line-height:1.4;padding:2px 5px;white-space:nowrap}
 #matchmakers .directory-card-more{display:none}
}
@media(max-width:767px){
 #matchmakers{padding-top:18px}#matchmakers .section-heading{display:block;margin-bottom:8px;padding-bottom:0;border-bottom:0}#matchmakers .section-note{display:none}
 #matchmakers h2{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 #matchmakers .section-kicker{font-size:16px;letter-spacing:2px}.directory-mobile-order{display:block;font-size:11px;color:#716459;margin:0 0 12px;line-height:1.7}
 .directory-tools{grid-template-columns:1fr 1fr auto;gap:8px;padding:14px 0}.directory-tools .directory-search{grid-column:1/-1}.directory-tools label{font-size:11px}.directory-tools input,.directory-tools select,.directory-tools button{font-size:13px;padding:9px 7px}
 #matchmaker-grid{grid-template-columns:repeat(var(--directory-mobile-columns,3),minmax(0,1fr));gap:7px}
 #matchmakers .directory-card-copy{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(3em,auto) minmax(18px,auto);padding:7px 6px 8px;gap:3px;min-height:104px}.directory-name{font-size:14px;line-height:1.4}.directory-status{grid-row:2;font-size:9px;padding:1px 4px;line-height:1.55;white-space:nowrap}
 .directory-card-note{display:-webkit-box;font-size:10px;line-height:1.5;-webkit-line-clamp:2}.directory-card .directory-tags{display:flex;flex-wrap:nowrap;gap:3px;overflow:hidden}.directory-card .directory-tag{font-size:9px;padding:1px 3px;white-space:nowrap}.directory-card-more{display:none}
 .directory-count{font-size:12px;margin-bottom:4px}.directory-pages{gap:5px;margin:18px 0}.directory-pages button{font-size:12px;min-width:36px;padding:6px}
 .directory-overlay{align-items:end}.directory-dialog{width:100%;height:74dvh;max-height:92dvh;border-radius:18px 18px 0 0;animation:none}
 .directory-dialog-head{padding:16px 16px 3px;min-height:58px;position:relative}.directory-handle{display:block;position:absolute;top:7px;left:calc(50% - 23px);width:46px;height:4px;border-radius:3px;background:#c7bcb1}
 .directory-scroll{padding:14px 16px}.directory-detail-intro{display:grid;grid-template-columns:100px minmax(0,1fr);column-gap:14px;align-items:start}.directory-detail-intro>.directory-photo{margin:0;grid-row:1/4;max-height:none}.directory-detail-title{font-size:23px}.directory-role{font-size:12px;margin-bottom:8px}.directory-bio{font-size:13px;line-height:1.85;margin:10px 0}.directory-detail-intro>.directory-bio{grid-column:2}.directory-detail-intro>.directory-tags{grid-column:2}.directory-tag{font-size:11px;padding:3px 6px}.directory-long-bio{grid-column:1/-1}.directory-block{padding-top:14px;margin-top:18px}.directory-block h3{font-size:15px}.directory-block p{font-size:13px}.directory-dialog-foot{padding:10px 16px max(12px,env(safe-area-inset-bottom))}
}
@media(max-width:319px){#matchmaker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-detail-intro{grid-template-columns:78px minmax(0,1fr)}.directory-tools{grid-template-columns:1fr 1fr}.directory-tools button{grid-column:1/-1}}
@media(min-width:430px) and (max-width:767px){#matchmaker-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:48rem){html.directory-large-text #matchmaker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.directory-dialog{animation:none}#matchmakers *,.directory-dialog *{scroll-behavior:auto!important;transition:none!important}}
