/*
Theme Name: Scott Beaulier
Theme URI: https://scottbeaulier.com
Author: That Random Agency
Author URI: https://thatrandomagency.com
Description: Custom editorial theme for Scott Beaulier — economist, dean, and university leader. Navy and gold palette, Young Serif / DM Sans / IBM Plex Mono type system, full-bleed hero images, and self-managed media coverage and timely topics.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: beaulier
*/

/* ═══════════════════════════════════════════════════
   SCOTT BEAULIER — FULL SITE STYLES
   Editorial Aesthetic · Navy & Gold Palette
   Young Serif (display) · DM Sans (body) · IBM Plex Mono (labels)
   ═══════════════════════════════════════════════════ */

:root {
  --ink: #1a1a1a;
  --cream: #f0f0ea;
  --navy: #354F64;
  --navy-dark: #2a3f51;
  --gold: #b08a3a;
  --gold-light: #c9a24e;
  --warm-white: #f8f8f5;
  --mid-gray: #6b6b6b;
  --light-rule: rgba(26, 26, 26, 0.12);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  font-family: 'DM Sans', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 400;
  background: var(--warm-white);
  color: var(--ink);
  line-height: 1.6;
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a { color: inherit; }

/* ── NAVIGATION ── */
.top-bar {
  border-bottom: 3px double var(--navy);
  padding: 12px 0 10px;
  background: var(--warm-white);
  position: sticky;
  top: 0;
  z-index: 100;
}

.top-bar-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.site-name {
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 3px;
  line-height: 1;
}

.site-name .site-name-text {
  font-family: 'Young Serif', serif;
  font-size: 1.35rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--navy);
}

.site-name .site-name-rule {
  width: 100%;
  height: 2px;
  background: var(--gold);
  display: block;
}

.top-bar nav a {
  font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--ink);
  text-decoration: none;
  margin-left: 32px;
  position: relative;
  transition: color 0.3s;
}

.top-bar nav a::after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--gold);
  transition: width 0.3s;
}

.top-bar nav a:hover { color: var(--navy); }
.top-bar nav a:hover::after { width: 100%; }
.top-bar nav a.active,
.top-bar nav a.current-menu-item,
.top-bar nav a[aria-current="page"] { color: var(--navy); }
.top-bar nav a.active::after,
.top-bar nav a.current-menu-item::after,
.top-bar nav a[aria-current="page"]::after { width: 100%; }

/* WordPress-generated menu (ul) — active class lands on the <li>. */
.top-bar nav ul {
  list-style: none;
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
}
.top-bar nav .current-menu-item > a,
.top-bar nav .current_page_item > a { color: var(--navy); }
.top-bar nav .current-menu-item > a::after,
.top-bar nav .current_page_item > a::after { width: 100%; }

/* ── SHARED SECTION STYLES ── */
.section-header {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin-bottom: 50px;
  border-bottom: 2px solid var(--ink);
  padding-bottom: 12px;
}

.section-header h2 {
  font-family: 'Young Serif', serif;
  font-size: 2.2rem;
  font-weight: 400;
}

.section-header .section-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--navy);
}

.page-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
}

/* ── FULL-BLEED HERO (reusable) ── */
.fullbleed-hero {
  position: relative;
  padding: 0;
  overflow: hidden;
}
.fullbleed-hero .fullbleed-media {
  width: 100%;
  overflow: hidden;
  position: relative;
}
.fullbleed-hero .fullbleed-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.55);
}
.fullbleed-hero .fullbleed-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 60px 40px 50px;
  max-width: 1200px;
  margin: 0 auto;
}
.fullbleed-hero .hero-kicker {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--gold-light);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.fullbleed-hero .hero-kicker::before {
  content: '';
  width: 30px;
  height: 2px;
  background: var(--gold-light);
  display: inline-block;
}
.fullbleed-hero h1 {
  font-family: 'Young Serif', serif;
  font-size: 3.8rem;
  font-weight: 400;
  line-height: 1.05;
  margin-bottom: 20px;
  color: var(--warm-white);
  max-width: 750px;
}
.fullbleed-hero h1 em {
  font-style: italic;
  color: var(--gold-light);
}
.fullbleed-hero .hero-subtitle {
  font-size: 1.15rem;
  line-height: 1.7;
  color: rgba(255,255,255,0.75);
  max-width: 600px;
  font-weight: 400;
  margin-top: 4px;
}
.fullbleed-hero .hero-buttons {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 28px;
}
.fullbleed-hero .hero-buttons a {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--warm-white);
  padding: 10px 20px;
  border: 1.5px solid rgba(255,255,255,0.5);
  text-decoration: none;
  transition: all 0.3s;
}
.fullbleed-hero .hero-buttons a:hover {
  background: var(--warm-white);
  color: var(--navy);
  border-color: var(--warm-white);
}

/* ── HOMEPAGE INTRO / CENTERED PROSE ── */
.intro-copy {
  max-width: 900px;
  margin: 0 auto;
  padding: 60px 40px;
  border-bottom: 1px solid var(--light-rule);
}
.intro-copy p {
  font-size: 1.12rem;
  line-height: 1.85;
  color: #444;
  margin-bottom: 20px;
}
.intro-copy p:last-child { margin-bottom: 0; }

/* ── PERSONAL STATEMENT / SIGNATURE ── */
.personal-statement {
  max-width: 900px;
  margin: 0 auto;
  padding: 60px 40px;
  border-bottom: 1px solid var(--light-rule);
}
.personal-statement blockquote {
  font-family: 'Young Serif', serif;
  font-size: 1.6rem;
  font-style: italic;
  line-height: 1.5;
  color: var(--ink);
  border-left: 4px solid var(--gold);
  padding: 8px 0 8px 32px;
  margin: 0;
}
.personal-statement .signature {
  height: 44px;
  width: auto;
  margin-top: 20px;
  margin-left: 32px;
  opacity: 1;
}

/* ── STATS STRIP ── */
.stats-strip {
  background: var(--navy);
  padding: 48px 40px;
  border-bottom: 1px solid var(--light-rule);
}
.stats-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}
.stat-item { flex: 1; text-align: center; padding: 0 32px; }
.stat-number {
  font-family: 'Young Serif', serif;
  font-size: 3.2rem;
  font-weight: 400;
  color: var(--warm-white);
  line-height: 1;
  margin-bottom: 8px;
}
.stat-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.6);
}
.stat-divider {
  width: 1px;
  height: 60px;
  background: rgba(255,255,255,0.2);
  flex-shrink: 0;
}

/* ── CAREER ARC ── */
.career-arc {
  background: var(--navy);
  padding: 80px 40px;
  border-bottom: 1px solid var(--light-rule);
}
.career-arc-inner { position: relative; max-width: 1200px; margin: 0 auto; }
.career-arc .section-header { border-bottom-color: rgba(255,255,255,0.2); }
.career-arc .section-header h2 { color: var(--warm-white); }
.career-arc .section-header .section-label { color: var(--gold-light); }
.arc-timeline {
  display: flex;
  justify-content: space-between;
  position: relative;
  padding-top: 40px;
  margin-top: 20px;
}
.arc-line {
  position: absolute;
  top: 48px;
  left: 5%;
  right: 5%;
  height: 3px;
  background: rgba(255,255,255,0.15);
  z-index: 0;
}
.arc-line::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(255,255,255,0.15) 0%, var(--gold) 100%);
}
.arc-item {
  position: relative;
  z-index: 1;
  text-align: center;
  flex: 1;
  padding: 0 8px;
}
.arc-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--navy);
  border: 3px solid rgba(255,255,255,0.4);
  margin: 0 auto 16px;
  position: relative;
}
.arc-current .arc-dot {
  background: var(--gold);
  border-color: var(--gold-light);
  width: 18px;
  height: 18px;
  box-shadow: 0 0 0 4px rgba(176, 138, 58, 0.3);
}
.arc-year {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.68rem;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}
.arc-role {
  font-family: 'Young Serif', serif;
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.3;
  margin-bottom: 4px;
  color: var(--warm-white);
}
.arc-current .arc-role { color: var(--gold-light); }
.arc-institution {
  font-size: 0.8rem;
  color: rgba(255,255,255,0.5);
  font-style: italic;
}

/* ── LEADERSHIP IMPACT ── */
.leadership { max-width: 1200px; margin: 0 auto; padding: 80px 40px; border-bottom: 1px solid var(--light-rule); }
.leadership-grid-wrap { display: grid; grid-template-columns: 1fr 300px; gap: 40px; align-items: start; }
.leadership-aside { position: sticky; top: 80px; }
.leadership-aside img { width: 100%; border-bottom: 4px solid var(--gold); }
.impact-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border: 1.5px solid var(--navy); }
.impact-item {
  padding: 32px 28px;
  border-right: 1px solid var(--light-rule);
  border-bottom: 1px solid var(--light-rule);
  transition: background 0.3s;
}
.impact-item:hover { background: var(--cream); }
.impact-item:nth-child(2n) { border-right: none; }
.impact-item:nth-last-child(-n+2) { border-bottom: none; }
.impact-number {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.65rem;
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 10px;
}
.impact-item h3 { font-family: 'Young Serif', serif; font-size: 1.15rem; font-weight: 400; margin-bottom: 8px; }
.impact-item p { font-size: 0.85rem; color: var(--mid-gray); line-height: 1.6; }

/* ── ACCOMPLISHMENTS STRIP ── */
.accomplishments {
  background: var(--navy);
  color: var(--warm-white);
  padding: 60px 40px;
}
.accomplishments-inner { max-width: 1200px; margin: 0 auto; }
.accomplishments-header {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--gold-light);
  margin-bottom: 36px;
}
.accomplishments-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px 60px; }
.accomplishment-entry { padding-left: 20px; border-left: 3px solid var(--gold); }
.accomplishment-entry p {
  font-size: 1rem;
  line-height: 1.7;
  color: rgba(255,255,255,0.85);
}
.accomplishment-entry .acc-context {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.45);
  margin-top: 8px;
}

/* ── EXPERTISE ── */
.expertise { max-width: 1200px; margin: 0 auto; padding: 80px 40px; border-bottom: 1px solid var(--light-rule); }
.expertise-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; }
.expertise-card {
  padding: 32px;
  background: var(--cream);
  border-left: 4px solid var(--gold);
  transition: transform 0.3s;
}
.expertise-card:hover { transform: translateY(-4px); }
.expertise-card h3 { font-family: 'Young Serif', serif; font-size: 1.15rem; font-weight: 400; margin-bottom: 10px; }
.expertise-card p { font-size: 0.9rem; color: var(--mid-gray); line-height: 1.7; }

/* ── IN THE NEWS ── */
.in-news { max-width: 1200px; margin: 0 auto; padding: 60px 40px; border-bottom: 1px solid var(--light-rule); }
.news-list { display: flex; flex-direction: column; }
.news-item {
  display: grid;
  grid-template-columns: 100px 1fr auto;
  gap: 24px;
  align-items: baseline;
  padding: 20px 0;
  border-bottom: 1px solid var(--light-rule);
  text-decoration: none;
  color: var(--ink);
  transition: all 0.3s;
}
.news-item:hover { padding-left: 12px; border-bottom-color: var(--navy); }
.news-item:last-child { border-bottom: none; }
.news-date { font-family: 'IBM Plex Mono', monospace; font-size: 0.72rem; color: var(--mid-gray); }
.news-title { font-family: 'Young Serif', serif; font-size: 1.15rem; font-weight: 400; line-height: 1.3; }
.news-source { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--navy); white-space: nowrap; }

/* ── BIO ── */
.bio-preview {
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  border-bottom: 1px solid var(--light-rule);
}
.bio-preview h2 { font-family: 'Young Serif', serif; font-size: 2.2rem; font-weight: 400; margin-bottom: 24px; }
.bio-text { font-size: 1.05rem; line-height: 1.85; color: #444; }
.bio-text p { margin-bottom: 20px; }
.bio-highlights { background: var(--cream); padding: 40px; border-top: 4px solid var(--gold); }
.bio-highlights h3 {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--navy);
  margin-bottom: 28px;
}
.highlight-item { padding: 16px 0; border-bottom: 1px solid var(--light-rule); }
.highlight-item:last-child { border-bottom: none; }
.highlight-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--mid-gray); font-weight: 600; margin-bottom: 4px; }
.highlight-value { font-family: 'Young Serif', serif; font-size: 1.1rem; font-weight: 400; }

/* ── PULLQUOTE BANNER ── */
.pullquote-banner {
  background: var(--navy);
  color: var(--warm-white);
  padding: 50px 40px;
  text-align: center;
}
.pullquote-banner blockquote {
  font-family: 'Young Serif', serif;
  font-size: 2rem;
  font-style: italic;
  line-height: 1.5;
  max-width: 900px;
  margin: 0 auto;
  font-weight: 400;
}
.pullquote-banner blockquote strong {
  color: var(--gold-light);
  font-weight: 400;
}
.pullquote-banner .attribution {
  margin-top: 16px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: rgba(255,255,255,0.5);
}

/* ── MEDIA CTA ── */
.media-cta {
  background: var(--navy);
  color: var(--warm-white);
  padding: 80px 40px;
  text-align: center;
}
.media-cta-inner { max-width: 700px; margin: 0 auto; }
.media-cta h2 {
  font-family: 'Young Serif', serif;
  font-size: 2.5rem;
  font-weight: 400;
  margin-bottom: 16px;
}
.media-cta p {
  font-size: 1.1rem;
  color: rgba(255,255,255,0.7);
  margin-bottom: 40px;
  line-height: 1.7;
}
.cta-buttons { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }
.cta-btn {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  padding: 16px 40px;
  text-decoration: none;
  border: 2px solid var(--warm-white);
  color: var(--warm-white);
  transition: all 0.3s;
  cursor: pointer;
}
.cta-btn:hover { background: var(--warm-white); color: var(--navy); }
.cta-btn.primary { background: var(--gold); border-color: var(--gold); }
.cta-btn.primary:hover { background: var(--gold-light); border-color: var(--gold-light); color: var(--ink); }

/* ── VIEW ALL LINK ── */
.view-all-link {
  display: inline-block;
  margin-top: 32px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--navy);
  text-decoration: none;
  border-bottom: 2px solid var(--navy);
  padding-bottom: 4px;
  transition: all 0.3s;
}
.view-all-link:hover { color: var(--gold); border-bottom-color: var(--gold); }

/* ── FOOTER ── */
footer.site-footer {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.78rem;
  color: var(--mid-gray);
}
footer.site-footer a {
  color: var(--mid-gray);
  text-decoration: none;
  margin-left: 24px;
  transition: color 0.3s;
}
footer.site-footer a:hover { color: var(--navy); }

/* ── ANIMATIONS ── */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeIn 0.8s ease forwards;
}
.fade-in:nth-child(1) { animation-delay: 0.1s; }
.fade-in:nth-child(2) { animation-delay: 0.2s; }
.fade-in:nth-child(3) { animation-delay: 0.3s; }
.fade-in:nth-child(4) { animation-delay: 0.4s; }
.fade-in:nth-child(5) { animation-delay: 0.5s; }
.fade-in:nth-child(6) { animation-delay: 0.6s; }
@keyframes fadeIn { to { opacity: 1; transform: translateY(0); } }

.slide-in {
  opacity: 0;
  transform: translateX(-20px);
  animation: slideIn 0.6s ease forwards;
}
@keyframes slideIn { to { opacity: 1; transform: translateX(0); } }

/* ═══════════════════════════════════════════════════
   PHILOSOPHY PAGE
   ═══════════════════════════════════════════════════ */
.philosophy-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 40px;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 80px;
  border-bottom: 1px solid var(--light-rule);
}
.philosophy-prose { font-size: 1.1rem; line-height: 2; color: #333; }
.philosophy-prose p { margin-bottom: 28px; }
.philosophy-prose .drop-cap::first-letter {
  font-family: 'Young Serif', serif;
  font-size: 4.5rem;
  font-weight: 400;
  float: left;
  line-height: 0.8;
  margin-right: 12px;
  margin-top: 8px;
  color: var(--navy);
}
.inline-quote {
  font-family: 'Young Serif', serif;
  font-size: 1.6rem;
  font-style: italic;
  line-height: 1.5;
  color: var(--ink);
  border-left: 4px solid var(--gold);
  padding: 24px 0 24px 32px;
  margin: 40px 0;
}
.inline-quote strong { color: var(--navy); font-weight: 400; }
.philosophy-sidebar { position: sticky; top: 100px; align-self: start; }
.sidebar-block { background: var(--cream); padding: 36px; margin-bottom: 32px; }
.sidebar-block h3 {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--navy);
  margin-bottom: 20px;
}
.sidebar-block p { font-size: 0.92rem; line-height: 1.7; color: var(--mid-gray); margin-bottom: 12px; }
.sidebar-block p:last-child { margin-bottom: 0; }
.principle-list { list-style: none; padding: 0; }
.principle-list li { padding: 16px 0; border-bottom: 1px solid var(--light-rule); font-size: 0.95rem; line-height: 1.6; }
.principle-list li:last-child { border-bottom: none; }
.principle-list li strong { display: block; font-family: 'Young Serif', serif; font-size: 1.05rem; font-weight: 400; margin-bottom: 4px; }
.principle-list li span { color: var(--mid-gray); font-size: 0.88rem; }

.pillars { padding: 80px 40px; background: var(--navy); }
.pillars .section-header { border-bottom-color: rgba(255,255,255,0.2); max-width: 1200px; margin: 0 auto 50px; }
.pillars .section-header h2 { color: var(--warm-white); }
.pillars .section-header .section-label { color: var(--gold-light); }
.pillars-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1.5px solid rgba(255,255,255,0.2);
  max-width: 1200px;
  margin: 0 auto;
}
.pillar-item {
  padding: 40px 28px;
  border-right: 1px solid rgba(255,255,255,0.1);
  text-align: center;
  transition: background 0.3s;
}
.pillar-item:last-child { border-right: none; }
.pillar-item:hover { background: rgba(255,255,255,0.05); }
.pillar-number {
  font-family: 'Young Serif', serif;
  font-size: 3rem;
  font-weight: 400;
  color: var(--gold);
  margin-bottom: 16px;
  line-height: 1;
}
.pillar-item h3 { font-family: 'Young Serif', serif; font-size: 1.15rem; font-weight: 400; margin-bottom: 12px; color: var(--warm-white); }
.pillar-item p { font-size: 0.88rem; color: rgba(255,255,255,0.65); line-height: 1.65; }

.photo-break {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
}
.photo-break .photo-slot {
  aspect-ratio: 21/9;
  overflow: hidden;
}
.photo-break .photo-slot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

/* ═══════════════════════════════════════════════════
   CV PAGE
   ═══════════════════════════════════════════════════ */
.cv-intro { max-width:1200px; margin:0 auto; padding:40px 40px 60px; display:grid; grid-template-columns:280px 1fr; gap:60px; border-bottom:1px solid var(--light-rule); }
.cv-photo { aspect-ratio:3/4; background:var(--cream); overflow:hidden; position:sticky; top:80px; align-self:start; border-bottom:4px solid var(--gold); }
.cv-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.cv-header-info h2 { font-family:'Young Serif',serif; font-size:2rem; font-weight:400; margin-bottom:8px; }
.cv-header-info .cv-title { font-size:1.05rem; color:var(--mid-gray); font-style:italic; margin-bottom:24px; }
.cv-contact-row { display:flex; gap:32px; flex-wrap:wrap; margin-bottom:24px; }
.cv-contact-item { font-size:0.85rem; color:var(--mid-gray); }
.cv-contact-item strong { display:block; font-family:'IBM Plex Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.15em; color:var(--navy); margin-bottom:4px; }
.cv-contact-item a { color:var(--ink); text-decoration:none; border-bottom:1px solid var(--light-rule); transition:border-color 0.3s; }
.cv-contact-item a:hover { border-color:var(--gold); }
.cv-summary { font-size:1rem; line-height:1.8; color:#444; padding:24px 0; border-top:1px solid var(--light-rule); }
.cv-download-btn { display:inline-block; font-family:'DM Sans',sans-serif; font-size:0.78rem; font-weight:600; text-transform:uppercase; letter-spacing:0.15em; padding:12px 28px; background:var(--gold); color:white; text-decoration:none; transition:background 0.3s; margin-top:20px; }
.cv-download-btn:hover { background:var(--gold-light); }

.cv-section { max-width:1200px; margin:0 auto; padding:60px 40px; border-bottom:1px solid var(--light-rule); }
.cv-section-header { display:flex; align-items:baseline; gap:16px; margin-bottom:36px; padding-bottom:12px; border-bottom:2px solid var(--ink); }
.cv-section-header h2 { font-family:'Young Serif',serif; font-size:1.8rem; font-weight:400; }
.cv-section-header span { font-family:'IBM Plex Mono',monospace; font-size:0.65rem; text-transform:uppercase; letter-spacing:0.2em; color:var(--navy); }

.cv-timeline { display:flex; flex-direction:column; }
.cv-entry { display:grid; grid-template-columns:180px 1fr; gap:40px; padding:28px 0; border-bottom:1px solid var(--light-rule); transition:all 0.3s; }
.cv-entry:hover { padding-left:8px; }
.cv-entry:last-child { border-bottom:none; }
.cv-entry-dates { font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--mid-gray); padding-top:4px; }
.cv-entry-content h3 { font-family:'Young Serif',serif; font-size:1.2rem; font-weight:400; margin-bottom:4px; }
.cv-entry-content .institution { font-size:0.92rem; color:var(--navy); font-weight:600; margin-bottom:8px; }
.cv-entry-content .description { font-size:0.92rem; color:var(--mid-gray); line-height:1.7; }

.accomplishment-block { background:var(--cream); padding:40px; margin-top:40px; border-top:4px solid var(--gold); }
.accomplishment-block h3 { font-family:'IBM Plex Mono',monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.2em; color:var(--navy); margin-bottom:20px; }
.accomplishment-block p { font-size:0.95rem; line-height:1.8; color:#444; margin-bottom:12px; }
.accomplishment-block p:last-child { margin-bottom:0; }

.cv-section-navy { background:var(--navy); padding:60px 40px; border-bottom:none; max-width:100%; }
.cv-section-navy .cv-section-inner { max-width:1200px; margin:0 auto; }
.cv-section-navy .cv-section-header { border-bottom-color:rgba(255,255,255,0.2); }
.cv-section-navy .cv-section-header h2 { color:var(--warm-white); }
.cv-section-navy .cv-section-header span { color:var(--gold-light); }

.education-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.education-card { background:rgba(255,255,255,0.08); padding:36px; border-top:4px solid var(--gold); }
.education-card .degree-type { font-family:'IBM Plex Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.2em; color:var(--gold-light); margin-bottom:12px; }
.education-card h3 { font-family:'Young Serif',serif; font-size:1.4rem; font-weight:400; margin-bottom:4px; color:var(--warm-white); }
.education-card .school { font-size:1rem; font-weight:600; color:rgba(255,255,255,0.6); margin-bottom:8px; }
.education-card .year { font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:rgba(255,255,255,0.45); }

.affiliations-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; border:1.5px solid var(--navy); }
.affiliation-item { padding:20px 24px; border-right:1px solid var(--light-rule); border-bottom:1px solid var(--light-rule); display:flex; justify-content:space-between; align-items:baseline; transition:background 0.3s; }
.affiliation-item:hover { background:var(--cream); }
.affiliation-item:nth-child(2n) { border-right:none; }
.affiliation-name { font-family:'Young Serif',serif; font-size:1rem; font-weight:400; }
.affiliation-role { font-size:0.82rem; color:var(--mid-gray); margin-top:2px; }
.affiliation-dates { font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color:var(--mid-gray); white-space:nowrap; }

/* ═══════════════════════════════════════════════════
   PRESS PAGE
   ═══════════════════════════════════════════════════ */
.quick-grab { background:var(--navy); color:var(--warm-white); padding:24px 40px; }
.quick-grab-inner { max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.quick-grab-label { font-family:'IBM Plex Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.2em; color:var(--gold-light); }
.quick-grab-links { display:flex; gap:16px; flex-wrap:wrap; }
.quick-grab-links a { font-size:0.78rem; font-weight:600; text-transform:uppercase; letter-spacing:0.12em; color:var(--warm-white); text-decoration:none; padding:8px 20px; border:1.5px solid rgba(255,255,255,0.3); transition:all 0.3s; }
.quick-grab-links a:hover { background:var(--warm-white); color:var(--navy); border-color:var(--warm-white); }

.bios-section { max-width:1200px; margin:0 auto; padding:80px 40px; border-bottom:1px solid var(--light-rule); }
.bio-versions { display:grid; grid-template-columns:1fr; gap:50px; }
.bio-version { background:var(--cream); padding:36px; }
.bio-version-label { font-family:'IBM Plex Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.2em; color:var(--navy); margin-bottom:16px; display:flex; justify-content:space-between; }
.word-count { font-family:'IBM Plex Mono',monospace; font-size:0.6rem; color:var(--mid-gray); }
.bio-version p { font-size:0.95rem; line-height:1.8; color:#444; margin-bottom:12px; }
.copy-btn { font-family:'IBM Plex Mono',monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.15em; background:var(--navy); color:var(--warm-white); border:none; padding:10px 20px; cursor:pointer; transition:background 0.3s; margin-top:8px; }
.copy-btn:hover { background:var(--gold); }

.headshots-section { max-width:1200px; margin:0 auto; padding:80px 40px; border-bottom:1px solid var(--light-rule); }
.headshots-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:32px; }
.headshot-card { background:var(--cream); overflow:hidden; transition:transform 0.3s; }
.headshot-card:hover { transform:translateY(-4px); }
.headshot-image { aspect-ratio:3/4; overflow:hidden; }
.headshot-image img { width:100%; height:100%; object-fit:cover; object-position:center top; filter:grayscale(15%); transition:filter 0.3s; }
.headshot-card:hover .headshot-image img { filter:grayscale(0%); }
.headshot-info { padding:20px; display:flex; justify-content:space-between; align-items:center; }
.headshot-label { font-size:0.82rem; font-weight:600; }
.headshot-meta { font-family:'IBM Plex Mono',monospace; font-size:0.65rem; color:var(--mid-gray); }
.headshot-download { font-family:'IBM Plex Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--navy); text-decoration:none; transition:color 0.3s; }
.headshot-download:hover { color:var(--gold); }

.topics-section { padding:80px 40px; background:var(--navy); }
.topics-section .section-header { max-width:1200px; margin:0 auto 50px; border-bottom-color:rgba(255,255,255,0.2); }
.topics-section .section-header h2 { color:var(--warm-white); }
.topics-section .section-header .section-label { color:var(--gold-light); }
.topics-intro { font-size:1.05rem; line-height:1.8; color:rgba(255,255,255,0.6); max-width:1200px; margin:0 auto 40px; }
.topic-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:0; border:1.5px solid rgba(255,255,255,0.2); max-width:1200px; margin:0 auto; }
.topic-card { padding:32px; border-right:1px solid rgba(255,255,255,0.1); border-bottom:1px solid rgba(255,255,255,0.1); transition:background 0.3s; }
.topic-card:hover { background:rgba(255,255,255,0.05); }
.topic-card:nth-child(2n) { border-right:none; }
.topic-card h3 { font-family:'Young Serif',serif; font-size:1.15rem; font-weight:400; margin-bottom:10px; color:var(--warm-white); }
.topic-card p { font-size:0.9rem; color:rgba(255,255,255,0.6); line-height:1.7; }

.timely-section { max-width:1200px; margin:0 auto; padding:80px 40px; border-bottom:1px solid var(--light-rule); }
.timely-intro { font-size:1.05rem; line-height:1.8; color:var(--mid-gray); max-width:700px; margin-bottom:40px; }
.timely-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.timely-card { padding:28px; border:1.5px solid var(--light-rule); transition:all 0.3s; }
.timely-card:hover { border-color:var(--navy); transform:translateY(-2px); }
.timely-tag { font-family:'IBM Plex Mono',monospace; font-size:0.6rem; text-transform:uppercase; letter-spacing:0.15em; color:var(--warm-white); background:var(--navy); display:inline-block; padding:3px 10px; margin-bottom:14px; }
.timely-card h3 { font-family:'Young Serif',serif; font-size:1.1rem; font-weight:400; margin-bottom:10px; line-height:1.3; }
.timely-card p { font-size:0.88rem; color:var(--mid-gray); line-height:1.7; margin-bottom:14px; }
.timely-soundbite { font-family:'Young Serif',serif; font-size:0.92rem; font-style:italic; color:var(--ink); border-left:3px solid var(--gold); padding-left:16px; line-height:1.5; }

.coverage-section { max-width:1200px; margin:0 auto; padding:60px 40px; border-bottom:1px solid var(--light-rule); }
.coverage-list { display:flex; flex-direction:column; }
.coverage-item {
  display:grid; grid-template-columns:100px 1fr auto; gap:24px;
  align-items:baseline; padding:20px 0; border-bottom:1px solid var(--light-rule);
  text-decoration:none; color:var(--ink); transition:all 0.3s;
}
.coverage-item:hover { padding-left:12px; border-bottom-color:var(--navy); }
.coverage-item:last-child { border-bottom:none; }
.coverage-date { font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--mid-gray); }
.coverage-title { font-family:'Young Serif',serif; font-size:1.1rem; font-weight:400; line-height:1.3; }
.coverage-source { font-size:0.75rem; font-weight:600; text-transform:uppercase; letter-spacing:0.1em; color:var(--navy); white-space:nowrap; }

/* ═══════════════════════════════════════════════════
   CONTACT PAGE
   ═══════════════════════════════════════════════════ */
.contact-layout { max-width:1200px; margin:0 auto; padding:80px 40px; display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.contact-channels h2 { font-family:'Young Serif',serif; font-size:2rem; font-weight:400; margin-bottom:12px; }
.contact-channels .intro { font-size:1.05rem; color:var(--mid-gray); line-height:1.7; margin-bottom:48px; }
.channel { padding:32px 0; border-bottom:1px solid var(--light-rule); display:grid; grid-template-columns:48px 1fr; gap:20px; align-items:start; }
.channel:first-of-type { border-top:2px solid var(--navy); }
.channel-icon { width:48px; height:48px; background:var(--cream); display:flex; align-items:center; justify-content:center; font-size:1.3rem; }
.channel-label { font-family:'IBM Plex Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.2em; color:var(--navy); margin-bottom:6px; }
.channel-value { font-family:'Young Serif',serif; font-size:1.3rem; font-weight:400; margin-bottom:4px; }
.channel-value a { color:var(--ink); text-decoration:none; border-bottom:2px solid transparent; transition:border-color 0.3s; }
.channel-value a:hover { border-color:var(--gold); }
.channel-note { font-size:0.88rem; color:var(--mid-gray); line-height:1.5; }

.social-links { margin-top:48px; }
.social-links h3 { font-family:'IBM Plex Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.2em; color:var(--navy); margin-bottom:20px; }
.social-grid { display:flex; gap:16px; }
.social-link { display:flex; align-items:center; gap:10px; padding:12px 20px; border:1.5px solid var(--light-rule); text-decoration:none; color:var(--ink); font-size:0.88rem; font-weight:600; transition:all 0.3s; }
.social-link:hover { border-color:var(--navy); background:var(--cream); }

.contact-form-area { background:var(--cream); padding:48px; border-top:4px solid var(--gold); }
.contact-form-area h3 { font-family:'Young Serif',serif; font-size:1.5rem; font-weight:400; margin-bottom:8px; }
.contact-form-area .form-intro { font-size:0.92rem; color:var(--mid-gray); margin-bottom:32px; line-height:1.6; }
.contact-form-area .wpcf7 .form-group,
.form-group { margin-bottom:24px; }
.form-group label { display:block; font-family:'IBM Plex Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.15em; color:var(--ink); margin-bottom:8px; font-weight:500; }
.form-group input, .form-group select, .form-group textarea,
.contact-form-area input:not([type=submit]), .contact-form-area select, .contact-form-area textarea {
  width:100%; font-family:'DM Sans',sans-serif; font-size:0.95rem; padding:14px 16px; border:1.5px solid var(--light-rule); background:var(--warm-white); color:var(--ink); transition:border-color 0.3s; outline:none; appearance:none; -webkit-appearance:none;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus,
.contact-form-area input:focus, .contact-form-area select:focus, .contact-form-area textarea:focus { border-color:var(--navy); }
.form-group textarea, .contact-form-area textarea { resize:vertical; min-height:120px; }
.form-group select, .contact-form-area select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b6b6b' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:40px; cursor:pointer; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.submit-btn, .contact-form-area input[type=submit] { width:100%; font-family:'DM Sans',sans-serif; font-size:0.82rem; font-weight:600; text-transform:uppercase; letter-spacing:0.15em; padding:16px; background:var(--navy); color:var(--warm-white); border:none; cursor:pointer; transition:background 0.3s; margin-top:8px; }
.submit-btn:hover, .contact-form-area input[type=submit]:hover { background:var(--gold); }

/* Formidable Forms — inherit the theme's field styling inside the contact card.
   Works best with the form's style set to "None" (see README). */
.contact-form-area .frm_forms,
.contact-form-area .frm_form_fields > fieldset { border:none; padding:0; margin:0; }
.contact-form-area .frm_form_field { margin-bottom:24px; }
.contact-form-area .frm_primary_label { display:block; font-family:'IBM Plex Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.15em; color:var(--ink); margin-bottom:8px; font-weight:500; padding:0; }
.contact-form-area .frm_required { color:var(--gold); }
.contact-form-area .frm_description { font-size:0.8rem; color:var(--mid-gray); margin-top:6px; }
/* Raised specificity so the theme wins over Formidable's default field styling. */
.contact-form-area .frm_forms input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
.contact-form-area .frm_forms select,
.contact-form-area .frm_forms textarea { width:100%; font-family:'DM Sans',sans-serif; font-size:0.95rem; padding:14px 16px; border:1.5px solid var(--light-rule); background:var(--warm-white); color:var(--ink); outline:none; box-shadow:none; }
.contact-form-area .frm_forms input:focus, .contact-form-area .frm_forms select:focus, .contact-form-area .frm_forms textarea:focus { border-color:var(--navy); }
.contact-form-area .frm_forms textarea { resize:vertical; min-height:120px; }
.contact-form-area .frm_submit { margin:0; padding:0; clear:both; }
.contact-form-area .frm_button_submit,
.contact-form-area .frm_submit button,
.contact-form-area .frm_submit input[type=submit] { width:100%; font-family:'DM Sans',sans-serif; font-size:0.82rem; font-weight:600; text-transform:uppercase; letter-spacing:0.15em; padding:16px; background:var(--navy); color:var(--warm-white); border:none; border-radius:0; cursor:pointer; transition:background 0.3s; margin-top:8px; }
.contact-form-area .frm_button_submit:hover,
.contact-form-area .frm_submit button:hover,
.contact-form-area .frm_submit input[type=submit]:hover { background:var(--gold); }
/* Optional two-column name row: add "frm_half" to both name fields, and
   "frm_first" to the first, in each field's CSS Layout Classes. */
.contact-form-area .frm_form_field.frm_half { width:calc(50% - 8px); float:left; margin-right:16px; }
.contact-form-area .frm_form_field.frm_half + .frm_half { margin-right:0; }
@media (max-width:600px) {
  .contact-form-area .frm_form_field.frm_half { width:100%; float:none; margin-right:0; }
}

/* ═══════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════ */
@media (max-width: 900px) {
  .fullbleed-hero h1 { font-size: 2.8rem; }
  .section-header { flex-direction: column; gap: 8px; }
  .leadership-grid-wrap { grid-template-columns: 1fr; }
  .leadership-aside { position: static; max-width: 300px; }
  .stats-inner { flex-wrap: wrap; gap: 24px; }
  .stat-divider { display: none; }
  .stat-item { flex: 0 0 45%; }
  .stat-number { font-size: 2.4rem; }
  .arc-timeline { flex-direction: column; gap: 24px; padding-top: 0; }
  .arc-line { display: none; }
  .arc-item { text-align: left; padding: 12px 0 12px 32px; border-left: 3px solid rgba(255,255,255,0.15); }
  .arc-current { border-left-color: var(--gold); }
  .arc-dot { display: none; }
  .impact-grid { grid-template-columns: 1fr 1fr; }
  .impact-item:nth-child(2n) { border-right: none; }
  .accomplishments-grid { grid-template-columns: 1fr; }
  .expertise-grid { grid-template-columns: 1fr; }
  .news-item { grid-template-columns: 1fr; gap: 8px; }
  .bio-preview { grid-template-columns: 1fr; }
  /* philosophy */
  .philosophy-content { grid-template-columns: 1fr; gap: 40px; }
  .philosophy-sidebar { position: static; }
  .pillars-grid { grid-template-columns: 1fr 1fr; }
  .pillar-item:nth-child(2) { border-right: none; }
  .pillar-item:nth-child(1), .pillar-item:nth-child(2) { border-bottom: 1px solid rgba(255,255,255,0.1); }
  /* cv */
  .cv-intro { grid-template-columns:1fr; gap:32px; }
  .cv-photo { max-width:200px; position:static; }
  .cv-entry { grid-template-columns:1fr; gap:8px; }
  .affiliations-grid { grid-template-columns:1fr; }
  .affiliation-item { border-right:none; }
  .education-grid { grid-template-columns:1fr; }
  /* press */
  .headshots-grid { grid-template-columns:1fr; }
  .topic-cards { grid-template-columns:1fr; }
  .topic-card { border-right:none; }
  .timely-grid { grid-template-columns:1fr; }
  .coverage-item { grid-template-columns:1fr; gap:8px; }
  .quick-grab-inner { flex-direction:column; text-align:center; }
  /* contact */
  .contact-layout { grid-template-columns:1fr; gap:40px; }
  .social-grid { flex-wrap:wrap; }
  .pullquote-banner blockquote { font-size: 1.5rem; }
}

@media (max-width: 600px) {
  .top-bar-inner { flex-direction: column; gap: 12px; }
  .top-bar nav a { margin: 0 12px; font-size: 0.72rem; }
  .fullbleed-hero .fullbleed-overlay { padding: 40px 24px 30px; }
  .fullbleed-hero h1 { font-size: 2.2rem; }
  .intro-copy, .personal-statement { padding: 40px 24px; }
  .stats-strip { padding: 32px 24px; }
  .stat-item { flex: 0 0 100%; }
  .stat-number { font-size: 2rem; }
  .career-arc { padding: 50px 24px; }
  .leadership, .expertise, .in-news, .bio-preview { padding: 50px 24px; }
  .accomplishments { padding: 40px 24px; }
  .impact-grid { grid-template-columns: 1fr; }
  .impact-item { border-right: none; }
  .page-container { padding: 0 24px; }
  footer.site-footer { flex-direction: column; gap: 16px; text-align: center; }
  footer.site-footer a { margin: 0 12px; }
  .media-cta { padding: 50px 24px; }
  .media-cta h2 { font-size: 1.8rem; }
  .cta-buttons { flex-direction: column; align-items: center; }
  /* philosophy */
  .philosophy-content { padding: 50px 24px; }
  .pillars { padding: 50px 24px; }
  .pillars-grid { grid-template-columns: 1fr; }
  .pillar-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.1); }
  .pillar-item:last-child { border-bottom: none; }
  .inline-quote { font-size: 1.3rem; }
  /* cv */
  .cv-intro { padding:30px 24px 40px; }
  .cv-section { padding:40px 24px; }
  .cv-section-navy { padding:40px 24px; }
  .cv-contact-row { flex-direction:column; gap:16px; }
  /* press */
  .quick-grab { padding:20px 24px; }
  .bios-section,.headshots-section,.topics-section,.timely-section,.coverage-section { padding:50px 24px; }
  .headshots-grid { max-width:400px; }
  /* contact */
  .contact-layout { padding:50px 24px; }
  .contact-form-area { padding:32px 24px; }
  .form-row { grid-template-columns:1fr; }
  .channel { grid-template-columns:1fr; }
  .channel-icon { display:none; }
}
