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

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

.ptr-market-directory__header { max-width: 820px; margin-bottom: 28px; }
.ptr-market-directory__eyebrow { margin: 0 0 8px; color: var(--ptr-market-purple); font-size: 14px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.ptr-market-directory__header h1 { margin: 0; color: var(--ptr-market-teal); font-size: clamp(36px, 5vw, 58px); font-weight: 900; line-height: 1.03; }
.ptr-market-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-market-directory__markets { display: grid; gap: 16px; }
.ptr-market-directory__market { scroll-margin-top: 120px; overflow: hidden; border: 1px solid var(--ptr-market-line); border-radius: 10px; background: #fff; box-shadow: 0 10px 25px rgba(24, 92, 107, .07); }
.ptr-market-directory__market > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; border-left: 6px solid var(--ptr-market-gold); color: var(--ptr-market-teal); cursor: pointer; list-style: none; }
.ptr-market-directory__market > summary::-webkit-details-marker { display: none; }
.ptr-market-directory__market > summary span { font-size: clamp(22px, 3vw, 30px); font-weight: 900; line-height: 1.15; }
.ptr-market-directory__market > summary small { margin-left: auto; color: var(--ptr-market-purple); font-size: 12px; font-weight: 900; letter-spacing: .04em; text-align: right; text-transform: uppercase; }
.ptr-market-directory__market > summary::after { content: "+"; flex: 0 0 auto; color: var(--ptr-market-gold); font-size: 28px; font-weight: 900; }
.ptr-market-directory__market[open] > summary { border-bottom: 1px solid var(--ptr-market-line); background: #f6fafb; }
.ptr-market-directory__market[open] > summary::after { content: "−"; }
.ptr-market-directory__market-body { display: grid; gap: 24px; padding: clamp(20px, 4vw, 36px); }
.ptr-market-directory__market-description { max-width: 820px; margin: 0; color: #52666f; font-size: 17px; font-weight: 600; line-height: 1.5; }

.ptr-market-directory__programs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ptr-market-program-card { display: flex; flex-direction: column; min-width: 0; min-height: 220px; padding: 20px; border: 1px solid var(--ptr-market-line); border-top: 4px solid var(--ptr-market-gold); border-radius: 9px; background: #fff; box-shadow: 0 8px 20px rgba(24, 92, 107, .07); }
.ptr-market-program-card__eyebrow { margin: 0 0 8px; color: var(--ptr-market-purple); font-size: 11px; font-weight: 900; letter-spacing: .07em; line-height: 1.2; text-transform: uppercase; }
.ptr-market-program-card h2 { margin: 0; font-size: clamp(19px, 2vw, 23px); font-weight: 900; line-height: 1.15; }
.ptr-market-program-card h2 a { color: var(--ptr-market-teal); text-decoration: none; }
.ptr-market-program-card h2 a:hover,
.ptr-market-program-card h2 a:focus-visible { color: var(--ptr-market-purple); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.ptr-market-program-card__description { margin: 12px 0 18px; color: #52666f; font-size: 14px; font-weight: 600; line-height: 1.5; }
.ptr-market-program-card__link { display: inline-flex; align-items: center; gap: 7px; width: fit-content; margin-top: auto; color: var(--ptr-market-purple); font-size: 13px; font-weight: 900; line-height: 1.2; text-decoration: none; }
.ptr-market-program-card__link span { color: var(--ptr-market-gold); font-size: 17px; }
.ptr-market-program-card__link:hover,
.ptr-market-program-card__link:focus-visible { color: var(--ptr-market-teal); }

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

@media (max-width: 680px) {
  .ptr-market-directory__market > summary { align-items: flex-start; padding: 17px 18px; }
  .ptr-market-directory__market > summary small { display: none; }
  .ptr-market-directory__market-body { padding: 18px; }
  .ptr-market-directory__programs { grid-template-columns: 1fr; }
  .ptr-market-program-card { min-height: 0; }
}
