/*
 Theme Name:   OralPrep Child
 Theme URI:    https://oralprep.study
 Description:  OralPrep.study child theme for GeneratePress
 Author:       OralPrep.study
 Template:     generatepress
 Version:      1.1.0
 License:      GNU General Public License v2 or later
*/

/* ─── Fonts ──────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400&family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&display=swap');

/* ─── Brand tokens ───────────────────────────────────────────────── */
:root {
  --bg:       #FFFFFF;
  --surface:  #F4F7FB;
  --line:     #D9E0EA;
  --navy:     #15294F;
  --navy-2:   #2A4674;
  --ink:      #1A2336;
  --mute:     #647186;
  --red:      #E11D2A;
  --red-soft: rgba(225,29,42,.13);
  --font-serif: "Newsreader", Georgia, serif;
  --font-sans:  "IBM Plex Sans", system-ui, sans-serif;
  --font-mono:  "IBM Plex Mono", "Courier New", monospace;
  --radius: 8px;
}

/* ─── Base ───────────────────────────────────────────────────────── */
body {
  background: var(--bg) !important;
  color: var(--ink);
  font-family: var(--font-sans) !important;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  background-image:
    linear-gradient(rgba(21,41,79,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(21,41,79,.03) 1px, transparent 1px) !important;
  background-size: 64px 64px !important;
}

/* ─── Layout ─────────────────────────────────────────────────────── */
.grid-container {
  max-width: 1080px !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
}
.site-main { width: 100% !important; float: none !important; }
.widget-area { display: none !important; }

/* ─── Header ─────────────────────────────────────────────────────── */
.site-header,
.site-header .grid-container {
  background: var(--bg) !important;
}
.site-header {
  border-bottom: 1px solid var(--line) !important;
  box-shadow: none !important;
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}

/* Site title */
.site-title,
.site-title a,
.site-title a:hover {
  font-family: var(--font-serif) !important;
  font-size: 22px !important;
  font-weight: 500 !important;
  color: var(--navy) !important;
  letter-spacing: -.01em !important;
  text-decoration: none !important;
}
.site-description { display: none !important; }

/* Custom logo sizing */
.custom-logo { height: 32px !important; width: auto !important; }

/* Nav links */
.main-navigation a,
.nav-primary a {
  font-family: var(--font-mono) !important;
  font-size: 13px !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  color: var(--mute) !important;
  text-decoration: none !important;
}
.main-navigation a:hover,
.nav-primary a:hover,
.main-navigation .current-menu-item > a,
.nav-primary .current-menu-item > a {
  color: var(--navy) !important;
}
.main-navigation .menu-toggle { color: var(--navy) !important; }

/* ─── Typography ─────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif) !important;
  font-weight: 400 !important;
  color: var(--navy) !important;
  line-height: 1.12 !important;
  letter-spacing: -.015em !important;
}
h1 { font-size: clamp(36px, 6vw, 64px) !important; }
h2 { font-size: clamp(26px, 3.4vw, 36px) !important; }
h3 { font-size: clamp(20px, 2.4vw, 26px) !important; }
h4 { font-size: 20px !important; }

a { color: var(--red); }
a:hover { text-decoration: underline; }
strong { font-weight: 600; color: var(--ink); }

code, pre {
  font-family: var(--font-mono) !important;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
code { padding: 2px 6px; font-size: .88em; }
pre  { padding: 16px 20px; overflow-x: auto; }

blockquote {
  border-left: 3px solid var(--red) !important;
  color: var(--mute) !important;
  font-style: italic;
  padding-left: 20px !important;
}
hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }

/* ─── Buttons ────────────────────────────────────────────────────── */
.button, button, input[type="submit"],
.wp-block-button__link,
.generate-back-to-top {
  background: var(--red) !important;
  color: #fff !important;
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
  border: 0 !important;
  border-radius: var(--radius) !important;
  padding: 13px 22px !important;
  transition: background .15s ease !important;
}
.button:hover, button:hover, input[type="submit"]:hover,
.wp-block-button__link:hover { background: #c8161f !important; }

/* ─── Forms ──────────────────────────────────────────────────────── */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
textarea, select {
  background: var(--bg) !important;
  border: 1.5px solid var(--line) !important;
  border-radius: var(--radius) !important;
  padding: 12px 14px !important;
  font-family: var(--font-sans) !important;
  font-size: 15px !important;
  color: var(--ink) !important;
}
input:focus, textarea:focus, select:focus {
  border-color: var(--red) !important;
  box-shadow: 0 0 0 3px var(--red-soft) !important;
  outline: none !important;
}

/* ─── Entry / page content ───────────────────────────────────────── */
.entry-title {
  font-family: var(--font-serif) !important;
  color: var(--navy) !important;
}
.entry-meta, .entry-footer, .post-navigation {
  font-family: var(--font-mono) !important;
  font-size: 12px !important;
  letter-spacing: .04em !important;
  color: var(--mute) !important;
}
.entry-content { line-height: 1.7; }

/* ─── LearnDash — course grid ────────────────────────────────────── */
#learndash-course-grid-wrapper .ld-course-list-items {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
  gap: 20px !important;
}
.ld-course-list-item {
  background: var(--bg) !important;
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  transition: box-shadow .18s ease, border-color .18s ease !important;
}
.ld-course-list-item:hover {
  border-color: var(--navy-2) !important;
  box-shadow: 0 4px 20px rgba(21,41,79,.08) !important;
}
.ld-course-list-item .ld-item-title {
  font-family: var(--font-serif) !important;
  font-size: 20px !important;
  color: var(--navy) !important;
}
.ld-course-list-item .ld-item-details {
  font-family: var(--font-mono) !important;
  font-size: 12px !important;
  color: var(--mute) !important;
  letter-spacing: .04em !important;
}

/* ─── LearnDash — lesson/topic list ─────────────────────────────── */
.ld-table-list-header {
  background: var(--surface) !important;
  border-bottom: 1px solid var(--line) !important;
}
.ld-table-list-item-preview {
  border-bottom: 1px solid var(--line) !important;
}

/* ─── LearnDash — progress bar ───────────────────────────────────── */
.ld-progress .ld-progress-bar-percentage {
  background: var(--red) !important;
}
.ld-progress .ld-progress-bar {
  background: var(--surface) !important;
  border: 1px solid var(--line) !important;
  border-radius: 999px !important;
  overflow: hidden !important;
}

/* ─── LearnDash — quiz ───────────────────────────────────────────── */
.wpProQuiz_button, .wpProQuiz_button2 {
  background: var(--red) !important;
  border-color: var(--red) !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-sans) !important;
}
.wpProQuiz_resultPage .wpProQuiz_correct {
  background: rgba(15,110,86,.1) !important;
  border-color: #0F6E56 !important;
}
.wpProQuiz_resultPage .wpProQuiz_incorrect {
  background: rgba(225,29,42,.08) !important;
  border-color: var(--red) !important;
}

/* ─── LearnDash — course navigation sidebar ──────────────────────── */
#ld_course_navigation_widget_pane {
  background: var(--surface) !important;
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
}
.ld-course-navigation ul li a {
  color: var(--ink) !important;
  font-size: 14px !important;
  border-bottom: 1px solid var(--line) !important;
  padding: 10px 16px !important;
}
.ld-course-navigation ul li.ld-is-current-item > a {
  color: var(--navy) !important;
  font-weight: 600 !important;
  border-left: 3px solid var(--red) !important;
}

/* ─── Footer ─────────────────────────────────────────────────────── */
.site-footer {
  background: var(--bg) !important;
  border-top: 1px solid var(--line) !important;
  color: var(--mute) !important;
  font-family: var(--font-mono) !important;
  font-size: 12px !important;
  letter-spacing: .03em !important;
}
.site-footer a { color: var(--mute) !important; }
.site-footer a:hover { color: var(--red) !important; text-decoration: none !important; }
.footer-bar { background: transparent !important; }

/* ─── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 768px) {
  h1 { font-size: 36px !important; }
  h2 { font-size: 26px !important; }
  .ld-course-list-items { grid-template-columns: 1fr !important; }
}
