/* =========================
   PSC Feature Cards Pro
   ========================= */

:root{
  --pscfc-accent: #1E2DAA;
}

/* GRID */
.pscfc-grid{
  display:grid;
  gap:24px;
  align-items:stretch;
}
.pscfc-cols-1{ grid-template-columns: 1fr; }
.pscfc-cols-2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
.pscfc-cols-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
.pscfc-cols-4{ grid-template-columns: repeat(4, minmax(0,1fr)); }
.pscfc-cols-5{ grid-template-columns: repeat(5, minmax(0,1fr)); }
.pscfc-cols-6{ grid-template-columns: repeat(6, minmax(0,1fr)); }

@media (max-width: 1024px){
  .pscfc-cols-4,.pscfc-cols-5,.pscfc-cols-6{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 767px){
  .pscfc-grid{ grid-template-columns: 1fr !important; }
}

/* CARD */
.pscfc-card{
  background:#fff;
  border:1px solid #E6E8EF;
  border-radius:20px;
  overflow:hidden;
  box-shadow: 0 10px 30px rgba(16,24,40,.08);
}

.pscfc-card__link{
  display:flex;
  flex-direction:column;
  height:100%;
  text-decoration:none;
  color:inherit;
  outline:none;
}

.pscfc-card__media{
  position:relative;
  aspect-ratio: 16/10;
  background:#f1f5f9;
}

.pscfc-card__img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.pscfc-card__img--ph{
  width:100%;
  height:100%;
  background: linear-gradient(135deg, #eef2ff, #f8fafc);
}

.pscfc-card__shade{
  position:absolute;
  inset:0;
  background: linear-gradient(to bottom, rgba(15,23,42,0) 45%, rgba(15,23,42,.55));
  opacity:.9;
  pointer-events:none;
}

.pscfc-card__badge{
  position:absolute;
  left:14px;
  top:14px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  padding:8px 10px;
  border-radius:999px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(230,232,239,.9);
  color:#0f172a;
  backdrop-filter: blur(6px);
}

.pscfc-card__body{
  padding:18px 18px 20px;
  text-align:center;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.pscfc-card__title{
  margin:0;
  font-size: clamp(18px, 1.3vw + 14px, 22px);
  line-height:1.2;
  font-weight:900;
  letter-spacing:-0.02em;
  color:#0f172a;
}

.pscfc-card__desc{
  margin:0 auto;
  max-width: 46ch;
  color:#667085;
  font-size:15px;
  line-height:1.7;
}

.pscfc-card__arrow{
  margin: 6px auto 0;
  width:44px;
  height:44px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid var(--pscfc-accent);
  color: var(--pscfc-accent);
  font-weight:900;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

/* Hover styles */
.pscfc-hover-lift .pscfc-card{
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.pscfc-hover-lift .pscfc-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 50px rgba(16,24,40,.14);
  border-color: color-mix(in oklab, var(--pscfc-accent) 28%, #E6E8EF);
}
.pscfc-hover-lift .pscfc-card:hover .pscfc-card__arrow{
  background: var(--pscfc-accent);
  color:#fff;
  transform: scale(1.04);
}

.pscfc-hover-shake .pscfc-card{
  transition: box-shadow .22s ease, border-color .22s ease;
}
.pscfc-hover-shake .pscfc-card:hover{
  box-shadow: 0 18px 50px rgba(16,24,40,.14);
  border-color: color-mix(in oklab, var(--pscfc-accent) 28%, #E6E8EF);
  animation: pscfcShake .32s ease-in-out both;
}
@keyframes pscfcShake{
  0%{ transform: translateX(0); }
  20%{ transform: translateX(-2px); }
  40%{ transform: translateX(2px); }
  60%{ transform: translateX(-2px); }
  80%{ transform: translateX(2px); }
  100%{ transform: translateX(0); }
}

.pscfc-empty{
  padding:16px;
  border:1px dashed #CBD5E1;
  border-radius:16px;
  color:#475569;
  background:#fff;
}

/* =========================
   SINGLE PAGE (Professional)
   ========================= */

.pscfc-single{
  background: #F8FAFC;
  padding: 60px 16px;
}

.pscfc-single__container{
  max-width: 1100px;
  margin: 0 auto;
}

.pscfc-single__top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}

.pscfc-single__crumb{
  color:#64748b;
  font-size:14px;
}

.pscfc-single__title{
  margin:6px 0 0;
  font-size: clamp(28px, 2vw + 18px, 40px);
  line-height:1.1;
  letter-spacing:-0.03em;
  font-weight: 950;
  color:#0f172a;
}

.pscfc-single__layout{
  display:grid;
  grid-template-columns: 1.35fr .65fr;
  gap:24px;
}

@media (max-width: 950px){
  .pscfc-single__layout{ grid-template-columns: 1fr; }
}

.pscfc-single__panel{
  background:#fff;
  border:1px solid #E6E8EF;
  border-radius:22px;
  overflow:hidden;
  box-shadow: 0 18px 52px rgba(16,24,40,.10);
}

.pscfc-single__media{
  aspect-ratio: 16/9;
  background:#EEF2FF;
}
.pscfc-single__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.pscfc-single__body{
  padding: 22px 22px 6px;
  color:#334155;
  font-size:16px;
  line-height:1.9;
}

.pscfc-single__body p{
  margin: 0 0 14px;
}

.pscfc-single__sidebar{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.pscfc-box{
  background:#fff;
  border:1px solid #E6E8EF;
  border-radius:22px;
  padding:18px;
  box-shadow: 0 18px 52px rgba(16,24,40,.08);
}

.pscfc-box__label{
  color:#64748b;
  font-size:13px;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
  margin-bottom:8px;
}

.pscfc-callbtn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  padding: 14px 16px;
  border-radius: 999px;
  text-decoration:none;
  background: var(--pscfc-accent);
  color:#fff;
  font-weight:900;
  border:2px solid var(--pscfc-accent);
  transition: transform .2s ease, box-shadow .2s ease;
}

.pscfc-callbtn:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 30px color-mix(in oklab, var(--pscfc-accent) 22%, transparent);
}

.pscfc-linkbtn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  padding: 12px 16px;
  border-radius: 999px;
  text-decoration:none;
  background:#fff;
  color: var(--pscfc-accent);
  font-weight:900;
  border:2px solid var(--pscfc-accent);
}

.pscfc-related{
  margin-top: 26px;
}
.pscfc-related__title{
  margin: 0 0 14px;
  font-size: 20px;
  font-weight: 950;
  color:#0f172a;
}