
body.post-type-archive-stage .hero-section[data-type=type-1] .page-description,
body.post-type-archive-stage .ct-archive-description,
body.post-type-archive-stage .ct-archive-description > * {
  width: 100%;
  max-width: 100%;
}

body.post-type-archive-stage .hero-section[data-type=type-1] .page-description {
  display: block;
  flex: 0 0 100%;
}

.psat-wrap {
  --psat-border: #80734b;
  --psat-blue: #099cf1;
  --psat-control-max: 250px;
  --psat-gap: 24px;
  margin: 0 0 28px;
  width: 100%;
}

.psat-wrap * { box-sizing: border-box; }
.psat-toolbar,
.psat-controls-row,
.psat-results { width: 100%; }
.psat-toolbar { margin-bottom: 5px; }

.psat-controls-row {
  display: flex;
  align-items: flex-end;
  gap: 20px;
  width: 100%;
}

.psat-controls {
  display: flex;
  flex-wrap: wrap;
  gap: var(--psat-gap);
  align-items: flex-end;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
}

.psat-control {
  flex: 0 0 var(--psat-control-max);
  width: var(--psat-control-max);
  max-width: var(--psat-control-max);
  min-width: 0;
}

.psat-reset-wrap {
  display: flex;
  flex: 0 0 auto;
  align-items: flex-end;
  justify-content: flex-end;
  margin-left: auto;
}

.psat-reset-button { white-space: nowrap; }

@media (max-width: 768px) {
  .psat-reset-button {
    width: 100%;
    display: block;
  }
}
.psat-control-label {
  margin: 0 0 12px;
  text-transform: uppercase;
}

.psat-select {
  width: 100%;
  max-width: 100%;
  display: block;
}

.psat-status {
  min-height: 1em;
  margin-top: 0px;
}

.psat-wrap.is-loading .psat-status::before { content: 'Loading...'; }
.psat-helper { margin-top: 0px; }

.psat-empty-state { padding: px 0; }
.psat-empty-state-inner {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.psat-empty-state-emoji { font-size: 1.25em; line-height: 1; }
.psat-empty-state-text { margin: 0; }

.psat-wrap.has-selection .psat-helper,
.psat-results:not(:empty) + .psat-helper { display: none; }
.psat-results:empty { display: none; }

.psat-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  width: 100%;
  align-items: stretch;
}

.psat-card {
  min-width: 0;
  height: 100%;
}

.psat-card-link {
  display: block;
  height: 100%;
  text-decoration: none;
}

.psat-card-frame {
  position: relative;
  overflow: hidden;
  border: 2px solid var(--psat-border) !important;
  box-shadow: inset 0 0 0 2px var(--psat-border);
}

.psat-card-badge-wrap {
  position: absolute;
  top: -2px;
  left: -2px;
  z-index: 2;
}

.psat-card-badge {
  display: inline-block;
  padding: 5px 15px 5px;
  background: #fff;
  color: #111;
  border: 2px solid var(--psat-border);
  border-bottom: 3px solid var(--psat-blue);
  text-align: center;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  line-height: 1;
}

.psat-card-media {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.12);
}

.psat-card-image,
.psat-card-placeholder {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.05s ease, opacity .35s ease;
}

.psat-card-placeholder { background: rgba(0, 0, 0, 0.2); }

.psat-card-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  background: rgba(0,0,0,.45);
  transition: opacity .3s ease;
}

.psat-card-overlay-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  color: #fff;
  font-size: clamp(18px, 2vw, 20px);
  letter-spacing: .08em;
  font-weight: 700;
  background: rgba(32,32,32,.9);
  border: 2px solid var(--psat-border);
  line-height: 1;
}

.psat-card-link:hover .psat-card-image { transform: scale(1.14); opacity: .5; }
.psat-card-link:hover .psat-card-overlay { opacity: 1; }
.psat-empty { padding: 20px 0; }

@media (max-width: 1200px) {
  .psat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .psat-controls-row {
    align-items: stretch;
  }

  .psat-controls { gap: 20px; }
  .psat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .psat-controls-row {
    flex-direction: column;
    align-items: stretch;
  }

  .psat-controls {
    flex-direction: column;
    gap: 18px;
  }

  .psat-control,
  .psat-select {
    width: 100%;
    max-width: 100%;
    flex-basis: 100%;
  }

  .psat-reset-wrap {
    width: 100%;
    margin-left: 0;
    justify-content: flex-end;
  }

  .psat-grid { grid-template-columns: 1fr; }
}
