.ptr-format-directory {
  --ptr-format-teal: #185c6b;
  --ptr-format-purple: #96588a;
  --ptr-format-gold: #e9a825;
  --ptr-format-gold-soft: #fff6dc;
  --ptr-format-ink: #263f49;
  --ptr-format-line: #cfe1e5;
  max-width: 1440px;
  margin: 0 auto;
  color: var(--ptr-format-ink);
}

.ptr-format-directory *,
.ptr-format-directory *::before,
.ptr-format-directory *::after { box-sizing: border-box; }

.ptr-format-directory__header { max-width: 850px; margin-bottom: 28px; }
.ptr-format-directory__eyebrow { margin: 0 0 8px; color: var(--ptr-format-purple); font-size: 14px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.ptr-format-directory__header h1 { margin: 0; color: var(--ptr-format-teal); font-size: clamp(36px, 5vw, 58px); font-weight: 900; line-height: 1.03; }
.ptr-format-directory__header > p:last-child { margin: 14px 0 0; color: #52666f; font-size: clamp(17px, 2vw, 20px); font-weight: 650; line-height: 1.45; }

.ptr-format-directory__families { display: grid; gap: 16px; }
.ptr-format-directory__family { overflow: hidden; border: 1px solid var(--ptr-format-line); border-radius: 10px; background: #fff; box-shadow: 0 10px 25px rgba(24, 92, 107, .07); }
.ptr-format-directory__family > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; border-left: 6px solid var(--ptr-format-gold); color: var(--ptr-format-teal); cursor: pointer; list-style: none; }
.ptr-format-directory__family > summary::-webkit-details-marker { display: none; }
.ptr-format-directory__family > summary span { font-size: clamp(22px, 3vw, 30px); font-weight: 900; line-height: 1.15; }
.ptr-format-directory__family > summary small { margin-left: auto; color: var(--ptr-format-purple); font-size: 12px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.ptr-format-directory__family > summary::after { content: "+"; flex: 0 0 auto; color: var(--ptr-format-gold); font-size: 28px; font-weight: 900; }
.ptr-format-directory__family[open] > summary { border-bottom: 1px solid var(--ptr-format-line); background: #f6fafb; }
.ptr-format-directory__family[open] > summary::after { content: "−"; }
.ptr-format-directory__family-body { padding: clamp(18px, 3vw, 30px); }
.ptr-format-directory__family-intro { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.ptr-format-directory__family-intro p { max-width: 760px; margin: 0; color: #52666f; font-size: 16px; font-weight: 600; line-height: 1.5; }
.ptr-format-directory__family-intro a { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; color: var(--ptr-format-teal); font-size: 14px; font-weight: 900; text-decoration: none; }
.ptr-format-directory__family-intro a span { color: var(--ptr-format-gold); font-size: 22px; }
.ptr-format-directory__family-intro a:hover,
.ptr-format-directory__family-intro a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }

.ptr-format-directory__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ptr-format-directory__card { display: grid; grid-template-columns: 116px minmax(0, 1fr) auto; align-items: center; gap: 14px; min-width: 0; padding: 12px; border: 1px solid var(--ptr-format-line); border-top: 3px solid var(--ptr-format-gold); border-radius: 9px; background: #fff; color: var(--ptr-format-ink); text-decoration: none; box-shadow: 0 7px 18px rgba(24, 92, 107, .06); }
.ptr-format-directory__card:hover,
.ptr-format-directory__card:focus-visible { border-color: var(--ptr-format-gold); background: var(--ptr-format-gold-soft); transform: translateY(-1px); }
.ptr-format-directory__image { display: grid; place-items: center; width: 116px; height: 96px; overflow: hidden; padding: 4px; border-radius: 7px; background: #f4f7f8; }
.ptr-format-directory__image img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; mix-blend-mode: multiply; }
.ptr-format-directory__placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: var(--ptr-format-purple); font-size: 34px; font-weight: 900; }
.ptr-format-directory__card-copy { display: grid; gap: 4px; min-width: 0; }
.ptr-format-directory__card-copy strong { color: var(--ptr-format-ink); font-size: 17px; font-weight: 900; line-height: 1.2; }
.ptr-format-directory__card-copy small { color: var(--ptr-format-purple); font-size: 11px; font-style: normal; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.ptr-format-directory__card-copy em { overflow: hidden; color: #60747c; font-size: 12px; font-style: normal; font-weight: 650; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.ptr-format-directory__arrow { color: var(--ptr-format-gold); font-size: 28px; font-weight: 900; }

@media (max-width: 1080px) {
  .ptr-format-directory__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .ptr-format-directory__family > summary { align-items: flex-start; padding: 17px 18px; }
  .ptr-format-directory__family > summary small { display: none; }
  .ptr-format-directory__family-intro { align-items: flex-start; flex-direction: column; }
  .ptr-format-directory__grid { grid-template-columns: 1fr; }
  .ptr-format-directory__card { grid-template-columns: 92px minmax(0, 1fr) auto; }
  .ptr-format-directory__image { width: 92px; height: 80px; }
  .ptr-format-directory__card-copy em { white-space: normal; }
}
