:root { --dir-navy:#082b58; --dir-deep:#031932; --dir-teal:#10b8be; --dir-violet:#6844c7; --dir-paper:#f4f7fa; --dir-muted:#607286; --dir-line:rgba(8,43,88,.13); }
* { box-sizing: border-box; }
body { margin:0; background:var(--dir-paper); color:#10243a; font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; line-height:1.55; }
a { color:inherit; } button,input,select { font:inherit; }
.directory-container { width:min(calc(100% - 40px),1180px); margin-inline:auto; }
.directory-header { position:sticky; top:0; z-index:30; border-bottom:1px solid rgba(255,255,255,.11); background:rgba(3,25,50,.94); backdrop-filter:blur(16px); }
.directory-header-inner { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:26px; }
.directory-brand { display:flex; align-items:center; gap:16px; color:#fff; text-decoration:none; }
.directory-brand img { width:44px; height:44px; object-fit:contain; }
.directory-brand strong,.directory-brand span { display:block; }
.directory-brand span { color:rgba(255,255,255,.58); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }
.directory-nav { display:flex; align-items:center; gap:22px; color:rgba(255,255,255,.76); font-size:.85rem; font-weight:700; }
.directory-nav a { text-decoration:none; }
.directory-nav a:hover { color:#fff; }
.saved-chip { padding:8px 13px; border:1px solid rgba(255,255,255,.16); border-radius:999px; }
.directory-hero { position:relative; overflow:hidden; padding:95px 0 84px; color:#fff; background:linear-gradient(145deg,var(--dir-deep),#0b3b6d); }
.directory-hero::before { content:""; position:absolute; width:500px; height:500px; right:-120px; top:-200px; border-radius:50%; background:radial-gradient(circle,rgba(104,68,199,.55),transparent 68%); }
.directory-hero-inner { position:relative; z-index:1; display:grid; grid-template-columns:1fr .55fr; gap:70px; align-items:end; }
.directory-eyebrow { color:#7de4e8; font-size:.72rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.directory-hero h1 { max-width:780px; margin:14px 0 22px; font-size:clamp(3.1rem,7vw,6.4rem); line-height:.96; letter-spacing:-.055em; }
.directory-hero p { max-width:690px; color:rgba(255,255,255,.68); font-size:1.08rem; }
.directory-hero-note { padding:25px; border:1px solid rgba(255,255,255,.14); border-radius:20px; background:rgba(255,255,255,.07); }
.directory-hero-note strong { display:block; margin-bottom:8px; color:#fff; }
.directory-search-panel { position:relative; z-index:5; display:grid; grid-template-columns:1.5fr .8fr .65fr; gap:12px; margin-top:-31px; padding:18px; border:1px solid var(--dir-line); border-radius:22px; background:#fff; box-shadow:0 24px 60px rgba(3,25,50,.15); }
.directory-search-panel label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.directory-search-panel input,.directory-search-panel select { min-height:52px; padding:0 16px; border:1px solid #cad7e2; border-radius:13px; background:#f9fbfd; color:#183049; }
.directory-main { padding:70px 0 95px; }
.directory-toolbar { display:flex; justify-content:space-between; gap:24px; align-items:end; margin-bottom:28px; }
.directory-toolbar h2 { margin:0; color:var(--dir-deep); font-size:clamp(1.7rem,3vw,2.7rem); letter-spacing:-.04em; }
.directory-toolbar p { margin:5px 0 0; color:var(--dir-muted); }
.add-listing { padding:11px 16px; border-radius:999px; background:var(--dir-navy); color:#fff; text-decoration:none; font-weight:800; font-size:.82rem; }
.directory-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.listing-card { min-height:460px; display:flex; flex-direction:column; padding:26px; border:1px solid var(--dir-line); border-radius:23px; background:#fff; box-shadow:0 12px 32px rgba(3,25,50,.07); }
.listing-top { display:flex; justify-content:space-between; align-items:start; }
.listing-avatar { width:58px; height:58px; display:grid; place-items:center; border-radius:18px; background:var(--avatar); color:#fff; font-size:.9rem; font-weight:900; letter-spacing:.03em; }
.save-button { width:42px; height:42px; border:1px solid var(--dir-line); border-radius:50%; background:#fff; color:var(--dir-violet); font-size:1.35rem; cursor:pointer; }
.save-button.saved { background:#f0ebff; }
.listing-category { margin:24px 0 8px; color:var(--dir-teal); font-size:.68rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.listing-card h2 { margin:0; color:var(--dir-deep); font-size:1.45rem; line-height:1.15; letter-spacing:-.035em; }
.listing-description { color:var(--dir-muted); }
.listing-card dl { display:grid; gap:10px; margin:5px 0 24px; padding:16px 0; border-top:1px solid var(--dir-line); border-bottom:1px solid var(--dir-line); }
.listing-card dl div { display:grid; grid-template-columns:68px 1fr; gap:9px; }
.listing-card dt { color:var(--dir-muted); font-size:.72rem; font-weight:800; text-transform:uppercase; }
.listing-card dd { margin:0; color:#344b60; font-size:.82rem; }
.listing-actions { margin-top:auto; display:grid; gap:10px; }
.directory-button { min-height:46px; display:flex; align-items:center; justify-content:space-between; padding:0 15px; border-radius:12px; background:var(--dir-navy); color:#fff; text-decoration:none; font-weight:800; }
.contact-link { color:var(--dir-muted); font-size:.76rem; text-decoration:none; overflow-wrap:anywhere; }
.directory-empty { padding:50px; border:1px dashed #a7b7c4; border-radius:22px; text-align:center; color:var(--dir-muted); }
.directory-notice { margin-top:45px; padding:20px; border-left:4px solid var(--dir-teal); border-radius:0 14px 14px 0; background:#e3f6f6; color:#37566b; font-size:.86rem; }
.directory-footer { padding:42px 0; background:var(--dir-deep); color:rgba(255,255,255,.62); font-size:.8rem; }
.directory-footer-inner { display:flex; justify-content:space-between; gap:30px; }
@media(max-width:900px){.directory-hero-inner{grid-template-columns:1fr}.directory-search-panel{grid-template-columns:1fr 1fr}.directory-search-panel input{grid-column:1/-1}.directory-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.directory-container{width:min(calc(100% - 28px),1180px)}.directory-nav a:not(.saved-chip){display:none}.directory-hero{padding:72px 0}.directory-search-panel,.directory-grid{grid-template-columns:1fr}.directory-search-panel input{grid-column:auto}.directory-toolbar,.directory-footer-inner{align-items:flex-start;flex-direction:column}.listing-card{min-height:auto}}

