/* Tokens (unchanged) */
.cptv-wrap{
  --cptv-radius-sm:8px;
  --cptv-radius-md:12px;
  --cptv-radius-lg:18px;

  --cptv-shadow-1:0 6px 18px rgba(0,0,0,.08);
  --cptv-shadow-2:0 12px 34px rgba(0,0,0,.14);
  --cptv-shadow-3:0 30px 80px rgba(0,0,0,.40);

  --cptv-surface:#fff;
}

/* Make the HERO the only rounded/shadowed card */
.cptv-hero{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:40px;
  align-items:start;

  background:var(--cptv-surface);
  padding:28px;                 /* inner spacing for both columns */
  border-radius:var(--cptv-radius-lg);
  box-shadow:var(--cptv-shadow-2);
  overflow:hidden;              /* clip inner corners */
}
@media (max-width:980px){ .cptv-hero{ grid-template-columns:1fr; }}

/* INNER elements lose radius/shadows (let the hero card handle that) */
.cptv-video-thumb{
  position:relative; width:100%; aspect-ratio:16/9; overflow:hidden;
  border-radius:0;               /* reset */
  box-shadow:none;               /* reset */
}
.cptv-video-thumb img{width:100%;height:100%;object-fit:cover;display:block; border-radius:var(--cptv-radius-lg);}

.cptv-hero__content{
  background:transparent;        /* reset */
  padding:0;                     /* hero padding already gives breathing room */
  border-radius:0;               /* reset */
  box-shadow:none;               /* reset */
}

.cptv-play,.cptv-play.small{
  position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%);
  width:88px;height:60px;border-radius:var(--cptv-radius-md);
  background:rgba(255,255,255,.94); box-shadow:var(--cptv-shadow-1);
}
.cptv-play::before,.cptv-play.small::before{
  content:""; position:absolute; left:36px; top:18px;
  border-left:22px solid #e62117; border-top:12px solid transparent; border-bottom:12px solid transparent;
}
.cptv-play.small{width:60px;height:40px;}
.cptv-play.small::before{left:24px;top:10px;border-left-width:16px;border-top-width:10px;border-bottom-width:10px;}

/* Content panel (card, no borders) */

.cptv-title{margin:0 0 12px;font-weight:800;letter-spacing:.4px;}
.cptv-meta{opacity:.7;margin-bottom:20px;}
.cptv-entry-content{line-height:1.7;}
.cptv-hero__content a{box-shadow:none;} /* ensure no theme link borders */

/* Related carousel (cards with lift on hover) */
.cptv-related{margin-top:56px;}
.cptv-carousel{position:relative;}
.cptv-carousel__track{
  display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; padding:8px 2px;
  -webkit-overflow-scrolling:touch;
}
.cptv-card{
  min-width:300px; max-width:340px; scroll-snap-align:start; background:#fff;
  border-radius:var(--cptv-radius-md); overflow:hidden;
  box-shadow:var(--cptv-shadow-1);
  transition:transform .25s ease, box-shadow .25s ease;
}
.cptv-card:hover{ transform:translateY(-2px); box-shadow:var(--cptv-shadow-2); }
.cptv-card__thumb{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#000;}
.cptv-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.cptv-card__thumb.is-video .cptv-play.small{pointer-events:none;}
.cptv-card__meta{padding:12px 10px 16px;}
.cptv-kicker{display:block;font-size:12px;text-transform:uppercase;opacity:.6;margin-bottom:6px;}
.cptv-card__title{font-size:16px;margin:0 0 8px;}
.cptv-card__date{display:inline-block;font-size:12px;opacity:.6;margin-right:10px;}
.cptv-card__cta{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.5px;}

/* Carousel nav (clean, floating pills, no borders) */
.cptv-carousel__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px;height:44px;border-radius:999px;border:0; cursor:pointer;
  background:rgba(255,255,255,.96);
  box-shadow:var(--cptv-shadow-1);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
  backdrop-filter:saturate(160%) blur(8px);
}
.cptv-carousel__nav:hover{ transform:translateY(-50%) scale(1.06); box-shadow:var(--cptv-shadow-2); }
.cptv-carousel__nav.prev{left:-8px;}
.cptv-carousel__nav.next{right:-8px;}
.cptv-carousel__nav:focus-visible{ outline:0; box-shadow:0 0 0 3px rgba(0,122,255,.35), var(--cptv-shadow-2); }

/* Modal (rounded, deep shadow) */
.cptv-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:10000;}
.cptv-modal.is-open{display:flex;}
.cptv-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.85);}
.cptv-modal__dialog{
  position:relative; width:min(100vw - 32px, 1100px);
  border-radius:var(--cptv-radius-lg);
  box-shadow:var(--cptv-shadow-3);
  transform:translateY(8px) scale(.985); opacity:.98;
  animation:cptv-pop .28s ease-out both;
}
@keyframes cptv-pop{
  to{ transform:translateY(0) scale(1); opacity:1; }
}
@media (prefers-reduced-motion:reduce){
  .cptv-modal__dialog{ animation:none; transform:none; }
}

/* Floating close button (outside corner, soft shadow) */
.cptv-modal__close{
  position:absolute; right:-10px; top:-10px; width:42px; height:42px; border:0;
  border-radius:999px; background:#fff; font-size:24px; line-height:1; cursor:pointer;
  box-shadow:var(--cptv-shadow-2);
  display:grid; place-items:center;
}
.cptv-modal__close:hover{ transform:scale(1.05); }
.cptv-modal__close:focus-visible{ outline:0; box-shadow:0 0 0 3px rgba(0,122,255,.35), var(--cptv-shadow-2); }

.cptv-modal__frame{width:100%;aspect-ratio:16/9;background:#000;overflow: hidden;border-radius: 20px !important;}
.cptv-modal__frame iframe{width:100%;height:100%;border:0;display:block;}
