.directory-page { --directory-border:#d3cbbf; }
.directory-page .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; }
.directory-heading { padding:45px 5vw 32px;display:flex;align-items:end;justify-content:space-between;gap:30px; }
.directory-heading .journey-eyebrow { margin-bottom:12px; }
.directory-heading h1 { font-size:clamp(2.5rem,4.1vw,4.4rem);letter-spacing:-.05em;margin:0;line-height:1.12; }
.directory-heading p:not(.journey-eyebrow) { margin:18px 0 0;color:#51595a;max-width:650px; }
.directory-heading-actions { display:flex;flex-direction:column;gap:16px;align-items:flex-end;flex-shrink:0; }
.directory-heading-actions>a { font-size:.875rem;border-bottom:1px solid #b1a595;padding-bottom:4px; }
.directory-button { display:inline-flex;align-items:center;justify-content:center;gap:12px;background:#1f2528;color:#fff;border:1px solid #1f2528;padding:13px 19px;min-height:48px;font:500 .875rem/1.5 Montserrat,Arial,sans-serif;cursor:pointer; }
.directory-button:hover { background:#82532c;border-color:#82532c; }
.directory-button.outline { background:transparent;color:#1f2528;border-color:#bcb4a6; }
.directory-button.outline:hover { background:#e6dfd3; }
.directory-button:disabled { opacity:.6;cursor:wait; }
.directory-workspace { padding:0 5vw 65px; }
.directory-toolbar { display:flex;gap:20px;justify-content:space-between;align-items:center;padding:22px 0;border-top:1px solid var(--directory-border); }
.directory-search { display:flex;gap:15px;align-items:center;background:#fffefa;border:1px solid #bcb4a6;padding:0 18px;flex:1;max-width:670px;min-width:0; }
.directory-search svg { flex:0 0 23px;width:23px;height:23px; }
.directory-search input { width:100%;min-width:0;background:transparent;border:0;padding:17px 0;font:400 1rem Montserrat,Arial,sans-serif;color:#1f2528; }
.directory-search:focus-within { outline:2px solid #9b6a3a;outline-offset:2px; }
.directory-search input:focus { outline:0; }
.directory-view { display:flex;background:#e7e0d6;padding:4px;gap:4px; }
.directory-view button { border:0;padding:13px 17px;font-size:.875rem;color:#51595a;background:transparent;cursor:pointer;white-space:nowrap; }
.directory-view button[aria-pressed=true] { background:#1f2528;color:#fff; }
.directory-categories { display:flex;gap:8px;flex-wrap:wrap; }
.directory-categories button { display:inline-flex;align-items:center;gap:13px;padding:10px 14px;border:1px solid #cfc6b9;background:transparent;font-size:.875rem;color:#51595a;cursor:pointer;line-height:1.5; }
.directory-categories button span { font-size:.75rem;opacity:.8; }
.directory-categories button:hover { border-color:#94643a;color:#82532c; }
.directory-categories button[aria-pressed=true] { border-color:#94643a;background:#94643a;color:#fff; }
.directory-results-bar { display:flex;align-items:center;gap:20px;min-height:65px;margin:10px 0 6px; }
.directory-results-bar p { margin:0;font-size:.875rem;color:#51595a; }
#clear-filters { border:0;border-bottom:1px solid #b1a595;background:transparent;font-size:.875rem;color:#83532d;cursor:pointer;padding:5px 0; }
#add-partner { margin-left:auto; }
.directory-layout { display:grid;grid-template-columns:minmax(350px, .93fr) minmax(0,1.25fr);gap:24px;align-items:start; }
.partner-results { display:grid;gap:16px; }
.partner-card { background:#fffefa;border:1px solid var(--directory-border);padding:27px;transition:border-color .2s,box-shadow .2s; }
.partner-card:hover { border-color:#9b6a3a;box-shadow:0 8px 25px #1f25280a; }
.partner-card-head { display:flex;align-items:center;gap:18px; }
.partner-monogram { display:flex;align-items:center;justify-content:center;flex:0 0 63px;height:63px;background:#eae1d4;color:#805834;font-size:1.3rem;letter-spacing:-.04em;font-weight:500;overflow:hidden; }
.partner-monogram[data-type=Engineering] { background:#dfe6e7;color:#354f59; }
.partner-monogram img { width:100%;height:100%;object-fit:contain;background:#fff;padding:5px; }
.partner-card h2 { font-size:1.4rem;letter-spacing:-.02em;margin:5px 0 0;line-height:1.35; }
.partner-type { font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:#82532c; }
.partner-tagline { color:#51595a;font-size:.875rem;margin:20px 0 12px; }
.partner-specialties { display:flex;gap:7px;flex-wrap:wrap;list-style:none;margin:0;padding:0; }
.partner-specialties li { background:#f1ede5;border:1px solid #e6dfd2;padding:5px 9px;font-size:.75rem;color:#51595a; }
.partner-location { color:#616a6c;font-size:.875rem;margin:20px 0 0;line-height:1.7; }
.partner-card-bottom { display:flex;gap:18px;justify-content:space-between;align-items:center;margin-top:22px;padding-top:18px;border-top:1px solid #ded8cd; }
.partner-card-bottom button { border:0;background:transparent;padding:4px 0;color:#1f2528;font-size:.875rem;font-weight:500;cursor:pointer; }
.partner-card-bottom button:hover { color:#83532d;text-decoration:underline;text-underline-offset:5px; }
.partner-card-bottom .partner-edit { color:#83532d; }
.partner-status { font-size:.75rem;margin-top:10px;color:#83532d; }
.directory-layout.grid-only { grid-template-columns:1fr; }
.grid-only .partner-results { grid-template-columns:repeat(3,minmax(0,1fr)); }
.directory-map-panel { position:sticky;top:24px;min-width:0;background:#fffefa;border:1px solid var(--directory-border); }
.map-topline { padding:21px 23px;display:flex;align-items:center;justify-content:space-between;gap:15px; }
.map-topline .journey-eyebrow { font-size:.75rem;margin:0 0 4px; }
.map-topline h2 { font-size:1.1rem;margin:0;line-height:1.5; }
.map-topline button { background:none;border:0;border-bottom:1px solid #c8baa5;padding:5px 0;font-size:.75rem;cursor:pointer;color:#83532d; }
.map-frame { position:relative; }
#partner-map { height:460px;z-index:0;background:#e4e8e3; }
.directory-page .leaflet-container { font-family:Montserrat,Arial,sans-serif;font-size:14px; }
.directory-page .leaflet-control-attribution { font:11px/1.6 Arial,sans-serif; }
.directory-page .leaflet-control-zoom a { color:#1f2528;background:#fffefa; }
.directory-page .leaflet-popup-content { margin:19px;line-height:1.6; }
.directory-page .leaflet-popup-content strong { font-size:1rem;font-weight:600;display:block;margin-bottom:5px; }
.directory-page .leaflet-popup-content button { background:#1f2528;color:#fff;border:0;padding:10px 13px;cursor:pointer;font-size:.875rem;margin-top:10px; }
.partner-map-marker { width:34px;height:34px;border:3px solid #fff;border-radius:50%;background:#805a38;box-shadow:0 3px 10px #1f252860;color:#fff;display:flex;align-items:center;justify-content:center;font:600 12px Montserrat,Arial,sans-serif; }
.partner-map-marker.engineering { background:#365667; }
.partner-map-marker.contractor { background:#25352d; }
.partner-map-marker.vendor { background:#94643a; }
.map-key { display:flex;gap:17px;flex-wrap:wrap;padding:17px 23px 0;font-size:.75rem;color:#51595a; }
.map-key span { display:inline-flex;align-items:center;gap:7px; }
.map-dot { width:9px;height:9px;display:inline-block;background:#365667;border-radius:50%; }
.map-dot.vendor { background:#94643a; }.map-dot.contractor { background:#25352d; }
.map-note { padding:0 23px;margin:12px 0 20px;font-size:.75rem;line-height:1.8;color:#51595a; }
#map-unavailable { position:absolute;left:20px;right:20px;bottom:24px;padding:16px;background:#fffefaed;color:#1f2528;border:1px solid #c8baa5;font-size:.875rem;z-index:1; }
.directory-empty { padding:50px 30px;border:1px solid var(--directory-border);background:#fffefa; }
.directory-empty>span { color:#83532d;font-size:.75rem;letter-spacing:.12em; }
.directory-empty h2 { font-size:1.7rem;line-height:1.3;margin:17px 0 12px; }
.directory-empty p { color:#51595a;line-height:1.8; }
.directory-error { background:#fff4e9;color:#713c24;padding:18px;border-left:3px solid #94643a; }
#retry-directory { margin-bottom:24px; }
.directory-context { display:grid;grid-template-columns:1fr 1fr;gap:12%;background:#1f2528;color:#fff;padding:70px 6vw; }
.directory-context h2 { font-size:clamp(2.1rem,3.3vw,3.5rem);letter-spacing:-.04em;line-height:1.15;margin:0; }
.directory-context em { color:#d8ae86; }
.directory-context p:not(.journey-eyebrow) { color:#c7cecc;margin:0 0 20px;line-height:1.9; }
.directory-context a { font-size:.875rem;color:#e3c6ab;border-bottom:1px solid #a17c5a;padding-bottom:6px; }
.directory-context .directory-context-note { font-size:.75rem;margin-top:24px!important; }
.directory-dialog { padding:0;border:1px solid #c9bca8;width:min(870px,calc(100% - 36px));max-height:90svh;background:#f4f1ea;color:#1f2528;overflow:auto; }
.directory-dialog::backdrop { background:#071215b8;backdrop-filter:blur(5px); }
.dialog-close { position:absolute;right:19px;top:16px;width:43px;height:43px;display:grid;place-items:center;background:#f4f1ea;border:1px solid #bdaf9e;font-size:1.8rem;line-height:1;color:#1f2528;cursor:pointer;z-index:5; }
.profile-heading { padding:42px 75px 38px 38px;background:#1f2528;color:#fff; }
.profile-heading .partner-type { color:#d8ae86; }
.profile-heading h2 { font-size:clamp(2rem,4vw,3rem);line-height:1.2;margin:14px 0;letter-spacing:-.035em; }
.profile-heading p { color:#c5cecc;margin:0;font-size:.95rem; }
.profile-heading img { max-width:170px;max-height:90px;object-fit:contain;background:#fff;padding:10px;margin-bottom:22px; }
.profile-body { padding:34px 38px; }
.profile-body>p { margin:0 0 28px;color:#51595a;line-height:1.9; }
.profile-details { display:grid;grid-template-columns:1fr 1fr;gap:28px 35px;margin:0; }
.profile-details dt { font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#83532d;margin-bottom:10px; }
.profile-details dd { font-size:.95rem;margin:0;line-height:1.8;white-space:pre-line;overflow-wrap:anywhere; }
.profile-details a { display:block;text-decoration:underline;text-underline-offset:4px;margin-bottom:8px; }
.profile-actions { display:flex;flex-wrap:wrap;gap:13px;margin-top:30px;padding-top:27px;border-top:1px solid var(--directory-border); }
.profile-actions a { font-size:.875rem; }
.editor-dialog { padding:38px; }
.editor-dialog>.journey-eyebrow { padding-right:35px;margin-bottom:12px; }
.editor-dialog h2 { font-size:2rem;line-height:1.3;margin:0 45px 13px 0; }
.editor-intro { color:#51595a;font-size:.95rem;margin-bottom:28px; }
.editor-grid { display:grid;grid-template-columns:1fr 1fr;gap:20px; }
.editor-grid .full { grid-column:1/-1; }
#partner-form label { display:flex;flex-direction:column;gap:8px;font-size:.875rem;font-weight:500; }
#partner-form label>span[aria-hidden] { display:none; }
#partner-form input:not([type=checkbox]),#partner-form textarea,#partner-form select { width:100%;min-width:0;padding:13px;background:#fffefa;border:1px solid #bcb4a6;color:#1f2528;font:400 1rem/1.5 Montserrat,Arial,sans-serif;border-radius:0; }
#partner-form textarea { resize:vertical; }
.editor-location { border:1px solid var(--directory-border);margin:30px 0;padding:22px;min-width:0; }
.editor-location legend { color:#83532d;font-size:1rem;padding:0 9px; }
.editor-location p { font-size:.875rem;color:#51595a;line-height:1.8;margin:0 0 20px; }
.editor-location .editor-grid { margin:20px 0; }
.editor-text-button { background:none;border:0;text-decoration:underline;text-underline-offset:4px;font-size:.875rem;padding:12px;cursor:pointer;color:#83532d; }
#partner-form .editor-check { display:flex;flex-direction:row;align-items:flex-start;gap:12px;font-size:.875rem;line-height:1.8;font-weight:400;margin-top:20px; }
.editor-check input { width:18px;height:18px;margin:4px 0 0;flex-shrink:0;accent-color:#94643a; }
#location-picker-wrap { margin-top:22px; }
#location-picker { height:290px;z-index:0; }
#editor-status { font-size:.875rem;line-height:1.8;color:#713c24; }
.editor-actions { display:flex;gap:14px;margin-top:25px; }
@media(min-width:1600px) { #partner-map { height:560px; }.directory-heading { padding-top:55px; } }
@media(max-width:1100px) { .directory-layout { grid-template-columns:minmax(320px,1fr) minmax(0,1fr);gap:18px; }.partner-card { padding:23px; }.grid-only .partner-results { grid-template-columns:repeat(2,minmax(0,1fr)); }.map-topline { padding:20px 18px; }.map-topline .journey-eyebrow { font-size:.7rem; }.directory-view button { padding:13px; } }
@media(max-width:900px) { .directory-heading { padding:35px 6vw 28px;align-items:start; }.directory-heading-actions { max-width:180px; }.directory-layout { grid-template-columns:1fr; }.directory-map-panel { position:static;grid-row:1; }.directory-workspace { padding-left:6vw;padding-right:6vw; }#partner-map { height:340px; }.directory-categories { flex-wrap:nowrap;overflow:auto;padding-bottom:9px; }.directory-categories button { white-space:nowrap; }.directory-toolbar { flex-wrap:wrap;gap:14px; }.directory-search { flex-basis:100%;max-width:none; }.directory-view { margin-left:auto; }.partner-results { grid-template-columns:repeat(2,minmax(0,1fr)); }.directory-context { gap:7%; }.partner-monogram { flex-basis:50px;height:50px; }.partner-card-head { gap:12px; }.partner-card h2 { font-size:1.3rem; } }
@media(max-width:600px) { .directory-heading { flex-direction:column;gap:22px; }.directory-heading h1 { font-size:2.8rem; }.directory-heading-actions { max-width:none;flex-direction:row;align-items:center;gap:22px;flex-wrap:wrap; }.directory-heading-actions>a { font-size:.8rem; }.directory-heading-actions button { padding:9px 13px; }.directory-toolbar { padding:20px 0 14px; }.directory-search { padding:0 14px;gap:10px; }.directory-search input { font-size:1rem; }.directory-search input::placeholder { font-size:.875rem; }.directory-view { width:100%; }.directory-view button { flex:1; }.directory-results-bar { flex-wrap:wrap;gap:8px 16px;padding:10px 0;margin-bottom:15px; }#add-partner { font-size:.8rem;padding:9px 13px; }.partner-results,.grid-only .partner-results { grid-template-columns:1fr; }.directory-layout { gap:18px; }.directory-map-panel { grid-row:1; }#partner-map { height:300px; }.map-key { padding-left:18px;padding-right:18px;gap:13px; }.map-note { padding:0 18px; }.directory-context { grid-template-columns:1fr;gap:30px;padding:55px 6vw; }.directory-dialog { width:calc(100% - 20px);max-height:94svh; }.profile-heading { padding:33px 65px 28px 24px; }.profile-body { padding:27px 24px; }.profile-details { grid-template-columns:1fr;gap:24px; }.profile-actions { flex-direction:column; }.editor-dialog { padding:28px 22px; }.editor-grid { grid-template-columns:1fr; }.editor-grid .full { grid-column:auto; }.editor-location { padding:18px 15px; }.dialog-close { right:12px;top:12px; }.editor-dialog h2 { font-size:1.7rem; } }
