/*
Theme Name: Schmucks Open
Theme URI: https://golf.dabreo.ca
Author: Jeremy D'Abreo
Description: A custom golf tournament WordPress theme for The Schmucks Open.
Version: 1.7.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: schmucks-open
*/

:root{
  --so-burgundy:#4e0d12;
  --so-burgundy-dark:#30070a;
  --so-gold:#c9a227;
  --so-gold-light:#e2ca72;
  --so-green:#0b4f3a;
  --so-cream:#f7f2e8;
  --so-white:#fff;
  --so-charcoal:#25211f;
  --so-muted:#766d65;
  --so-border:#dfd1bc;
  --so-shadow:0 18px 45px rgba(54,29,16,.10);
  --so-radius:8px;
  --so-width:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--so-cream);
  color:var(--so-charcoal);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.6;
}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,h5,h6{
  margin-top:0;
  color:var(--so-burgundy);
  font-family:Georgia,"Times New Roman",serif;
  letter-spacing:.02em;
}
.so-container{width:min(calc(100% - 32px),var(--so-width));margin-inline:auto}
.so-section{padding:64px 0}
.so-kicker{
  display:flex;align-items:center;justify-content:center;gap:16px;
  color:var(--so-burgundy);font-family:Georgia,serif;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase
}
.so-kicker:before,.so-kicker:after{content:"";width:42px;height:1px;background:var(--so-gold)}
.so-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 22px;border:1px solid var(--so-burgundy);border-radius:4px;
  background:var(--so-burgundy);color:#fff;font-size:.8rem;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;transition:.2s ease
}
.so-btn:hover{transform:translateY(-2px);background:var(--so-gold);border-color:var(--so-gold);color:var(--so-burgundy-dark)}
.so-btn--gold{background:var(--so-gold);border-color:var(--so-gold);color:var(--so-burgundy-dark)}
.so-btn--outline{background:transparent;color:var(--so-burgundy)}
.so-card{
  background:rgba(255,255,255,.58);border:1px solid var(--so-border);
  border-radius:var(--so-radius);box-shadow:0 8px 26px rgba(54,29,16,.05)
}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:linear-gradient(90deg,var(--so-burgundy-dark),var(--so-burgundy));color:#fff}
.site-header__inner{min-height:84px;display:flex;align-items:center;gap:26px}
.site-brand{display:flex;align-items:center;gap:14px;min-width:max-content}
.site-brand img{width:62px;height:62px;border-radius:2px;object-fit:cover}
.site-brand__title{font-family:Georgia,serif;font-size:1.35rem;line-height:1.05}
.site-brand__subtitle{color:var(--so-gold-light);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}
.main-nav{margin-left:auto}
.main-nav ul{display:flex;list-style:none;gap:28px;padding:0;margin:0}
.main-nav a{font-size:.76rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.main-nav a:hover,.main-nav .current-menu-item>a{color:var(--so-gold-light)}
.menu-toggle{display:none;margin-left:auto;background:none;border:0;color:#fff;font-size:1.5rem}

/* Hero */
.so-hero{
  min-height:620px;display:flex;align-items:center;position:relative;color:#fff;
  background:
    linear-gradient(90deg,rgba(20,5,6,.84),rgba(20,5,6,.28)),
    var(--hero-image, linear-gradient(135deg,#4d2a13,#2e5a35));
  background-size:cover;background-position:center;
}
.so-hero__content{max-width:760px;padding:72px 0}
.so-hero__eyebrow{display:flex;align-items:center;gap:14px;color:var(--so-gold-light);font-family:Georgia,serif;font-size:1.3rem;letter-spacing:.12em}
.so-hero__eyebrow:before,.so-hero__eyebrow:after{content:"";width:95px;height:1px;background:var(--so-gold)}
.so-hero h1{color:#fff;font-size:clamp(3rem,7vw,6.5rem);line-height:.93;margin:18px 0 14px;text-transform:uppercase;text-shadow:0 8px 28px rgba(0,0,0,.38)}
.so-hero__tagline{color:var(--so-gold-light);font-family:Georgia,serif;font-size:1.15rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.so-hero__since{display:flex;align-items:center;gap:14px;margin:18px 0 28px;font-family:Georgia,serif;letter-spacing:.08em}
.so-hero__since:before,.so-hero__since:after{content:"";width:105px;height:1px;background:var(--so-gold)}
.so-hero__buttons{display:flex;gap:12px;flex-wrap:wrap}

/* Overview */
.so-overview{margin-top:-1px}
.so-overview-grid{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:16px}
.so-overview-card{padding:30px;min-height:255px}
.so-champion{background:radial-gradient(circle at top,rgba(201,162,39,.12),transparent 36%),linear-gradient(135deg,var(--so-burgundy-dark),var(--so-burgundy));color:#fff;text-align:center}
.so-champion h2,.so-champion h3,.so-champion p{color:#fff}
.so-champion__trophy{font-size:2rem;color:var(--so-gold)}
.so-champion__name{font-size:2rem;margin:8px 0}
.so-champion__score{font:700 2.1rem Georgia,serif;color:#fff}
.so-countdown__numbers{display:grid;grid-template-columns:repeat(4,1fr);margin:20px 0}
.so-countdown__number{text-align:center;border-right:1px solid var(--so-border)}
.so-countdown__number:last-child{border-right:0}
.so-countdown__number strong{display:block;font:700 2rem Georgia,serif;color:var(--so-burgundy)}
.so-countdown__number span{font-size:.67rem;font-weight:800;text-transform:uppercase}
.so-countdown__date{text-align:center;color:var(--so-burgundy);font-family:Georgia,serif;font-weight:700;letter-spacing:.06em}
.so-standings{list-style:none;margin:14px 0;padding:0}
.so-standings li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;padding:9px 0;border-bottom:1px solid var(--so-border)}
.so-rank{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--so-gold);color:#fff;font-size:.72rem;font-weight:800}

/* Stats */
.so-stats-card{padding:28px}
.so-stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.so-stat{text-align:center;padding:18px;border-right:1px solid var(--so-border)}
.so-stat:last-child{border-right:0}
.so-stat__icon{font-size:1.8rem;color:var(--so-green)}
.so-stat strong{display:block;font:700 2.2rem Georgia,serif;color:var(--so-green);line-height:1.1}
.so-stat span{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.so-center{text-align:center}

/* Records */
.so-record-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.so-record{padding:26px 18px;text-align:center}
.so-record__icon{font-size:1.8rem}
.so-record strong{display:block;font:700 2rem Georgia,serif;color:var(--so-green)}
.so-record small{display:block;color:var(--so-muted)}

/* Champions */
.so-champions-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;text-align:center}
.so-past-champion{padding:18px 10px;border-bottom:1px solid var(--so-border)}
.so-past-champion strong{display:block;color:var(--so-burgundy)}

/* Gallery */
.so-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.so-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;transition:.25s ease}
.so-gallery img:hover{transform:scale(1.02);filter:brightness(.88)}

/* Footer */
.site-footer{background:linear-gradient(90deg,var(--so-burgundy-dark),var(--so-burgundy));color:#fff;padding:46px 0 18px}
.site-footer h3{color:var(--so-gold-light);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}
.site-footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:36px}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:5px 0}
.site-footer__bottom{margin-top:30px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18);text-align:center;font-size:.78rem;color:rgba(255,255,255,.75)}

/* Pages */
.so-page-hero{padding:92px 0;background:linear-gradient(120deg,var(--so-burgundy-dark),var(--so-burgundy));color:#fff;text-align:center}
.so-page-hero h1{color:#fff;font-size:clamp(2.4rem,6vw,4.5rem)}
.so-page-content{padding:56px 0;min-height:50vh}
.so-page-content iframe{width:100%;min-height:780px;border:0;border-radius:8px;background:#fff}

/* Responsive */
@media(max-width:900px){
  .main-nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--so-burgundy-dark);padding:20px}
  .main-nav.is-open{display:block}
  .main-nav ul{flex-direction:column;gap:14px}
  .menu-toggle{display:block}
  .so-overview-grid,.site-footer__grid{grid-template-columns:1fr}
  .so-stats-grid,.so-record-grid{grid-template-columns:repeat(2,1fr)}
  .so-champions-row{grid-template-columns:repeat(2,1fr)}
  .so-gallery{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .site-brand__title{font-size:1rem}.site-brand__subtitle{display:none}
  .so-hero{min-height:560px}.so-hero__content{padding:50px 0}
  .so-hero__eyebrow:before,.so-hero__eyebrow:after{width:42px}
  .so-hero__since:before,.so-hero__since:after{width:55px}
  .so-stats-grid,.so-record-grid,.so-champions-row,.so-gallery{grid-template-columns:1fr}
  .so-stat{border-right:0;border-bottom:1px solid var(--so-border)}
  .so-countdown__number strong{font-size:1.55rem}
}


/* =========================================================
   v1.1 layout corrections
   Matches the approved homepage mockup more closely.
   ========================================================= */

/* Keep the header compact and prevent the uploaded logo from expanding it. */
.site-header {
  min-height: 84px;
}

.site-header__inner {
  min-height: 84px;
  padding-top: 10px;
  padding-bottom: 10px;
}

.site-brand {
  min-width: 0;
  flex-shrink: 0;
}

.site-brand .custom-logo-link {
  display: block;
  width: 62px;
  height: 62px;
  flex: 0 0 62px;
}

.site-brand .custom-logo,
.site-brand .custom-logo-link img,
.site-brand > img {
  display: block !important;
  width: 62px !important;
  height: 62px !important;
  max-width: 62px !important;
  max-height: 62px !important;
  object-fit: cover !important;
  margin: 0 !important;
}

.site-brand > span {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.site-brand__title {
  max-width: 230px;
  font-size: 1.18rem;
  line-height: 1.05;
}

.site-brand__subtitle {
  margin-top: 4px;
  font-size: .62rem;
}

.main-nav ul {
  gap: 24px;
}

/* Match the shorter, wider hero used in the approved mockup. */
.so-hero {
  min-height: 500px;
  background-position: center 52%;
}

.so-hero__content {
  width: 100%;
  max-width: 1040px;
  padding: 58px 0 54px;
}

.so-hero h1 {
  max-width: none;
  margin: 12px 0 12px;
  font-size: clamp(3rem, 5.25vw, 5.35rem);
  line-height: .95;
  white-space: nowrap;
}

.so-hero__eyebrow {
  font-size: 1.15rem;
}

.so-hero__tagline {
  font-size: 1rem;
}

.so-hero__since {
  margin: 14px 0 24px;
}

/* Tighten the first row of cards and the page rhythm. */
.so-section {
  padding: 46px 0;
}

.so-overview-section,
.so-overview {
  padding-top: 16px;
}

.so-overview-card {
  min-height: 238px;
  padding: 26px;
}

.so-champion__name {
  font-size: 1.65rem;
}

.so-countdown__number strong {
  font-size: 1.75rem;
}

.so-stats-card {
  padding: 22px 26px;
}

.so-stat {
  padding: 14px;
}

.so-stat strong {
  font-size: 1.95rem;
}

.so-record {
  padding: 22px 16px;
}

.site-footer {
  padding-top: 34px;
}

/* Improve mobile behavior without letting the title overflow. */
@media (max-width: 1100px) {
  .main-nav ul {
    gap: 16px;
  }

  .main-nav a {
    font-size: .7rem;
  }

  .so-hero h1 {
    font-size: clamp(2.8rem, 6.4vw, 4.6rem);
  }
}

@media (max-width: 900px) {
  .site-brand .custom-logo-link,
  .site-brand .custom-logo,
  .site-brand .custom-logo-link img,
  .site-brand > img {
    width: 54px !important;
    height: 54px !important;
    max-width: 54px !important;
    max-height: 54px !important;
  }

  .site-header__inner {
    min-height: 74px;
  }

  .main-nav {
    top: 74px;
  }

  .so-hero {
    min-height: 480px;
  }

  .so-hero h1 {
    white-space: normal;
  }
}

@media (max-width: 560px) {
  .site-brand__title {
    max-width: 150px;
    font-size: .95rem;
  }

  .so-hero {
    min-height: 450px;
  }

  .so-hero__content {
    padding: 42px 0;
  }

  .so-hero h1 {
    font-size: clamp(2.45rem, 14vw, 3.75rem);
    line-height: .94;
  }
}


/* =========================================================
   v1.2 header fix
   Removes nested logo links and strictly controls header size.
   ========================================================= */

.site-header {
  height: 78px;
  min-height: 78px;
}

.site-header__inner {
  height: 78px;
  min-height: 78px;
  padding-top: 8px;
  padding-bottom: 8px;
}

.site-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  height: 62px;
  min-width: 0;
  overflow: hidden;
}

.site-brand__logo {
  display: block;
  width: 56px;
  height: 56px;
  min-width: 56px;
  max-width: 56px;
  overflow: hidden;
  flex: 0 0 56px;
}

.site-brand__logo-image {
  display: block !important;
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  max-width: 56px !important;
  min-height: 56px !important;
  max-height: 56px !important;
  object-fit: cover !important;
  object-position: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-brand__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1;
}

.site-brand__title {
  max-width: 225px;
  font-size: 1.05rem;
  line-height: 1.05;
}

.site-brand__subtitle {
  margin-top: 5px;
  font-size: .58rem;
}

.main-nav {
  align-self: stretch;
  display: flex;
  align-items: center;
}

@media (max-width: 900px) {
  .site-header,
  .site-header__inner {
    height: 70px;
    min-height: 70px;
  }

  .site-brand {
    height: 54px;
  }

  .site-brand__logo,
  .site-brand__logo-image {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    flex-basis: 48px;
  }

  .main-nav {
    top: 70px;
  }
}


/* v1.5 configurable homepage */
.so-btn--register {
  border-color: #ffffff;
  background: #ffffff;
  color: var(--so-burgundy-dark);
}

.so-btn--register:hover {
  border-color: var(--so-gold);
  background: var(--so-gold);
  color: var(--so-burgundy-dark);
}

.so-overview-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

@media (max-width: 560px) {
  .so-hero__buttons .so-btn {
    width: 100%;
  }
}