/* Shared public directory and admin editor. All selectors are scoped. */
.directory-page, .directory-admin { --dir-navy:#16284a; --dir-muted:#4b5667; --dir-line:#dce3ec; --dir-gold:#edcf86; color:#171c24; font-family:'Outfit',system-ui,sans-serif; font-size:16px; line-height:1.65; }
.directory-page { padding-top:82px; background:#fff; }
.directory-page--light { background:#f5f7fa; }
.directory-page h1 { font-size:clamp(2.6rem,5.2vw,4.8rem); line-height:1.04; color:var(--dir-navy); margin:16px 0 24px; }
.directory-page h2 { font-size:clamp(1.8rem,3vw,2.5rem); line-height:1.18; color:var(--dir-navy); }
.directory-page h3 { font-size:1.65rem; color:var(--dir-navy); line-height:1.2; }
.directory-eyebrow { font-family:'Outfit',system-ui,sans-serif; font-weight:600; text-transform:uppercase; font-size:12px; letter-spacing:.14em; color:#765620; margin:0 0 12px; }
.directory-lead { font-size:18px; line-height:1.7; max-width:55ch; color:var(--dir-muted); }
.directory-hero { background:#f2f5f9; border-bottom:1px solid var(--dir-line); padding:48px 0 64px; }
.directory-hero__inner { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:72px; }
.directory-breadcrumb { display:inline-block; font-size:13px; color:#4b5667; margin-bottom:30px; }
.directory-hero .directory-btn { margin-top:26px; }
.directory-hero__aside { border-radius:18px; overflow:hidden; background:var(--dir-navy); }
.directory-hero__aside img { width:100%; aspect-ratio:1.6; object-fit:cover; }
.directory-hero__aside>div { padding:24px 28px; display:grid; gap:6px; color:#d8e2ef; font-size:14px; }
.directory-hero__aside strong { color:#fff; font:600 30px/1.2 'Cormorant Garamond',Georgia,serif; }
.directory-btn { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:48px; padding:12px 20px; border:1px solid var(--dir-navy); border-radius:9px; font:600 14px/1.5 'Outfit',system-ui,sans-serif; text-decoration:none; color:#fff; background:var(--dir-navy); cursor:pointer; transition:background .15s,transform .15s; }
.directory-btn:hover { background:#29446f; color:#fff; }
.directory-btn:active { transform:scale(.98); }
.directory-btn--gold { background:var(--dir-gold); color:var(--dir-navy); border-color:var(--dir-gold); }
.directory-btn--gold:hover { background:#f4dfa9; color:var(--dir-navy); }
.directory-btn--outline { background:#fff; color:var(--dir-navy); border-color:#a6b5c9; }
.directory-btn--outline:hover { background:#edf1f7; color:var(--dir-navy); }
.directory-btn--danger { background:#fff; color:#a42a2a; border-color:#dcb5b5; }
.directory-btn--danger:hover { background:#fff0f0; color:#8a1c1c; }
.directory-text-link { color:var(--dir-navy); font-weight:600; text-decoration:underline; text-underline-offset:4px; }
.directory-text-link:hover { color:#40608d; }
.directory-browse { padding-top:32px; padding-bottom:64px; }
.directory-search { display:grid; grid-template-columns:2fr 1.5fr 1fr; gap:18px; padding:28px; background:#fff; border:1px solid var(--dir-line); border-radius:14px; box-shadow:0 8px 28px #16284a08; }
.directory-search>.directory-btn { align-self:end; }
.directory-field { display:flex; flex-direction:column; min-width:0; gap:8px; }
.directory-field>span { font-size:13px; font-weight:600; color:#303e54; }
.directory-field input, .directory-field select, .directory-field textarea { box-sizing:border-box; width:100%; min-height:48px; border:1px solid #aab8cb; border-radius:8px; padding:11px 12px; background:#fff; color:#1c2e49; font:400 16px/1.5 'Outfit',system-ui,sans-serif; }
.directory-field select { padding-right:32px; }
.directory-field textarea { resize:vertical; }
.directory-field input::placeholder,.directory-field textarea::placeholder { color:#627188; opacity:1; }
.directory-field input:focus, .directory-field select:focus, .directory-field textarea:focus { outline:2px solid #40608d; outline-offset:2px; border-color:#40608d; }
.directory-field input[type=file] { padding:10px; font-size:14px; }
.directory-field input[type=file]::file-selector-button { border:0; border-radius:5px; padding:6px 10px; margin-right:12px; color:#16284a; background:#e7ecf4; cursor:pointer; }
.directory-field small { color:#4b5667; font-size:13px; }
.directory-results-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:44px 0 28px; }
.directory-results-head h2 { margin:0; }
.directory-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.directory-view-toggle { display:flex; border:1px solid var(--dir-line); border-radius:8px; overflow:hidden; }
.directory-view-toggle[hidden] { display:none; }
.directory-view-toggle button { width:44px; height:44px; background:#fff; color:#4b5667; font-size:23px; cursor:pointer; border:0; }
.directory-view-toggle button[aria-pressed=true] { background:var(--dir-navy); color:#fff; }
.directory-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.directory-card { display:flex; flex-direction:column; border:1px solid var(--dir-line); border-radius:14px; overflow:hidden; background:#fff; transition:box-shadow .2s,border-color .2s; }
.directory-card:hover { border-color:#9bb0cd; box-shadow:0 8px 24px #16284a0e; }
.directory-card__image { position:relative; display:flex; align-items:center; justify-content:center; background:#e7ecf4; aspect-ratio:1.7; overflow:hidden; }
.directory-card__image img { width:100%; height:100%; object-fit:cover; }
.directory-monogram { color:#2c4771; font:600 76px/1 Georgia,serif; }
.directory-featured { position:absolute; left:16px; top:16px; padding:4px 12px; border-radius:5px; font-size:12px; font-weight:600; background:#faeac2; color:#574015; }
.directory-card__body { padding:24px; display:flex; flex-direction:column; flex:1; }
.directory-category { font-size:12px; font-weight:600; color:#395980; }
.directory-card h3 { margin:10px 0 8px; overflow-wrap:anywhere; }
.directory-card h3 a { color:inherit; text-decoration:none; }
.directory-card h3 a:hover { text-decoration:underline; }
.directory-location { color:#4b5667; font-size:14px; }
.directory-card__summary { color:#4b5667; margin:14px 0 24px; font-size:15px; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.directory-card__link { color:var(--dir-navy); text-decoration:none; font-weight:600; font-size:14px; display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--dir-line); padding-top:16px; margin-top:auto; min-height:44px; }
.directory-grid--list { grid-template-columns:1fr; }
.directory-grid--list .directory-card { flex-direction:row; }
.directory-grid--list .directory-card__image { width:240px; flex-shrink:0; aspect-ratio:auto; }
.directory-pagination { margin-top:36px; display:flex; align-items:center; justify-content:center; gap:20px; color:#4b5667; font-size:14px; }
.directory-empty { padding:64px 24px; text-align:center; background:#f5f7fa; border:1px dashed #b8c4d5; border-radius:14px; }
.directory-empty__icon { display:inline-flex; width:60px; height:60px; align-items:center; justify-content:center; background:#e7ecf4; color:#2c4771; border-radius:50%; font-size:36px; margin-bottom:20px; }
.directory-empty p { max-width:55ch; margin:16px auto 24px; color:#4b5667; }
.directory-invite { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:40px; border-radius:14px; background:#f6f1e7; margin-top:64px; }
.directory-invite h2 { margin:0 0 12px; }
.directory-invite p:not(.directory-eyebrow) { color:#4b5667; }
.directory-invite .directory-btn { flex-shrink:0; }
.directory-profile { padding-top:36px; padding-bottom:64px; }
.directory-profile__header { display:grid; grid-template-columns:1fr .65fr; align-items:center; gap:48px; margin:36px 0 48px; }
.directory-profile__header:not(:has(img)) { grid-template-columns:1fr; }
.directory-profile h1 { overflow-wrap:anywhere; }
.directory-profile__header .directory-lead { margin-top:20px; }
.directory-profile__image { width:100%; aspect-ratio:1.4; object-fit:cover; border-radius:14px; }
.directory-profile__grid { display:grid; grid-template-columns:1.65fr 1fr; gap:32px; align-items:start; }
.directory-panel { background:#fff; border:1px solid var(--dir-line); border-radius:14px; padding:32px; margin-bottom:24px; overflow-wrap:anywhere; }
.directory-panel h2 { margin:0 0 24px; }
.directory-preline { white-space:pre-line; color:#38414f; }
.directory-contact { display:flex; flex-direction:column; gap:14px; }
.directory-contact h2 { margin-bottom:10px; }
.directory-contact address { color:#4b5667; font-style:normal; margin-top:12px; }
.directory-contact-value { font-size:14px; color:#4b5667; }
.directory-profile-note { padding:0 8px; font-size:14px; color:#4b5667; }
.directory-profile-note p { margin-bottom:8px; }
.directory-admin { max-width:1100px; }
.directory-admin h2, .directory-admin h3 { font:600 24px/1.25 'Outfit',system-ui,sans-serif; letter-spacing:-.02em; }
.directory-admin .directory-results-head { margin-top:0; }
.directory-admin .directory-results-head p { color:#4b5667; margin-top:10px; }
.directory-form { margin-top:28px; }
.directory-form-section { padding:28px; border:1px solid var(--dir-line); border-radius:12px; background:#fff; margin:0 0 32px; min-width:0; }
.directory-form-section legend { padding:0 10px; font-weight:600; font-size:19px; color:var(--dir-navy); }
.directory-form-section>p { color:#4b5667; margin-bottom:24px; font-size:14px; }
.directory-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.directory-field--wide { grid-column:1/-1; }
.directory-check { display:flex; gap:12px; align-items:center; min-height:44px; color:#38414f; font-size:15px; }
.directory-check input { width:20px; height:20px; flex-shrink:0; accent-color:#16284a; }
.directory-check a { text-decoration:underline; }
.directory-form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; padding:0 0 24px; }
.directory-form-preview { width:160px; height:110px; object-fit:cover; border-radius:8px; margin-bottom:16px; }
.directory-errors { background:#fff1f1; color:#8a2525; border:1px solid #e3adad; padding:24px; border-radius:12px; margin-bottom:28px; }
.directory-errors h2 { color:inherit; font-size:20px; }
.directory-errors ul { list-style:disc; padding-left:20px; margin:12px 0; }
.directory-errors p { font-size:14px; }
.directory-status-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:24px 0; }
.directory-status-tabs a { padding:10px 16px; border:1px solid var(--dir-line); border-radius:8px; background:#fff; color:#38414f; font-size:14px; text-decoration:none; }
.directory-status-tabs a[aria-current=page] { background:#16284a; color:#fff; }
.directory-status-tabs span { margin-left:6px; }
.directory-admin-search { display:flex; align-items:end; flex-wrap:wrap; gap:16px; margin:24px 0; }
.directory-admin-search .directory-field { flex:1; min-width:180px; }
.directory-admin-search .directory-text-link { padding:12px; }
.directory-count { color:#4b5667; margin-bottom:16px; }
.directory-admin-rows { display:grid; gap:12px; }
.directory-admin-row { padding:24px; display:flex; align-items:center; justify-content:space-between; gap:24px; background:#fff; border:1px solid var(--dir-line); border-radius:12px; }
.directory-admin-row>div:first-child { min-width:0; overflow-wrap:anywhere; }
.directory-admin-row h3 { margin:12px 0 8px; }
.directory-admin-row p { font-size:14px; color:#4b5667; }
.directory-admin-row .directory-actions { flex-shrink:0; }
.directory-admin-meta { margin-top:6px; }
.directory-status { display:inline-block; padding:3px 10px; border-radius:20px; color:#4b5667; background:#eef2f6; font-size:12px; text-transform:capitalize; }
.directory-status--published { color:#23563c; background:#e0f2e8; }
.directory-status--draft { color:#795416; background:#fff0c9; }
.directory-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; }
@media(max-width:1000px) { .directory-hero__inner { gap:32px; } .directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .directory-grid--list { grid-template-columns:1fr; } .directory-admin-row { flex-direction:column; align-items:flex-start; } }
@media(max-width:700px) { .directory-hero { padding:28px 0 40px; } .directory-hero__inner { grid-template-columns:1fr; } .directory-hero__aside { display:none; } .directory-search { grid-template-columns:1fr 1fr; padding:20px; gap:16px; } .directory-search__query { grid-column:1/-1; } .directory-search>.directory-btn { grid-column:1/-1; } .directory-results-head { flex-wrap:wrap; margin-top:32px; } .directory-grid { grid-template-columns:1fr; } .directory-grid--list .directory-card { flex-direction:column; } .directory-grid--list .directory-card__image { width:100%; aspect-ratio:1.7; } .directory-invite { flex-direction:column; align-items:flex-start; padding:28px; } .directory-profile__header, .directory-profile__grid { grid-template-columns:1fr; gap:24px; } .directory-panel { padding:24px; } .directory-form-grid { grid-template-columns:1fr; } .directory-form-section { padding:20px; } .directory-pagination { gap:12px; } .directory-pagination .directory-btn { padding-inline:12px; } }
@media(prefers-reduced-motion:reduce) { .directory-btn, .directory-card { transition:none; } }
