/*
Theme Name: Favfrica Learning
Theme URI: https://favfrica.com
Author: Favfrica
Author URI: https://favfrica.com
Description: A custom WordPress learning experience designed for Favfrica Learning and optimized for LifterLMS.
Version: 1.1.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
Text Domain: favfrica-learning
Tags: education, one-column, two-columns, custom-logo, custom-menu, featured-images, translation-ready, threaded-comments, block-styles, wide-blocks
*/

/* =====================================================
   1. DESIGN TOKENS — brand formula: Cream = paper,
   Navy = ink, Gold = highlighter, White = clean surface,
   Soft Gray = structure.
   ===================================================== */
:root{
  --fav-navy:#0D1B2A;
  --fav-navy-light:#16283d;
  --fav-navy-soft: rgba(13,27,42,0.06);
  --fav-gold:#FFB800;
  --fav-gold-dark:#e6a600;
  --fav-cream:#FFFDF5;
  --fav-white:#FFFFFF;
  --fav-gray-200:#E6E4DC;
  --fav-gray-50:#F8F7F3;
  --fav-text:#0D1B2A;
  --fav-text-muted:#4b5563;
  --fav-success:#1e7a4c;
  --fav-error:#b3261e;
  --fav-warning:#8a5a00;

  --fav-shadow-sm: 0 1px 2px rgba(13,27,42,0.06);
  --fav-shadow-md: 0 6px 20px rgba(13,27,42,0.08);
  --fav-shadow-lg: 0 12px 32px rgba(13,27,42,0.12);

  --fav-radius-sm:8px;
  --fav-radius-md:12px;
  --fav-radius-lg:18px;

  --fav-space-1:4px;
  --fav-space-2:8px;
  --fav-space-3:12px;
  --fav-space-4:16px;
  --fav-space-5:24px;
  --fav-space-6:32px;
  --fav-space-7:48px;
  --fav-space-8:64px;
  --fav-space-9:80px;
  --fav-space-10:96px;

  --fav-container: 1240px;
  --fav-container-narrow: 760px;
  --fav-container-wide: 1400px;

  --fav-font-heading: "Playfair Display", Georgia, "Times New Roman", serif;
  --fav-font-body: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --fav-transition: 180ms ease;
}

/* =====================================================
   2. RESET & BASE
   ===================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--fav-cream);
  color:var(--fav-text);
  font-family:var(--fav-font-body);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
table{ max-width:100%; }
a{ color:var(--fav-navy); text-decoration:none; transition:color var(--fav-transition); }
a:hover{ color:var(--fav-gold-dark); }
ul,ol{ padding-left:1.2em; }

h1,h2,h3,h4,h5,h6{
  font-family:var(--fav-font-heading);
  color:var(--fav-navy);
  line-height:1.2;
  font-weight:700;
  margin:0 0 var(--fav-space-4);
}
h1{ font-size:clamp(34px,5vw,60px); }
h2{ font-size:clamp(28px,4vw,42px); }
h3{ font-size:clamp(22px,3vw,30px); }
h4{ font-size:clamp(18px,2.2vw,22px); }
p{ margin:0 0 var(--fav-space-4); color:var(--fav-text); }
.fav-lede{ font-size:18px; color:var(--fav-text-muted); }
small,.fav-small{ font-size:14px; }

:focus{ outline:3px solid var(--fav-gold); outline-offset:2px; }
:focus:not(:focus-visible){ outline:none; }
:focus-visible{ outline:3px solid var(--fav-gold); outline-offset:2px; }

.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--fav-navy); color:var(--fav-cream);
  padding:12px 20px; z-index:10000; border-radius:0 0 8px 0;
}
.skip-link:focus{ left:0; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

/* =====================================================
   3. LAYOUT
   ===================================================== */
.fav-container{ max-width:var(--fav-container); margin:0 auto; padding:0 20px; }
.fav-container.fav-container--wide{ max-width:var(--fav-container-wide); }
.fav-container.fav-container--narrow{ max-width:var(--fav-container-narrow); }
@media(min-width:768px){ .fav-container{ padding:0 32px; } }
@media(min-width:1280px){ .fav-container{ padding:0 40px; } }

.fav-section{ padding:var(--fav-space-8) 0; }
.fav-section--navy{ background:var(--fav-navy); color:var(--fav-cream); }
.fav-section--navy h2,.fav-section--navy h3,.fav-section--navy h4{ color:var(--fav-cream); }
.fav-section--navy p{ color:rgba(255,253,245,0.82); }
.fav-section--white{ background:var(--fav-white); }
.fav-section--gray{ background:var(--fav-gray-50); }

.fav-section-head{ max-width:var(--fav-container-narrow); margin:0 0 var(--fav-space-6); }
.fav-section-head.fav-center{ margin-left:auto; margin-right:auto; text-align:center; }
.fav-eyebrow{
  display:inline-block; font-family:var(--fav-font-body); font-weight:800; letter-spacing:.08em;
  text-transform:uppercase; font-size:13px; color:var(--fav-navy); background:rgba(255,184,0,0.18);
  border:1px solid rgba(255,184,0,0.5); padding:6px 14px; border-radius:999px; margin-bottom:var(--fav-space-4);
}
.fav-section--navy .fav-eyebrow{ color:var(--fav-cream); background:rgba(255,184,0,0.15); border-color:rgba(255,184,0,0.4); }

.fav-grid{ display:grid; gap:var(--fav-space-5); }
.fav-grid--3{ grid-template-columns:repeat(3,1fr); }
.fav-grid--4{ grid-template-columns:repeat(4,1fr); }
.fav-grid--2{ grid-template-columns:repeat(2,1fr); }
@media(max-width:1024px){ .fav-grid--4{ grid-template-columns:repeat(2,1fr); } .fav-grid--3{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:640px){ .fav-grid--4,.fav-grid--3,.fav-grid--2{ grid-template-columns:1fr; } }

/* =====================================================
   4. BUTTONS
   ===================================================== */
.fav-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--fav-font-body); font-weight:800; font-size:15px; line-height:1;
  padding:14px 26px; border-radius:var(--fav-radius-sm); border:2px solid transparent;
  cursor:pointer; transition:transform var(--fav-transition), background var(--fav-transition), color var(--fav-transition), border-color var(--fav-transition);
  text-decoration:none;
}
.fav-btn:hover{ transform:translateY(-1px); }
.fav-btn-primary{ background:var(--fav-navy); color:var(--fav-cream); border-color:var(--fav-navy); }
.fav-btn-primary:hover{ background:var(--fav-navy-light); color:var(--fav-cream); }
.fav-btn-secondary{ background:transparent; color:var(--fav-navy); border-color:var(--fav-navy); }
.fav-btn-secondary:hover{ background:var(--fav-navy-soft); color:var(--fav-navy); }
.fav-btn-accent{ background:var(--fav-gold); color:var(--fav-navy); border-color:var(--fav-gold); }
.fav-btn-accent:hover{ background:var(--fav-gold-dark); border-color:var(--fav-gold-dark); color:var(--fav-navy); }
.fav-btn-ghost-light{ background:transparent; color:var(--fav-cream); border-color:rgba(255,253,245,0.5); }
.fav-btn-ghost-light:hover{ background:rgba(255,253,245,0.1); color:var(--fav-cream); }
.fav-btn[disabled]{ opacity:.5; cursor:not-allowed; transform:none; }
.fav-btn-block{ width:100%; }

/* =====================================================
   5. HEADER
   ===================================================== */
.fav-header{
  background:var(--fav-cream); border-bottom:1px solid var(--fav-gray-200);
  position:sticky; top:0; z-index:500;
}
.fav-header-inner{ display:flex; align-items:center; justify-content:space-between; gap:var(--fav-space-5); padding:16px 0; }
.fav-branding{ display:flex; align-items:center; gap:10px; }
.fav-branding img{ max-height:44px; width:auto; }
.fav-site-title{ font-family:var(--fav-font-heading); font-size:22px; font-weight:700; color:var(--fav-navy); margin:0; }
.fav-site-title a{ color:var(--fav-navy); }

.fav-primary-nav{ display:none; }
.fav-primary-nav ul{ list-style:none; display:flex; gap:var(--fav-space-5); margin:0; padding:0; }
.fav-primary-nav a{ font-weight:700; color:var(--fav-navy); font-size:15px; padding:8px 2px; position:relative; }
.fav-primary-nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--fav-gold);
  transform:scaleX(0); transition:transform var(--fav-transition);
}
.fav-primary-nav a:hover::after, .fav-primary-nav .current-menu-item > a::after{ transform:scaleX(1); }
.fav-header-actions{ display:flex; align-items:center; gap:12px; }

.fav-menu-toggle{
  display:inline-flex; align-items:center; justify-content:center; background:none; border:2px solid var(--fav-navy);
  border-radius:var(--fav-radius-sm); width:44px; height:44px; cursor:pointer;
}
.fav-menu-toggle span, .fav-menu-toggle span::before, .fav-menu-toggle span::after{
  content:""; display:block; width:20px; height:2px; background:var(--fav-navy); position:relative; transition:transform var(--fav-transition);
}
.fav-menu-toggle span::before{ position:absolute; top:-6px; }
.fav-menu-toggle span::after{ position:absolute; top:6px; }

.fav-mobile-nav{ display:none; background:var(--fav-white); border-top:1px solid var(--fav-gray-200); }
.fav-mobile-nav.is-open{ display:block; }
.fav-mobile-nav ul{ list-style:none; margin:0; padding:var(--fav-space-4) 0; }
.fav-mobile-nav a{ display:block; padding:12px 20px; font-weight:700; color:var(--fav-navy); }
.fav-mobile-nav a:hover{ background:var(--fav-gray-50); }

@media(min-width:960px){
  .fav-primary-nav{ display:block; }
  .fav-menu-toggle{ display:none; }
  .fav-mobile-nav{ display:none !important; }
}

/* =====================================================
   6. HERO — navy band (matches Favfrica Academy reference
   mockup); the page body around it stays cream so the site
   overall reads calm, with navy used deliberately for impact.
   ===================================================== */
.fav-hero{
  background:var(--fav-navy); color:var(--fav-cream);
  padding:var(--fav-space-9) 0 var(--fav-space-9);
  position:relative; overflow:hidden;
}
.fav-hero-grid{ display:grid; grid-template-columns:1fr; gap:var(--fav-space-7); align-items:center; position:relative; z-index:2; }
.fav-hero-eyebrow-text{ display:block; font-family:var(--fav-font-heading); font-size:clamp(22px,3vw,30px); color:var(--fav-cream); font-weight:600; margin-bottom:4px; }
.fav-hero h1{ color:var(--fav-gold); margin-bottom:var(--fav-space-4); text-transform:uppercase; letter-spacing:.01em; font-size:clamp(32px,5vw,52px); }
.fav-hero p.fav-lede{ color:rgba(255,253,245,0.82); }
.fav-hero-actions{ display:flex; gap:var(--fav-space-3); flex-wrap:wrap; margin-top:var(--fav-space-5); }
.fav-hero .fav-btn-secondary{ color:var(--fav-cream); border-color:rgba(255,253,245,0.6); }
.fav-hero .fav-btn-secondary:hover{ background:rgba(255,253,245,0.1); color:var(--fav-cream); }

/* Trust bar — replaces star ratings / fake stats with plain, honest indicators */
.fav-trust-bar{
  display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; margin-top:var(--fav-space-5);
  font-size:14px; font-weight:800; color:var(--fav-gold); letter-spacing:.02em;
}
.fav-trust-bar span:not(.fav-trust-dot){ color:rgba(255,253,245,0.92); }
.fav-trust-dot{ color:var(--fav-gold); }

/* Checklist */
.fav-checklist{ list-style:none; margin:var(--fav-space-4) 0 0; padding:0; display:grid; gap:10px; }
.fav-checklist li{ display:flex; align-items:center; gap:10px; font-weight:700; color:var(--fav-cream); }
.fav-checklist .fav-check-icon{
  flex:0 0 20px; width:20px; height:20px; border-radius:5px; border:2px solid var(--fav-gold);
  display:inline-flex; align-items:center; justify-content:center; color:var(--fav-gold);
}
.fav-checklist .fav-check-icon svg{ width:13px; height:13px; }

/* Hero media: photo with gold accent blobs, echoing the brand reference mockup */
.fav-hero-media{ position:relative; display:flex; justify-content:center; }
.fav-hero-media-frame{
  position:relative; z-index:2; border-radius:32px; overflow:hidden; max-width:420px; width:100%;
  box-shadow:var(--fav-shadow-lg);
}
.fav-hero-media-frame img{ width:100%; height:100%; object-fit:cover; display:block; }
.fav-hero-blob{ position:absolute; border-radius:50%; background:var(--fav-gold); z-index:1; }
.fav-hero-blob--top{ width:260px; height:260px; top:-70px; right:-40px; }
.fav-hero-blob--bottom{ width:180px; height:180px; bottom:-50px; left:-30px; }
.fav-hero-no-media{
  background:rgba(255,253,245,0.08); border:1px dashed rgba(255,253,245,0.3); border-radius:24px;
  padding:var(--fav-space-6); color:rgba(255,253,245,0.75); max-width:420px; text-align:center;
}
@media(min-width:960px){ .fav-hero-grid{ grid-template-columns:1.15fr 0.85fr; } }
@media(max-width:640px){ .fav-hero-blob--top{ width:160px; height:160px; top:-40px; right:-30px; } .fav-hero-blob--bottom{ display:none; } }

/* Search bar */
.fav-search-form{ display:flex; gap:10px; background:var(--fav-white); border:1px solid var(--fav-gray-200); padding:8px; border-radius:var(--fav-radius-md); box-shadow:var(--fav-shadow-sm); max-width:560px; }
.fav-search-form input[type="search"]{
  flex:1; border:none; background:transparent; padding:10px 14px; font-size:15px; font-family:var(--fav-font-body); color:var(--fav-navy);
}
.fav-search-form input[type="search"]:focus{ outline:none; }
.fav-search-form button{ white-space:nowrap; }

/* =====================================================
   7. CARDS — quick access / feature cards
   ===================================================== */
.fav-card{
  background:var(--fav-white); border:1px solid var(--fav-gray-200); border-radius:var(--fav-radius-lg);
  padding:var(--fav-space-5); box-shadow:var(--fav-shadow-sm); transition:transform var(--fav-transition), box-shadow var(--fav-transition);
}
.fav-card:hover{ transform:translateY(-3px); box-shadow:var(--fav-shadow-md); }
.fav-card-icon{
  width:48px; height:48px; border-radius:var(--fav-radius-sm); background:rgba(255,184,0,0.16);
  display:flex; align-items:center; justify-content:center; margin-bottom:var(--fav-space-3); color:var(--fav-navy);
}
.fav-card-icon svg{ width:24px; height:24px; }
.fav-card h4{ margin-bottom:6px; }
.fav-card p{ margin-bottom:var(--fav-space-3); color:var(--fav-text-muted); font-size:15px; }
.fav-card-link{ font-weight:800; font-size:14px; display:inline-flex; align-items:center; gap:6px; }

/* =====================================================
   8. COURSE CARDS
   ===================================================== */
.fav-course-card{
  background:var(--fav-white); border:1px solid var(--fav-gray-200); border-radius:var(--fav-radius-lg);
  overflow:hidden; box-shadow:var(--fav-shadow-sm); transition:transform var(--fav-transition), box-shadow var(--fav-transition);
  display:flex; flex-direction:column; height:100%;
}
.fav-course-card:hover{ transform:translateY(-4px); box-shadow:var(--fav-shadow-md); }
.fav-course-card-media{ aspect-ratio:16/10; overflow:hidden; background:var(--fav-gray-50); }
.fav-course-card-media img{ width:100%; height:100%; object-fit:cover; }
.fav-course-card-body{ padding:var(--fav-space-5); display:flex; flex-direction:column; flex:1; }
.fav-course-label{
  font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--fav-navy);
  background:var(--fav-gray-50); border:1px solid var(--fav-gray-200); padding:4px 10px; border-radius:999px;
  display:inline-block; margin-bottom:10px; width:fit-content;
}
.fav-course-card h3{ font-size:20px; margin-bottom:8px; }
.fav-course-card p{ color:var(--fav-text-muted); font-size:14.5px; flex:1; }
.fav-course-instructor{ display:flex; align-items:center; gap:8px; margin:10px 0; font-size:13.5px; color:var(--fav-text-muted); }
.fav-course-instructor img{ width:24px; height:24px; border-radius:50%; object-fit:cover; }
.fav-course-card-footer{ display:flex; align-items:center; justify-content:space-between; margin-top:var(--fav-space-3); gap:10px; }

/* Progress bar (student progress uses actual LifterLMS data) */
.fav-progress{ margin:10px 0; }
.fav-progress-track{ background:var(--fav-gray-200); border-radius:999px; height:8px; overflow:hidden; }
.fav-progress-bar{ background:var(--fav-navy); height:100%; border-radius:999px; position:relative; }
.fav-progress-bar::after{ content:""; position:absolute; right:0; top:0; bottom:0; width:6px; background:var(--fav-gold); }
.fav-progress-label{ font-size:13px; font-weight:800; color:var(--fav-navy); margin-top:6px; display:block; }

/* =====================================================
   9. METHOD STEPS / TIMELINE
   ===================================================== */
.fav-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--fav-space-5); }
.fav-step-num{
  font-family:var(--fav-font-heading); font-size:32px; color:var(--fav-gold); font-weight:700; margin-bottom:8px;
}
@media(max-width:960px){ .fav-steps{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .fav-steps{ grid-template-columns:1fr; } }

/* =====================================================
   10. INSTRUCTOR / SPLIT CTA
   ===================================================== */
.fav-split{ display:grid; grid-template-columns:1fr; gap:var(--fav-space-7); align-items:center; }
.fav-split-media{ border-radius:var(--fav-radius-lg); overflow:hidden; box-shadow:var(--fav-shadow-md); }
.fav-perks{ list-style:none; padding:0; margin:var(--fav-space-4) 0; display:grid; gap:10px; }
.fav-perks li{ display:flex; align-items:flex-start; gap:10px; font-weight:700; }
.fav-perks li::before{
  content:""; flex:0 0 8px; width:8px; height:8px; border-radius:50%; background:var(--fav-gold); margin-top:8px;
}
@media(min-width:960px){ .fav-split{ grid-template-columns:1fr 1fr; } }

/* =====================================================
   11. TESTIMONIALS
   ===================================================== */
.fav-testimonial{
  background:var(--fav-white); border-radius:var(--fav-radius-lg); padding:var(--fav-space-5); box-shadow:var(--fav-shadow-sm);
  border:1px solid var(--fav-gray-200);
}
.fav-testimonial p{ font-style:italic; color:var(--fav-text); }
.fav-testimonial-person{ display:flex; align-items:center; gap:10px; margin-top:var(--fav-space-3); }
.fav-testimonial-person img{ width:44px; height:44px; border-radius:50%; object-fit:cover; }

/* =====================================================
   12. FOOTER
   ===================================================== */
.fav-footer{ background:var(--fav-navy); color:var(--fav-cream); padding:var(--fav-space-8) 0 var(--fav-space-5); }
.fav-footer a{ color:var(--fav-cream); }
.fav-footer a:hover{ color:var(--fav-gold); }
.fav-footer-grid{ display:grid; grid-template-columns:1fr; gap:var(--fav-space-6); margin-bottom:var(--fav-space-6); }
.fav-footer h4{ color:var(--fav-cream); font-size:16px; margin-bottom:var(--fav-space-3); }
.fav-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:8px; font-size:14.5px; }
.fav-footer-bottom{
  border-top:1px solid rgba(255,253,245,0.15); padding-top:var(--fav-space-4); display:flex; flex-wrap:wrap;
  justify-content:space-between; gap:10px; font-size:13.5px; color:rgba(255,253,245,0.7);
}
@media(min-width:768px){ .fav-footer-grid{ grid-template-columns:1.4fr 1fr 1fr; } }

/* =====================================================
   13. FORMS
   ===================================================== */
input[type=text],input[type=email],input[type=password],input[type=search],input[type=tel],input[type=url],textarea,select{
  width:100%; background:var(--fav-white); border:1.5px solid var(--fav-gray-200); border-radius:var(--fav-radius-sm);
  padding:13px 14px; font-family:var(--fav-font-body); font-size:15px; color:var(--fav-navy); transition:border-color var(--fav-transition);
}
input:focus,textarea:focus,select:focus{ border-color:var(--fav-navy); outline:2px solid var(--fav-gold); outline-offset:1px; }
label{ display:block; font-weight:800; font-size:14px; margin-bottom:6px; color:var(--fav-navy); }
.fav-field{ margin-bottom:var(--fav-space-4); }

.fav-auth-wrap{ min-height:60vh; display:flex; align-items:center; justify-content:center; padding:var(--fav-space-8) 20px; }
.fav-auth-card{
  background:var(--fav-white); border-radius:var(--fav-radius-lg); box-shadow:var(--fav-shadow-md); border:1px solid var(--fav-gray-200);
  padding:var(--fav-space-6); max-width:440px; width:100%;
}
.fav-auth-card h1{ font-size:26px; text-align:center; }
.fav-auth-links{ text-align:center; margin-top:var(--fav-space-4); font-size:14.5px; }

/* =====================================================
   14. DASHBOARD
   ===================================================== */
.fav-dashboard{ padding:var(--fav-space-7) 0; }
.fav-dashboard-layout{ display:grid; grid-template-columns:1fr; gap:var(--fav-space-6); }
.fav-dash-sidebar{ background:var(--fav-white); border:1px solid var(--fav-gray-200); border-radius:var(--fav-radius-lg); padding:var(--fav-space-4); height:fit-content; }
.fav-dash-sidebar ul{ list-style:none; margin:0; padding:0; display:grid; gap:4px; }
.fav-dash-sidebar a{ display:block; padding:11px 14px; border-radius:var(--fav-radius-sm); font-weight:700; color:var(--fav-navy); }
.fav-dash-sidebar a:hover,.fav-dash-sidebar .is-active a{ background:var(--fav-gray-50); }
.fav-dash-sidebar .is-active a{ box-shadow:inset 3px 0 0 var(--fav-gold); }
.fav-dash-welcome{ margin-bottom:var(--fav-space-5); }
@media(min-width:960px){ .fav-dashboard-layout{ grid-template-columns:260px 1fr; } }

.fav-empty-state{ text-align:center; padding:var(--fav-space-7) var(--fav-space-4); background:var(--fav-gray-50); border-radius:var(--fav-radius-lg); border:1px dashed var(--fav-gray-200); }

/* =====================================================
   15. LESSON EXPERIENCE
   ===================================================== */
.fav-lesson-layout{ display:grid; grid-template-columns:1fr; gap:var(--fav-space-6); align-items:start; }
.fav-lesson-sidebar{ background:var(--fav-white); border:1px solid var(--fav-gray-200); border-radius:var(--fav-radius-lg); padding:var(--fav-space-4); position:sticky; top:90px; max-height:80vh; overflow:auto; }
.fav-lesson-main{ background:var(--fav-white); border:1px solid var(--fav-gray-200); border-radius:var(--fav-radius-lg); padding:var(--fav-space-6); max-width:var(--fav-container-narrow); }
.fav-lesson-nav{ display:flex; justify-content:space-between; align-items:center; margin-top:var(--fav-space-6); flex-wrap:wrap; gap:10px; padding-top:var(--fav-space-5); border-top:1px solid var(--fav-gray-200); }
@media(min-width:1024px){ .fav-lesson-layout{ grid-template-columns:300px 1fr; } }

/* =====================================================
   16. NOTICES
   ===================================================== */
.fav-notice{ border-radius:var(--fav-radius-sm); padding:14px 16px; margin-bottom:var(--fav-space-4); font-weight:700; border:1.5px solid; display:flex; gap:10px; align-items:flex-start; }
.fav-notice-success{ background:#eef8f1; border-color:var(--fav-success); color:#0f4b2c; }
.fav-notice-error{ background:#fbeceb; border-color:var(--fav-error); color:#7a1b16; }
.fav-notice-warning{ background:#fff6e0; border-color:var(--fav-warning); color:#5c3d00; }
.fav-notice-info{ background:var(--fav-navy-soft); border-color:var(--fav-navy); color:var(--fav-navy); }

/* =====================================================
   17. TABLES
   ===================================================== */
table{ width:100%; border-collapse:collapse; overflow-x:auto; display:block; }
table thead th{ background:var(--fav-navy); color:var(--fav-cream); text-align:left; padding:12px 14px; font-size:14px; }
table td{ padding:12px 14px; border-bottom:1px solid var(--fav-gray-200); font-size:14.5px; }
table tbody tr:nth-child(even){ background:var(--fav-gray-50); }

/* =====================================================
   18. BLOG / ARCHIVE / SEARCH
   ===================================================== */
.fav-content-narrow{ max-width:var(--fav-container-narrow); margin:0 auto; padding:var(--fav-space-8) 20px; }
.fav-post-list{ display:grid; gap:var(--fav-space-6); }
.fav-post-card{ display:grid; gap:var(--fav-space-4); padding-bottom:var(--fav-space-6); border-bottom:1px solid var(--fav-gray-200); }
.fav-post-meta{ font-size:13.5px; color:var(--fav-text-muted); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.fav-pagination{ display:flex; gap:8px; justify-content:center; margin-top:var(--fav-space-6); flex-wrap:wrap; }
.fav-pagination a,.fav-pagination span{ padding:9px 14px; border-radius:var(--fav-radius-sm); border:1.5px solid var(--fav-gray-200); font-weight:700; }
.fav-pagination .current{ background:var(--fav-navy); color:var(--fav-cream); border-color:var(--fav-navy); }

/* =====================================================
   19. 404
   ===================================================== */
.fav-404{ text-align:center; padding:var(--fav-space-10) 20px; max-width:var(--fav-container-narrow); margin:0 auto; }
.fav-404-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:var(--fav-space-5); }

/* =====================================================
   20. WORDPRESS CORE / GUTENBERG COMPAT
   ===================================================== */
.alignwide{ max-width:var(--fav-container-wide); margin-left:auto; margin-right:auto; }
.alignfull{ max-width:none; }
.wp-block-quote{ border-left:4px solid var(--fav-gold); padding-left:var(--fav-space-4); font-style:italic; color:var(--fav-navy); }
.wp-caption-text{ font-size:13px; color:var(--fav-text-muted); }
.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; margin:-1px; overflow:hidden;
  padding:0; position:absolute; width:1px; word-wrap:normal !important;
}

/* =====================================================
   21. LIFTERLMS CORE COMPATIBILITY
   Styles target LifterLMS's own stable, documented output
   classes. No template overrides are used.
   ===================================================== */
.llms-course, #content .llms-course{ max-width:var(--fav-container-narrow); margin:0 auto; }

.llms-access-plans{ display:grid; gap:var(--fav-space-4); grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); margin:var(--fav-space-5) 0; }
.llms-access-plan{ background:var(--fav-white); border:1.5px solid var(--fav-gray-200); border-radius:var(--fav-radius-lg); padding:var(--fav-space-5); box-shadow:var(--fav-shadow-sm); }
.llms-access-plan.featured, .llms-access-plan--featured{ border-color:var(--fav-gold); box-shadow:var(--fav-shadow-md); }
.llms-access-plan .llms-access-plan-title, .llms-access-plan-title{ font-family:var(--fav-font-heading); color:var(--fav-navy); }
.llms-access-plan .llms-price{ color:var(--fav-navy); font-weight:800; }
.llms-access-plan button, .llms-access-plan .llms-button-action, a.llms-button-action{
  display:inline-flex; align-items:center; justify-content:center; width:100%; background:var(--fav-navy); color:var(--fav-cream);
  border-radius:var(--fav-radius-sm); padding:13px 20px; font-weight:800; border:2px solid var(--fav-navy); cursor:pointer;
}
.llms-access-plan button:hover, a.llms-button-action:hover{ background:var(--fav-navy-light); color:var(--fav-cream); }

.llms-progress-bar, .llms-progress .llms-progress-bar{ background:var(--fav-gray-200); border-radius:999px; height:10px; overflow:hidden; }
.llms-progress-bar .llms-progress-percentage, .llms-progress-bar span{ background:var(--fav-navy); height:100%; display:block; }
.llms-progress-percentage-txt{ font-weight:800; color:var(--fav-navy); }

.llms-instructors{ display:flex; gap:14px; flex-wrap:wrap; margin:var(--fav-space-4) 0; }
.llms-instructors .llms-author, .llms-instructor{ display:flex; align-items:center; gap:10px; }
.llms-instructors img{ border-radius:50%; width:48px; height:48px; object-fit:cover; }

.llms-notice, .llms-notice-message{
  border-radius:var(--fav-radius-sm); padding:14px 16px; border:1.5px solid var(--fav-navy); background:var(--fav-navy-soft);
  color:var(--fav-navy); font-weight:700; margin-bottom:var(--fav-space-4);
}
.llms-notice.llms-error{ background:#fbeceb; border-color:var(--fav-error); color:#7a1b16; }
.llms-notice.llms-success{ background:#eef8f1; border-color:var(--fav-success); color:#0f4b2c; }

.llms-syllabus-wrapper .llms-section-title, .llms-syllabus .llms-section-title{
  background:var(--fav-gray-50); border:1px solid var(--fav-gray-200); border-radius:var(--fav-radius-sm);
  padding:12px 16px; font-weight:800; color:var(--fav-navy);
}
.llms-lesson-preview{ border-bottom:1px solid var(--fav-gray-200); padding:10px 6px; }
.llms-lesson-complete svg, .llms-lesson-preview.llms-complete .llms-lesson-icon{ color:var(--fav-success); }

.llms-quiz .llms-question, .llms-quiz-question{ background:var(--fav-white); border:1px solid var(--fav-gray-200); border-radius:var(--fav-radius-md); padding:var(--fav-space-4); margin-bottom:var(--fav-space-4); }
.llms-quiz button, .llms-quiz .llms-button-primary, .llms-question-wrapper button{
  background:var(--fav-navy); color:var(--fav-cream); border:2px solid var(--fav-navy); border-radius:var(--fav-radius-sm); padding:12px 22px; font-weight:800; cursor:pointer;
}

.llms-student-dashboard .llms-nav-item a{ font-weight:700; color:var(--fav-navy); }
.llms-student-dashboard .llms-nav-item.llms-active a{ color:var(--fav-navy); box-shadow:inset 3px 0 0 var(--fav-gold); padding-left:12px; }
.llms-student-dashboard .llms-course-progress, .llms-student-dashboard table{ margin-bottom:var(--fav-space-4); }

.llms-form-field input, .llms-form-fields input, .llms-checkout-form input, .llms-form-field select, .llms-form-field textarea{
  width:100%; background:var(--fav-white); border:1.5px solid var(--fav-gray-200); border-radius:var(--fav-radius-sm); padding:13px 14px;
}
.llms-form-field label{ font-weight:800; color:var(--fav-navy); }

/* =====================================================
   21b. SINGLE COURSE — premium presentation layer.
   Targets WordPress's own `.single-course` body class (added
   automatically because 'course' is the post type slug) and
   LifterLMS's own markup classes. No template file is
   overridden; favfrica_course_category_eyebrow() in
   inc/lifterlms.php adds the one small category badge via a
   documented LifterLMS action hook.
   ===================================================== */
body.single-course #primary.fav-main--llms{ background:var(--fav-cream); padding-top:var(--fav-space-6); padding-bottom:var(--fav-space-8); }
body.single-course .fav-container--narrow{ max-width:1080px; }

.fav-course-eyebrow{ margin-bottom:var(--fav-space-3); }

body.single-course .llms-course{ display:block; }
body.single-course h1.entry-title,
body.single-course .llms-course > h1{
  font-size:clamp(30px,4.2vw,46px); margin-bottom:var(--fav-space-3); max-width:820px;
}

/* Featured image as a wide, rounded course banner */
body.single-course .llms-course .llms-featured-img,
body.single-course img.wp-post-image{
  border-radius:var(--fav-radius-lg); overflow:hidden; box-shadow:var(--fav-shadow-md); margin-bottom:var(--fav-space-5);
}

/* Course meta row (author, length, difficulty — only shown when LifterLMS actually outputs it) */
.llms-meta-info, .llms-course-author{ display:flex; flex-wrap:wrap; gap:16px; align-items:center; margin:var(--fav-space-3) 0 var(--fav-space-5); font-size:14.5px; color:var(--fav-text-muted); }

/* Two-column layout: content on the left, sticky access-plan/progress panel on the right */
@media(min-width:1024px){
  body.single-course .llms-course{
    display:grid; grid-template-columns:1fr 340px; gap:var(--fav-space-7); align-items:start;
  }
  body.single-course .llms-course > h1,
  body.single-course .fav-course-eyebrow,
  body.single-course .llms-course .llms-featured-img{ grid-column:1 / -1; }
  body.single-course .llms-access-plans{ position:sticky; top:96px; grid-template-columns:1fr; }
}

/* Progress bar for enrolled students sits right under the title area */
body.single-course .llms-progress{ background:var(--fav-white); border:1px solid var(--fav-gray-200); border-radius:var(--fav-radius-md); padding:var(--fav-space-4); margin:var(--fav-space-4) 0; }

/* Curriculum / syllabus reads like a clean lesson checklist */
body.single-course .llms-syllabus-wrapper,
body.single-course .llms-syllabus{ margin-top:var(--fav-space-6); }
body.single-course .llms-lesson-preview{ display:flex; align-items:center; gap:12px; padding:14px 6px; }
body.single-course .llms-lesson-preview .llms-lesson-title{ font-weight:700; color:var(--fav-navy); }

/* Instructor card */
body.single-course .llms-instructors{
  background:var(--fav-white); border:1px solid var(--fav-gray-200); border-radius:var(--fav-radius-lg);
  padding:var(--fav-space-4); margin-top:var(--fav-space-6);
}

/* FAQ accordion (native <details>, no JS framework needed) */
.fav-faq-item{
  background:var(--fav-white); border:1px solid var(--fav-gray-200); border-radius:var(--fav-radius-md);
  padding:14px 18px; margin-bottom:10px;
}
.fav-faq-item summary{
  font-weight:800; color:var(--fav-navy); cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between;
}
.fav-faq-item summary::-webkit-details-marker{ display:none; }
.fav-faq-item summary::after{ content:"+"; color:var(--fav-gold); font-size:20px; font-weight:800; }
.fav-faq-item[open] summary::after{ content:"\2212"; }
.fav-faq-item p{ margin:10px 0 0; color:var(--fav-text-muted); }

/* =====================================================
   22. PRINT
   ===================================================== */
@media print{
  .fav-header, .fav-footer, .fav-mobile-nav, .fav-menu-toggle, .fav-lesson-sidebar, .fav-hero-actions{ display:none !important; }
  body{ background:#fff; }
}
