/* Show Results (CPT) */

.tpp-show-results { padding: 10px 0 40px; }

/* Header */
.tpp-sr-header { text-align: center; margin: 10px 0 25px; }
.tpp-sr-title { font-weight: 800; letter-spacing: .5px; text-transform: uppercase; margin: 0 0 10px; }
.tpp-sr-subhead { display: flex; justify-content: center; gap: 40px; flex-wrap: wrap; }
.tpp-sr-subitem { font-size: 14px; }

/* Make labels normal weight (per request) */
.tpp-sr-sub-label { font-weight: 400; text-transform: uppercase; }

/* Gallery wrapper */
.tpp-sr-photos { margin: 10px auto 30px; max-width: 980px; }

/* Boxes */
.tpp-sr-box {
	border: 2px solid rgba(0,0,0,.35);
	padding: 28px 22px;
	margin: 20px 0 30px;
}

/* Overall Champions box: very light gray background */
.tpp-sr-overall .tpp-sr-box {
	background: #f5f5f5;
}

.tpp-sr-box-title {
	text-align: center;
	font-weight: 900;
	letter-spacing: .8px;
	text-transform: uppercase;
	margin: 0 0 18px;
}

/* Overall grid */
.tpp-sr-overall-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

.tpp-sr-overall-card {
	text-align: center;
	padding: 10px 8px;
}

/* Placing: ALL CAPS but same size */
.tpp-sr-overall-rank {
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .4px;
	margin-bottom: 6px;
}

.tpp-sr-overall-represents {
	font-size: 12px;
	margin-bottom: 6px;
	opacity: .85;
}

/* =========================
   Unified "info" sizing + label/value weights
   Target: between old 12px meta and 14px exhib
   Labels normal; names bold
   ========================= */

/* Unified sizing for exhib + meta */
.tpp-sr-meta,
.tpp-sr-overall-exhib,
.tpp-sr-group-exhib {
	font-size: 13px;
	line-height: 1.45;
	font-weight: 400;
}

/* Labels normal weight */
.tpp-sr-label {
	font-weight: 400;
}

/* Meta lines: keep normal; bold only the value (links / stud) */
.tpp-sr-line { margin: 2px 0; font-weight: 400; }
.tpp-sr-line a { font-weight: 800; }
.tpp-sr-stud { font-weight: 800; }

/*
  NOTE:
  Your current template outputs exhibitor name as plain text after the label.
  CSS cannot reliably bold that text only, unless you wrap it in:
    <span class="tpp-sr-value">NAME</span>
  If you add that span in PHP, this will take effect.
*/
.tpp-sr-value { font-weight: 800; }
.tpp-sr-sub-value { font-weight: 800; }

/* Exhibitor spacing (same “info” rhythm as meta) */
.tpp-sr-overall-exhib { margin: 6px 0 6px; }
.tpp-sr-group-exhib { margin-bottom: 6px; }

/* Footnote */
.tpp-sr-overall-footnote {
	text-align: center;
	font-weight: 700;
	text-transform: uppercase;
	margin-top: 14px;
	opacity: .7;
}

/* Classification/Breed/Division blocks */
.tpp-sr-group-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

.tpp-sr-group-card {
	border: 2px solid rgba(0,0,0,.18);
	padding: 18px 16px;
}

.tpp-sr-group-title {
	text-align: center;
	font-weight: 900;
	text-transform: uppercase;
	margin: 0 0 12px;
}

/* Optional division subhead (if you're using it) */
.tpp-sr-group-subtitle{
	margin: 10px 0 6px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .5px;
	opacity: .85;
	text-align: center;
}

.tpp-sr-group-row {
	text-align: center;
	padding: 10px 4px;
	border-top: 1px solid rgba(0,0,0,.10);
}

.tpp-sr-group-row:first-child { border-top: 0; padding-top: 0; }

/* Placing: ALL CAPS but same size */
.tpp-sr-group-rank {
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .4px;
	margin-bottom: 4px;
}

/* Links */
.tpp-show-results a { text-decoration: none; font-weight: 800; }
.tpp-show-results a:hover { text-decoration: underline; }

/* Responsive */
@media (max-width: 980px) {
	.tpp-sr-overall-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpp-sr-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 540px) {
	.tpp-sr-subhead { gap: 14px; }
	.tpp-sr-overall-grid { grid-template-columns: 1fr; }
	.tpp-sr-group-grid { grid-template-columns: 1fr; }
}

/* =========================
   Winner Gallery (THUMBS)
   Goal: 4 desktop, 2 tablet, 1 mobile
   ========================= */

.tpp-sr-winner-gallery{
  margin:22px 0 30px;
}

/* Make sure the gallery can actually use the available width */
.tpp-sr-winner-gallery .tpp-sr-gallery{
  width:100%;
  max-width:1100px;
  margin:0 auto;
  padding:0 18px;

  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
  align-items:start;
}

/* IMPORTANT: remove any old flex/width assumptions */
.tpp-sr-gallery-item{
  margin:0 !important;
  width:auto !important;
}

/* Lightbox link block */
.tpp-sr-gallery-item a,
.tpp-sr-lightbox-link{
  display:block;
}

/* Thumbs */
.tpp-sr-gallery-item img{
  display:block;
  width:100%;
  height:auto;
  border-radius:6px;
  border:1px solid rgba(0,0,0,0.12);
  background:#fff;
}

/* Tablet */
@media (max-width: 980px){
  .tpp-sr-winner-gallery .tpp-sr-gallery{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

/* Mobile */
@media (max-width: 767px){
  .tpp-sr-winner-gallery .tpp-sr-gallery{
    grid-template-columns:1fr;
    padding:0 14px;
  }
}

/* Lightbox */
#tppLightbox{display:none;}
#tppLightbox.is-open{display:block;}

#tppLightbox .tpp-lb-backdrop{
  position:fixed; inset:0;
  background:rgba(0,0,0,0.85);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:99999;
  padding:18px;
}

#tppLightbox .tpp-lb-img{
  max-width:min(1100px, 92vw);
  max-height:86vh;
  width:auto;
  height:auto;
  display:block;
  border-radius:6px;
}

#tppLightbox .tpp-lb-close,
#tppLightbox .tpp-lb-prev,
#tppLightbox .tpp-lb-next{
  position:fixed;
  background:transparent;
  border:0;
  color:#ffffff;
  font-size:42px;
  line-height:1;
  cursor:pointer;
  z-index:100000;
  opacity:0.9;
}

#tppLightbox .tpp-lb-close{top:14px; right:18px; font-size:46px;}
#tppLightbox .tpp-lb-prev{left:18px; top:50%; transform:translateY(-50%);}
#tppLightbox .tpp-lb-next{right:18px; top:50%; transform:translateY(-50%);}

@media (max-width: 767px){
  #tppLightbox .tpp-lb-prev{left:10px;}
  #tppLightbox .tpp-lb-next{right:10px;}
}
