/* Directory surfaces share the ranking's warm, dark and green palette. */
[hidden] { display:none!important }
.js-only { display:none }
.has-directory-js .js-only { display:flex }
.directory-site .site-footer { padding-bottom:32px }
.directory-hero { background:var(--dark);color:var(--dark-text);padding:36px 0 48px }
.directory-hero .source-link { color:#d7e0cc }
.directory-hero h1 { font-size:clamp(34px,4.5vw,60px);max-width:960px;margin:28px 0 20px }
.directory-hero p { color:#c9d2c3;max-width:800px;font-size:18px }
.directory-hero .ranking-period { font-size:14px;margin:24px 0 0;color:var(--accent) }
.directory-subnav { display:flex;flex-wrap:wrap;gap:8px 24px;border-bottom:1px solid var(--border);padding-top:16px;padding-bottom:16px }
.directory-subnav a { display:inline-flex;align-items:center;min-height:40px;font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:4px }
.directory-body { padding-top:36px;padding-bottom:64px }
.directory-controls { display:none;flex-direction:column;gap:20px;padding:24px;background:var(--bg-alt);border:1px solid var(--border);border-radius:14px;margin-bottom:16px }
.directory-filter-grid { display:grid;grid-template-columns:2fr 2fr 1fr 1fr;gap:16px }
.directory-controls label { font-size:13px;font-weight:600;display:flex;flex-direction:column;gap:8px;min-width:0 }
.directory-controls input[type=search],.directory-controls select { width:100%;min-width:0;min-height:48px;border:1px solid #9da497;border-radius:8px;padding:10px;background:white;color:var(--text);font:inherit;font-size:15px }
.directory-filter-bottom { display:flex;gap:12px;flex-wrap:wrap;align-items:center }
.directory-controls .directory-check { flex-direction:row;align-items:center;margin-right:auto;cursor:pointer;font-size:14px }
.directory-check input { width:20px;height:20px;accent-color:#557d2b }
.directory-controls button,.directory-actions button,.directory-personal-actions button,.directory-remove { min-height:44px;cursor:pointer;border:1px solid #89967d;border-radius:8px;padding:8px 16px;font:600 13px var(--font-body);background:transparent;color:inherit }
.directory-controls .btn-accent { background:var(--accent) }
.directory-list { display:grid;gap:24px }
.directory-card { background:white;border:1px solid var(--border);padding:28px;border-radius:16px;min-width:0 }
.directory-card.is-featured { background:var(--dark);color:var(--dark-text);border-color:var(--dark);padding:36px }
.directory-card-heading { display:flex;align-items:center;gap:20px;margin-bottom:20px }
.directory-card-heading>div:not(.directory-rating) { flex:1;min-width:0 }
.directory-logo { background:var(--accent);border-radius:10px;width:100px;height:72px;object-fit:contain;padding:12px }
.directory-card h2 { font-size:26px;margin:6px 0 0 }
.directory-card h2 a:hover { text-decoration:underline;text-underline-offset:4px }
.directory-card .eyebrow { color:var(--text-secondary);font-size:12px }
.directory-card.is-featured .eyebrow { color:var(--accent) }
.directory-rating { display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0 }
.directory-rating strong { font:800 34px/1.2 var(--font-head) }
.directory-rating small { font-size:18px;font-weight:500 }
.directory-rating>span { font-size:11px;color:var(--text-secondary) }
.is-featured .directory-rating>span { color:#c9d2c3 }
.directory-summary { max-width:900px;color:var(--text-secondary) }
.is-featured .directory-summary,.is-featured .directory-offices { color:#d0d9c7 }
.service-fit { font-size:14px;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border) }
.is-featured .service-fit { border-color:#45513d;color:#e0ead5 }
.directory-brands { display:flex;gap:12px;flex-wrap:wrap;margin-top:20px }
.directory-brands figure { margin:0;background:white;color:var(--text);border-radius:8px;min-width:0;width:140px;padding:12px;display:grid;gap:8px;text-align:center }
.directory-brands img { width:100%;height:40px;object-fit:contain }
.directory-brands figcaption { font-size:11px }
.directory-market { color:#c9d2c3;font-size:12px;margin-top:8px }
.directory-mini-cases { display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0 }
.directory-mini-cases a { display:flex;align-items:center;gap:16px;border-top:1px solid #45513d;padding-top:16px;min-width:0 }
.directory-mini-cases img { width:116px;height:80px;object-fit:cover;border-radius:8px;flex-shrink:0 }
.directory-mini-cases span { display:grid;gap:4px;font-size:13px;color:#c9d2c3 }
.directory-mini-cases strong { color:var(--dark-text);font-size:16px }
.directory-details { margin:20px 0 }
.directory-details summary { cursor:pointer;min-height:44px;display:list-item;font-weight:600 }
.directory-service-links { display:flex;gap:8px;flex-wrap:wrap;padding-top:12px }
.directory-chip { padding:6px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;text-decoration:underline;text-underline-offset:3px }
.is-featured .directory-chip { border-color:#526148;color:#e5edde }
.directory-card-bottom { display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding-top:20px;border-top:1px solid var(--border) }
.is-featured .directory-card-bottom { border-color:#45513d }
.is-featured .source-link { color:#d5efbf }
.directory-actions { gap:8px;flex-wrap:wrap;margin-left:auto }
.directory-actions button[aria-pressed=true] { background:var(--accent);color:var(--accent-ink);border-color:var(--accent) }
.directory-section { padding-top:56px }
.directory-section h2 { font-size:30px;line-height:1.2;margin-bottom:24px }
.directory-section h3 { font-size:21px }
.directory-section>p { max-width:850px;color:var(--text-secondary) }
.directory-section ol { padding-left:24px }
.directory-section ol li,.directory-section ul li { margin-bottom:12px }
.directory-table-wrap { overflow-x:auto;border:1px solid var(--border);border-radius:12px;max-width:100% }
.directory-table { border-collapse:collapse;width:100%;min-width:760px;font-size:14px;background:white }
.directory-table th,.directory-table td { text-align:left;padding:16px;border-bottom:1px solid var(--border);vertical-align:top }
.directory-table thead th { background:var(--bg-alt) }
.directory-table th[scope=row] { min-width:180px }
.directory-table a { text-decoration:underline;text-underline-offset:3px }
.directory-faq { border-bottom:1px solid var(--border);padding:20px 0 }
.directory-faq summary { cursor:pointer;font-weight:700;font-size:18px }
.directory-faq p { margin:16px 0 0;max-width:850px;color:var(--text-secondary) }
.directory-index-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px }
.directory-index-grid>a,.directory-index-grid>article { padding:24px;border:1px solid var(--border);border-radius:12px;background:white;min-width:0 }
.directory-index-grid a { font-weight:700;display:block }
.directory-index-grid p { margin:16px 0 0;color:var(--text-secondary);font-size:14px }
.directory-profile-meta { display:flex;align-items:baseline;flex-wrap:wrap;gap:16px;margin-bottom:24px }
.directory-profile-meta strong { font:800 36px var(--font-head) }
.directory-profile-meta~.directory-actions { margin:0 0 24px }
.directory-project { padding:24px 0;border-top:1px solid var(--border) }
.directory-project p { max-width:760px }
.directory-personal-actions { gap:12px;flex-wrap:wrap;margin-bottom:24px }
#personalResults { display:grid;gap:24px }
.directory-empty { padding:24px;background:var(--bg-alt);border-radius:12px }
.catalogue-entry { padding:48px 0;background:var(--bg-alt) }
.catalogue-entry h2 { font-size:32px }
.catalogue-entry-links { display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 }
.catalogue-entry-links a { display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;background:white;border:1px solid var(--border);border-radius:8px;font-weight:600 }
input:focus-visible { outline:3px solid #568321;outline-offset:3px }
@media(max-width:1000px) { .directory-filter-grid { grid-template-columns:1fr 1fr } .directory-index-grid { grid-template-columns:1fr 1fr } }
@media(max-width:650px) {
 .directory-hero { padding:24px 0 32px }
 .directory-hero p { font-size:16px }
 .directory-card,.directory-card.is-featured { padding:20px }
 .directory-card-heading { flex-wrap:wrap;gap:12px }
 .directory-card h2 { font-size:23px }
 .directory-logo { width:72px;height:56px }
 .directory-rating { width:100%;align-items:flex-start;flex-direction:row;align-items:center;gap:12px }
 .directory-rating strong { font-size:30px }
 .directory-filter-grid { grid-template-columns:1fr }
 .directory-controls { padding:16px }
 .directory-filter-bottom { align-items:stretch }
 .directory-controls .directory-check { width:100%;margin-bottom:8px }
 .directory-brands { display:grid;grid-template-columns:1fr 1fr;gap:8px }
 .directory-brands figure { width:auto }
 .directory-mini-cases { grid-template-columns:1fr;gap:12px }
 .directory-mini-cases img { width:90px;height:70px }
 .directory-card-bottom { align-items:flex-start;flex-direction:column }
 .directory-actions { margin:0;width:100% }
 .directory-actions button { flex:1;min-width:0 }
 .directory-section { padding-top:40px }
 .directory-section h2 { font-size:26px }
 .directory-index-grid { grid-template-columns:1fr }
 .directory-subnav { gap:4px 16px }
 .directory-body { padding-top:24px }
}
@media(prefers-reduced-motion:reduce) { .directory-page { scroll-behavior:auto } }

.ranking-profile-preview { margin:20px 0 }
.ranking-profile-preview>p { font-size:13px;margin-top:12px }
.ranking-profile-preview .directory-mini-cases { grid-template-columns:1fr }
.ranking-profile-preview .directory-mini-cases span,.ranking-profile-preview .directory-mini-cases strong { color:var(--text) }
.ranking-profile-preview .directory-mini-cases a { border-color:var(--border) }

.directory-primary { display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:24px 0 }
.directory-table-wrap { overscroll-behavior-x:contain }
@media(max-width:650px) { .directory-filter-grid { grid-template-columns:1fr 1fr } .directory-filter-grid>label:first-child { grid-column:1/-1 } .directory-controls label { justify-content:flex-end } }
