:root{
  --directory-ink:#17233b;
  --directory-heading:#0d1930;
  --directory-muted:#5f6f84;
  --directory-blue:#2f64a3;
  --directory-blue-dark:#234f82;
  --directory-gold:#bd8933;
  --directory-bg:#f3eee6;
  --directory-surface:#fffdfa;
  --directory-border:#dfe5ec;
  --directory-shadow:0 16px 42px rgba(25,44,70,.09);
}
body.zen-directory-page{
  color:var(--directory-ink);
  background:var(--directory-bg);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;
}
.zen-directory-page h1,.zen-directory-page h2,.zen-directory-page h3{
  color:var(--directory-heading);
  font-family:"Playfair Display",Georgia,serif;
}
.directory-shell{max-width:1180px}
.directory-hero,.zen-directory-page .search-page-hero{
  position:relative;
  overflow:hidden;
  padding:clamp(1.5rem,4vw,3rem);
  background:
    radial-gradient(620px 260px at 92% 0%,rgba(47,100,163,.16),transparent 68%),
    radial-gradient(520px 240px at 0 100%,rgba(189,137,51,.16),transparent 70%),
    linear-gradient(145deg,#fff,#f5f8fc);
  border:1px solid rgba(23,35,59,.09);
  border-radius:28px;
  box-shadow:var(--directory-shadow);
}
.directory-kicker,.zen-directory-page .search-page-kicker,.zen-directory-page .search-kicker{
  display:inline-flex;align-items:center;gap:.48rem;margin-bottom:.7rem;
  color:#805a1f;font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
}
.directory-hero h1,.zen-directory-page .search-page-hero h1,.zen-directory-page .search-hero h1{
  max-width:820px;margin-bottom:.65rem;font-size:clamp(2rem,5vw,3.55rem);font-weight:700;line-height:1.06;
}
.directory-lead{max-width:760px;color:var(--directory-muted);font-size:clamp(1rem,2vw,1.12rem);line-height:1.65}
.directory-search-box{margin-top:1.5rem;padding:1rem;background:rgba(255,255,255,.86);border:1px solid rgba(23,35,59,.09);border-radius:20px;box-shadow:0 12px 30px rgba(25,44,70,.07)}
.directory-search-form label,.zen-directory-page form label{color:#43536a!important;font-size:.9rem!important;font-weight:700}
.directory-search-form .form-control,.directory-search-form .form-select,
.zen-directory-page .search-page-hero .form-control,.zen-directory-page .search-page-hero .form-select{
  min-height:54px;border:1px solid #d6dee8;border-radius:13px;background:#fff;color:var(--directory-ink);font-size:1rem;
}
.directory-search-form .form-control:focus,.directory-search-form .form-select:focus,
.zen-directory-page .form-control:focus,.zen-directory-page .form-select:focus{
  border-color:var(--directory-blue);box-shadow:0 0 0 4px rgba(47,100,163,.14);
}
.directory-search-form .btn,.zen-directory-page .search-page-hero .btn-primary{
  min-height:54px;border-radius:13px;background:var(--directory-blue);border-color:var(--directory-blue);font-weight:750;font-size:1rem;
}
.directory-search-form .btn:hover,.directory-search-form .btn:focus,.zen-directory-page .search-page-hero .btn-primary:hover{
  background:var(--directory-blue-dark);border-color:var(--directory-blue-dark);
}
.directory-results{margin-top:2rem}
.directory-results-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.directory-section-label,.zen-directory-page .section-label{color:var(--directory-blue);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.directory-results-head h2{margin:0;font-size:clamp(1.55rem,3vw,2.1rem)}
.directory-count{display:inline-flex;align-items:center;gap:.4rem;min-height:40px;padding:.45rem .85rem;border:1px solid var(--directory-border);border-radius:999px;background:rgba(255,255,255,.75);color:var(--directory-muted);white-space:nowrap}
.directory-count strong{color:var(--directory-heading)}
.directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.directory-result-card,.directory-person-result,.directory-funeral-card{
  position:relative;display:flex;align-items:center;gap:1rem;min-height:116px;padding:1.1rem;color:inherit;text-decoration:none;
  background:var(--directory-surface);border:1px solid rgba(23,35,59,.09);border-radius:20px;box-shadow:0 9px 25px rgba(25,44,70,.065);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.directory-result-card:hover,.directory-person-result:hover,.directory-funeral-card:hover,
.directory-result-card:focus-visible,.directory-person-result:focus-visible,.directory-funeral-card:focus-visible{
  color:inherit;transform:translateY(-2px);border-color:rgba(47,100,163,.34);box-shadow:0 15px 34px rgba(25,44,70,.12);outline:0;
}
.directory-avatar{width:70px;height:70px;flex:0 0 70px;display:grid;place-items:center;overflow:hidden;border-radius:18px;background:#eaf0f6;color:#36516f;font-size:1.05rem;font-weight:800}
.directory-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.directory-card-content{min-width:0;flex:1}
.directory-card-title{margin:0 0 .35rem;color:var(--directory-heading);font-family:Inter,system-ui,sans-serif!important;font-size:1.05rem;font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.directory-card-meta{display:flex;flex-wrap:wrap;gap:.35rem .85rem;color:var(--directory-muted);font-size:.9rem;line-height:1.5}
.directory-card-meta span{display:inline-flex;align-items:center;gap:.35rem}
.directory-card-arrow{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:#eef4fa;color:var(--directory-blue)}
.directory-badge{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.45rem;padding:.3rem .6rem;border-radius:999px;background:#fff1d4;color:#76521a;font-size:.76rem;font-weight:800}
.directory-funeral-card.is-partner{border-color:rgba(189,137,51,.45);background:linear-gradient(135deg,#fffdfa,#fff8e8)}
.directory-empty{padding:clamp(2rem,6vw,4rem);text-align:center;background:rgba(255,255,255,.78);border:1px solid var(--directory-border);border-radius:22px}
.directory-empty-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 1rem;border-radius:18px;background:#eaf1f8;color:var(--directory-blue);font-size:1.45rem}
.zen-directory-page .pagination{gap:.35rem;margin-top:1.6rem}
.zen-directory-page .pagination .page-link{display:grid;place-items:center;min-width:44px;min-height:44px;padding:.5rem;border:1px solid var(--directory-border);border-radius:12px!important;color:var(--directory-blue);background:#fff}
.zen-directory-page .pagination .active>.page-link{color:#fff;background:var(--directory-blue);border-color:var(--directory-blue)}
.zen-directory-page .pagination .page-link:focus{box-shadow:0 0 0 4px rgba(47,100,163,.14)}
.zen-directory-page .search-person-card{display:flex;align-items:center;gap:1rem;min-height:128px;padding:1.1rem;background:var(--directory-surface);border:1px solid rgba(23,35,59,.09);border-radius:20px;box-shadow:0 9px 25px rgba(25,44,70,.065);cursor:pointer;transition:.18s ease}
.zen-directory-page .search-person-card:hover,.zen-directory-page .search-person-card:focus-visible{transform:translateY(-2px);border-color:rgba(47,100,163,.34);box-shadow:0 15px 34px rgba(25,44,70,.12);outline:0}
.zen-directory-page .search-person-avatar{width:82px;height:82px;flex:0 0 82px;border-radius:20px;overflow:hidden;display:grid;place-items:center;background:#eaf0f6;color:#36516f;font-weight:800}
.zen-directory-page .search-person-avatar img{width:100%;height:100%;object-fit:cover}
.zen-directory-page .search-person-info{min-width:0;flex:1}
.zen-directory-page .search-person-name{color:var(--directory-heading);font-size:1.08rem;font-weight:800}
.zen-directory-page .search-person-meta{display:flex;flex-wrap:wrap;gap:.35rem .9rem;margin-top:.4rem;color:var(--directory-muted);font-size:.9rem}
.zen-directory-page .search-person-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}
.zen-directory-page .search-person-actions .btn{min-height:40px;display:inline-flex;align-items:center;border-radius:999px;padding:.45rem .85rem;font-weight:650}
.zen-directory-page .search-person-card.has-eternal{border-color:rgba(189,137,51,.42);background:linear-gradient(135deg,#fffdfa,#fff8e9)}
.zen-directory-page .cemetery-card{min-height:116px;border-radius:20px;padding:1.1rem;background:var(--directory-surface);box-shadow:0 9px 25px rgba(25,44,70,.065)}
.zen-directory-page .cemetery-card-icon{width:48px;height:48px;border-radius:15px}
.zen-directory-page .cemetery-card-title{font-size:1.02rem;font-weight:800}
.zen-directory-page .cemetery-card-location{font-size:.9rem}
.zen-directory-page .search-hero{max-width:1180px;margin:2rem auto 0;padding:clamp(1.8rem,5vw,3.4rem);border:1px solid rgba(23,35,59,.09);border-radius:28px;box-shadow:var(--directory-shadow)}
.zen-directory-page .search-panel{max-width:900px;margin:-1.6rem auto 0;border-radius:20px}
.zen-directory-page .content-wrap{padding-top:2rem}
@media(max-width:767.98px){
  .directory-grid{grid-template-columns:1fr}
  .directory-results-head{align-items:flex-start;flex-direction:column}
  .directory-hero,.zen-directory-page .search-page-hero{border-radius:22px;padding:1.35rem}
  .directory-search-box{padding:.8rem;margin-top:1.1rem}
  .zen-directory-page .search-hero{margin:1rem .75rem 0;border-radius:22px;padding:2rem 1.2rem 4.6rem}
  .zen-directory-page .search-panel{margin:-3.5rem .75rem 0}
  .directory-result-card,.directory-person-result,.directory-funeral-card{align-items:flex-start;padding:1rem}
  .directory-avatar{width:60px;height:60px;flex-basis:60px;border-radius:16px}
  .zen-directory-page .search-person-card{align-items:flex-start;padding:1rem}
  .zen-directory-page .search-person-avatar{width:68px;height:68px;flex-basis:68px;border-radius:17px}
  .zen-directory-page .search-person-actions .btn{flex:1 1 150px;justify-content:center}
}
@media(prefers-reduced-motion:reduce){.directory-result-card,.directory-person-result,.directory-funeral-card,.zen-directory-page .search-person-card{transition:none}}
