:root{
  --ps-primary:#0891B2;
  --ps-text:#0b1220;
  --ps-muted:#64748b;
  --ps-border:#e5e7eb;
  --ps-bg:#ffffff;
  --ps-shadow: 0 10px 20px rgba(0,0,0,.06);
}
.ps-heading{margin:0 0 1rem 0; font-size:clamp(1.4rem, 2.5vw, 2rem)}
.ps-card{/*background:#fff; border:1px solid var(--ps-border);*/ border-radius:1rem; overflow:hidden; box-shadow: 0 1px 2px rgba(0,0,0,.03)}
.ps-media{display:block; width:100%; padding:0; border:0; background:transparent; cursor:pointer}
.ps-img, .ps-placeholder{display:block; width:100%; background:#f1f5f9; background-size:cover; background-position:center;}
.ratio-1x1{aspect-ratio:1/1}
.ratio-4x3{aspect-ratio:4/3}
.ratio-16x9{aspect-ratio:16/9}
.ps-body{padding:1rem 1rem 1.25rem}
.ps-title{
	margin: .2rem 0 .4rem;
	font-size: 1.1rem; color:#fff;
}
.ps-brief{
	margin: 0 0 .75rem 0; /*color:var(--ps-muted)*/
	color: #fff;
}
.ps-actions{display:flex; align-items:center; gap:.75rem}
.ps-btn{display:inline-flex; align-items:center; justify-content:center; padding:.55rem .9rem; border-radius:.6rem; background:var(--ps-primary); color:#fff; border:1px solid transparent; font-weight:600}
.ps-btn:hover{opacity:.95}
.ps-link{font-size:.9rem; color:var(--ps-muted)}

/* Modal */
.ps-modal{position:fixed; inset:0; display:none; z-index:9999}
.ps-modal[aria-hidden="false"]{display:block}
.ps-modal__overlay{position:absolute; inset:0; background:rgba(2,6,23,.6);}
.ps-modal__dialog{position:relative; background:var(--ps-bg); border-radius:1rem; max-width:min(920px, 92vw); margin:6vh auto; box-shadow: var(--ps-shadow); overflow:hidden}
.ps-modal__close{position:absolute; top:.5rem; right:.75rem; font-size:1.8rem; line-height:1; border:0; background:transparent; color:#334155; cursor:pointer}
.ps-modal__media img{width:100%; display:block}
.ps-modal__content{padding:1rem 1.25rem 1.5rem}
.ps-modal__content h3{margin:.25rem 0 .5rem}
.ps-modal__text{color:#334155}
@media (min-width: 900px){
  .ps-modal__dialog{display:grid; grid-template-columns: 1fr 1fr}
  .ps-modal__media{height:100%}
  .ps-modal__media img{height:100%; object-fit:cover}
}

/* Carousel */
.ps-viewport{position:relative}
.ps-track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns: minmax(240px, 1fr);
  gap:1rem;
  overflow:hidden;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  padding-bottom:.25rem;
}
.ps-track > .ps-card{scroll-snap-align:start}
@media (min-width: 1100px){ .ps-track{grid-auto-columns: calc((100% - 3rem)/4);} } /* 4 on desktop */
@media (min-width: 700px) and (max-width: 1099.98px){ .ps-track{grid-auto-columns: calc((100% - 2rem)/3);} }
@media (min-width: 480px) and (max-width: 699.98px){ .ps-track{grid-auto-columns: calc((100% - 1rem)/2);} }
@media (max-width: 479.98px){ .ps-track{grid-auto-columns: 100%;} }
.ps-carousel-controls{ display:flex; justify-content:space-between; align-items:center; gap:1rem; margin:.5rem 0 0; }
.ps-ctrl{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.55rem .9rem; border-radius:.6rem; /*background:var(--ps-primary);*/ color:#fff; border:1px solid transparent; font-weight:600 }
.ps-ctrl[disabled]{opacity:.45; cursor:not-allowed}
.ps-ctrl svg{width:1em; height:1em; flex:0 0 auto}
.ps-track:focus{outline:2px solid var(--ps-primary); outline-offset:2px}
