:root {
  --pt-gold:#d4a843;
  --pt-gold-light:#f8dd7b;
  --pt-black:#080808;
  --pt-card:#111;
  --pt-border:rgba(212,168,67,.38);
}

.pt-section {
  padding:7rem 4rem;
  background:var(--black,#080808);
  color:#fff;
}
.pt-inner {
  width:min(1180px,100%);
  margin:0 auto;
  text-align:center;
}
.pt-eyebrow {
  margin:0 0 1rem;
  color:var(--gold-mid,var(--pt-gold));
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.34em;
  text-transform:uppercase;
}
.pt-title {
  margin:0;
  color:#fff;
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.2rem,4vw,3.75rem);
  font-weight:300;
  line-height:1.08;
}
.pt-title em {
  color:var(--gold-light,var(--pt-gold-light));
  font-weight:300;
}
.pt-subtitle {
  max-width:650px;
  margin:1.2rem auto 0;
  color:rgba(255,255,255,.72);
  font-size:.82rem;
  line-height:1.9;
}
.pt-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.5rem;
  margin-top:3rem;
  text-align:left;
}
.pt-card {
  min-width:0;
  overflow:hidden;
  border:1px solid var(--border-gold,var(--pt-border));
  background:var(--black-card,var(--pt-card));
  cursor:pointer;
  outline:none;
  transition:transform .25s,border-color .25s,box-shadow .25s;
}
.pt-card:hover,
.pt-card:focus-visible {
  transform:translateY(-4px);
  border-color:var(--gold-light,var(--pt-gold-light));
  box-shadow:0 18px 48px rgba(0,0,0,.32);
}
.pt-card-media {
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  background:#050505;
}
.pt-card-stage,
.pt-card-stage > img,
.pt-card-video-preview {
  width:100%;
  height:100%;
}
.pt-card-stage > img {
  display:block;
  object-fit:cover;
  object-position:center 22%;
}
.pt-card-video-preview {
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 35%,rgba(212,168,67,.22),transparent 42%),
    #090909;
}
.pt-card-video-preview > img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.58;
}
.pt-card-video-preview::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.08) 60%);
}
.pt-video-play {
  position:relative;
  z-index:1;
  width:68px;
  height:68px;
  display:grid;
  place-items:center;
  border:1px solid rgba(248,221,123,.75);
  border-radius:50%;
  background:rgba(0,0,0,.66);
  color:#fff;
  font-size:1.25rem;
  box-shadow:0 10px 35px rgba(0,0,0,.3);
}
.pt-video-label {
  position:absolute;
  z-index:1;
  bottom:1.25rem;
  color:#fff;
  font-size:.62rem;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.pt-media-placeholder {
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 50% 38%,rgba(212,168,67,.17),transparent 40%),
    #090909;
  color:var(--gold-light,var(--pt-gold-light));
  font-family:'Cormorant Garamond',serif;
  font-size:3rem;
}
.pt-card-nav {
  position:absolute;
  z-index:3;
  top:50%;
  width:42px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(212,168,67,.62);
  background:rgba(5,5,5,.82);
  color:#fff;
  cursor:pointer;
  font-family:inherit;
  font-size:1.35rem;
  transform:translateY(-50%);
  transition:background .2s,border-color .2s;
}
.pt-card-nav:hover {
  border-color:var(--gold-light,var(--pt-gold-light));
  background:rgba(179,126,16,.78);
}
.pt-card-prev { left:.75rem; }
.pt-card-next { right:.75rem; }
.pt-card-count {
  position:absolute;
  z-index:3;
  right:.75rem;
  bottom:.75rem;
  padding:.35rem .55rem;
  border:1px solid rgba(212,168,67,.55);
  background:rgba(5,5,5,.82);
  color:#fff;
  font-size:.64rem;
  letter-spacing:.08em;
}
.pt-card-body {
  position:relative;
  min-height:260px;
  display:flex;
  flex-direction:column;
  padding:1.6rem 1.5rem 1.5rem;
}
.pt-card-quote-mark {
  height:1.7rem;
  color:var(--gold,var(--pt-gold));
  font-family:'Cormorant Garamond',serif;
  font-size:2.2rem;
  line-height:1;
}
.pt-card-message {
  display:-webkit-box;
  min-height:6.7rem;
  margin:.35rem 0 1.25rem;
  overflow:hidden;
  color:rgba(255,255,255,.86);
  font-family:'Cormorant Garamond',serif;
  font-size:1.1rem;
  font-style:italic;
  line-height:1.55;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
}
.pt-card-name {
  margin-top:auto;
  color:#fff;
  font-size:.8rem;
  font-weight:400;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.pt-card-tag {
  align-self:flex-start;
  margin-top:.65rem;
  padding:.42rem .62rem;
  border:1px solid rgba(212,168,67,.55);
  color:var(--gold-light,var(--pt-gold-light));
  font-size:.62rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.pt-empty {
  grid-column:1/-1;
  padding:3rem 1rem;
  border:1px solid rgba(212,168,67,.2);
  color:rgba(255,255,255,.64);
  font-family:'Cormorant Garamond',serif;
  font-size:1.2rem;
  font-style:italic;
  text-align:center;
}
.pt-actions {
  margin-top:2.5rem;
}
.pt-all-link {
  display:inline-block;
  padding:.85rem 1.25rem;
  border:1px solid rgba(212,168,67,.6);
  color:var(--gold-light,var(--pt-gold-light));
  font-size:.64rem;
  letter-spacing:.18em;
  text-decoration:none;
  text-transform:uppercase;
  transition:background .2s,border-color .2s;
}
.pt-all-link:hover {
  border-color:var(--gold-light,var(--pt-gold-light));
  background:rgba(179,126,16,.12);
}

.pt-modal {
  position:fixed;
  z-index:10050;
  inset:0;
  display:grid;
  place-items:center;
  padding:2rem;
  background:rgba(0,0,0,.9);
  opacity:0;
  visibility:hidden;
  transition:opacity .22s,visibility .22s;
}
.pt-modal.is-open {
  opacity:1;
  visibility:visible;
}
.pt-modal-dialog {
  position:relative;
  width:min(1180px,96vw);
  max-height:92vh;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(330px,.75fr);
  overflow:hidden;
  border:1px solid var(--border-gold,var(--pt-border));
  background:#101010;
  box-shadow:0 30px 100px rgba(0,0,0,.7);
}
.pt-modal-close {
  position:absolute;
  z-index:5;
  top:1rem;
  right:1rem;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.38);
  background:rgba(5,5,5,.82);
  color:#fff;
  cursor:pointer;
  font-size:1.25rem;
}
.pt-modal-media {
  position:relative;
  min-height:min(78vh,760px);
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#050505;
}
.pt-modal-stage {
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
}
.pt-modal-stage > img {
  width:100%;
  height:100%;
  max-height:92vh;
  display:block;
  object-fit:contain;
}
.pt-modal-stage iframe,
.pt-modal-stage video {
  width:100%;
  height:100%;
  min-height:min(78vh,760px);
  border:0;
  background:#000;
}
.pt-modal-external {
  width:100%;
  height:100%;
  min-height:520px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:1rem;
  color:#fff;
  text-decoration:none;
}
.pt-modal-external span:first-child {
  color:var(--gold-light,var(--pt-gold-light));
  font-size:3rem;
}
.pt-modal-nav {
  position:absolute;
  z-index:4;
  top:50%;
  width:48px;
  height:58px;
  display:grid;
  place-items:center;
  border:1px solid rgba(212,168,67,.65);
  background:rgba(5,5,5,.8);
  color:#fff;
  cursor:pointer;
  font-size:1.5rem;
  transform:translateY(-50%);
}
.pt-modal-prev { left:1rem; }
.pt-modal-next { right:1rem; }
.pt-modal-count {
  position:absolute;
  z-index:4;
  right:1rem;
  bottom:1rem;
  padding:.45rem .65rem;
  border:1px solid rgba(212,168,67,.55);
  background:rgba(5,5,5,.82);
  color:#fff;
  font-size:.68rem;
}
.pt-modal-nav[hidden],
.pt-modal-count[hidden] {
  display:none;
}
.pt-modal-review {
  max-height:92vh;
  overflow:auto;
  padding:4.75rem 2.5rem 2.5rem;
}
.pt-modal-category {
  color:var(--gold-light,var(--pt-gold-light));
  font-size:.65rem;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.pt-modal-stars {
  margin:1.2rem 0;
  color:var(--gold-mid,var(--pt-gold));
  font-size:.72rem;
  letter-spacing:.2em;
}
.pt-modal-message {
  margin:0;
  color:rgba(255,255,255,.9);
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.35rem,2vw,1.8rem);
  font-style:italic;
  line-height:1.55;
  white-space:pre-line;
}
.pt-modal-separator {
  width:58px;
  height:1px;
  margin:2rem 0;
  background:var(--gold-mid,var(--pt-gold));
}
.pt-modal-name {
  color:#fff;
  font-size:.82rem;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.pt-modal-info {
  margin-top:.55rem;
  color:rgba(255,255,255,.62);
  font-size:.74rem;
}
body.pt-modal-open {
  overflow:hidden;
}

@media (max-width:980px) {
  .pt-section { padding:5rem 2rem; }
  .pt-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pt-modal-dialog { grid-template-columns:1fr;overflow:auto; }
  .pt-modal-media { min-height:58vh; }
  .pt-modal-stage iframe,
  .pt-modal-stage video { min-height:58vh; }
  .pt-modal-review { max-height:none;padding:2rem; }
}

@media (max-width:640px) {
  .pt-section { padding:4rem 1.1rem; }
  .pt-grid { grid-template-columns:1fr;gap:1.2rem;margin-top:2.25rem; }
  .pt-card-media { aspect-ratio:4/5; }
  .pt-card-body { min-height:230px;padding:1.4rem 1.25rem; }
  .pt-card-message { min-height:6rem;font-size:1.05rem; }
  .pt-modal { padding:.5rem; }
  .pt-modal-dialog { width:100%;max-height:96vh; }
  .pt-modal-media { min-height:52vh; }
  .pt-modal-stage iframe,
  .pt-modal-stage video { min-height:52vh; }
  .pt-modal-review { padding:2rem 1.35rem; }
  .pt-modal-close { top:.75rem;right:.75rem; }
  .pt-modal-nav { width:42px;height:52px; }
  .pt-modal-prev { left:.6rem; }
  .pt-modal-next { right:.6rem; }
}
