/**
Theme Name: Astra Stencil Child theme
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-stencil-child-theme
Template: astra
*/
/*
=======================================================================
  the Pumpkin School — HOMEPAGE STYLES
  Add this block to your Astra child theme style.css
  (wp-content/themes/your-child-theme/style.css)

  Brand colors:
    Blue:        #2E52E0
    Blue dark:   #1D3BB5
    Blue light:  #EEF1FD
    Orange:      #F5A623
    Orange dark: #D4880A
    Orange light:#FEF3DC
=======================================================================
*/


/* -----------------------------------------------------------------------
   GLOBAL RESETS for homepage only
   Prevents Astra's default content padding interfering with full-width sections
----------------------------------------------------------------------- */

body.page-template-page-home .site-content,
body.page-template-page-home .ast-container,
body.page-template-page-home #content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

body.page-template-page-home .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}


/* -----------------------------------------------------------------------
   LAYOUT UTILITIES
----------------------------------------------------------------------- */
.gs-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 1.25rem;
}

.gs-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}


/* -----------------------------------------------------------------------
   TYPOGRAPHY SHARED
----------------------------------------------------------------------- */
.gs-eyebrow {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 0.5rem;
  display: block;
}

.gs-eyebrow--blue  { color: #2E52E0; }
.gs-eyebrow--orange { color: #D4880A; }

.gs-section-head {
  font-size: clamp(20px, 3vw, 28px);
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: 0.35rem;
}

.gs-section-head--white { color: #ffffff; }

.gs-section-sub {
  font-size: 14px;
  line-height: 1.6;
  max-width: 620px;
  margin-bottom: 1.75rem;
}

.gs-section-sub--white { color: rgba(255,255,255,0.8); }


/* -----------------------------------------------------------------------
   BUTTONS
----------------------------------------------------------------------- */
.gs-btn {
  display: inline-block;
  padding: 11px 22px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: background 0.15s ease;
  white-space: nowrap;
}

.gs-btn--orange {
  background: #F5A623;
  color: #ffffff;
}
.gs-btn--orange:hover {
  background: #D4880A;
  color: #ffffff;
}

.gs-btn--blue {
  background: #2E52E0;
  color: #ffffff;
}
.gs-btn--blue:hover {
  background: #1D3BB5;
  color: #ffffff;
}

.gs-btn--outline {
  background: transparent;
  color: #1a1a1a;
  border: 1px solid rgba(0,0,0,0.25);
}
.gs-btn--outline:hover {
  background: rgba(0,0,0,0.04);
  color: #1a1a1a;
}


/* -----------------------------------------------------------------------
   HERO SECTION
----------------------------------------------------------------------- */
#gs-hero {
  padding: 3rem 0 2.5rem;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  position: relative;
  overflow: hidden;

  /*
    AUTUMN LEAVES BACKGROUND
    Upload your leaves image to Media Library and paste the URL here.
    Example: url('/wp-content/uploads/2026/04/autumn-leaves-bg.jpg')
  */
  background-image: url('/wp-content/themes/astra-child/images/autumn-leaves-bg.webp');
  background-size: 400px 400px;
  background-repeat: repeat;
}

/* Dark overlay so text remains readable over leaves */
#gs-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.55);
  pointer-events: none;
  z-index: 0;
}

.gs-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

.gs-headline {
  font-size: clamp(28px, 4vw, 46px);
  line-height: 1.1;
  font-weight: 400;
  margin-bottom: 1rem;
  color: #1a1a1a;
}

.gs-headline em {
  font-style: italic;
  color: #F5A623;
}

.gs-hero-sub {
  font-size: 15px;
  line-height: 1.65;
  color: #444;
  margin-bottom: 1.5rem;
  max-width: 440px;
}

.gs-ctas {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.gs-hero-image {
  display: flex;
  align-items: center;
  justify-content: center;
}

.gs-hero-image img {
  max-width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 640px) {
  .gs-hero-grid {
    grid-template-columns: 1fr;
  }
  /* On mobile, show image after text */
  .gs-hero-image {
    order: 2;
  }
  .gs-hero-text {
    order: 1;
  }
}


/* -----------------------------------------------------------------------
   STYLES SECTION — blue background
----------------------------------------------------------------------- */
#gs-styles {
  background: #2E52E0;
  padding: 2.5rem 0;
}

.gs-styles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

@media (max-width: 700px) {
  .gs-styles-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 420px) {
  .gs-styles-grid { grid-template-columns: 1fr; }
}

/* Card is an <a> tag — remove default link styling */
.gs-style-card {
  background: #ffffff;
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.15s ease;
}

.gs-style-card:hover {
  box-shadow: 0 0 0 2px #F5A623;
  text-decoration: none;
  color: inherit;
}

.gs-card-img {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #e8eef9;
}

.gs-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.gs-card-body {
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.gs-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  background: #EEF1FD;
  color: #1D3BB5;
  padding: 2px 8px;
  border-radius: 5px;
  margin-bottom: 0.5rem;
  font-weight: 600;
  width: fit-content;
}

.gs-age-pill {
  background: #F5A623;
  color: #ffffff;
  font-size: 9px;
  padding: 1px 5px;
  border-radius: 3px;
  letter-spacing: 0.04em;
  font-weight: 600;
}

.gs-card-bf {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #999;
  margin-bottom: 0.15rem;
}

.gs-card-title {
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 0.3rem;
  color: #1a1a1a;
}

.gs-card-desc {
  font-size: 12px;
  color: #555;
  line-height: 1.55;
  flex: 1;
  margin-bottom: 0;
}

.gs-card-shades {
  font-size: 11px;
  color: #aaa;
  margin-top: 0.4rem;
  padding-top: 0.4rem;
  border-top: 1px solid #eee;
  line-height: 1.5;
}

.gs-card-shades strong {
  color: #555;
}

.gs-card-link {
  font-size: 11px;
  color: #2E52E0;
  margin-top: 0.5rem;
  display: block;
  font-weight: 500;
}

/* Optional: student carver caption below card image */
.gs-card-carver {
  font-size: 10px;
  color: #888;
  text-align: right;
  padding: 0.2rem 0.5rem 0;
  font-style: italic;
}


/* -----------------------------------------------------------------------
   FREE BOOK SECTION — white background
----------------------------------------------------------------------- */
#gs-book {
  background: #ffffff;
  padding: 2.5rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.gs-book-grid {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2rem;
  align-items: start;
}

@media (max-width: 540px) {
  .gs-book-grid { grid-template-columns: 1fr; }
}

.gs-book-cover {
  width: 110px;
  flex-shrink: 0;
}

.gs-book-cover img {
  width: 110px;
  height: 165px;
  object-fit: cover;
  border-radius: 5px;
  display: block;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}

.gs-book-title {
  font-size: clamp(17px, 2.5vw, 23px);
  font-weight: 400;
  line-height: 1.3;
  margin-bottom: 0.5rem;
  color: #1a1a1a;
}

.gs-book-title em { font-style: italic; }

.gs-book-desc {
  font-size: 14px;
  color: #555;
  line-height: 1.65;
  margin-bottom: 1rem;
}

/* Form layout */
.gs-form-row {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.gs-form-input {
  flex: 1;
  min-width: 180px;
  padding: 10px 14px;
  border: 1px solid rgba(0,0,0,0.2);
  border-radius: 6px;
  font-size: 14px;
  color: #1a1a1a;
  background: #ffffff;
  outline: none;
}

.gs-form-input:focus {
  border-color: #2E52E0;
  box-shadow: 0 0 0 2px rgba(46,82,224,0.15);
}

.gs-book-fine {
  font-size: 11px;
  color: #aaa;
  margin-top: 0.5rem;
  line-height: 1.6;
}


/* -----------------------------------------------------------------------
   CREDIBILITY SECTION — white background
----------------------------------------------------------------------- */
#gs-cred {
  background: #F5A623;
  padding: 2rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.gs-stats {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

.gs-stat {
  display: flex;
  flex-direction: column;
}

.gs-stat-num {
  font-size: 28px;
  font-weight: 400;
  color: #4268E8;
  line-height: 1;
}

.gs-stat-lbl {
  font-size: 11px;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-top: 3px;
}

.gs-stat-divider {
  width: 1px;
  height: 36px;
  background: rgba(255,255,255,0.4);
  flex-shrink: 0;
}

.gs-media {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
}

.gs-media-lbl {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.8);
}

.gs-media-badge {
  font-size: 12px;
  font-weight: 600;
  color: #D4880A;
  background: #ffffff;
  padding: 4px 12px;
  border-radius: 5px;
}

/* Fix: homepage full width inside Astra flex container */
body.home .ast-container {
  display: block !important;
}

/* --- Eyebrow text larger on desktop --- */
.gs-eyebrow {
  font-size: 15px;
}

/* --- Style card faint text fixes --- */
.gs-card-bf {
  color: #555;
}

.gs-card-shades {
  color: #555;
}

.gs-card-shades strong {
  color: #222;
}

.gs-card-link {
  color: #2E52E0;
  font-weight: 600;
  opacity: 1;
}

/* --- Fine print under book form --- */
.gs-book-fine {
  color: #555;
}

/* --- Centre the credibility section --- */
#gs-cred .gs-wrap {
  text-align: center;
}

.gs-stats {
  justify-content: center;
}

.gs-media {
  justify-content: center;
}

/* --- Hero outline button: blue with white text --- */
.gs-btn--outline {
  background: #2E52E0;
  color: #ffffff;
  border: none;
}

.gs-btn--outline:hover {
  background: #1D3BB5;
  color: #ffffff;
}

/* --- "As seen on" label --- */
.gs-media-lbl {
  color: #4268E8;
}

/* --- Email input placeholder --- */
.gs-form-input::placeholder {
  color: #888;
}

/* --- Email input text (when typing) --- */
.gs-form-input {
  color: #1a1a1a;
}

/* Orange eyebrow on blue background — brighter for legibility */
#gs-styles .gs-eyebrow--orange {
  color: #F5A623;
}

/* Dark hero — white text */
.gs-hero-text .gs-eyebrow--blue {
  color: #8BA5F5;
}

.gs-headline {
  color: #ffffff;
}

.gs-headline em {
  color: #F5A623;
}

.gs-hero-sub {
  color: rgba(255,255,255,0.85);
}

/* Outline button on dark background */
.gs-btn--outline {
  border: 1px solid #8BA5F5;
  color: #ffffff;
  background: transparent;
}

.gs-btn--outline:hover {
  background: rgba(255,255,255,0.12);
  color: #ffffff;
}

/* 2px white border at bottom of hero section */
#gs-hero {
  border-bottom: 2px solid #ffffff;
}

/*
=======================================================================
  the Pumpkin School — FREE BOOK PAGE STYLES
  Append to child theme style.css after the homepage styles block.
=======================================================================
*/


/* -----------------------------------------------------------------------
   PAGE RESET
----------------------------------------------------------------------- */
body.page-template-page-free-book .site-content,
body.page-template-page-free-book .ast-container,
body.page-template-page-free-book #content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

body.page-template-page-free-book .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

body.page-template-page-free-book .ast-container {
  display: block !important;
}

body.page-template-page-free-book #gs-book-page {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* -----------------------------------------------------------------------
   HERO
----------------------------------------------------------------------- */
#gbp-hero {
  padding: 3.5rem 0;
  position: relative;
  overflow: hidden;
  border-bottom: 2px solid #ffffff;
  background-image: url('/wp-content/themes/astra-child/images/autumn-leaves-bg.webp');
  background-size: 400px 400px;
  background-repeat: repeat;
}

#gbp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.55);
  pointer-events: none;
  z-index: 0;
}

.gbp-hero-grid {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

@media (max-width: 640px) {
  .gbp-hero-grid {
    grid-template-columns: 1fr;
  }
  .gbp-hero-cover {
    display: flex;
    justify-content: center;
  }
}

/* Headline: two-tone, matching the book cover */
.gbp-headline {
  font-size: clamp(30px, 5vw, 52px);
  line-height: 1.15;
  font-weight: 400;
  margin-bottom: 1rem;
}

.gbp-headline--white {
  color: #ffffff;
  font-style: normal;
}

.gbp-headline--orange {
  color: #F5A623;
  font-style: italic;
  display: block;
}

.gbp-hero-sub {
  font-size: 16px;
  line-height: 1.65;
  color: rgba(255,255,255,0.85);
  margin-bottom: 1.75rem;
  max-width: 480px;
}

/* Book subtitle under hero headline */
.gbp-subtitle {
  font-size: 20px;
  color: rgba(255,255,255,0.85);
  font-style: italic;
  margin-bottom: 1rem;
  margin-top: -0.25rem;
  max-width: 480px;
}

.gbp-hero-cta {
  font-size: 15px;
  padding: 13px 28px;
}

.gbp-cover-img {
  width: 160px;
  height: auto;
  display: block;
  border-radius: 6px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.5);
}


/* -----------------------------------------------------------------------
   WHAT'S INSIDE — white
----------------------------------------------------------------------- */
#gbp-inside {
  background: #ffffff;
  padding: 3rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.gbp-section-head {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: 0.4rem;
  color: #1a1a1a;
}

.gbp-section-sub {
  font-size: 15px;
  color: #555;
  line-height: 1.6;
  max-width: 580px;
  margin-bottom: 2rem;
}

.gbp-parts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 2.5rem;
}

@media (max-width: 900px) {
  .gbp-parts-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .gbp-parts-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 380px) {
  .gbp-parts-grid { grid-template-columns: 1fr; }
}

.gbp-part {
  background: #f8f9ff;
  border: 1px solid #e0e6ff;
  border-radius: 8px;
  padding: 1rem;
}

.gbp-part-num {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #2E52E0;
  font-weight: 600;
  display: block;
  margin-bottom: 0.25rem;
}

.gbp-part-title {
  font-size: 13px;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.gbp-chapter-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.gbp-chapter-list li {
  font-size: 12px;
  color: #555;
  line-height: 1.5;
  padding: 2px 0 2px 12px;
  position: relative;
}

.gbp-chapter-list li::before {
  content: '·';
  position: absolute;
  left: 0;
  color: #F5A623;
  font-weight: 700;
}

.gbp-mid-cta {
  text-align: center;
  padding-top: 0.5rem;
}


/* -----------------------------------------------------------------------
   AUTHOR — blue background with banner photo
----------------------------------------------------------------------- */
#gbp-author {
  background: #2E52E0;
}

/* Banner wrapper — full width, blue fills beyond 1080px */
.gbp-banner-outer {
  width: 100%;
  background: #2E52E0;
  display: flex;
  justify-content: center;
}

/* Inner container caps the image at native width */
.gbp-banner-inner {
  position: relative;
  width: 100%;
  max-width: 1080px;
}

.gbp-banner-img {
  display: block;
  width: 100%;
  height: auto;
}

/* Dark gradient at bottom for caption legibility */
.gbp-banner-gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60px;
  background: linear-gradient(transparent, rgba(0,0,0,0.55));
  pointer-events: none;
}

.gbp-banner-caption {
  position: absolute;
  bottom: 0.6rem;
  left: 1rem;
  right: 1rem;
  font-size: 11px;
  color: rgba(255,255,255,0.8);
  font-style: italic;
  line-height: 1.4;
}

/* Author text below photo */
.gbp-author-text-wrap {
  padding: 2rem 0 2.5rem;
  border-bottom: 2px solid #ffffff;
}

.gbp-eyebrow-white {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #F5A623;
  font-weight: 600;
  margin-bottom: 0.4rem;
  display: block;
}

.gbp-author-name {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 400;
  color: #ffffff;
  margin-bottom: 1.25rem;
  line-height: 1.2;
}

.gbp-author-bio-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

@media (max-width: 640px) {
  .gbp-author-bio-cols { grid-template-columns: 1fr; }
}

.gbp-author-bio {
  font-size: 14px;
  color: rgba(255,255,255,0.85);
  line-height: 1.7;
  margin-bottom: 0.85rem;
}

.gbp-author-bio em {
  font-style: italic;
  color: #ffffff;
}

/* Stats row */
.gbp-author-stats {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  flex-wrap: wrap;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  border-top: 1px solid rgba(255,255,255,0.2);
}

.gbp-astat {
  display: flex;
  flex-direction: column;
}

.gbp-astat-num {
  font-size: 28px;
  font-weight: 400;
  color: #F5A623;
  line-height: 1;
}

.gbp-astat-lbl {
  font-size: 11px;
  color: rgba(255,255,255,0.7);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-top: 3px;
}

.gbp-astat-div {
  width: 1px;
  height: 36px;
  background: rgba(255,255,255,0.2);
  flex-shrink: 0;
}

/* Media credibility strip */
.gbp-media-strip {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255,255,255,0.2);
}

.gbp-media-lbl {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.7);
}

.gbp-media-badge {
  font-size: 12px;
  font-weight: 600;
  color: #D4880A;
  background: #ffffff;
  padding: 4px 12px;
  border-radius: 5px;
}


/* -----------------------------------------------------------------------
   STUDENT QUOTES — white
----------------------------------------------------------------------- */
#gbp-quotes {
  background: #ffffff;
  padding: 3rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.gbp-quotes-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 1.5rem;
  align-items: start;
}

@media (max-width: 700px) {
  .gbp-quotes-grid { grid-template-columns: 1fr; }
}

.gbp-quote {
  background: #f8f9ff;
  border: 1px solid #e0e6ff;
  border-left: 3px solid #F5A623;
  border-radius: 0 8px 8px 0;
  padding: 1.25rem;
}

/* Centre quote — slightly elevated to visually balance the longer text */
.gbp-quote--center {
  background: #EEF1FD;
  border-color: #c8d2f8;
  border-left-color: #2E52E0;
  position: relative;
  top: -4px;
}

.gbp-quote-text {
  font-size: 14px;
  color: #333;
  line-height: 1.65;
  font-style: italic;
  margin-bottom: 0.75rem;
}

.gbp-quote-attr {
  font-size: 12px;
  color: #2E52E0;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}


/* -----------------------------------------------------------------------
   FORM — orange background
----------------------------------------------------------------------- */
#gbp-form {
  background: #F5A623;
  padding: 3rem 0;
}

.gbp-form-wrap {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2.5rem;
  align-items: center;
}

@media (max-width: 600px) {
  .gbp-form-wrap {
    grid-template-columns: 1fr;
  }
  .gbp-form-cover {
    display: flex;
    justify-content: center;
  }
}

.gbp-cover-img--form {
  width: 140px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}

.gbp-form-eyebrow {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  font-weight: 600;
  margin-bottom: 0.4rem;
  display: block;
}

.gbp-form-head {
  font-size: clamp(20px, 3vw, 28px);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.2;
  margin-bottom: 0.5rem;
}

.gbp-form-head em {
  font-style: italic;
}

.gbp-form-desc {
  font-size: 14px;
  color: rgba(255,255,255,0.9);
  line-height: 1.6;
  margin-bottom: 1.25rem;
}

.gbp-form-row {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
}

.gbp-form-input {
  flex: 1;
  min-width: 200px;
  padding: 12px 16px;
  border: 2px solid rgba(255,255,255,0.5);
  border-radius: 6px;
  font-size: 15px;
  color: #1a1a1a;
  background: #ffffff;
  outline: none;
}

.gbp-form-input:focus {
  border-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.35);
}

.gbp-form-input::placeholder {
  color: #999;
}

.gbp-submit {
  font-size: 15px;
  padding: 12px 24px;
  white-space: nowrap;
}

.gbp-form-fine {
  font-size: 12px;
  color: rgba(255,255,255,0.75);
  line-height: 1.6;
  margin-top: 0.5rem;
}

.gbp-form-devices {
  font-size: 12px;
  color: rgba(255,255,255,0.85);
  margin-top: 0.4rem;
  line-height: 1.5;
}

.gbp-form-devices strong {
  color: #ffffff;
}

/* Subtitle under form heading */
.gbp-form-subtitle {
  display: block;
  font-size: 16px;
  font-style: italic;
  color: rgba(255,255,255,0.85);
  font-weight: 400;
  margin-top: 0.25rem;
}

/* Form section heading — two-tone on orange background */
.gbp-form-head--white {
  display: block;
  color: #ffffff;
  font-style: normal;
}

.gbp-form-head--blue {
  display: block;
  color: #2E52E0;
  font-style: italic;
}


/*
=======================================================================
  the Pumpkin School — PUMPKIN STUDIO WAITLIST PAGE STYLES
  Append to child theme style.css after the free book styles block.

  Color progression:
    Blue header (site-wide)
    → Dark leaves hero (queen composite image on right)
    → White (problem / solution)
    → Blue (how it works — 6 stages)
    → White (3 feature highlights)
    → Orange (waitlist form)
=======================================================================
*/


/* -----------------------------------------------------------------------
   PAGE RESET
----------------------------------------------------------------------- */
body.page-template-page-pumpkin-studio-waitlist .site-content,
body.page-template-page-pumpkin-studio-waitlist .ast-container,
body.page-template-page-pumpkin-studio-waitlist #content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

body.page-template-page-pumpkin-studio-waitlist .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

body.page-template-page-pumpkin-studio-waitlist .ast-container {
  display: block !important;
}

body.page-template-page-pumpkin-studio-waitlist #gs-waitlist-page {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* -----------------------------------------------------------------------
   HERO — dark leaves, two-column: headline left, composite right
----------------------------------------------------------------------- */
#gwl-hero {
  padding: 3rem 0 2.5rem;
  position: relative;
  overflow: hidden;
  border-bottom: 2px solid #ffffff;
  background-image: url('/wp-content/themes/astra-child/images/autumn-leaves-bg.webp');
  background-size: 400px 400px;
  background-repeat: repeat;
}

#gwl-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.58);
  pointer-events: none;
  z-index: 0;
}

.gwl-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

@media (max-width: 700px) {
  .gwl-hero-grid {
    grid-template-columns: 1fr;
  }
  .gwl-hero-image {
    display: flex;
    justify-content: center;
  }
}

/* Three-line dramatic headline */
.gwl-headline {
  display: flex;
  flex-direction: column;
  gap: 0.05em;
  margin-bottom: 1.25rem;
}

/* First two lines — white */
.gwl-headline--white {
  color: #ffffff;
  font-size: clamp(32px, 5.5vw, 62px);
  line-height: 1.05;
  font-weight: 400;
  font-style: normal;
  display: block;
}

/* Third line — orange italic */
.gwl-headline--orange {
  color: #F5A623;
  font-size: clamp(32px, 5.5vw, 62px);
  line-height: 1.05;
  font-weight: 400;
  font-style: italic;
  display: block;
}

.gwl-hero-sub {
  font-size: 15px;
  line-height: 1.9;
  color: rgba(255,255,255,0.85);
  margin-bottom: 1.75rem;
}

.gwl-hero-sub br {
  display: block;
  content: '';
}

.gwl-hero-ctas {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.gwl-cta-primary {
  font-size: 15px;
  padding: 13px 28px;
}

/* Composite image — same treatment as homepage hero */
.gwl-hero-img {
  max-width: 100%;
  height: auto;
  display: block;
}


/* -----------------------------------------------------------------------
   SHARED SECTION TYPOGRAPHY
----------------------------------------------------------------------- */
.gwl-section-head {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: 0.4rem;
  color: #1a1a1a;
}

.gwl-section-head--white {
  color: #ffffff;
}

.gwl-section-sub {
  font-size: 15px;
  color: #555;
  line-height: 1.6;
  max-width: 600px;
  margin-bottom: 2rem;
}

.gwl-section-sub--white {
  color: rgba(255,255,255,0.8);
}


/* -----------------------------------------------------------------------
   PROBLEM / SOLUTION — white
----------------------------------------------------------------------- */
#gwl-problem {
  background: #ffffff;
  padding: 3rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.gwl-problem-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-top: 1.5rem;
}

@media (max-width: 640px) {
  .gwl-problem-cols { grid-template-columns: 1fr; }
}

.gwl-body {
  font-size: 15px;
  color: #444;
  line-height: 1.7;
  margin-bottom: 1rem;
}

.gwl-body--highlight {
  font-style: italic;
  color: #2E52E0;
  border-left: 3px solid #F5A623;
  padding-left: 1rem;
}

.gwl-quote-attr {
  font-size: 12px;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding-left: 1rem;
  margin-top: -0.5rem;
  display: block;
}


/* -----------------------------------------------------------------------
   HOW IT WORKS — blue background, 2x3 stage grid
----------------------------------------------------------------------- */
#gwl-stages {
  background: #2E52E0;
  padding: 3rem 0;
  border-bottom: 2px solid #ffffff;
}

/* Orange eyebrow on blue — larger than standard eyebrow */
.gwl-eyebrow--orange-on-blue {
  font-size: 14px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #F5A623;
  font-weight: 600;
  margin-bottom: 0.4rem;
  display: block;
}

.gwl-stages-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

@media (max-width: 800px) {
  .gwl-stages-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
  .gwl-stages-grid { grid-template-columns: 1fr; }
}

.gwl-stage-card {
  background: #ffffff;
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.gwl-stage-img-wrap {
  background: #e8eef9;
  overflow: hidden;
  line-height: 0;
}

.gwl-stage-img {
  width: 100%;
  height: auto;
  display: block;
}

.gwl-stage-body {
  padding: 0.85rem;
  flex: 1;
}

.gwl-stage-num {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #2E52E0;
  font-weight: 600;
  display: block;
  margin-bottom: 0.2rem;
}

.gwl-stage-title {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 0.35rem;
}

.gwl-stage-desc {
  font-size: 12px;
  color: #555;
  line-height: 1.55;
}


/* -----------------------------------------------------------------------
   FEATURES — white background, 3 cards
----------------------------------------------------------------------- */
#gwl-features {
  background: #ffffff;
  padding: 3rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.gwl-features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 1.75rem;
}

@media (max-width: 800px) {
  .gwl-features-grid { grid-template-columns: 1fr; }
}

.gwl-feature-card {
  background: #f8f9ff;
  border: 1px solid #e0e6ff;
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.gwl-feature-img-wrap {
  background: #e8eef9;
  overflow: hidden;
  line-height: 0;
}

.gwl-feature-img {
  width: 100%;
  height: auto;
  display: block;
}

.gwl-feature-body {
  padding: 1rem;
  flex: 1;
}

.gwl-feature-title {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.gwl-feature-desc {
  font-size: 13px;
  color: #555;
  line-height: 1.6;
}


/* -----------------------------------------------------------------------
   WAITLIST FORM — orange background
----------------------------------------------------------------------- */
#gwl-form {
  background: #F5A623;
  padding: 3rem 0;
}

.gwl-form-wrap {
  max-width: 680px;
}

.gwl-form-eyebrow {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  font-weight: 600;
  margin-bottom: 0.4rem;
  display: block;
}

.gwl-form-head {
  font-size: clamp(24px, 4vw, 36px);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.15;
  margin-bottom: 0.6rem;
}

.gwl-form-head em {
  font-style: italic;
}

.gwl-form-desc {
  font-size: 15px;
  color: rgba(255,255,255,0.9);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

/* Free vs paid tier cards */
.gwl-tiers {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin-bottom: 1.75rem;
}

@media (max-width: 640px) {
  .gwl-tiers { grid-template-columns: 1fr; }
}

.gwl-tier {
  background: rgba(255,255,255,0.15);
  border-radius: 8px;
  padding: 0.85rem;
  border: 1px solid rgba(255,255,255,0.25);
}

.gwl-tier-label {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 2px 8px;
  border-radius: 4px;
  margin-bottom: 0.5rem;
}

.gwl-tier-label--free {
  background: #ffffff;
  color: #2E52E0;
}

.gwl-tier-label--paid {
  background: #2E52E0;
  color: #ffffff;
}

.gwl-tier-desc {
  font-size: 12px;
  color: rgba(255,255,255,0.9);
  line-height: 1.55;
}

/* Form */
.gwl-form-row {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
}

.gwl-form-input {
  flex: 1;
  min-width: 200px;
  padding: 12px 16px;
  border: 2px solid rgba(255,255,255,0.5);
  border-radius: 6px;
  font-size: 15px;
  color: #1a1a1a;
  background: #ffffff;
  outline: none;
}

.gwl-form-input:focus {
  border-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.35);
}

.gwl-form-input::placeholder {
  color: #999;
}

.gwl-submit {
  font-size: 15px;
  padding: 12px 24px;
  white-space: nowrap;
}

.gwl-form-fine {
  font-size: 12px;
  color: rgba(255,255,255,0.75);
  line-height: 1.6;
  margin-top: 0.5rem;
}

/* Features section — second heading sentence in orange */
#gwl-features .gwl-section-head {
  color: #1a1a1a;
}

#gwl-features .gwl-section-head .gwl-orange {
  color: #E8920C;
}

/* Tier boxes — white background, readable on orange section */
.gwl-tier {
  background: #ffffff;
  border: none;
}

.gwl-tier-desc {
  color: #444;
}

/* FREE pill — darker orange, white text */
.gwl-tier-label--free {
  background: #D4880A;
  color: #ffffff;
}

/* "Pumpkin Studio" brand name in blue on orange form section */
.gwl-form-brand {
  color: #2E52E0;
}

/*
=======================================================================
  the Pumpkin School — FREE STENCILS NOTIFY PAGE STYLES
  Append to child theme style.css after the waitlist styles block.

  Color progression:
    Blue header (site-wide)
    → Dark leaves hero
    → White (stencil preview grid)
    → Blue (categories)
    → Orange (email form)
=======================================================================
*/


/* -----------------------------------------------------------------------
   PAGE RESET
----------------------------------------------------------------------- */
body.page-template-page-free-stencils-notify .site-content,
body.page-template-page-free-stencils-notify .ast-container,
body.page-template-page-free-stencils-notify #content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

body.page-template-page-free-stencils-notify .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

body.page-template-page-free-stencils-notify .ast-container {
  display: block !important;
}

body.page-template-page-free-stencils-notify #gs-stencils-page {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* -----------------------------------------------------------------------
   HERO — dark leaves
----------------------------------------------------------------------- */
#gfs-hero {
  padding: 3.5rem 0;
  position: relative;
  overflow: hidden;
  border-bottom: 2px solid #ffffff;
  background-image: url('/wp-content/themes/astra-child/images/autumn-leaves-bg.webp');
  background-size: 400px 400px;
  background-repeat: repeat;
}

#gfs-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.58);
  pointer-events: none;
  z-index: 0;
}

.gfs-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 680px;
}

.gfs-headline {
  font-size: clamp(32px, 5.5vw, 58px);
  line-height: 1.1;
  font-weight: 400;
  color: #ffffff;
  margin-bottom: 1rem;
}

.gfs-hero-sub {
  font-size: 16px;
  line-height: 1.65;
  color: rgba(255,255,255,0.85);
  margin-bottom: 1.75rem;
  max-width: 520px;
}

.gfs-hero-ctas {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.gfs-cta-primary {
  font-size: 15px;
  padding: 13px 28px;
}

.gfs-launch-note {
  font-size: 13px;
  color: rgba(255,255,255,0.6);
  letter-spacing: 0.04em;
}


/* -----------------------------------------------------------------------
   STENCIL PREVIEW GRID — white
----------------------------------------------------------------------- */
#gfs-preview {
  background: #ffffff;
  padding: 3rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.gfs-section-head {
  font-size: clamp(20px, 3vw, 30px);
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: 0.4rem;
  color: #1a1a1a;
}

.gfs-section-head--white { color: #ffffff; }

.gfs-section-sub {
  font-size: 15px;
  color: #555;
  line-height: 1.6;
  max-width: 580px;
  margin-bottom: 2rem;
}

.gfs-section-sub--white { color: rgba(255,255,255,0.8); }

/* 4-column grid on desktop, scales down for smaller screens */
.gfs-stencil-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

@media (max-width: 800px) {
  .gfs-stencil-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 540px) {
  .gfs-stencil-grid { grid-template-columns: repeat(2, 1fr); }
}

.gfs-stencil-thumb {
  background: #f0f2f8;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid #e0e6ff;
}

.gfs-stencil-thumb img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  aspect-ratio: 3 / 2;
}

.gfs-thumb-label {
  font-size: 11px;
  color: #555;
  text-align: center;
  padding: 0.35rem 0.5rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.gfs-preview-note {
  text-align: center;
  padding-top: 0.5rem;
}

.gfs-preview-note p {
  font-size: 13px;
  color: #888;
  font-style: italic;
}


/* -----------------------------------------------------------------------
   CATEGORIES — blue background
----------------------------------------------------------------------- */
#gfs-categories {
  background: #2E52E0;
  padding: 3rem 0;
  border-bottom: 2px solid #ffffff;
}

.gfs-eyebrow--orange-on-blue {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #F5A623;
  font-weight: 600;
  margin-bottom: 0.4rem;
  display: block;
}

.gfs-cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-top: 1.75rem;
}

@media (max-width: 800px) {
  .gfs-cat-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
  .gfs-cat-grid { grid-template-columns: 1fr; }
}

.gfs-cat-card {
  background: #ffffff;
  border-radius: 10px;
  padding: 1.1rem;
}

/* Coming soon cards slightly muted */
.gfs-cat-card--coming {
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.25);
}

.gfs-cat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.6rem;
  flex-wrap: wrap;
}

.gfs-cat-title {
  font-size: 15px;
  font-weight: 600;
  color: #1a1a1a;
  line-height: 1;
}

/* Coming soon card — white title */
.gfs-cat-card--coming .gfs-cat-title {
  color: #ffffff;
}

.gfs-cat-count {
  font-size: 10px;
  background: #EEF1FD;
  color: #2E52E0;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.gfs-coming-pill {
  font-size: 10px;
  background: rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.8);
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.gfs-cat-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.gfs-cat-list li {
  font-size: 12px;
  color: #555;
  line-height: 1.6;
  padding-left: 10px;
  position: relative;
}

.gfs-cat-list li::before {
  content: '·';
  position: absolute;
  left: 0;
  color: #F5A623;
  font-weight: 700;
}

/* Muted list items for coming-soon cards */
.gfs-cat-list--muted li {
  color: rgba(255,255,255,0.65);
}

.gfs-cat-list--muted li::before {
  color: rgba(255,255,255,0.35);
}

.gfs-cat-sub {
  font-weight: 600;
  color: #333;
}


/* -----------------------------------------------------------------------
   FORM — orange background
----------------------------------------------------------------------- */
#gfs-form {
  background: #F5A623;
  padding: 3rem 0;
}

.gfs-form-wrap {
  max-width: 620px;
}

.gfs-form-eyebrow {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  font-weight: 600;
  margin-bottom: 0.4rem;
  display: block;
}

.gfs-form-head {
  font-size: clamp(22px, 3.5vw, 32px);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.2;
  margin-bottom: 0.6rem;
}

.gfs-form-head em {
  font-style: italic;
}

/* "September 2026" in blue for color break */
.gfs-form-brand {
  color: #2E52E0;
}

.gfs-form-desc {
  font-size: 15px;
  color: rgba(255,255,255,0.9);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.gfs-form-row {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
}

.gfs-form-input {
  flex: 1;
  min-width: 200px;
  padding: 12px 16px;
  border: 2px solid rgba(255,255,255,0.5);
  border-radius: 6px;
  font-size: 15px;
  color: #1a1a1a;
  background: #ffffff;
  outline: none;
}

.gfs-form-input:focus {
  border-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.35);
}

.gfs-form-input::placeholder {
  color: #999;
}

.gfs-submit {
  font-size: 15px;
  padding: 12px 24px;
  white-space: nowrap;
}

.gfs-form-fine {
  font-size: 12px;
  color: rgba(255,255,255,0.75);
  line-height: 1.6;
  margin-top: 0.5rem;
}

/*
=======================================================================
  the Pumpkin School — ABOUT PAGE STYLES
  Append to child theme style.css after the stencils notify styles block.

  Color progression:
    Blue header (site-wide)
    → Dark leaves hero
    → White (origin story)
    → Blue (teaching & community — banner photo)
    → White (what we make)
    → Orange (media credibility strip)
=======================================================================
*/


/* -----------------------------------------------------------------------
   PAGE RESET
----------------------------------------------------------------------- */
body.page-template-page-about .site-content,
body.page-template-page-about .ast-container,
body.page-template-page-about #content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

body.page-template-page-about .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

body.page-template-page-about .ast-container {
  display: block !important;
}

body.page-template-page-about #gs-about-page {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* -----------------------------------------------------------------------
   HERO — dark leaves
----------------------------------------------------------------------- */
#gab-hero {
  padding: 3.5rem 0;
  position: relative;
  overflow: hidden;
  border-bottom: 2px solid #ffffff;
  background-image: url('/wp-content/themes/astra-child/images/autumn-leaves-bg.webp');
  background-size: 400px 400px;
  background-repeat: repeat;
}

#gab-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.58);
  pointer-events: none;
  z-index: 0;
}

.gab-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 680px;
}

.gab-headline {
  font-size: clamp(32px, 5.5vw, 58px);
  line-height: 1.1;
  font-weight: 400;
  color: #ffffff;
  margin-bottom: 1rem;
}

.gab-headline em {
  font-style: italic;
  color: #F5A623;
}

.gab-hero-sub {
  font-size: 17px;
  line-height: 1.7;
  color: rgba(255,255,255,0.85);
  max-width: 520px;
}


/* -----------------------------------------------------------------------
   SHARED TYPOGRAPHY
----------------------------------------------------------------------- */
.gab-section-head {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: 0.5rem;
  color: #1a1a1a;
}

.gab-section-head--white {
  color: #ffffff;
}

.gab-section-sub {
  font-size: 15px;
  color: #555;
  line-height: 1.6;
  max-width: 580px;
  margin-bottom: 2rem;
}

.gab-body {
  font-size: 15px;
  color: #444;
  line-height: 1.75;
  margin-bottom: 1rem;
}

.gab-body em {
  font-style: italic;
  color: #1a1a1a;
}

.gab-body--white {
  color: rgba(255,255,255,0.88);
}

.gab-body--white em {
  color: #ffffff;
}

.gab-body-link {
  color: #F5A623;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gab-body-link:hover {
  color: #ffffff;
}


/* -----------------------------------------------------------------------
   ORIGIN STORY — white
----------------------------------------------------------------------- */
#gab-origin {
  background: #ffffff;
  padding: 3rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.gab-story-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  margin-top: 1.5rem;
}

@media (max-width: 640px) {
  .gab-story-cols { grid-template-columns: 1fr; }
}


/* -----------------------------------------------------------------------
   TEACHING & COMMUNITY — blue background with banner photo
----------------------------------------------------------------------- */
#gab-teaching {
  background: #2E52E0;
}

/* Banner — same pattern as free book page, capped at 1080px */
.gab-banner-outer {
  width: 100%;
  background: #2E52E0;
  display: flex;
  justify-content: center;
}

.gab-banner-inner {
  position: relative;
  width: 100%;
  max-width: 1080px;
}

.gab-banner-img {
  display: block;
  width: 100%;
  height: auto;
}

.gab-banner-gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60px;
  background: linear-gradient(transparent, rgba(0,0,0,0.55));
  pointer-events: none;
}

.gab-banner-caption {
  position: absolute;
  bottom: 0.6rem;
  left: 1rem;
  right: 1rem;
  font-size: 11px;
  color: rgba(255,255,255,0.8);
  font-style: italic;
  line-height: 1.4;
}

.gab-banner-link {
  color: #F5A623;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Teaching text area */
.gab-teaching-text {
  padding: 2.5rem 0;
  border-bottom: 2px solid #ffffff;
}

.gab-eyebrow-white {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #F5A623;
  font-weight: 600;
  margin-bottom: 0.4rem;
  display: block;
}

.gab-teaching-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  margin-top: 1.5rem;
}

@media (max-width: 640px) {
  .gab-teaching-cols { grid-template-columns: 1fr; }
}

/* Optional classroom photos — uncomment in PHP to activate */
.gab-classroom-photos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 2rem;
}

@media (max-width: 700px) {
  .gab-classroom-photos { grid-template-columns: 1fr; }
}

.gab-classroom-photo img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  object-fit: cover;
  aspect-ratio: 4/3;
}


/* -----------------------------------------------------------------------
   WHAT WE MAKE — white
----------------------------------------------------------------------- */
#gab-products {
  background: #ffffff;
  padding: 3rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.gab-products-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-top: 1.75rem;
}

@media (max-width: 640px) {
  .gab-products-grid { grid-template-columns: 1fr; }
}

.gab-product-card {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  background: #f8f9ff;
  border: 1px solid #e0e6ff;
  border-radius: 10px;
  padding: 1.25rem;
}

.gab-product-icon {
  flex-shrink: 0;
}

.gab-book-thumb {
  width: 70px;
  height: auto;
  display: block;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

/* App icon placeholder — replace with actual logo if available */
.gab-app-icon-placeholder {
  width: 150px;
  height: 42px;
  background: #2E52E0;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 0.05em;
}

.gab-product-title {
  font-size: 15px;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.gab-product-title em {
  font-style: italic;
}

.gab-product-desc {
  font-size: 13px;
  color: #555;
  line-height: 1.65;
}

.gab-inline-link {
  color: #2E52E0;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gab-inline-link:hover {
  color: #1D3BB5;
}


/* -----------------------------------------------------------------------
   CREDIBILITY — orange background
----------------------------------------------------------------------- */
#gab-cred {
  background: #F5A623;
  padding: 2rem 0;
}

.gab-media-strip {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.gab-media-lbl {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.8);
}

.gab-media-badge {
  font-size: 12px;
  font-weight: 600;
  color: #D4880A;
  background: #ffffff;
  padding: 4px 12px;
  border-radius: 5px;
}

.gab-cred-fine {
  font-size: 12px;
  color: rgba(255,255,255,0.75);
}

/*
=======================================================================
  the Pumpkin School — LEARN INDEX PAGE STYLES
  Append to child theme style.css after the tools styles block.

  Sections alternate white and light blue.
  Live posts: blue links with orange arrow.
  Unpublished chapters: hidden entirely.
  Orange reserved for bottom CTA only.
=======================================================================
*/


/* -----------------------------------------------------------------------
   PAGE RESET
----------------------------------------------------------------------- */
body.page-template-page-learn .site-content,
body.page-template-page-learn .ast-container,
body.page-template-page-learn #content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

body.page-template-page-learn .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

body.page-template-page-learn .ast-container {
  display: block !important;
}

body.page-template-page-learn #gs-learn-page {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* -----------------------------------------------------------------------
   HERO — dark leaves
----------------------------------------------------------------------- */
#glr-hero {
  padding: 3.5rem 0;
  position: relative;
  overflow: hidden;
  border-bottom: 2px solid #ffffff;
  background-image: url('/wp-content/themes/astra-child/images/autumn-leaves-bg.webp');
  background-size: 400px 400px;
  background-repeat: repeat;
  isolation: isolate;
}

#glr-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.58);
  pointer-events: none;
  z-index: 0;
}

.glr-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 680px;
}

.glr-headline {
  font-size: clamp(30px, 5vw, 52px);
  line-height: 1.1;
  font-weight: 400;
  color: #ffffff;
  margin-bottom: 1rem;
}

.glr-headline em {
  font-style: italic;
  color: #F5A623;
}

.glr-hero-sub {
  font-size: 16px;
  line-height: 1.65;
  color: rgba(255,255,255,0.85);
  max-width: 540px;
}

.glr-hero-sub em {
  font-style: italic;
  color: rgba(255,255,255,0.95);
}


/* -----------------------------------------------------------------------
   STICKY SECTION NAV
----------------------------------------------------------------------- */
#glr-nav {
  background: #2E52E0;
  padding: 0.85rem 0;
  border-bottom: 2px solid #ffffff;
  position: sticky;
  top: 0;
  z-index: 100;
}

.glr-nav-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.6);
  font-weight: 600;
  margin-bottom: 0.4rem;
}

.glr-nav-links {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.glr-nav-link {
  font-size: 12px;
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  padding: 4px 10px;
  border-radius: 5px;
  border: 1px solid rgba(255,255,255,0.2);
  white-space: nowrap;
  transition: all 0.12s ease;
}

.glr-nav-link:hover {
  background: rgba(255,255,255,0.15);
  color: #ffffff;
  border-color: rgba(255,255,255,0.4);
  text-decoration: none;
}


/* -----------------------------------------------------------------------
   SECTIONS — alternating backgrounds
----------------------------------------------------------------------- */
.glr-section {
  padding: 2.5rem 0;
  border-bottom: 0.5px solid rgba(0,0,0,0.08);
  scroll-margin-top: 80px; /* offset for sticky nav */
}

.glr-section--white {
  background: #ffffff;
}

.glr-section--blue {
  background: #EEF1FD;
  border-bottom-color: rgba(46,82,224,0.1);
}

/* Two-column layout when photo exists */
.glr-section-inner {
  display: grid;
  gap: 2rem;
  align-items: start;
}

.glr-section-inner--with-photo {
  grid-template-columns: 1fr auto;
}

.glr-section-inner--no-photo {
  grid-template-columns: 1fr;
  max-width: 720px;
}

@media (max-width: 700px) {
  .glr-section-inner--with-photo {
    grid-template-columns: 1fr;
  }
}


/* -----------------------------------------------------------------------
   SECTION HEADER
----------------------------------------------------------------------- */
.glr-section-header {
  margin-bottom: 1.25rem;
}

.glr-section-title {
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 400;
  color: #1a1a1a;
  line-height: 1.2;
  margin-bottom: 0.3rem;
}

.glr-section--blue .glr-section-title {
  color: #2E52E0;
}

.glr-section-sub {
  font-size: 13px;
  color: #777;
  line-height: 1.5;
  max-width: 480px;
}

.glr-section--blue .glr-section-sub {
  color: #5567bb;
}


/* -----------------------------------------------------------------------
   POST LIST — live links only, unpublished hidden
----------------------------------------------------------------------- */
.glr-post-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}

.glr-post-item {
  border-bottom: 0.5px solid rgba(0,0,0,0.06);
  padding: 0.5rem 0;
}

.glr-post-item:last-child {
  border-bottom: none;
}

.glr-section--blue .glr-post-item {
  border-bottom-color: rgba(46,82,224,0.08);
}

.glr-post-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 15px;
  font-weight: 500;
  color: #2E52E0;
  text-decoration: none;
  line-height: 1.3;
  padding: 0.15rem 0;
}

.glr-post-link:hover {
  color: #1D3BB5;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.glr-arrow {
  font-size: 13px;
  color: #F5A623;
  flex-shrink: 0;
  transition: transform 0.15s ease;
}

.glr-post-link:hover .glr-arrow {
  transform: translateX(3px);
}


/* -----------------------------------------------------------------------
   SECTION PHOTO — optional right column
----------------------------------------------------------------------- */
.glr-section-photo {
  width: 240px;
  flex-shrink: 0;
}

@media (max-width: 900px) {
  .glr-section-photo { width: 180px; }
}

@media (max-width: 700px) {
  .glr-section-photo { width: 100%; }
}

.glr-photo-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  object-fit: cover;
  aspect-ratio: 4/3;
  box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}


/* -----------------------------------------------------------------------
   BOTTOM CTA — orange
----------------------------------------------------------------------- */
#glr-cta {
  background: #F5A623;
  padding: 2.5rem 0;
}

.glr-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}

.glr-cta-eyebrow {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.8);
  font-weight: 600;
  margin-bottom: 0.35rem;
}

.glr-cta-head {
  font-size: clamp(18px, 2.5vw, 24px);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.25;
  margin-bottom: 0.4rem;
}

.glr-cta-head em {
  font-style: italic;
}

.glr-cta-desc {
  font-size: 14px;
  color: rgba(255,255,255,0.88);
  line-height: 1.6;
  max-width: 500px;
}

.glr-cta-btn {
  white-space: nowrap;
  flex-shrink: 0;
  font-size: 15px;
  padding: 13px 26px;
}

/*
=======================================================================
  the Pumpkin School — CONFIRMATION PAGES STYLES
  Covers both /book-check-email and /waitlist-check-email.
  Append to child theme style.css after the learn styles block.

  Both pages:
    Blue header (site-wide)
    → Dark leaves hero
    → White content
=======================================================================
*/


/* -----------------------------------------------------------------------
   PAGE RESET — covers both confirmation page templates
----------------------------------------------------------------------- */
body.page-template-page-book-check-email .site-content,
body.page-template-page-book-check-email .ast-container,
body.page-template-page-book-check-email #content,
body.page-template-page-waitlist-check-email .site-content,
body.page-template-page-waitlist-check-email .ast-container,
body.page-template-page-waitlist-check-email #content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

body.page-template-page-book-check-email .entry-content,
body.page-template-page-waitlist-check-email .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

body.page-template-page-book-check-email .ast-container,
body.page-template-page-waitlist-check-email .ast-container {
  display: block !important;
}

body.page-template-page-book-check-email #gs-confirm-page,
body.page-template-page-waitlist-check-email #gs-confirm-page {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* -----------------------------------------------------------------------
   SHARED HERO — dark leaves (both pages)
----------------------------------------------------------------------- */
#gce-hero,
#gwc-hero {
  padding: 4rem 0 3.5rem;
  position: relative;
  overflow: hidden;
  border-bottom: 2px solid #ffffff;
  background-image: url('/wp-content/themes/astra-child/images/autumn-leaves-bg.webp');
  background-size: 400px 400px;
  background-repeat: repeat;
}

#gce-hero::before,
#gwc-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.58);
  pointer-events: none;
  z-index: 0;
}

.gce-hero-inner,
.gwc-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 600px;
}

.gce-headline,
.gwc-headline {
  font-size: clamp(36px, 6vw, 64px);
  line-height: 1.08;
  font-weight: 400;
  color: #ffffff;
  margin-bottom: 1rem;
}

.gce-headline em,
.gwc-headline em {
  font-style: italic;
  color: #F5A623;
}

.gce-hero-sub,
.gwc-hero-sub {
  font-size: 17px;
  line-height: 1.65;
  color: rgba(255,255,255,0.85);
  max-width: 480px;
}


/* -----------------------------------------------------------------------
   BOOK CHECK EMAIL — three-step instructions
----------------------------------------------------------------------- */
#gce-content {
  background: #ffffff;
  padding: 3rem 0;
}

.gce-content-inner {
  max-width: 640px;
}

.gce-steps {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-bottom: 2.5rem;
}

.gce-step {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
}

.gce-step-num {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #2E52E0;
  color: #ffffff;
  font-size: 16px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}

.gce-step-title {
  font-size: 17px;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 0.4rem;
  line-height: 1.3;
}

.gce-step-desc {
  font-size: 14px;
  color: #555;
  line-height: 1.65;
}

.gce-note {
  background: #f8f9ff;
  border: 1px solid #e0e6ff;
  border-left: 3px solid #F5A623;
  border-radius: 0 8px 8px 0;
  padding: 1rem 1.25rem;
  font-size: 14px;
  color: #555;
  line-height: 1.6;
}

.gce-link {
  color: #2E52E0;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gce-link:hover {
  color: #1D3BB5;
}


/* -----------------------------------------------------------------------
   WAITLIST CHECK EMAIL — confirmation note + book nudge
----------------------------------------------------------------------- */
#gwc-content {
  background: #ffffff;
  padding: 3rem 0;
}

.gwc-content-inner {
  max-width: 720px;
}

.gwc-confirm-note {
  font-size: 15px;
  color: #555;
  line-height: 1.65;
  margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  max-width: 560px;
}

/* Book nudge — two column, same pattern as homepage book section */
.gwc-book-nudge {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2rem;
  align-items: start;
}

@media (max-width: 500px) {
  .gwc-book-nudge {
    grid-template-columns: 1fr;
  }
  .gwc-book-cover {
    display: flex;
    justify-content: center;
  }
}

.gwc-book-img {
  width: 100px;
  height: auto;
  display: block;
  border-radius: 5px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.15);
}

.gwc-book-title {
  font-size: clamp(17px, 2.5vw, 22px);
  font-weight: 400;
  line-height: 1.3;
  color: #1a1a1a;
  margin-bottom: 0.6rem;
}

.gwc-book-title em {
  font-style: italic;
}

.gwc-book-desc {
  font-size: 14px;
  color: #555;
  line-height: 1.65;
  margin-bottom: 1.25rem;
  max-width: 480px;
}

/*
=======================================================================
  the Pumpkin School — BOOK DOWNLOAD PAGE STYLES
  Append to child theme style.css after the confirm styles block.

  Structure:
    Blue header (site-wide)
    → Dark leaves hero
    → White content (device buttons + accordion panels)
=======================================================================
*/


/* -----------------------------------------------------------------------
   PAGE RESET
----------------------------------------------------------------------- */
body.page-template-page-book-download .site-content,
body.page-template-page-book-download .ast-container,
body.page-template-page-book-download #content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

body.page-template-page-book-download .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

body.page-template-page-book-download .ast-container {
  display: block !important;
}

body.page-template-page-book-download #gs-download-page {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* Hero grid — book cover left, text right */
.gbd-hero-grid {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

@media (max-width: 540px) {
  .gbd-hero-grid {
    grid-template-columns: 1fr;
  }
  .gbd-hero-cover {
    display: none;
  }
}

.gbd-hero-cover {
  width: 120px;
  height: auto;
  display: block;
  border-radius: 6px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.5);
  flex-shrink: 0;
}

/* Remove the old z-index on hero-inner since grid handles layout */
.gbd-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 640px;
}

.gbd-headline {
  font-size: clamp(28px, 4.5vw, 48px);
  font-weight: 400;
  margin-bottom: 0.4rem;
  line-height: 1.12;
}

.gbd-headline--white {
  color: #ffffff;
  font-style: normal;
  display: block;
}

.gbd-headline--orange {
  color: #F5A623;
  font-style: italic;
  display: block;
}

.gbd-hero-subtitle {
  font-size: 15px;
  font-style: italic;
  color: rgba(255,255,255,0.8);
  margin-bottom: 1rem;
}

.gbd-hero-sub {
  font-size: 15px;
  color: rgba(255,255,255,0.85);
  line-height: 1.6;
}

/* Fix hero dark overlay on download page */
#gbd-hero .gbd-hero-grid {
  position: relative;
  z-index: 1;
}

#gbd-hero::before {
  z-index: 0;
}

/* -----------------------------------------------------------------------
   INSTRUCTIONS SECTION — white
----------------------------------------------------------------------- */
#gbd-instructions {
  background: #ffffff;
  padding: 3rem 0;
}

.gbd-instructions-inner {
  max-width: 680px;
}

.gbd-choose-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #888;
  font-weight: 600;
  margin-bottom: 1rem;
}


/* -----------------------------------------------------------------------
   DEVICE BUTTONS
----------------------------------------------------------------------- */
.gbd-device-buttons {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.gbd-device-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 1rem 1.5rem;
  border: 1.5px solid var(--color-border-secondary);
  border-radius: 10px;
  background: #ffffff;
  cursor: pointer;
  transition: all 0.15s ease;
  min-width: 140px;
  flex: 1;
}

.gbd-device-btn:hover {
  border-color: #2E52E0;
  background: #f8f9ff;
}

.gbd-device-btn--active {
  border-color: #2E52E0;
  border-width: 2px;
  background: #EEF1FD;
}

.gbd-device-icon {
  font-size: 24px;
  line-height: 1;
  color: #2E52E0;
  margin-bottom: 0.2rem;
}

.gbd-device-label {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
  text-align: center;
}

.gbd-device-sub {
  font-size: 11px;
  color: #888;
  text-align: center;
}

@media (max-width: 480px) {
  .gbd-device-btn {
    min-width: 0;
    padding: 0.75rem 1rem;
  }
}


/* -----------------------------------------------------------------------
   INSTRUCTION PANELS
----------------------------------------------------------------------- */
.gbd-instructions-panel {
  background: #f8f9ff;
  border: 1px solid #e0e6ff;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 1rem;
}

/* Panel hidden state — JS toggles `hidden` attribute */
.gbd-instructions-panel[hidden] {
  display: none;
}

.gbd-panel-inner {
  padding: 1.75rem;
}

.gbd-panel-title {
  font-size: 18px;
  font-weight: 500;
  color: #1a1a1a;
  margin-bottom: 1.5rem;
  line-height: 1.3;
}


/* -----------------------------------------------------------------------
   NUMBERED STEPS
----------------------------------------------------------------------- */
.gbd-steps {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  counter-reset: step-counter;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.gbd-step {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  font-size: 15px;
  color: #444;
  line-height: 1.65;
  counter-increment: step-counter;
}

.gbd-step::before {
  content: counter(step-counter);
  min-width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #2E52E0;
  color: #ffffff;
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

.gbd-step strong {
  color: #1a1a1a;
  font-weight: 600;
}

.gbd-step code {
  background: #e8eef9;
  color: #2E52E0;
  padding: 1px 5px;
  border-radius: 3px;
  font-size: 13px;
  font-family: var(--font-mono);
}

.gbd-link {
  color: #2E52E0;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gbd-link:hover {
  color: #1D3BB5;
}


/* -----------------------------------------------------------------------
   TIP BOX
----------------------------------------------------------------------- */
.gbd-tip {
  background: #ffffff;
  border: 1px solid #e0e6ff;
  border-left: 3px solid #F5A623;
  border-radius: 0 8px 8px 0;
  padding: 0.85rem 1rem;
  font-size: 13px;
  color: #555;
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.gbd-tip-label {
  display: inline-block;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  color: #D4880A;
  margin-right: 0.4rem;
}

.gbd-tip strong {
  color: #333;
  font-weight: 600;
}


/* -----------------------------------------------------------------------
   DOWNLOAD BUTTON
----------------------------------------------------------------------- */
.gbd-download-btn {
  font-size: 16px;
  padding: 14px 32px;
  display: inline-block;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
}

.gbd-download-btn:hover {
  background: #D4880A;
  color: #ffffff;
  text-decoration: none;
}


/* -----------------------------------------------------------------------
   HAVING TROUBLE
----------------------------------------------------------------------- */
.gbd-trouble {
  margin-top: 1.5rem;
  font-size: 13px;
  color: #888;
  text-align: center;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(0,0,0,0.06);
}

.gbd-trouble-link {
  color: #2E52E0;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gbd-trouble-link:hover {
  color: #1D3BB5;
}

/* Download page hero — dark leaves base styles (missing from original) */
#gbd-hero {
  padding: 3.5rem 0 3rem;
  position: relative;
  overflow: hidden;
  border-bottom: 2px solid #ffffff;
  background-image: url('/wp-content/themes/astra-child/images/autumn-leaves-bg.webp');
  background-size: 400px 400px;
  background-repeat: repeat;
  isolation: isolate;
}

#gbd-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.58);
  pointer-events: none;
  z-index: 0;
}

/*
=======================================================================
  the Pumpkin School — BOOK OFFER PAGE STYLES
  Append to child theme style.css after the download styles block.

  Color progression:
    Blue header (site-wide)
    → Dark leaves hero
    → White (coupon code + discount details)
    → Orange (course teaser — something bigger coming)
=======================================================================
*/


/* -----------------------------------------------------------------------
   PAGE RESET
----------------------------------------------------------------------- */
body.page-template-page-bookoffer .site-content,
body.page-template-page-bookoffer .ast-container,
body.page-template-page-bookoffer #content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

body.page-template-page-bookoffer .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

body.page-template-page-bookoffer .ast-container {
  display: block !important;
}

body.page-template-page-bookoffer #gs-bookoffer-page {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* -----------------------------------------------------------------------
   HERO — dark leaves
----------------------------------------------------------------------- */
#gbo-hero {
  padding: 4rem 0 3.5rem;
  position: relative;
  overflow: hidden;
  border-bottom: 2px solid #ffffff;
  background-image: url('/wp-content/themes/astra-child/images/autumn-leaves-bg.webp');
  background-size: 400px 400px;
  background-repeat: repeat;
  isolation: isolate;
}

#gbo-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.58);
  pointer-events: none;
  z-index: 0;
}

.gbo-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 600px;
}

.gbo-headline {
  font-size: clamp(34px, 6vw, 62px);
  line-height: 1.08;
  font-weight: 400;
  color: #ffffff;
  margin-bottom: 1rem;
}

.gbo-headline em {
  font-style: italic;
  color: #F5A623;
}

.gbo-hero-sub {
  font-size: 16px;
  color: rgba(255,255,255,0.75);
  line-height: 1.6;
  max-width: 440px;
}


/* -----------------------------------------------------------------------
   COUPON SECTION — white
----------------------------------------------------------------------- */
#gbo-coupon {
  background: #ffffff;
  padding: 3rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.gbo-coupon-inner {
  max-width: 640px;
}

.gbo-section-head {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 400;
  color: #1a1a1a;
  line-height: 1.2;
  margin-bottom: 0.5rem;
}

.gbo-section-sub {
  font-size: 15px;
  color: #555;
  line-height: 1.65;
  margin-bottom: 2rem;
  max-width: 520px;
}

/* Coupon code box */
.gbo-coupon-box {
  background: #EEF1FD;
  border: 2px solid #2E52E0;
  border-radius: 12px;
  padding: 1.75rem;
  margin-bottom: 1.75rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  text-align: center;
}

.gbo-coupon-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #2E52E0;
  font-weight: 600;
}

.gbo-coupon-code {
  font-size: clamp(28px, 5vw, 44px);
  font-weight: 700;
  color: #2E52E0;
  letter-spacing: 0.08em;
  font-family: var(--font-mono, monospace);
  line-height: 1;
}

.gbo-copy-btn {
  background: #2E52E0;
  color: #ffffff;
  border: none;
  padding: 10px 24px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.15s ease;
}

.gbo-copy-btn:hover {
  background: #1D3BB5;
}

.gbo-copy-btn--copied {
  background: #1D3BB5;
}

.gbo-copy-confirm {
  font-size: 12px;
  color: #2E52E0;
  font-weight: 500;
  display: none;
  margin: 0;
}

/* Coupon details list */
.gbo-coupon-details {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 2rem;
  background: #f8f9ff;
  border: 1px solid #e0e6ff;
  border-radius: 10px;
  padding: 1.25rem;
}

.gbo-detail {
  display: flex;
  gap: 1rem;
  align-items: baseline;
  font-size: 14px;
}

.gbo-detail-label {
  font-weight: 600;
  color: #2E52E0;
  min-width: 90px;
  flex-shrink: 0;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.gbo-detail-value {
  color: #444;
  line-height: 1.5;
}

/* Waitlist nudge */
.gbo-waitlist-nudge {
  background: #f8f9ff;
  border: 1px solid #e0e6ff;
  border-left: 3px solid #F5A623;
  border-radius: 0 10px 10px 0;
  padding: 1.25rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.gbo-waitlist-text {
  font-size: 14px;
  color: #555;
  line-height: 1.6;
  flex: 1;
  min-width: 200px;
}


/* -----------------------------------------------------------------------
   COURSE TEASER — orange background
   Deliberately bold and slightly mysterious.
----------------------------------------------------------------------- */
#gbo-teaser {
  background: #F5A623;
  padding: 3.5rem 0;
}

.gbo-teaser-inner {
  max-width: 620px;
}

.gbo-teaser-eyebrow {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: rgba(255,255,255,0.8);
  font-weight: 600;
  margin-bottom: 0.5rem;
  display: block;
}

.gbo-teaser-head {
  font-size: clamp(26px, 4.5vw, 42px);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.12;
  margin-bottom: 1rem;
}

.gbo-teaser-desc {
  font-size: 16px;
  color: rgba(255,255,255,0.92);
  line-height: 1.7;
  margin-bottom: 1rem;
  max-width: 500px;
}

.gbo-teaser-cta-text {
  font-size: 17px;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 2rem;
}

/* Optional email form for non-subscribers */
.gbo-teaser-form-wrap {
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 10px;
  padding: 1.5rem;
}

.gbo-teaser-form-label {
  font-size: 14px;
  color: rgba(255,255,255,0.9);
  line-height: 1.5;
  margin-bottom: 1rem;
}

.gbo-form-row {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.gbo-form-input {
  flex: 1;
  min-width: 200px;
  padding: 11px 16px;
  border: 2px solid rgba(255,255,255,0.5);
  border-radius: 6px;
  font-size: 15px;
  color: #1a1a1a;
  background: #ffffff;
  outline: none;
}

.gbo-form-input:focus {
  border-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(255,255,255,0.3);
}

.gbo-form-input::placeholder {
  color: #999;
}

.gbo-submit {
  font-size: 14px;
  padding: 11px 22px;
  white-space: nowrap;
}

.gbo-form-fine {
  font-size: 11px;
  color: rgba(255,255,255,0.7);
  margin-top: 0.6rem;
  line-height: 1.5;
}

/*
=======================================================================
  the Pumpkin School — TOOLS & SUPPLIES PAGE STYLES
  Append to child theme style.css after the bookoffer styles block.

  Structure:
    Blue header (site-wide)
    → Dark leaves hero
    → White anchor nav
    → White legend strip
    → Alternating white / light blue sections (8 total)
    → Orange bottom CTA
=======================================================================
*/


/* -----------------------------------------------------------------------
   PAGE RESET
----------------------------------------------------------------------- */
body.page-template-page-tools .site-content,
body.page-template-page-tools .ast-container,
body.page-template-page-tools #content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

body.page-template-page-tools .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

body.page-template-page-tools .ast-container {
  display: block !important;
}

body.page-template-page-tools #gs-tools-page {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* -----------------------------------------------------------------------
   HERO — dark leaves
----------------------------------------------------------------------- */
#gto-hero {
  padding: 3.5rem 0;
  position: relative;
  overflow: hidden;
  border-bottom: 2px solid #ffffff;
  background-image: url('/wp-content/themes/astra-child/images/autumn-leaves-bg.webp');
  background-size: 400px 400px;
  background-repeat: repeat;
  isolation: isolate;
}

#gto-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.58);
  pointer-events: none;
  z-index: 0;
}

.gto-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 680px;
}

.gto-headline {
  font-size: clamp(30px, 5vw, 52px);
  line-height: 1.1;
  font-weight: 400;
  color: #ffffff;
  margin-bottom: 1rem;
}

.gto-headline em {
  font-style: italic;
  color: #F5A623;
}

.gto-hero-sub {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(255,255,255,0.85);
  max-width: 520px;
}

.gto-hero-sub em {
  font-style: italic;
  color: rgba(255,255,255,0.95);
}


/* -----------------------------------------------------------------------
   ANCHOR NAV — sticky on scroll, links to each section
----------------------------------------------------------------------- */
#gto-nav {
  background: #2E52E0;
  padding: 0.85rem 0;
  border-bottom: 2px solid #ffffff;
  position: sticky;
  top: 0;
  z-index: 100;
}

.gto-nav-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.6);
  font-weight: 600;
  margin-bottom: 0.4rem;
}

.gto-nav-links {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.gto-nav-link {
  font-size: 12px;
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  padding: 4px 10px;
  border-radius: 5px;
  border: 1px solid rgba(255,255,255,0.2);
  white-space: nowrap;
  transition: all 0.12s ease;
}

.gto-nav-link:hover {
  background: rgba(255,255,255,0.15);
  color: #ffffff;
  border-color: rgba(255,255,255,0.4);
  text-decoration: none;
}


/* -----------------------------------------------------------------------
   LEGEND STRIP
----------------------------------------------------------------------- */
#gto-legend {
  background: #ffffff;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.gto-legend-inner {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  align-items: center;
}

.gto-legend-item {
  font-size: 13px;
  color: #555;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.gto-check {
  color: #F5A623;
  font-weight: 700;
}

.gto-letter {
  font-weight: 700;
  font-size: 13px;
  width: 18px;
  text-align: center;
}

.gto-a { color: #8B6914; }
.gto-k { color: #1a7a3a; }
.gto-o { color: #666; }

.gto-dash {
  color: #bbb;
  font-weight: 400;
}


/* -----------------------------------------------------------------------
   SECTION — alternating backgrounds
----------------------------------------------------------------------- */
.gto-section {
  padding: 2.5rem 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
  scroll-margin-top: 80px; /* offset for sticky nav */
}

.gto-section--white {
  background: #ffffff;
}

.gto-section--blue {
  background: #EEF1FD;
}

/* Appendix table image — responsive, max width of image itself */
.gto-table-img {
  display: block;
  width: 100%;
  max-width: 700px;
  height: auto;
  border-radius: 8px;
  margin-bottom: 2rem;
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}


/* -----------------------------------------------------------------------
   AMAZON LINKS TABLE
----------------------------------------------------------------------- */
.gto-amazon-wrap {
  max-width: 800px;
}

.gto-amazon-title {
  font-size: 16px;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #F5A623;
  display: inline-block;
}

.gto-amazon-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.gto-amazon-table thead tr {
  background: #2E52E0;
}

.gto-amazon-table thead th {
  color: #ffffff;
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.6rem 0.85rem;
  text-align: left;
}

.gto-amazon-table tbody tr {
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.gto-amazon-table tbody tr:last-child {
  border-bottom: none;
}

.gto-amazon-table td {
  padding: 0.7rem 0.85rem;
  color: #444;
  vertical-align: top;
  line-height: 1.5;
}

.gto-amazon-table td:first-child {
  font-weight: 500;
  color: #1a1a1a;
  width: 35%;
}

.gto-amazon-table td:nth-child(2) {
  width: 20%;
  white-space: nowrap;
}

.gto-row-alt {
  background: rgba(0,0,0,0.025);
}

.gto-section--blue .gto-row-alt {
  background: rgba(46,82,224,0.05);
}

.gto-amz-link {
  color: #2E52E0;
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 500;
  font-size: 13px;
  white-space: nowrap;
}

.gto-amz-link:hover {
  color: #1D3BB5;
}

/* Mobile table — allow horizontal scroll */
@media (max-width: 600px) {
  .gto-amazon-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .gto-amazon-table {
    min-width: 480px;
  }

  .gto-table-img {
    max-width: 100%;
  }
}


/* -----------------------------------------------------------------------
   BOTTOM CTA — orange
----------------------------------------------------------------------- */
#gto-cta {
  background: #F5A623;
  padding: 2.5rem 0;
}

.gto-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}

.gto-cta-eyebrow {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.8);
  font-weight: 600;
  margin-bottom: 0.35rem;
}

.gto-cta-head {
  font-size: clamp(17px, 2.5vw, 24px);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.25;
  margin-bottom: 0.4rem;
}

.gto-cta-head em {
  font-style: italic;
}

.gto-cta-desc {
  font-size: 14px;
  color: rgba(255,255,255,0.88);
  line-height: 1.6;
  max-width: 460px;
}

.gto-cta-btn {
  white-space: nowrap;
  flex-shrink: 0;
  font-size: 15px;
  padding: 13px 26px;
}

/*
=======================================================================
  the Pumpkin School — LEARN POST BOOK PROMO STYLES
  Append to child theme style.css after the learn index styles block.

  This styles the book promo block automatically appended to the
  bottom of every Learn category post via functions.php.
  Orange background, book cover left, text and CTA right.
=======================================================================
*/

.gs-post-promo {
  background: #F5A623;
  border-radius: 10px;
  margin-top: 3rem;
  overflow: hidden;
}

.gs-post-promo-inner {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.75rem;
  align-items: center;
  padding: 2rem;
}

@media (max-width: 540px) {
  .gs-post-promo-inner {
    grid-template-columns: 1fr;
  }
  .gs-post-promo-cover {
    display: flex;
    justify-content: center;
  }
}

.gs-post-promo-img {
  width: 100px;
  height: auto;
  display: block;
  border-radius: 5px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
  flex-shrink: 0;
}

.gs-post-promo-eyebrow {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.8);
  font-weight: 600;
  margin-bottom: 0.35rem;
}

.gs-post-promo-title {
  font-size: clamp(17px, 2.5vw, 22px);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.3;
  margin-bottom: 0.6rem;
}

.gs-post-promo-title em {
  font-style: italic;
}

.gs-post-promo-desc {
  font-size: 14px;
  color: rgba(255,255,255,0.9);
  line-height: 1.65;
  margin-bottom: 1rem;
}

.gs-post-promo-btn {
  display: inline-block;
  background: #2E52E0;
  color: #ffffff;
  padding: 11px 22px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.15s ease;
  margin-bottom: 0.6rem;
}

.gs-post-promo-btn:hover {
  background: #1D3BB5;
  color: #ffffff;
  text-decoration: none;
}

.gs-post-promo-fine {
  font-size: 11px;
  color: rgba(255,255,255,0.7);
  line-height: 1.5;
  margin: 0;
}