
/* =========================================================
   PCL HALL OF FAME — PREMIUM VISUAL OVERRIDES
   Load AFTER assets/hof.css
   ========================================================= */

:root{
  --hof-navy:#0b173f;
  --hof-navy-2:#132557;
  --hof-gold:#c9962f;
  --hof-gold-soft:#e6c77a;
  --hof-ink:#0c1738;
  --hof-muted:#68738f;
  --hof-line:#e4e8f0;
  --hof-card:#ffffff;
  --hof-bg:#f5f7fb;
}

body{
  background:
    radial-gradient(circle at 18% 3%, rgba(201,150,47,.055), transparent 26rem),
    linear-gradient(180deg,#f8f9fc 0%,#f4f6fa 100%);
}

.section{
  padding-top:72px;
  padding-bottom:104px;
}

.section-title{
  margin-bottom:54px;
  align-items:flex-end;
}

.section-title h2{
  max-width:760px;
  line-height:1.02;
  letter-spacing:-1.8px;
}

.section-title > p{
  max-width:480px;
  line-height:1.75;
  color:var(--hof-muted);
}

.category-block{
  margin-top:72px;
}

.category-block + .category-block{
  margin-top:104px;
}

.category-head{
  padding-bottom:20px;
  margin-bottom:30px;
  border-bottom:1px solid rgba(11,23,63,.11);
}

.category-head h3{
  margin-top:7px;
  letter-spacing:-.45px;
}

.category-kicker,
.count{
  letter-spacing:2.25px;
}

.grid{
  gap:26px;
}

/* Premium card */
.nom-card{
  border:1px solid rgba(11,23,63,.075);
  border-radius:22px;
  overflow:hidden;
  background:rgba(255,255,255,.96);
  box-shadow:
    0 1px 1px rgba(11,23,63,.02),
    0 10px 30px rgba(11,23,63,.045);
  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease;
}

.nom-card:hover{
  transform:translateY(-5px);
  border-color:rgba(201,150,47,.28);
  box-shadow:
    0 18px 45px rgba(11,23,63,.10),
    0 2px 5px rgba(11,23,63,.035);
}

/* More breathing room in image area */
.card-media{
  height:255px;
  min-height:255px;
  background:
    radial-gradient(circle at 50% 46%, rgba(255,255,255,.96) 0 30%, rgba(250,251,253,.92) 64%, rgba(239,242,248,.96) 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

/* Team logos: restrained, luxury placement */
.nom-card.team .card-media img{
  width:auto !important;
  height:auto !important;
  max-width:62% !important;
  max-height:46% !important;
  object-fit:contain !important;
  object-position:center !important;
  padding:0 !important;
  filter:none;
}

/* Player photos should remain portrait-led */
.nom-card.player .card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}

/* If a team logo is being used as player fallback, prevent it from looking oversized.
   Modern browsers support :has(). */
.nom-card.player .card-media:has(img[src*="/images/team/"]) img{
  width:auto !important;
  height:auto !important;
  max-width:58% !important;
  max-height:44% !important;
  object-fit:contain !important;
  object-position:center !important;
}

/* Refined overlay — do not darken logos */
.nom-card.team .media-shade{
  background:
    linear-gradient(180deg,transparent 62%,rgba(11,23,63,.025) 100%) !important;
}

.ai-ribbon{
  top:18px;
  left:18px;
  padding:8px 13px;
  border-radius:999px;
  letter-spacing:1.15px;
  box-shadow:0 5px 16px rgba(201,150,47,.14);
}

.city-tag{
  top:18px;
  right:18px;
  padding:8px 13px;
  border-radius:999px;
}

/* Text area */
.card-body{
  padding:25px 24px 23px;
}

.award-label{
  margin-bottom:10px;
  letter-spacing:1.55px;
}

.card-body h4{
  margin-bottom:6px;
  line-height:1.08;
  letter-spacing:-.35px;
}

.team-line{
  margin-bottom:17px;
  color:#394563;
}

.nom-copy{
  min-height:64px;
  line-height:1.55;
  color:#56617b;
  margin-bottom:20px;
}

.score-row{
  padding-top:17px;
  border-top:1px solid var(--hof-line);
}

/* Larger desktop canvas without oversized cards */
@media (min-width:1280px){
  .wrap{
    max-width:1380px;
  }

  .grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media (min-width:1600px){
  .wrap{
    max-width:1460px;
  }

  .grid{
    gap:30px;
  }

  .card-media{
    height:268px;
    min-height:268px;
  }
}

/* Tablet */
@media (max-width:1100px){
  .section{
    padding-top:56px;
    padding-bottom:80px;
  }

  .category-block + .category-block{
    margin-top:84px;
  }

  .card-media{
    height:235px;
    min-height:235px;
  }
}

/* Mobile */
@media (max-width:700px){
  .section{
    padding-top:42px;
    padding-bottom:64px;
  }

  .section-title{
    margin-bottom:38px;
  }

  .category-block{
    margin-top:52px;
  }

  .category-block + .category-block{
    margin-top:68px;
  }

  .category-head{
    margin-bottom:22px;
  }

  .grid{
    gap:18px;
  }

  .card-media{
    height:220px;
    min-height:220px;
  }

  .nom-card.team .card-media img{
    max-width:58% !important;
    max-height:42% !important;
  }

  .card-body{
    padding:22px 20px 21px;
  }
}

/* Nominee detail page — calmer, editorial feel */
.nominee-hero{
  padding-top:76px;
  padding-bottom:86px;
}

.portrait-shell{
  border-radius:26px;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 45%,#fff 0 28%,#f4f6fa 68%,#eceff5 100%);
  box-shadow:0 20px 55px rgba(11,23,63,.08);
}

.portrait-shell .profile-img:not(.player-photo),
.portrait-shell .profile-img[src*="/images/team/"]{
  object-fit:contain !important;
  padding:18% !important;
  background:transparent !important;
}

.profile-copy{
  padding-left:26px;
}

.profile-copy h1{
  letter-spacing:-1.3px;
  margin-bottom:16px;
}

.award-description{
  max-width:760px;
  line-height:1.78;
  color:#3e4965;
}

blockquote{
  margin-top:28px;
  padding:20px 24px;
  border-left:2px solid var(--hof-gold);
  background:rgba(201,150,47,.055);
  border-radius:0 14px 14px 0;
}
