.directory-page { background: var(--ivory); }
.essential-header { background: rgba(18,18,17,.98); }
.directory-return { padding: 12px 18px; color: var(--white); border: 1px solid rgba(255,255,255,.25); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.directory-hero { display:flex; min-height:610px; align-items:flex-end; padding:180px 0 90px; color:var(--white); background:radial-gradient(circle at 76% 18%,rgba(181,138,74,.22),transparent 28%),linear-gradient(135deg,#10100f,#27251f); }
.directory-hero .container { position:relative; }
.directory-hero h1 { max-width:850px; margin:18px 0 22px; font-size:clamp(4rem,7vw,8.5rem); line-height:.88; }
.directory-hero h1 em { color:#d7a75f; }
.directory-hero p { max-width:680px; color:rgba(255,255,255,.7); font-size:1.06rem; }
.directory-count { position:absolute; right:0; bottom:0; display:grid; width:190px; height:190px; place-content:center; border:1px solid rgba(215,167,95,.45); border-radius:50%; text-align:center; }
.directory-count strong { color:#d7a75f; font-family:var(--serif); font-size:5rem; line-height:.8; }
.directory-count span { max-width:110px; margin-top:12px; font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; }
.directory-listing { background:linear-gradient(180deg,#f8f5ef,#eee8de); }
.directory-heading { display:grid; align-items:end; grid-template-columns:1fr minmax(300px,440px); gap:50px; }
.directory-heading h2 { margin-top:8px; font-size:clamp(3.3rem,5vw,6rem); }
.directory-search { display:grid; gap:8px; }
.directory-search span { font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.directory-search input { width:100%; padding:17px 20px; color:var(--ink); border:1px solid rgba(25,23,20,.2); border-radius:2px; background:rgba(255,255,255,.72); font:inherit; }
.directory-filters { display:flex; overflow-x:auto; margin:40px 0 18px; padding-bottom:8px; gap:9px; scrollbar-width:thin; }
.directory-filters button { flex:0 0 auto; padding:11px 16px; color:var(--ink); border:1px solid rgba(25,23,20,.18); border-radius:999px; background:transparent; cursor:pointer; font-size:.72rem; }
.directory-filters button.is-active,.directory-filters button:hover { color:var(--white); background:var(--terracotta); border-color:var(--terracotta); }
.directory-results { margin-bottom:24px; color:rgba(25,23,20,.55); font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.directory-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.directory-card { position:relative; overflow:hidden; min-height:520px; padding:36px; background:rgba(255,255,255,.88); border:1px solid rgba(78,59,38,.12); border-radius:3px 46px 3px 3px; box-shadow:0 20px 54px rgba(50,38,25,.08); transition:transform .35s ease,box-shadow .35s ease; }
.directory-card:hover { transform:translateY(-5px); box-shadow:0 28px 70px rgba(50,38,25,.13); }
.directory-card[hidden] { display:none; }
.directory-card-index { position:absolute; top:25px; right:30px; color:rgba(181,138,74,.45); font-family:var(--serif); font-size:3.4rem; font-style:italic; }
.directory-card-body { display:flex; height:100%; flex-direction:column; }
.directory-card-body > p:first-child { max-width:70%; color:var(--terracotta); font-size:.64rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }
.directory-card-body h2 { max-width:82%; min-height:1.8em; margin:17px 0 14px; font-size:2.7rem; line-height:.9; }
.directory-specialty { min-height:70px; margin-bottom:20px; color:#696158; font-size:.82rem; line-height:1.6; }
.directory-card .essential-rating { display:flex; align-items:baseline; margin:4px 0 22px; gap:8px; }
.directory-card .essential-rating span { color:#b58a4a; letter-spacing:.12em; }
.directory-card .essential-rating strong { font-family:var(--serif); font-size:1.75rem; }
.directory-card .essential-rating small { color:#80786e; }
.directory-card dl { margin-bottom:24px; }
.directory-card dd { font-size:.78rem; }
.directory-card dd a { color:var(--ink); font-weight:700; }
.directory-card-link { display:inline-block; margin-top:auto; color:var(--terracotta); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.directory-empty { padding:70px 20px; text-align:center; }
.directory-claim { padding:80px 0; color:var(--white); background:#20201b; }
.directory-claim .container { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.directory-claim h2 { margin:10px 0; font-size:clamp(3rem,5vw,5.5rem); }
.directory-claim p { max-width:720px; color:rgba(255,255,255,.68); }
@media(max-width:1000px){.directory-count{position:static;width:150px;height:150px;margin-top:35px}.directory-heading{grid-template-columns:1fr}.directory-grid{grid-template-columns:1fr}}
@media(max-width:700px){.directory-return{display:none}.directory-hero{min-height:680px;padding:150px 0 70px}.directory-hero h1{font-size:clamp(3.7rem,16vw,5.7rem)}.directory-heading{gap:24px}.directory-card{min-height:500px;padding:30px 24px}.directory-card-body h2{font-size:2.35rem}.directory-claim .container{align-items:flex-start;flex-direction:column}}
