/*
Theme Name: Wasatch Daily
Theme URI: https://skiingsaltlake.com
Author: Alta
Description: A cleaner, more editorial WordPress theme for daily Wasatch ski reports.
Version: 2.2.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
Text Domain: wasatch-daily
*/

:root {
  --bg: #eef2f2;
  --paper: #fcfcf8;
  --paper-2: #f4f6f1;
  --ink: #15181c;
  --muted: #5e6773;
  --border: #d2dad1;
  --accent: #0d4878;
  --accent-2: #135d52;
  --warm: #986000;
  --night: #11202d;
  --night-2: #1b3246;
  --max: 1280px;
  --radius: 16px;
  --shadow: 0 16px 38px rgba(18, 28, 38, 0.08);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: Georgia, "Times New Roman", serif;
  color: var(--ink);
  background:
    radial-gradient(circle at top, rgba(13,72,120,.06), transparent 28%),
    linear-gradient(180deg, #f8fbfb 0%, var(--bg) 100%);
  line-height: 1.72;
}

a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

.wrap { width: min(var(--max), 92vw); margin: 0 auto; }
.main { padding: 1.6rem 0 3rem; }

.site-header {
  background: rgba(248, 251, 251, 0.95);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(10px);
}
.header-nav-wrap {
  border-top: 1px solid rgba(214, 221, 209, 0.8);
  background: rgba(255,255,255,0.35);
}
.site-nav {
  width: min(var(--max), 92vw);
  margin: 0 auto;
  padding: 0 0 .65rem;
}
.site-nav-list {
  list-style: none;
  margin: 0;
  padding: .6rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.site-nav-link {
  display: inline-flex;
  align-items: center;
  padding: .15rem 0;
  color: var(--ink);
  font-size: .92rem;
  font-weight: 700;
  letter-spacing: .01em;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  border-bottom: 2px solid transparent;
}
.site-nav-link:hover { text-decoration: none; color: var(--accent); border-bottom-color: rgba(15,76,129,.28); }
.site-nav-link.is-current { color: var(--accent); border-bottom-color: var(--accent); }
.header-inner {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1.25rem;
  padding: 1rem 0 .95rem;
}
.brand-block { display:grid; gap:.18rem; }
.site-title,
.hero-title,
.story-title,
.entry-title,
.section-title,
.rating-module-title,
.scorecard-title,
.desk-notes-grid h3 {
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  letter-spacing: -0.03em;
  text-wrap: balance;
}
.site-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--ink);
}
.site-kicker,
.header-note,
.tagline,
.section-label,
.hero-meta,
.story-meta,
.badge,
.btn,
.rating-current,
.rating-trend-topline,
.report-list a,
.report-list span,
.post-nav,
.site-footer,
.mini-stats,
.editorial-checklist,
.rating-module-kicker,
.rating-trend-summary,
.score-pill,
.hero-masthead {
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}
.site-kicker {
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--accent);
  font-weight: 700;
}
.header-rail {
  display:grid;
  gap:.25rem;
  justify-items:end;
  text-align:right;
}
.tagline { color: var(--muted); font-size: .92rem; max-width: 42ch; }
.header-note { color: #41505e; font-size: .8rem; max-width: 52ch; }

.section-label {
  margin: 0 0 .45rem;
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: .72rem;
  font-weight: 800;
  color: var(--muted);
}
.section-label-light { color: rgba(255,255,255,.7); }

.hero-report,
.story-shell,
.panel {
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.panel { padding: 1.15rem 1.2rem; }
.panel-soft { background: var(--paper); }
.panel-note { background: var(--paper-2); }
.panel-dark {
  background: linear-gradient(180deg, var(--night-2) 0%, var(--night) 100%);
  color: #eef5fb;
  border-color: rgba(255,255,255,.08);
}

.front-page-shell,
.front-main,
.front-rail { display:grid; gap:1rem; }
.editorial-strip {
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:1rem;
  margin-bottom: 1rem;
}
.front-grid.editorial-grid {
  display:grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(300px, .8fr);
  gap:1rem;
  align-items:start;
}

.hero-report { padding: clamp(1.35rem, 2.6vw, 2.2rem); }
.editorial-hero { margin-bottom: 1rem; }
.hero-eyebrow-row {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:flex-start;
  margin-bottom: .8rem;
}
.hero-masthead {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.hero-masthead span { margin: 0 .35rem; }
.hero-weather-note {
  max-width: 42ch;
  color: var(--muted);
  font-size: .9rem;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}
.hero-grid {
  display:grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(260px, .75fr);
  gap:1rem;
}
.hero-title {
  font-size: clamp(2.35rem, 4.5vw, 4.35rem);
  line-height: 1.02;
  margin: 0 0 .85rem;
}
.hero-title a,
.story-title,
.story-title a,
.report-list a { color: var(--ink); }
.hero-title a:hover,
.story-title a:hover,
.report-list a:hover { text-decoration:none; color: var(--accent); }
.hero-meta,
.story-meta {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem .9rem;
  align-items:center;
  color: var(--muted);
  font-size: .92rem;
  margin-bottom: 1rem;
}
.badge {
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:.18rem .55rem;
  font-size:.74rem;
  font-weight:700;
}
.badge-fresh { background: rgba(20,99,86,.1); color: var(--accent-2); border: 1px solid rgba(20,99,86,.18); }
.badge-stale { background: rgba(154,103,0,.08); color: var(--warm); border: 1px solid rgba(154,103,0,.16); }

.hero-summary,
.entry-content,
.story-body,
.lede,
.framework-copy,
.panel p,
.panel li,
.archive-shell li { font-size: 1.06rem; }
.hero-summary p:last-child,
.story-body p:last-child { margin-bottom: 0; }
.hero-actions { margin-top: 1rem; }
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  padding: .74rem 1rem;
  font-size: .94rem;
  font-weight: 700;
  border: 1px solid var(--accent);
}
.btn:hover { text-decoration: none; }
.btn-primary { background: var(--accent); color: #fff; }
.btn-primary:hover { background: #0a3b63; }

.hero-scorecard,
.story-scorecard { align-self: start; }
.score-pill {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width: 94px;
  padding: .45rem .9rem;
  border-radius: 999px;
  font-size: 1.3rem;
  font-weight: 800;
  margin-bottom: .8rem;
}
.score-pill-great { background: rgba(58,191,143,.15); color: #8ee8c0; border: 1px solid rgba(142,232,192,.15); }
.score-pill-good { background: rgba(100,166,216,.16); color: #b7dcf7; border: 1px solid rgba(183,220,247,.16); }
.score-pill-rough { background: rgba(228,183,77,.15); color: #ffd487; border: 1px solid rgba(255,212,135,.14); }
.score-pill-neutral { background: rgba(255,255,255,.08); color: rgba(255,255,255,.75); border: 1px solid rgba(255,255,255,.12); }
.story-scorecard .score-pill-neutral { background: var(--paper-2); color: var(--muted); border-color: var(--border); }
.scorecard-title {
  margin: 0 0 .5rem;
  font-size: 1.55rem;
  line-height: 1.05;
}
.scorecard-summary {
  margin: 0 0 1rem;
  color: inherit;
  opacity: .92;
}
.mini-stats {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: .8rem;
  margin: 0;
}
.mini-stats dt {
  color: rgba(255,255,255,.7);
  font-size: .76rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: .2rem;
}
.mini-stats dd {
  margin: 0;
  font-size: .98rem;
  font-weight: 700;
}

.editorial-checklist {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:.7rem;
}
.editorial-checklist li {
  position:relative;
  padding-left: 1.1rem;
}
.editorial-checklist li::before {
  content:"";
  position:absolute;
  left:0;
  top:.7rem;
  width:6px;
  height:6px;
  border-radius:50%;
  background: var(--accent);
}

.rating-module-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  margin-bottom: 1rem;
}
.rating-module-title {
  margin: 0 0 .35rem;
  font-size: 1.5rem;
  line-height: 1.08;
}
.rating-module-kicker {
  margin: 0;
  color: var(--muted);
  font-size: .92rem;
  max-width: 58ch;
}
.rating-current {
  min-width: 150px;
  text-align:right;
}
.rating-current-score {
  display:block;
  font-size: 1.45rem;
  font-weight: 800;
}
.rating-current-label {
  display:block;
  font-size: .84rem;
  color: var(--muted);
}
.rating-current-great .rating-current-score { color: var(--accent-2); }
.rating-current-good .rating-current-score { color: var(--accent); }
.rating-current-rough .rating-current-score { color: var(--warm); }

.rating-trend-list,
.report-list { list-style:none; margin:0; padding:0; }
.rating-scale-details {
  margin: 0 0 1rem;
  padding: .85rem 1rem .95rem;
  background: var(--paper-2);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.rating-scale-details summary {
  cursor: pointer;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 700;
  color: var(--ink);
}
.rating-scale-details[open] summary { margin-bottom: .85rem; }
.rating-scale-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .65rem;
}
.rating-scale-band {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .72rem .85rem;
  background: rgba(255,255,255,.55);
  border: 1px solid var(--border);
  border-radius: 10px;
  font-size: .94rem;
}
.rating-scale-band strong {
  display: inline-block;
  min-width: 3.5rem;
  margin: 0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.35;
  flex: 0 0 auto;
}
.rating-scale-band span {
  display: block;
  flex: 1 1 auto;
}
.rating-scale-band span,
.rating-scale-note {
  color: var(--muted);
  line-height: 1.5;
}
.rating-scale-note {
  margin: .85rem 0 0;
  font-size: .92rem;
}
.rating-trend-list { display:grid; gap:.82rem; }
.rating-trend-item {
  padding: .85rem 0 0;
  border-top: 1px solid var(--border);
}
.rating-trend-item:first-child {
  padding-top: 0;
  border-top: 0;
}
.rating-trend-topline {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.35rem;
  font-size: .92rem;
}
.rating-trend-date { display:block; font-weight: 700; }
.rating-trend-link {
  display:block;
  margin-top: .16rem;
  color: var(--muted);
  font-size: .86rem;
}
.rating-trend-link-static { text-decoration: none; }
.rating-trend-score { font-weight: 800; }
.rating-trend-score-great { color: var(--accent-2); }
.rating-trend-score-good { color: var(--accent); }
.rating-trend-score-rough { color: var(--warm); }
.rating-trend-bar-wrap {
  height: 10px;
  background: #e3e8de;
  border-radius: 999px;
  overflow: hidden;
}
.rating-trend-bar { height: 100%; border-radius:999px; }
.rating-trend-bar-great { background: linear-gradient(90deg,#3abf8f,#146356); }
.rating-trend-bar-good { background: linear-gradient(90deg,#64a6d8,#0f4c81); }
.rating-trend-bar-rough { background: linear-gradient(90deg,#e4b74d,#9a6700); }
.rating-trend-summary {
  margin: .45rem 0 0;
  font-size: .88rem;
  color: var(--muted);
}

.report-list li {
  display:flex;
  flex-direction:column;
  gap:.2rem;
  padding:.8rem 0;
  border-bottom:1px solid var(--border);
}
.report-list li:last-child { border-bottom:none; }
.report-list a { font-weight: 700; }
.report-list span { font-size: .84rem; color: var(--muted); }
.report-list-row {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:baseline;
}
.report-score { font-size: .85rem; }
.report-score-great { color: var(--accent-2); }
.report-score-good { color: var(--accent); }
.report-score-rough { color: var(--warm); }

.desk-notes-grid {
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.desk-notes-grid h3 {
  margin: 0 0 .35rem;
  font-size: 1.1rem;
  line-height: 1.08;
}
.desk-notes-grid p { margin: 0; }
.editor-note-panel p:last-child { margin-bottom: 0; }

.story-shell { padding: clamp(1.5rem, 2.6vw, 2.4rem); }
.story-shell-full { max-width:none; width:100%; margin:0; }
.editorial-story-head {
  display:grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(250px, .75fr);
  gap:1rem;
  align-items:start;
  margin-bottom: 1rem;
}
.story-title {
  margin: 0 0 .8rem;
  font-size: clamp(2.1rem, 4vw, 3.7rem);
  line-height: 1.04;
}
.story-body { min-width:0; max-width:none; }
.story-body h2,
.story-body h3,
.entry-content h2,
.entry-content h3 {
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height: 1.15;
  margin-top: 1.7rem;
  margin-bottom: .65rem;
}
.story-body h2,
.entry-content h2 { font-size: 1.65rem; }
.story-body h3,
.entry-content h3 { font-size: 1.22rem; }
.story-body ul,
.entry-content ul { padding-left: 1.2rem; }
.story-body blockquote,
.entry-content blockquote {
  margin: 1.2rem 0;
  padding: .15rem 0 .15rem 1rem;
  border-left: 3px solid #b8c5b5;
  color: #313843;
  font-style: italic;
}

.post-nav {
  display:flex;
  gap:1rem;
  justify-content:space-between;
  margin-top:1.4rem;
}
.archive-shell { padding: 1.2rem; }
.site-footer {
  color: var(--muted);
  border-top: 1px solid var(--border);
  padding: 1.2rem 0 2rem;
}

@media (max-width: 1100px) {
  .hero-grid,
  .editorial-story-head,
  .front-grid.editorial-grid,
  .editorial-strip,
  .desk-notes-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .header-inner,
  .hero-eyebrow-row,
  .rating-module-head,
  .report-list-row {
    flex-direction: column;
    align-items:flex-start;
  }
  .header-rail { justify-items:start; text-align:left; }
  .tagline,
  .header-note,
  .hero-weather-note,
  .rating-current { text-align:left; }
  .hero-title,
  .story-title { font-size: clamp(2rem, 9vw, 3rem); }
  .mini-stats,
  .rating-scale-grid { grid-template-columns: 1fr; }
}