.family-directory-main { min-height: 980px; }
.family-summary { margin: 0 0 28px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.family-summary article { padding: 24px; color: #fff; background: #171313; border-top: 4px solid #a91927; }
.family-summary article:nth-child(2) { background: #a91927; }
.family-summary article:nth-child(3) { color: #2c211f; background: #fff; border: 1px solid #decec6; border-top: 4px solid #a91927; }
.family-summary span { font-family: "Libre Baskerville", Georgia, serif; font-size: 36px; }
.family-summary p { margin: 4px 0 0; color: inherit; opacity: .78; font-size: 10px; }
.family-search { margin-bottom: 26px; padding: 18px 22px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 25px; background: #fff; border: 1px solid #dfd0c8; }
.family-search span { color: #6f5f59; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.family-search input { width: 100%; padding: 10px 0; border: 0; border-bottom: 1px solid #bfaea6; outline: 0; font-size: 14px; }
.family-search input:focus { border-color: #a91927; }
.family-list { display: grid; gap: 18px; }
.family-card { overflow: hidden; background: #fff; border: 1px solid #dfd2ca; box-shadow: 0 18px 45px rgba(66,35,29,.07); }
.family-card-head { padding: 27px 30px; display: grid; grid-template-columns: 1fr auto; gap: 25px; color: #fff; background: linear-gradient(125deg, #171313, #2f1719 65%, #8f1622); }
.family-card-head h2 { margin: 5px 0 10px; color: #fff; font-size: clamp(24px, 3vw, 34px); }
.family-contact-links { display: flex; flex-wrap: wrap; gap: 8px 17px; }
.family-contact-links a, .family-contact-links span { color: #f5d9db; font-size: 11px; }
.family-contact-links .family-care-opt-in { padding: 5px 8px; color: #fff; background: #a91927; border: 1px solid #df6c77; font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.family-card-count { align-self: center; min-width: 90px; text-align: right; }
.family-card-count strong { display: block; font-family: "Libre Baskerville", Georgia, serif; font-size: 32px; }
.family-card-count span { color: #eabfc3; font-size: 9px; }
.family-tributes { display: grid; }
.family-tribute-row { padding: 20px 30px; display: grid; grid-template-columns: minmax(180px, 1fr) auto auto; align-items: center; gap: 22px; border-top: 1px solid #eee3dc; }
.family-tribute-row:first-child { border-top: 0; }
.family-tribute-row h3 { margin: 0 0 5px; font-family: "Libre Baskerville", Georgia, serif; font-size: 17px; font-weight: 400; }
.family-tribute-row p { margin: 0; color: #8a7972; font-size: 9px; }
.family-status { padding: 7px 9px; color: #6a5953; background: #fff5ef; border: 1px solid #e0cec5; font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.family-status-approved { color: #fff; background: #2c1819; border-color: #2c1819; }
.family-status-pending { color: #fff; background: #a91927; border-color: #a91927; }
.family-row-actions { display: grid; justify-items: end; gap: 6px; }
.family-tribute-row a { color: #8f1723; font-size: 10px; font-weight: 700; white-space: nowrap; }
.family-account-connection { margin-top: 7px; display: grid; justify-items: stretch; gap: 6px; min-width: min(330px, 58vw); }
.family-connection-status { color: #7a6963; font-size: 9px; font-weight: 700; text-align: right; text-transform: uppercase; letter-spacing: .06em; }
.family-connection-status.connected { color: #7d1420; }
.family-account-connection select { width: 100%; padding: 9px 10px; color: #2b2220; background: #fff; border: 1px solid #d8c8c0; font: inherit; font-size: 11px; }
.family-account-connection button { padding: 9px 12px; color: #fff; background: #a91927; border: 0; cursor: pointer; font: inherit; font-size: 10px; font-weight: 700; }
.family-account-connection button:disabled { cursor: not-allowed; opacity: .48; }
@media (max-width: 700px) {
  .family-summary { grid-template-columns: 1fr; }
  .family-search { grid-template-columns: 1fr; gap: 8px; }
  .family-card-head { grid-template-columns: 1fr; }
  .family-card-count { text-align: left; }
  .family-tribute-row { grid-template-columns: 1fr; gap: 10px; }
  .family-row-actions { justify-items: start; }
  .family-account-connection { min-width: 0; width: 100%; }
  .family-connection-status { text-align: left; }
}
