/* paullinehan.css
   PaulLinehan.co Core System
   Theme: GeneratePress (child)
   Scope: PL templates + global header/footer + GP overrides

   System Sections (canonical):
   1) Variables
   2) Base
   3) Layout
   4) Components
   5) Header
   6) Footer
   7) GP overrides
*/

/* ==================== VARIABLES ==================== */
:root{
  --navy-bg:#082848;
  --cream-text:#f8f4f2;
  --navy-text:#082848;
  --gray-text:#64748B;
  --accent-blue:#007BFF;

  --font-family:'Frutiger','Segoe UI',Tahoma,Geneva,Verdana,sans-serif;

  --max-width-content:760px;
  --max-width-hero:900px;
  --max-width-wide:1200px;

  /* Tightened global rhythm */
  --spacing-section:2rem 1.75rem;
  --spacing-hero:2rem 0 2.25rem;

  --border-radius:8px;
  --border-radius-button:6px;

  --transition-standard:0.3s ease;

  /* Header height used to offset fixed header */
  --pl-header-h:88px;
}

/* ==================== BASE ==================== */
html, body{
  background:var(--cream-text);
  overflow-x:hidden;
}

/* Base box sizing only inside PL pages (avoids theme-wide surprises) */
.pl-page, .pl-page *{
  box-sizing:border-box;
}

.pl-page{
  margin:0;
  padding:0;
  font-family:var(--font-family);
  line-height:1.6;
  color:var(--navy-text);
  background:var(--cream-text);
}

/* Typography */
.pl-page h1{
  font-size:3rem;
  font-weight:700;
  color:var(--navy-text);
  line-height:1.2;
  letter-spacing:-1px;
}

.pl-page h2{
  font-size:1.85rem;
  font-weight:700;
  color:var(--navy-text);
  letter-spacing:-0.5px;
}

.pl-page h3{
  font-size:1.4rem;
  font-weight:700;
  color:var(--navy-text);
}

.pl-page p{
  font-size:1.125rem;
  line-height:1.7;
  color:var(--navy-text);
}

.pl-subhead{
  font-size:1.25rem;
  color:var(--gray-text);
  font-weight:400;
}

/* Links (global inside PL pages) */
.pl-page a{
  color:inherit;
  transition:opacity var(--transition-standard);
}

.pl-page a:hover{
  opacity:0.7;
}

/* Responsive base type */
@media (max-width:768px){
  .pl-page h1{ font-size:2.2rem; }
  .pl-page h2{ font-size:1.6rem; }
  .pl-subhead{ font-size:1.15rem; }

  .pl-page p{
    font-size:1.05rem;
  }
}

/* ==================== LAYOUT ==================== */

/* Containers */
.pl-container{
  max-width:var(--max-width-content);
  margin:0 auto;
  padding:var(--spacing-section);
}

.pl-container-wide{
  max-width:var(--max-width-wide);
  margin:0 auto;
  padding:var(--spacing-section);
}

.pl-container-hero{
  max-width:var(--max-width-hero);
  margin:0 auto;
  padding:var(--spacing-hero);
  text-align:center;
}

/* Reading width container (reusable for essays) */
.pl-container-reading{
  max-width:var(--max-width-content);
}

/* Grid layouts */
.pl-grid{
  display:grid;
  gap:2rem;
}

.pl-grid-auto{
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
}

.pl-grid-2{
  grid-template-columns:repeat(2, 1fr);
}

.pl-grid-3{
  grid-template-columns:repeat(3, 1fr);
}

/* Sections */
.pl-section{
  padding:var(--spacing-section);
}

.pl-section h2{ margin-bottom:1rem; }
.pl-section p{ margin-bottom:1rem; }

.pl-section-dark{
  background:var(--navy-bg);
  color:var(--cream-text);
}

.pl-section-dark h1,
.pl-section-dark h2,
.pl-section-dark h3,
.pl-section-dark p,
.pl-section-dark li,
.pl-section-dark a{
  color:var(--cream-text);
}

/* Section spacing modifier (system-based, no stacking) */
.pl-section.pl-section-compact{
  padding:1.5rem 0;
}

@media (max-width:768px){
  .pl-section.pl-section-compact{
    padding:1.25rem 0;
  }
}

/* Responsive layout */
@media (max-width:768px){
  .pl-container,
  .pl-container-wide,
  .pl-container-hero{
    padding:2rem 1.5rem;
  }

  .pl-grid-2,
  .pl-grid-3{
    grid-template-columns:1fr;
  }
}

/* ==================== COMPONENTS ==================== */

/* Buttons */
.pl-btn{
  display:inline-block;
  padding:1rem 2.5rem;
  font-size:1.125rem;
  font-weight:600;
  text-decoration:none;
  border-radius:var(--border-radius-button);
  transition:all var(--transition-standard);
  cursor:pointer;
  border:none;
}

.pl-btn-primary{
  background: var(--accent-blue);
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(8,40,72,0.15);
}

.pl-btn-primary:hover{
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(8,40,72,0.2);
}

.pl-btn-secondary{
  border:2px solid var(--accent-blue);
  color:var(--accent-blue);
  background:transparent;
}

.pl-btn-secondary:hover{
  background:var(--accent-blue);
  color:var(--cream-text);
}

@media (max-width:768px){
  .pl-btn{
    width:100%;
    text-align:center;
  }
}

.pl-btn.pl-btn-primary{
  color:#fff;
  text-decoration:none;
}
.pl-btn.pl-btn-primary:visited{
  color:#fff;
}
.pl-btn.pl-btn-primary:hover,
.pl-btn.pl-btn-primary:focus{
  color:#fff;
}

/* Cards */
.pl-card{
  background:var(--cream-text);
  padding:2rem;
  border-radius:var(--border-radius);
  text-decoration:none;
  transition:transform var(--transition-standard), box-shadow var(--transition-standard);
  display:block;
}

.pl-card:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(0,0,0,0.1);
}

.pl-card h3{ margin-bottom:1rem; }

.pl-card p{
  color:var(--gray-text);
  font-size:1rem;
  line-height:1.6;
}

/* Featured Cards (used on dark sections) */
.pl-featured-card{
  background:#ffffff;
  border:1px solid rgba(8,40,72,0.10);
  border-radius:var(--border-radius);
  box-shadow:0 6px 18px rgba(8,40,72,0.06);
  padding:2rem;
  transition:transform var(--transition-standard), box-shadow var(--transition-standard);
}

.pl-featured-card:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 28px rgba(8,40,72,0.12);
}

.pl-featured-card h3{
  color:var(--navy-text);
  margin-bottom:1rem;
}

.pl-featured-card p{
  color:var(--gray-text);
  font-size:1rem;
  line-height:1.6;
}

/* Ensure featured cards remain readable inside dark sections */
.pl-section-dark .pl-featured-card h3{ color:var(--navy-text); }
.pl-section-dark .pl-featured-card p{ color:var(--gray-text); }

/* Lists */
ul.pl-custom-list{
  list-style:none;
  padding-left:0;
}

ul.pl-custom-list li{
  font-size:1.125rem;
  color:inherit;
  margin-bottom:0.75rem;
  padding-left:1.5rem;
  position:relative;
}

ul.pl-custom-list li:before{
  content:"-";
  position:absolute;
  left:0;
  color:var(--accent-blue);
  font-weight:700;
}

@media (max-width:768px){
  ul.pl-custom-list li{ font-size:1.05rem; }
}

/* Prose system (blog + essays) */
.pl-prose{
  font-size:1.125rem;
  line-height:1.8;
}

.pl-prose p{
  margin:0 0 1.25rem;
  font-size:1.125rem;
  line-height:1.7;
  color:inherit;
}

.pl-prose h2{
  margin:2rem 0 1.25rem 0;
  font-size:2rem;
  font-weight:700;
  color:inherit;
  letter-spacing:-0.5px;
}

.pl-prose h3{ margin:1.75rem 0 0.9rem; }

.pl-prose ul, .pl-prose ol{
  margin:0 0 1.5rem 1.25rem;
  padding:0;
}

.pl-prose li{ margin-bottom:0.75rem; }

.pl-prose a{
  color:var(--accent-blue);
  text-decoration:underline;
  text-underline-offset:3px;
}

.pl-prose a:hover{ opacity:0.85; }

/* Prose callouts */
/* GHL-style boxed quote (Gutenberg Quote block) */
.pl-page .pl-prose .wp-block-quote,
.pl-page .pl-prose blockquote{
  margin:2.25rem 0;
  padding:1.25rem 1.5rem;
  border-left:4px solid var(--accent-blue);
  background:rgba(8,40,72,0.04);
}

.pl-page .pl-prose .wp-block-quote p,
.pl-page .pl-prose blockquote p{
  margin:0;
}

.pl-page .pl-prose .wp-block-quote cite{
  display:block;
  margin-top:0.75rem;
  font-style:normal;
  opacity:0.8;
}

/* Trail Marker callout (Group block with class pl-callout pl-callout-trail) */
.pl-callout{
  margin:1.75rem 0;
  padding:1.1rem 1.35rem;
  border-radius:14px;
  background:rgba(46,46,46,0.05);
}

.pl-callout-trail{
  background:rgba(8,40,72,0.06);
}

.pl-callout-trail p:first-child{
  margin:0 0 0.5rem 0;
  font-weight:700;
}

/* Pagination (canonical) */
.pl-pagination{ margin-top:2.5rem; text-align:center; }

.pl-pagination ul{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  gap:0.75rem;
  justify-content:center;
  flex-wrap:wrap;
}

.pl-pagination a,
.pl-pagination span,
.pl-pagination .page-numbers{
  display:inline-block;
  padding:.6rem .9rem;
  border:1px solid rgba(8,40,72,0.2);
  border-radius:6px;
  text-decoration:none;
  background:#ffffff;
  box-shadow:0 2px 8px rgba(8,40,72,0.10);
}

.pl-pagination .current,
.pl-pagination .page-numbers.current{
  background:var(--navy-bg);
  color:var(--cream-text);
  border-color:var(--navy-bg);
  box-shadow:none;
}

/* Utilities */
.pl-text-center{ text-align:center; }

.pl-mt-1{ margin-top:1rem; }
.pl-mt-2{ margin-top:2rem; }
.pl-mt-3{ margin-top:3rem; }
.pl-mb-1{ margin-bottom:1rem; }
.pl-mb-2{ margin-bottom:2rem; }
.pl-mb-3{ margin-bottom:3rem; }

.pl-emphasis{
  font-size:1.5rem;
  font-weight:500;
  margin:2rem 0;
}

.pl-cta-group{
  margin-top:1.5rem;
}

/* Measure + muted helpers (keeps templates free of inline styles) */
.pl-measure{
  max-width:60ch;
  margin-left:auto;
  margin-right:auto;
}

.pl-muted{
  color:var(--gray-text);
  font-size:1rem;
}

/* Dark-section support for custom lists (avoids inline styling) */
.pl-section-dark ul.pl-custom-list.pl-custom-list-dark li{
  color:var(--cream-text);
}

@media (max-width:768px){
  .pl-emphasis{ font-size:1.25rem; }
  .pl-prose h2{ font-size:1.75rem; }
}

/* Single post layout */
.pl-wrap-reading{
  max-width:var(--max-width-content);
  margin:0 auto;
}

.pl-post-hero{
  padding:2.75rem 1.75rem 1rem;
}

.pl-post-title{
  margin:0 0 0.75rem 0;
}

.pl-post-meta{
  margin:0;
  font-size:1rem;
  color:var(--gray-text);
}

.pl-post-meta-sep{
  margin:0 0.5rem;
  opacity:0.85;
}

.pl-post-body{
  padding:0 1.75rem 2.25rem;
}

.pl-post-cta{
  padding:2.5rem 1.75rem 3.75rem;
}

/* Post related */
.pl-post-related{ padding:2.5rem 2rem 0; }
.pl-related-title{ margin:0 0 1rem 0; font-size:1.25rem; }
.pl-related-list{ display:grid; gap:0.75rem; }

.pl-related-item{
  padding:0.9rem 1rem;
  border-radius:12px;
  background:rgba(8,40,72,0.04);
}

.pl-related-link{ font-weight:700; text-decoration:none; }
.pl-related-link:hover{ text-decoration:underline; text-underline-offset:3px; }

.pl-related-meta{
  margin-top:0.25rem;
  font-size:0.95rem;
  color:var(--gray-text);
}

@media (max-width:768px){
  .pl-post-hero{ padding:2.25rem 1.25rem 0.95rem; }
  .pl-post-body{ padding:0 1.25rem 2.1rem; }
  .pl-post-cta{ padding:2.25rem 1.25rem 3.25rem; }
}

/* Form embed (generic) */
.pl-form-embed{
  max-width:600px;
  margin:0 auto;
  width:100%;
  min-height:500px;
}

.pl-form-embed iframe{
  width:100%;
  height:500px;
  border:none;
  border-radius:8px;
  display:block;
}

/* Contact page */
.pl-contact-lines{ padding-top:0; }

.pl-contact-lines p{ margin:0.5rem 0; }

.pl-contact-form-title{ margin:0 0 1.5rem 0; }

.pl-contact-form-wrap{
  max-width:560px;
  margin:0 auto;
  text-align:left;
}

.pl-contact-links{
  margin-top:1rem;
  font-size:0.95rem;
}

.pl-contact-links a{
  text-decoration:underline;
  text-underline-offset:3px;
}

.pl-contact-links-sep{
  margin:0 0.5rem;
  opacity:0.7;
}

.pl-hr{
  border:0;
  border-top:1px solid rgba(8,40,72,0.15);
  margin:2rem auto;
  max-width:560px;
}

.pl-contact-disclaimer{
  font-style:italic;
  color:var(--gray-text);
  margin:0;
}

/* Fluent Forms alignment and visual polish */
.pl-contact-form-wrap .fluentform .ff-el-form-control{
  border-radius:12px;
  padding:0.75rem 0.9rem;
  border:1px solid rgba(8,40,72,0.18);
  background:#ffffff;
}

.pl-contact-form-wrap .fluentform .ff-btn-submit{
  width:100%;
  border-radius:12px;
  padding:0.9rem 1.1rem;
  font-weight:700;
}

/* Booking embed */
.pl-booking-embed{
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* These are placeholders for the weekday header row fix. */
.pl-booking-embed .ACTUAL-WEEKDAY-ROW,
.pl-booking-embed .ACTUAL-WEEKDAY-CELL{
  letter-spacing: normal;
}

@media (max-width: 480px){
  .pl-booking-embed .ACTUAL-WEEKDAY-ROW{
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.35rem;
    align-items: center;
  }

  .pl-booking-embed .ACTUAL-WEEKDAY-CELL{
    display: block;
    text-align: center;
    font-size: 0.8rem;
    line-height: 1.1;
    padding: 0.1rem 0;
    white-space: nowrap;
  }
}

/* Legal meta */
.pl-legal-meta{
  font-size:1rem;
  color:var(--gray-text);
  margin-top:1rem;
}

/* Raw Truths archive components */
.pl-raw-truths-feed{
  background:var(--cream-text);
}

.pl-raw-truths-lead{
  font-size:1.5rem;
  font-weight:500;
  color:var(--navy-text);
  line-height:1.8;
  margin:0;
}

/* Card wall */
.pl-image-grid{
  display:flex;
  flex-wrap:wrap;
  gap:2rem;
  justify-content:center;
  align-items:flex-start;
}

.pl-image-card{
  flex:1 1 300px;
  max-width:400px;
  min-width:280px;
}

.pl-image-card-link{
  display:block;
  text-decoration:none;
  color:inherit;
}

.pl-image-card img{
  width:100%;
  height:auto;
  display:block;
  border-radius:var(--border-radius);
  box-shadow:0 4px 12px rgba(8,40,72,0.15);
  transition:transform var(--transition-standard), box-shadow var(--transition-standard);
}

.pl-image-card-link:hover img{
  transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(8,40,72,0.2);
}

.pl-image-card-link:focus-visible{
  outline:3px solid var(--accent-blue);
  outline-offset:6px;
  border-radius:var(--border-radius);
}

/* Fallback if no featured image is set yet */
.pl-image-card-fallback{
  background:var(--navy-bg);
  color:var(--cream-text);
  border-radius:var(--border-radius);
  min-height:260px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:2rem;
  box-shadow:0 4px 12px rgba(8,40,72,0.15);
}

.pl-cta-lead{
  font-size:2rem;
  font-weight:500;
  color:var(--navy-text);
  margin:0 0 2rem 0;
}

/* ==================== RAW TRUTH SINGLE (CANONICAL) ==================== */

.pl-rt-hero{
  padding:3rem 2rem;
}

.pl-rt-hero .pl-container{
  display:flex;
  justify-content:center;
}

.pl-rt-card{
  background:var(--navy-bg);
  border-radius:var(--border-radius);
  box-shadow:0 8px 24px rgba(8,40,72,0.15);

  width:360px;
  aspect-ratio:1 / 1;
  padding:2rem;

  display:flex;
  flex-direction:column;
  justify-content:space-between;

  text-align:left;
}

.pl-rt-card .pl-rt-card-text{
  color:var(--cream-text);
  font-size:1rem;
  line-height:1.4;
  margin:0 0 1.25rem 0;
  text-align:left;
}

.pl-rt-card .pl-rt-card-url{
  display:block;
  width:100%;
  text-align:center;
  font-size:0.75rem;
  color:var(--cream-text);
  opacity:0.7;
  margin:0;
}

.pl-rt-content{
  background:var(--cream-text);
  padding:4rem 2rem;
}

.pl-rt-title{
  font-size:2.5rem;
  font-weight:700;
  color:var(--navy-text);
  margin:0 0 2rem 0;
  letter-spacing:-0.5px;
  line-height:1.2;
}

/* Related Newsletter */
.pl-rt-related{
  background:var(--cream-text);
  padding:4rem 2rem;
}

.pl-rt-related-inner{
  max-width:600px;
  margin:0 auto;
  text-align:center;
}

.pl-rt-related-kicker{
  font-size:1.5rem;
  font-weight:700;
  color:var(--navy-text);
  margin:0 0 2rem 0;
}

.pl-rt-newsletter-card{
  display:block;
  background:#fff;
  padding:2rem;
  border-radius:var(--border-radius);
  text-decoration:none;
  border:2px solid var(--navy-bg);
  transition:transform var(--transition-standard), box-shadow var(--transition-standard);
}

.pl-rt-newsletter-card:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(8,40,72,0.15);
}

.pl-rt-newsletter-title{
  font-size:1.5rem;
  font-weight:700;
  color:var(--navy-text);
  margin:0 0 1rem 0;
}

.pl-rt-newsletter-teaser{
  font-size:1.125rem;
  color:var(--gray-text);
  line-height:1.6;
  margin:0;
}

/* CTA */
.pl-rt-cta{
  padding:4rem 2rem;
}

.pl-rt-cta-title{
  margin:0 0 1rem 0;
}

.pl-rt-cta-sub{
  margin:0 0 2rem 0;
}

/* Responsive */
@media (max-width:992px){
  .pl-rt-card-text{ font-size:1.125rem; }
}

@media (max-width:768px){
  .pl-rt-card{ padding:2rem 1.5rem; }
  .pl-rt-title{ font-size:2rem; }
  .pl-rt-newsletter-title{ font-size:1.25rem; }
  .pl-rt-newsletter-teaser{ font-size:1rem; }
}

@media (max-width:480px){
  .pl-rt-card-text{ font-size:0.95rem; }
  .pl-rt-card{ padding:1.5rem 1.25rem; }
}

/* Landing page: 2-col hero (Stories style) */
.pl-landing-hero{
  padding:var(--spacing-hero);
}

.pl-landing-grid{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:3rem;
  align-items:center;
}

.pl-landing-copy h1{
  margin:0 0 1rem 0;
}

.pl-landing-copy p{
  margin:0 0 1rem 0;
}

.pl-landing-bullets{
  margin:1rem 0 1.5rem 0;
  padding-left:1.25rem;
}

.pl-landing-bullets li{
  margin-bottom:0.5rem;
}

.pl-landing-media{
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}

.pl-landing-media img{
  width:100%;
  height:auto;
  display:block;
  border-radius:var(--border-radius);
  box-shadow:0 10px 28px rgba(8,40,72,0.18);
}

/* Slightly softer shadow for the secondary image */
.pl-landing-media img.pl-landing-media-secondary{
  box-shadow:0 10px 28px rgba(8,40,72,0.12);
}

@media (max-width:900px){
  .pl-landing-grid{
    grid-template-columns:1fr;
    gap:2rem;
  }
}

/* ==================== COMPONENTS: JOURNAL + MEDIA ==================== */

/* Product media */
.pl-media-card{
  margin:0;
  background:#ffffff;
  border:1px solid rgba(8,40,72,0.10);
  border-radius:14px;
  box-shadow:0 10px 28px rgba(8,40,72,0.10);
  overflow:hidden;
}

.pl-media-card img{
  display:block;
  width:100%;
  height:auto;
}

/* One Rule Journal layout helpers (safe, reusable patterns) */
.pl-journal-hero-grid{
  align-items:center;
}

.pl-journal-hero-copy{
  text-align:left;
}

.pl-journal-hero-media{
  display:flex;
  justify-content:center;
}

.pl-journal-media-grid{
  grid-template-columns:repeat(2, 1fr);
  gap:2rem;
}

@media (max-width:768px){
  .pl-journal-hero-copy{ text-align:center; }
  .pl-journal-media-grid{ grid-template-columns:1fr; }
}

.pl-journal-callout-title{
  margin:0 0 0.25rem 0;
  font-weight:700;
}

.pl-journal-callout-lead{
  margin:0 0 0.75rem 0;
  font-size:1.25rem;
  font-weight:600;
}

/* Entry cards */
.pl-journal-entry-stack{
  display:grid;
  gap:1rem;
}

.pl-entry-card{
  background:#ffffff;
  border:1px solid rgba(8,40,72,0.10);
  border-left:4px solid var(--pl-accent, var(--accent-blue));
  border-radius:12px;
  padding:1.25rem 1.25rem;
}

.pl-entry-label{
  margin:0 0 0.35rem 0;
  font-weight:700;
  font-size:1rem;
}

.pl-entry-example{
  margin:0;
  font-style:italic;
  color:var(--gray-text);
  font-size:1rem;
  line-height:1.7;
}

/* Themes grid */
.pl-themes-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:1rem;
  text-align:left;
}

.pl-theme-item{
  border-left:1px solid rgba(248,244,242,0.25);
  padding-left:1rem;
}

.pl-theme-meta{
  display:block;
  font-size:0.75rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  opacity:0.75;
}

.pl-theme-title{
  display:block;
  font-size:1.125rem;
  font-weight:600;
}

/* ==================== COMPONENTS: BUTTON VARIANTS ==================== */

/* Page accent context (used by One Rule Journal and any future accent pages) */
.pl-accent-sage{
  --pl-accent:#6B8F71;          /* sage */
  --pl-accent-contrast:#ffffff; /* text on accent */
  --pl-accent-soft:rgba(107,143,113,0.12);
}

/* Accent button (uses page accent variable) */
.pl-btn-accent{
  background:var(--pl-accent, var(--accent-blue));
  color:var(--pl-accent-contrast, #ffffff);
  box-shadow:0 4px 12px rgba(8,40,72,0.15);
}

.pl-btn-accent:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(8,40,72,0.2);
  opacity:1;
}

/* Link-style button (looks like a button, behaves like a link) */
.pl-btn-link{
  background:transparent;
  color:var(--navy-text);
  border:1px solid rgba(8,40,72,0.20);
  box-shadow:none;
}

.pl-btn-link:hover{
  background:rgba(8,40,72,0.04);
  transform:none;
  opacity:1;
}

/* CTA group layout (your hero uses this) */
.pl-cta-group{
  display:flex;
  gap:1rem;
  align-items:center;
  flex-wrap:wrap;
  margin-top:1.25rem;
}

@media (max-width:768px){
  .pl-cta-group{
    flex-direction:column;
    align-items:stretch;
  }
}

/* ==================== COMPONENTS: CTA GROUP ==================== */

.pl-cta-group{
  display:flex;
  gap:1rem;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:1.5rem;
}

.pl-cta-group > *{
  margin:0;
}

/* Make sure links styled as buttons sit perfectly */
.pl-cta-group a.pl-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}

/* Optional: if you have a plain link CTA in the group (like "Read the Writing") */
.pl-cta-group .pl-cta-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:3px;
  color:inherit;
  line-height:1;
}

/* Mobile stacking, consistent */
@media (max-width:768px){
  .pl-cta-group{
    flex-direction:column;
    align-items:stretch;
  }
}

/* ==================== COMPONENTS: ABOUT HERO ==================== */

.pl-about-hero-media{
  display:flex;
  justify-content:flex-end;
}

.pl-about-hero-media img{
  max-width:320px;
  width:100%;
}

/* ==================== COMPONENTS: PRICE DISPLAY ==================== */

.pl-price{
  font-weight:600;
  font-size:1.1rem;
  color:var(--pl-text);
  margin-top:-0.5rem;
  margin-bottom:1.25rem;
}

/* ==================== HEADER ==================== */
#main-header{
  background:var(--navy-bg);
  padding:1.5rem 0;
  position:fixed;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:99999;
}

/* Offset site content for fixed header */
body{
  padding-top:var(--pl-header-h);
  margin-top:0;
}

#main-header .header-container{
  max-width:1200px;
  margin:0 auto;
  padding:0 2rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

#main-header .logo{
  font-size:1.5rem;
  font-weight:700;
  color:var(--cream-text);
  text-decoration:none;
}

#main-header .nav-right{
  display:flex;
  align-items:center;
  gap:2.5rem;
}

#main-header .nav-links{
  display:flex;
  align-items:center;
  gap:2.5rem;
  list-style:none;
  margin:0;
  padding:0;
}

#main-header .nav-links a{
  color:var(--cream-text);
  text-decoration:none;
  font-weight:500;
}

#main-header .nav-cta{
  background:var(--accent-blue);
  color:var(--cream-text);
  padding:.75rem 1.75rem;
  font-weight:600;
  text-decoration:none;
  border-radius:6px;
}

/* Header shadow when scrolled (JS toggles .scrolled) */
#main-header.scrolled{
  box-shadow:0 8px 22px rgba(0,0,0,0.18);
}

/* Dropdown */
#main-header .dropdown{
  position:relative;
}

#main-header .dropdown-toggle{
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:0.4rem;
  color:var(--cream-text);
  font-weight:500;
  background:none;
  border:none;
  font-size:1rem;
  font-family:inherit;
  padding:0;
  margin:0;
  line-height:1;
}

#main-header .dropdown-toggle:focus{
  outline:none;
}

#main-header .dropdown-toggle::after{
  content:'▾';
  font-size:0.8rem;
  transition:transform 0.3s ease;
}

#main-header .dropdown.active .dropdown-toggle::after{
  transform:rotate(180deg);
}

#main-header .dropdown-menu{
  position:absolute;
  top:100%;
  left:0;
  margin-top:1rem;
  background:var(--navy-bg);
  border:1px solid rgba(248,244,242,0.1);
  border-radius:6px;
  min-width:200px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-10px);
  transition:all .3s ease;
  pointer-events:none;
  z-index:9999;
}

#main-header .dropdown.active .dropdown-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}

#main-header .dropdown-menu a{
  display:block;
  padding:.75rem 1.25rem;
  color:var(--cream-text);
  text-decoration:none;
}

/* Mobile menu */
#main-header .mobile-menu-toggle{
  display:none;
  background:none;
  border:none;
  color:var(--cream-text);
  font-size:1.5rem;
  cursor:pointer;
  padding:0.5rem;
}

@media (max-width:768px){
  #main-header .mobile-menu-toggle{ display:block; }

  #main-header .nav-right{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--navy-bg);
    flex-direction:column;
    padding:1.5rem 2rem;
    gap:1.5rem;
    border-top:1px solid rgba(248,244,242,0.1);
  }

  #main-header .nav-right.active{ display:flex; }

  #main-header .nav-links{
    flex-direction:column;
    gap:1.5rem;
    width:100%;
  }

  #main-header .nav-links li{ width:100%; }

  #main-header .nav-cta{
    width:100%;
    text-align:center;
  }

  /* Mobile dropdown: closed until active */
  #main-header .dropdown-menu{
    position:static;
    margin-top:0.5rem;
    transform:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    border:none;
    background:rgba(248,244,242,0.05);
    display:none;
  }

  #main-header .dropdown.active .dropdown-menu{
    display:block;
  }
}

/* No-header templates: remove the global fixed-header offset */
body:has(main[data-pl-noheader]){
  padding-top: 0;
}

/* ==================== FOOTER ==================== */
#pl-footer{
  background:var(--navy-bg);
  color:var(--cream-text);
  padding:4rem 2rem 2rem;
  margin-top:0;
  width:100%;
  text-align:left;
}

#pl-footer, #pl-footer *{
  box-sizing:border-box;
}

#pl-footer .footer-container{
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:3rem;
  align-items:start;
  margin-bottom:3rem;
}

#pl-footer .footer-section{
  min-width:0;
}

#pl-footer .footer-section h3{
  font-size:1.125rem;
  font-weight:700;
  margin-bottom:1rem;
  letter-spacing:0.5px;
  text-transform:uppercase;
  color:var(--cream-text);
}

#pl-footer .footer-tagline{
  color:var(--gray-text);
  font-size:1rem;
  font-style:italic;
  margin-top:0.5rem;
  line-height:1.6;
}

#pl-footer .footer-links{
  list-style:none;
  padding:0;
  margin:0;
}

#pl-footer .footer-links li{
  margin-bottom:0.75rem;
}

#pl-footer .footer-links a{
  color:var(--cream-text);
  text-decoration:none;
  font-size:0.95rem;
  transition:opacity 0.3s ease;
}

#pl-footer .footer-links a:hover{
  opacity:0.7;
}

#pl-footer .connect-links{
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  align-items:flex-start;
}

#pl-footer .connect-link{
  color:var(--cream-text);
  text-decoration:none;
  font-size:0.95rem;
  display:flex;
  align-items:center;
  gap:0.5rem;
  transition:opacity 0.3s ease;
}

#pl-footer .connect-link:hover{
  opacity:0.7;
}

#pl-footer .connect-link svg{
  display:inline-block;
  width:20px;
  height:20px;
  fill:currentColor;
}

#pl-footer .footer-bottom{
  max-width:1200px;
  margin:0 auto;
  padding-top:2rem;
  border-top:1px solid rgba(248,244,242,0.1);
  text-align:center;
}

@media (max-width:768px){
  #pl-footer{
    padding:3rem 1.5rem 1.5rem;
  }

  #pl-footer .footer-container{
    grid-template-columns:1fr;
    gap:2.5rem;
  }
}

/* ==================== GP OVERRIDES ==================== */
#masthead{
  padding:0;
  margin:0;
}

.site-content,
#content,
main#main{
  padding-top:0;
}

/* Full-width breakout system: driven by PL wrapper */
main[id^="pl-"]{
  width:100%;
  max-width:100%;
}

main[id^="pl-"] .inside-article,
main[id^="pl-"] .content-area{
  padding:0;
}