/*
Theme Name: The Steadfast Table
Theme URI: https://example.com/the-steadfast-table
Author: Claude for Claudette
Author URI: https://example.com
Description: A warm, editable WordPress theme built for moms selling printable PDF Bible studies and workbooks for the whole family. Every section — hero, about, featured bundles, testimonials, email signup, and footer — is editable from Appearance > Customize, and each product "Bundle" is a simple, fully-editable post type with a price, description, cover image, and a Buy Now link you point at your checkout of choice (Payhip, Gumroad, Stripe Payment Links, PayPal.me, or WooCommerce).
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: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: homeschool-haven
Tags: e-commerce, blog, education, custom-colors, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something great.
*/

/* =========================================================
   TABLE OF CONTENTS
   1.0  CSS Variables & Reset
   2.0  Base Typography
   3.0  Layout / Containers
   4.0  Header & Navigation
   5.0  Buttons & Forms
   6.0  Hero Section
   7.0  About Section
   8.0  Featured Bundles / Bundle Cards
   9.0  Bundle Archive & Filters
   10.0 Single Bundle Page
   11.0 Testimonials
   12.0 Email Signup / Newsletter
   13.0 Footer
   14.0 Blog / Single Post / Page
   15.0 Widgets & Sidebar
   16.0 Utilities & Animations
   17.0 Responsive
   ========================================================= */

/* 1.0 CSS Variables & Reset ------------------------------ */
:root{
  --hh-primary:#d97a86;      /* blush rose */
  --hh-primary-dark:#c05e6c;
  --hh-secondary:#8ba888;    /* soft sage */
  --hh-secondary-dark:#71906e;
  --hh-cream:#fdf6ee;
  --hh-cream-dark:#f6ead9;
  --hh-ink:#3f342f;
  --hh-ink-light:#6b5d55;
  --hh-white:#ffffff;
  --hh-gold:#e0b054;
  --hh-border-radius:14px;
  --hh-shadow:0 10px 30px rgba(63,52,47,0.08);
  --hh-shadow-hover:0 16px 40px rgba(63,52,47,0.14);
  --hh-font-heading:'Playfair Display', Georgia, 'Times New Roman', serif;
  --hh-font-body:'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --hh-max-width:1180px;
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--hh-cream);
  color:var(--hh-ink);
  font-family:var(--hh-font-body);
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--hh-primary-dark); text-decoration:none; transition:color .2s ease; }
a:hover{ color:var(--hh-primary); }
ul, ol{ padding-left:1.2em; }
figure{ margin:0; }
.skip-link{
  position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
  background:var(--hh-ink); color:#fff; padding:12px 20px; z-index:10000;
}
.skip-link:focus{ left:10px; top:10px; width:auto; height:auto; border-radius:6px; }

/* 2.0 Base Typography -------------------------------------- */
h1,h2,h3,h4,h5,h6{
  font-family:var(--hh-font-heading);
  color:var(--hh-ink);
  line-height:1.25;
  margin:0 0 .5em;
  font-weight:700;
}
h1{ font-size:2.75rem; }
h2{ font-size:2.15rem; }
h3{ font-size:1.55rem; }
p{ margin:0 0 1.2em; }
.section-eyebrow{
  display:inline-block;
  font-family:var(--hh-font-body);
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:.78rem;
  color:var(--hh-secondary-dark);
  background:rgba(139,168,136,.14);
  padding:.35em .9em;
  border-radius:999px;
  margin-bottom:.9em;
}
.section-heading{ text-align:center; max-width:680px; margin:0 auto 3rem; }
.section-heading p{ color:var(--hh-ink-light); font-size:1.1rem; }

/* 3.0 Layout / Containers ---------------------------------- */
.hh-container{
  max-width:var(--hh-max-width);
  margin:0 auto;
  padding:0 24px;
}
.hh-section{ padding:5.5rem 0; }
.hh-section--tight{ padding:3.5rem 0; }
.hh-section--cream{ background:var(--hh-cream-dark); }
.hh-section--ink{ background:var(--hh-ink); color:#f1e9e0; }
.hh-section--ink h2, .hh-section--ink .section-eyebrow{ color:#fff; }

/* 4.0 Header & Navigation ----------------------------------- */
.hh-header{
  position:sticky; top:0; z-index:999;
  background:rgba(253,246,238,.92);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid rgba(63,52,47,.08);
}
.hh-header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 24px; max-width:var(--hh-max-width); margin:0 auto;
}
.hh-logo{ display:flex; align-items:center; gap:.6em; font-family:var(--hh-font-heading); font-size:1.5rem; font-weight:700; color:var(--hh-ink); }
.hh-logo img{ max-height:52px; width:auto; }
.hh-logo:hover{ color:var(--hh-primary-dark); }
.hh-primary-nav ul{ list-style:none; display:flex; gap:2rem; margin:0; padding:0; align-items:center; }
.hh-primary-nav a{ color:var(--hh-ink); font-weight:700; font-size:.98rem; }
.hh-primary-nav a:hover{ color:var(--hh-primary-dark); }
.hh-primary-nav .current-menu-item > a{ color:var(--hh-primary-dark); }
.hh-header-cta{ display:flex; align-items:center; gap:1.2rem; }
.hh-menu-toggle{
  display:none; background:none; border:2px solid var(--hh-ink); border-radius:8px;
  padding:8px 10px; cursor:pointer;
}
.hh-menu-toggle span{ display:block; width:22px; height:2px; background:var(--hh-ink); margin:4px 0; }

/* 5.0 Buttons & Forms ---------------------------------------- */
.hh-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--hh-font-body); font-weight:800; font-size:.95rem;
  padding:.95em 1.9em; border-radius:999px; border:2px solid transparent;
  cursor:pointer; transition:transform .15s ease, box-shadow .15s ease, background .2s ease, color .2s ease;
  text-align:center;
}
.hh-btn:hover{ transform:translateY(-2px); }
.hh-btn-primary{ background:var(--hh-primary); color:#fff; box-shadow:var(--hh-shadow); }
.hh-btn-primary:hover{ background:var(--hh-primary-dark); color:#fff; box-shadow:var(--hh-shadow-hover); }
.hh-btn-secondary{ background:transparent; border-color:var(--hh-ink); color:var(--hh-ink); }
.hh-btn-secondary:hover{ background:var(--hh-ink); color:#fff; }
.hh-btn-light{ background:#fff; color:var(--hh-primary-dark); }
.hh-btn-light:hover{ background:var(--hh-cream-dark); color:var(--hh-primary-dark); }
.hh-btn-block{ width:100%; }
input[type=text], input[type=email], input[type=search], input[type=url], textarea, select{
  width:100%; padding:.85em 1em; border:1px solid rgba(63,52,47,.2); border-radius:10px;
  font-family:var(--hh-font-body); font-size:1rem; background:#fff; color:var(--hh-ink);
}
input:focus, textarea:focus, select:focus{ outline:2px solid var(--hh-secondary); outline-offset:1px; }

/* 6.0 Hero Section --------------------------------------------- */
.hh-hero{
  position:relative;
  padding:6rem 0;
  background:linear-gradient(180deg, var(--hh-cream) 0%, var(--hh-cream-dark) 100%);
  overflow:hidden;
}
.hh-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:3.5rem; align-items:center; }
.hh-hero-eyebrow{ margin-bottom:1rem; }
.hh-hero h1{ font-size:3.2rem; margin-bottom:.5em; }
.hh-hero .hh-hero-sub{ font-size:1.2rem; color:var(--hh-ink-light); max-width:520px; }
.hh-hero-actions{ display:flex; gap:1rem; margin-top:2rem; flex-wrap:wrap; }
.hh-hero-media{ position:relative; }
.hh-hero-media img{
  border-radius:24px; box-shadow:var(--hh-shadow-hover);
  aspect-ratio:4/3.3; object-fit:cover; width:100%;
}
.hh-hero-badge{
  position:absolute; bottom:-18px; left:-18px; background:#fff; padding:14px 20px;
  border-radius:14px; box-shadow:var(--hh-shadow); font-family:var(--hh-font-heading);
  font-weight:700; display:flex; align-items:center; gap:.6em;
}
.hh-hero-badge .dot{ width:10px; height:10px; border-radius:50%; background:var(--hh-secondary); }
.hh-hero-blob{
  position:absolute; border-radius:50%; opacity:.35; filter:blur(10px); z-index:0;
}

/* 7.0 About Section --------------------------------------------- */
.hh-about-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:3.5rem; align-items:center; }
.hh-about-media img{ border-radius:22px; box-shadow:var(--hh-shadow); }
.hh-about-content h2{ text-align:left; }
.hh-about-content{ max-width:560px; }
.hh-about-list{ list-style:none; padding:0; margin:1.5rem 0 0; display:grid; gap:.9rem; }
.hh-about-list li{ display:flex; gap:.7em; align-items:flex-start; font-weight:700; }
.hh-about-list li::before{
  content:'✓'; flex:0 0 auto; width:26px; height:26px; border-radius:50%;
  background:var(--hh-secondary); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:.8rem; margin-top:2px;
}

/* 8.0 Featured Bundles / Bundle Cards ----------------------------- */
.hh-bundle-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(270px, 1fr)); gap:2rem;
}
.hh-bundle-card{
  background:#fff; border-radius:var(--hh-border-radius); overflow:hidden;
  box-shadow:var(--hh-shadow); transition:transform .2s ease, box-shadow .2s ease;
  display:flex; flex-direction:column; height:100%;
}
.hh-bundle-card:hover{ transform:translateY(-6px); box-shadow:var(--hh-shadow-hover); }
.hh-bundle-thumb{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--hh-cream-dark); }
.hh-bundle-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.hh-bundle-card:hover .hh-bundle-thumb img{ transform:scale(1.06); }
.hh-bundle-badge{
  position:absolute; top:12px; left:12px; background:var(--hh-gold); color:#fff;
  font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  padding:.4em .8em; border-radius:999px;
}
.hh-bundle-cat{
  position:absolute; top:12px; right:12px; background:rgba(255,255,255,.92); color:var(--hh-ink);
  font-size:.7rem; font-weight:800; padding:.35em .75em; border-radius:999px;
}
.hh-bundle-body{ padding:1.4rem 1.4rem 1.6rem; display:flex; flex-direction:column; flex:1; }
.hh-bundle-body h3{ margin-bottom:.4rem; font-size:1.25rem; }
.hh-bundle-body h3 a{ color:var(--hh-ink); }
.hh-bundle-body h3 a:hover{ color:var(--hh-primary-dark); }
.hh-bundle-excerpt{ color:var(--hh-ink-light); font-size:.95rem; flex:1; margin-bottom:1rem; }
.hh-bundle-meta{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:auto; }
.hh-bundle-price{ font-family:var(--hh-font-heading); font-weight:700; font-size:1.25rem; color:var(--hh-primary-dark); }
.hh-bundle-facts{ display:flex; gap:.9rem; font-size:.82rem; color:var(--hh-ink-light); margin-bottom:.9rem; flex-wrap:wrap; }
.hh-bundle-facts span{ display:inline-flex; align-items:center; gap:.35em; }
.hh-featured-footer{ text-align:center; margin-top:3rem; }

/* 9.0 Bundle Archive & Filters ------------------------------------- */
.hh-archive-header{ text-align:center; max-width:720px; margin:0 auto 3rem; }
.hh-filter-bar{
  display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:3rem;
}
.hh-filter-bar a{
  padding:.55em 1.3em; border-radius:999px; background:#fff; border:1px solid rgba(63,52,47,.14);
  font-weight:700; font-size:.88rem; color:var(--hh-ink);
}
.hh-filter-bar a.active, .hh-filter-bar a:hover{ background:var(--hh-primary); border-color:var(--hh-primary); color:#fff; }
.hh-empty-state{ text-align:center; padding:4rem 1rem; color:var(--hh-ink-light); }
.hh-pagination{ display:flex; justify-content:center; gap:.5rem; margin-top:3rem; flex-wrap:wrap; }
.hh-pagination a, .hh-pagination span{
  padding:.6em 1.05em; border-radius:10px; background:#fff; border:1px solid rgba(63,52,47,.14); font-weight:700;
}
.hh-pagination .current{ background:var(--hh-primary); color:#fff; border-color:var(--hh-primary); }

/* 10.0 Single Bundle Page -------------------------------------------- */
.hh-single-bundle{ padding:3.5rem 0 6rem; }
.hh-single-bundle-grid{ display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:start; }
.hh-single-gallery img{ border-radius:20px; box-shadow:var(--hh-shadow); }
.hh-single-buybox{
  background:#fff; border-radius:var(--hh-border-radius); padding:2rem; box-shadow:var(--hh-shadow);
  position:sticky; top:110px;
}
.hh-single-buybox .hh-bundle-price{ font-size:2rem; display:block; margin-bottom:.3rem; }
.hh-single-facts{ list-style:none; padding:0; margin:1.4rem 0; display:grid; gap:.6rem; font-size:.95rem; }
.hh-single-facts li{ display:flex; justify-content:space-between; border-bottom:1px dashed rgba(63,52,47,.15); padding-bottom:.5rem; }
.hh-single-facts li span:first-child{ color:var(--hh-ink-light); }
.hh-buy-note{ font-size:.85rem; color:var(--hh-ink-light); margin-top:1rem; text-align:center; }
.hh-single-content{ margin-top:2.5rem; font-size:1.05rem; }
.hh-single-content h2, .hh-single-content h3{ text-align:left; }
.hh-related{ margin-top:5rem; }

/* 11.0 Testimonials ----------------------------------------------------- */
.hh-testimonial-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:2rem; }
.hh-testimonial-card{
  background:#fff; border-radius:var(--hh-border-radius); padding:2rem; box-shadow:var(--hh-shadow);
  display:flex; flex-direction:column; gap:1rem;
}
.hh-testimonial-stars{ color:var(--hh-gold); letter-spacing:.15em; }
.hh-testimonial-quote{ font-style:italic; color:var(--hh-ink); flex:1; }
.hh-testimonial-name{ font-weight:800; font-family:var(--hh-font-heading); }
.hh-testimonial-role{ font-size:.85rem; color:var(--hh-ink-light); }

/* 12.0 Email Signup / Newsletter ----------------------------------------- */
.hh-signup{
  background:var(--hh-secondary); color:#fff; border-radius:24px; padding:3.5rem 3rem;
  display:grid; grid-template-columns:1.2fr .8fr; gap:2rem; align-items:center;
}
.hh-signup h2, .hh-signup p{ color:#fff; text-align:left; }
.hh-signup-form{ display:flex; gap:.7rem; flex-wrap:wrap; }
.hh-signup-form input[type=email]{ flex:1; min-width:200px; border:none; }
.hh-signup .hh-btn-light{ flex:0 0 auto; }
.hh-signup-embed{ }

/* 13.0 Footer ------------------------------------------------------------ */
.hh-footer{ background:var(--hh-ink); color:#e8ddd3; padding-top:4.5rem; }
.hh-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.5rem; padding-bottom:3rem; }
.hh-footer h4{ color:#fff; font-size:1.05rem; margin-bottom:1.1rem; }
.hh-footer-about p{ color:#cfc3b8; }
.hh-footer-social{ display:flex; gap:.8rem; margin-top:1.2rem; }
.hh-footer-social a{
  width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.1); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:.9rem;
}
.hh-footer-social a:hover{ background:var(--hh-primary); color:#fff; }
.hh-footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:.65rem; }
.hh-footer a{ color:#cfc3b8; }
.hh-footer a:hover{ color:#fff; }
.hh-footer-bottom{
  border-top:1px solid rgba(255,255,255,.1); padding:1.5rem 0; text-align:center;
  font-size:.85rem; color:#a99c8f;
}
.hh-footer-bottom a{ color:#cfc3b8; }
.widget{ margin-bottom:1.5rem; }
.widget-title{ font-family:var(--hh-font-heading); }

/* 14.0 Blog / Single Post / Page ------------------------------------------ */
.hh-page-header{ text-align:center; padding:4rem 0 1rem; }
.hh-content-wrap{ padding:3rem 0 6rem; }
.hh-content-grid{ display:grid; grid-template-columns:2fr 1fr; gap:3.5rem; }
.hh-post-card{ background:#fff; border-radius:var(--hh-border-radius); overflow:hidden; box-shadow:var(--hh-shadow); margin-bottom:2.5rem; }
.hh-post-card .hh-post-thumb img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.hh-post-card-body{ padding:1.8rem; }
.hh-post-meta{ font-size:.85rem; color:var(--hh-ink-light); margin-bottom:.6rem; }
.entry-content{ font-size:1.05rem; }
.entry-content img{ border-radius:14px; margin:1.5rem 0; }
.entry-content blockquote{ border-left:4px solid var(--hh-primary); margin:1.5rem 0; padding:.5rem 1.5rem; font-style:italic; color:var(--hh-ink-light); }
.post-navigation{ display:flex; justify-content:space-between; margin-top:3rem; gap:1rem; flex-wrap:wrap; }
.comments-area{ margin-top:3.5rem; }
.comment-list{ list-style:none; padding:0; }
.comment-list .children{ list-style:none; padding-left:2rem; }
.comment-body{ background:#fff; border-radius:14px; padding:1.5rem; margin-bottom:1.2rem; box-shadow:var(--hh-shadow); }
.comment-author .fn{ font-weight:800; font-style:normal; }
.comment-metadata{ font-size:.8rem; color:var(--hh-ink-light); }
.comment-reply-link{ font-size:.85rem; font-weight:800; }

/* 15.0 Widgets & Sidebar ---------------------------------------------------- */
.hh-sidebar .widget{ background:#fff; border-radius:var(--hh-border-radius); padding:1.6rem; box-shadow:var(--hh-shadow); }

/* 16.0 Utilities & Animations ------------------------------------------------ */
.hh-text-center{ text-align:center; }
.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;
}
.hh-alignwide{ margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); width:100vw; }

/* 17.0 Responsive ------------------------------------------------------------- */
@media (max-width: 900px){
  .hh-hero-grid, .hh-about-grid, .hh-single-bundle-grid, .hh-content-grid{ grid-template-columns:1fr; }
  .hh-about-grid{ display:flex; flex-direction:column-reverse; }
  .hh-footer-grid{ grid-template-columns:1fr 1fr; }
  .hh-signup{ grid-template-columns:1fr; text-align:center; padding:2.5rem 1.8rem; }
  .hh-signup h2, .hh-signup p{ text-align:center; }
  .hh-single-buybox{ position:static; }
}
@media (max-width: 780px){
  .hh-primary-nav{ display:none; position:absolute; top:100%; left:0; right:0; background:var(--hh-cream); border-bottom:1px solid rgba(63,52,47,.08); padding:1rem 24px; }
  .hh-primary-nav.is-open{ display:block; }
  .hh-primary-nav ul{ flex-direction:column; align-items:flex-start; gap:1rem; }
  .hh-menu-toggle{ display:block; }
  .hh-header-cta .hh-btn{ display:none; }
  h1{ font-size:2.2rem; }
  .hh-hero{ padding:3.5rem 0; }
  .hh-hero h1{ font-size:2.3rem; }
  .hh-section{ padding:3.5rem 0; }
  .hh-footer-grid{ grid-template-columns:1fr; text-align:center; }
  .hh-footer-social{ justify-content:center; }
}
