/*
Theme Name: Praxis Scholar
Theme URI: https://example.com/praxis-scholar
Author: You
Author URI: https://example.com
Description: An academic theme for professors and researchers — built for a personal site that combines research/publications, course pages, a student resource hub, and a commentary blog. Navy & gold palette, clean and credible.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: praxis-scholar
Tags: education, blog, custom-menu, custom-logo, featured-images, threaded-comments, translation-ready
*/

/* -------------------------------------------------
   0. FONTS
------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600;8..60,700&family=Inter:wght@400;500;600;700&display=swap');

/* -------------------------------------------------
   1. ROOT / DESIGN TOKENS
------------------------------------------------- */
:root{
  --color-bg:            #F7F7F5;
  --color-bg-alt:        #EFEFEA;
  --color-navy:           #16234A;
  --color-navy-soft:      #2C3A66;
  --color-ink:            #1C1E22;
  --color-ink-soft:       #5B5F6A;
  --color-gold:            #B8892B;
  --color-gold-soft:       #EAD9AE;
  --color-line:           #DDDBD3;
  --color-card:           #FFFFFF;

  --font-display: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --font-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --max-width: 1180px;
  --gutter: clamp(20px, 4vw, 48px);
  --radius: 4px;
}

/* -------------------------------------------------
   2. RESET / BASE
------------------------------------------------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--color-bg);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; height:auto; }
a{ color: var(--color-navy); text-decoration: none; }
a:hover{ color: var(--color-gold); }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.2;
  margin: 0 0 .5em;
  color: var(--color-navy);
}
h1{ font-size: clamp(2.2rem, 4.5vw, 3.4rem); }
h2{ font-size: clamp(1.5rem, 2.6vw, 2rem); }
h3{ font-size: 1.2rem; }
p{ margin: 0 0 1.2em; }
.container{
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.eyebrow{
  display:inline-block;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .76rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: .9em;
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  padding: .8em 1.5em;
  border-radius: 2px;
  background: var(--color-navy);
  color: #fff;
  font-size: .9rem;
  font-weight: 600;
  letter-spacing: .02em;
  border: 1px solid var(--color-navy);
  transition: all .2s ease;
}
.btn:hover{ background: var(--color-gold); border-color: var(--color-gold); color: var(--color-navy); }
.btn-outline{
  background: transparent;
  color: var(--color-navy);
  border: 1px solid var(--color-navy);
}
.btn-outline:hover{ background: var(--color-navy); color: #fff; }

/* -------------------------------------------------
   3. HEADER
------------------------------------------------- */
.site-header{
  padding: 20px 0;
  border-bottom: 3px solid var(--color-navy);
  background: var(--color-card);
  position: sticky;
  top: 0;
  z-index: 50;
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 24px;
}
.site-branding a{
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.35rem;
  letter-spacing: .01em;
  color: var(--color-navy);
}
.site-branding img{ max-height: 50px; }
.site-description{
  font-family: var(--font-body);
  font-size: .78rem;
  color: var(--color-ink-soft);
  margin-top: 2px;
}
.primary-menu{
  display:flex;
  gap: 30px;
  align-items:center;
}
.primary-menu a{
  font-size: .88rem;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--color-ink-soft);
  text-transform: uppercase;
}
.primary-menu a:hover{ color: var(--color-gold); }
.primary-menu .current-menu-item > a{ color: var(--color-navy); border-bottom: 2px solid var(--color-gold); padding-bottom: 4px; }
.menu-toggle{
  display:none;
  background:none;
  border: 1px solid var(--color-line);
  border-radius: 4px;
  padding: 8px 12px;
  font-family: var(--font-body);
  cursor:pointer;
}

/* -------------------------------------------------
   4. HERO (faculty homepage)
------------------------------------------------- */
.hero{
  padding: clamp(48px, 8vw, 96px) 0 clamp(36px, 5vw, 64px);
  background: var(--color-navy);
  color: #F1F1EE;
}
.hero .container{
  display:grid;
  grid-template-columns: 1fr auto;
  gap: var(--gutter);
  align-items:center;
}
.hero h1{ color: #fff; }
.hero .eyebrow{ color: var(--color-gold-soft); }
.hero-copy p{
  color: #C9CCD8;
  font-size: 1.06rem;
  max-width: 56ch;
}
.hero-meta{
  display:flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  margin: 14px 0 20px;
  font-size: .9rem;
  color: #AEB4C7;
}
.hero-meta span strong{ color: #fff; }
.hero-actions{ display:flex; gap:12px; margin-top: 8px; flex-wrap: wrap; }
.hero-portrait{
  width: 190px;
  height: 190px;
  border-radius: 50%;
  overflow:hidden;
  border: 4px solid var(--color-gold);
  flex-shrink:0;
}
.hero-portrait img{ width:100%; height:100%; object-fit:cover; }

/* -------------------------------------------------
   5. GENERIC CARD GRIDS (courses / research / resources / blog)
------------------------------------------------- */
.section{ padding: clamp(36px, 6vw, 76px) 0; }
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap: 24px;
  margin-bottom: 30px;
  border-bottom: 2px solid var(--color-navy);
  padding-bottom: 16px;
}
.section-head h2{ margin:0; }
.section-head a{ font-size: .88rem; font-weight:600; }

.card-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gutter);
}
.card-grid.cols-2{ grid-template-columns: repeat(2, 1fr); }
.card-grid.cols-4{ grid-template-columns: repeat(4, 1fr); }

.entry-card{
  display:block;
  background: var(--color-card);
  border: 1px solid var(--color-line);
  border-top: 3px solid var(--color-navy);
  border-radius: var(--radius);
  padding: 22px 22px 24px;
  transition: box-shadow .2s ease, transform .2s ease;
}
.entry-card:hover{ box-shadow: 0 8px 24px rgba(22,35,74,.1); transform: translateY(-2px); }
.entry-card .tag{
  font-size: .7rem;
  font-weight:700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-gold);
}
.entry-card h3{ margin: .4em 0 .3em; font-size: 1.1rem; }
.entry-card .meta{ font-size: .82rem; color: var(--color-ink-soft); margin-bottom: .6em; }
.entry-card .desc{ font-size: .92rem; color: var(--color-ink-soft); margin: 0; }
.entry-card .thumb-wrap{
  aspect-ratio: 16/10;
  overflow:hidden;
  border-radius: 2px;
  margin-bottom: 14px;
  background: var(--color-bg-alt);
}
.entry-card .thumb-wrap img{ width:100%; height:100%; object-fit:cover; }

/* -------------------------------------------------
   6. COURSE-SPECIFIC
------------------------------------------------- */
.course-meta-bar{
  display:flex;
  flex-wrap: wrap;
  gap: 10px 26px;
  background: var(--color-bg-alt);
  border: 1px solid var(--color-line);
  border-radius: var(--radius);
  padding: 18px 22px;
  margin: 24px 0 36px;
  font-size: .92rem;
}
.course-meta-bar div strong{ display:block; color: var(--color-navy); font-size: .74rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:2px; }

/* -------------------------------------------------
   7. RESOURCE HUB
------------------------------------------------- */
.resource-filter{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  margin-bottom: 30px;
}
.resource-filter a{
  padding: 6px 14px;
  border: 1px solid var(--color-line);
  border-radius: 999px;
  font-size: .82rem;
  font-weight:600;
  color: var(--color-ink-soft);
}
.resource-filter a.active, .resource-filter a:hover{
  background: var(--color-navy);
  border-color: var(--color-navy);
  color: #fff;
}

/* -------------------------------------------------
   8. SINGLE / POST / PAGE CONTENT
------------------------------------------------- */
.single-hero{
  padding: 44px 0 0;
}
.single-hero .entry-meta{
  color: var(--color-ink-soft);
  font-size: .88rem;
  margin-bottom: 20px;
}
.single-cover{
  margin: 20px 0 40px;
  border-radius: var(--radius);
  overflow:hidden;
}
.entry-content{
  max-width: 760px;
  margin: 0 auto;
  font-size: 1.05rem;
}
.entry-content h2{ margin-top: 1.6em; }
.entry-content img{ border-radius: var(--radius); margin: 1.4em 0; }
.entry-content blockquote{
  border-left: 3px solid var(--color-gold);
  margin: 2em 0;
  padding: .2em 0 .2em 1.4em;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.2rem;
  color: var(--color-ink-soft);
}
.entry-content table{ width:100%; border-collapse: collapse; margin: 1.4em 0; }
.entry-content th, .entry-content td{ border: 1px solid var(--color-line); padding: 8px 12px; text-align:left; }
.entry-content th{ background: var(--color-bg-alt); }
.page-content{ max-width: 760px; margin: 0 auto; padding: 44px 0 76px; }

/* -------------------------------------------------
   9. SIDEBAR / WIDGETS
------------------------------------------------- */
.content-layout{
  display:grid;
  grid-template-columns: 1fr 300px;
  gap: 52px;
}
.widget{
  background: var(--color-card);
  border: 1px solid var(--color-line);
  border-radius: var(--radius);
  padding: 22px;
  margin-bottom: 22px;
}
.widget-title{
  font-size: .76rem;
  font-weight:700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-navy);
  margin-bottom: 1em;
}

/* -------------------------------------------------
   10. FOOTER
------------------------------------------------- */
.site-footer{
  border-top: 3px solid var(--color-navy);
  background: var(--color-navy);
  color: #C9CCD8;
  padding: 52px 0 28px;
  margin-top: 56px;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 30px;
  margin-bottom: 36px;
}
.footer-brand{ font-family: var(--font-display); font-size: 1.3rem; color: #fff; }
.footer-tag{ color: #AEB4C7; max-width: 34ch; margin-top: 10px;}
.site-footer .widget-title{ color: var(--color-gold-soft); }
.footer-menu a{
  display:block;
  padding: 6px 0;
  color: #C9CCD8;
  font-size: .9rem;
}
.footer-menu a:hover{ color: var(--color-gold-soft); }
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top: 1px solid rgba(255,255,255,.15);
  padding-top: 22px;
  font-size: .8rem;
  color: #8D93A8;
}
.social-links{ display:flex; gap: 16px; }
.social-links a{ color: #C9CCD8; }
.social-links a:hover{ color: var(--color-gold-soft); }

/* -------------------------------------------------
   11. COMMENTS
------------------------------------------------- */
.comments-area{ max-width: 760px; margin: 56px auto 0; }
.comment-list{ margin-top: 22px; }
.comment-body{
  border-bottom: 1px solid var(--color-line);
  padding: 18px 0;
}
.comment-author{ font-weight:700; color: var(--color-navy); }
.comment-metadata{ font-size: .8rem; color: var(--color-ink-soft); }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form textarea{
  width:100%;
  padding: 12px 14px;
  border: 1px solid var(--color-line);
  border-radius: 3px;
  font-family: var(--font-body);
  margin-bottom: 14px;
  background: var(--color-card);
}
.comment-form textarea{ min-height: 130px; }

/* -------------------------------------------------
   12. UTILITIES
------------------------------------------------- */
.screen-reader-text{
  position:absolute !important;
  clip: rect(1px,1px,1px,1px);
  width:1px; height:1px; overflow:hidden;
}
.pagination{
  display:flex;
  gap: 10px;
  margin-top: 36px;
  justify-content:center;
}
.pagination a, .pagination span{
  padding: 8px 14px;
  border: 1px solid var(--color-line);
  border-radius: 3px;
  font-size: .9rem;
}
.pagination .current{ background: var(--color-navy); color: #fff; border-color: var(--color-navy); }

/* -------------------------------------------------
   13. RESPONSIVE
------------------------------------------------- */
@media (max-width: 900px){
  .hero .container{ grid-template-columns: 1fr; text-align:left; }
  .hero-portrait{ order:-1; }
  .card-grid{ grid-template-columns: repeat(2, 1fr); }
  .card-grid.cols-4{ grid-template-columns: repeat(2, 1fr); }
  .content-layout{ grid-template-columns: 1fr; }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px){
  .primary-menu{
    position:absolute;
    top:100%; left:0; right:0;
    background: var(--color-card);
    flex-direction:column;
    align-items:flex-start;
    gap: 4px;
    padding: 16px var(--gutter) 24px;
    border-bottom: 1px solid var(--color-line);
    display:none;
  }
  .primary-menu.is-open{ display:flex; }
  .primary-menu a{ padding: 10px 0; width:100%; }
  .menu-toggle{ display:inline-block; }
  .card-grid, .card-grid.cols-4{ grid-template-columns: 1fr; }
  .footer-grid{ grid-template-columns: 1fr; }
  .footer-bottom{ flex-direction:column; gap: 12px; align-items:flex-start; }
  .hero-portrait{ width: 130px; height: 130px; }
}
