/*
Theme Name: Rob Parrish Child
Theme URI: https://parrishrob.com
Description: Custom child theme for parrishrob.com personal hub.
Author: Flashcloud
Author URI: https://flashcloud.com
Template: kadence
Version: 1.2.6
Text Domain: parrishrob-child
*/

/* ========================================================================
   1. Brand tokens
   ======================================================================== */
:root {
  --rp-accent: #F06F40;
  --rp-accent-soft: rgba(240, 111, 64, 0.14);
  --rp-accent-hover: #D85E33;
  --rp-ink: #1F2933;
  --rp-ink-soft: #3A4250;
  --rp-paper: #FAF7F2;
  --rp-paper-card: #FFFFFF;
  --rp-mute: #6B7280;
  --rp-line: rgba(31, 41, 51, 0.12);
  --rp-r-sm: 8px;
  --rp-r-md: 14px;
  --rp-r-lg: 22px;
}

/* ========================================================================
   2. Base + typography
   ======================================================================== */
body, .wp-site-blocks, .entry-content, .content-area {
  background: var(--rp-paper) !important;
}
body {
  color: var(--rp-ink);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, .rp-serif {
  font-family: 'Fraunces', 'Source Serif 4', Georgia, serif;
  font-weight: 500;
  letter-spacing: -0.012em;
  color: var(--rp-ink);
}
h1 { font-size: clamp(2.4rem, 4.5vw, 3.6rem); line-height: 1.08; }
h2 { font-size: clamp(1.9rem, 3vw, 2.4rem); line-height: 1.14; }
h3 { font-size: 1.4rem; line-height: 1.2; }

.rp-italic { font-style: italic; }
.rp-eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--rp-accent);
  font-weight: 500;
}
.rp-mute { color: var(--rp-mute); }
.rp-accent { color: var(--rp-accent); }

p { color: var(--rp-ink-soft); }
a { color: var(--rp-accent); text-decoration: none; }
a:hover { color: var(--rp-accent-hover); text-decoration: underline; text-underline-offset: 3px; }

/* ========================================================================
   3. Frame killers (Kadence content frame + page title)
   ======================================================================== */
.content-container { background: transparent !important; }
.entry-content-wrap, .entry-content { padding-top: 0 !important; padding-bottom: 0 !important; }
.content-area { margin: 0 !important; padding: 0 !important; }
.entry-hero.page-hero-section { display: none !important; }
.page .entry-title, .single .entry-title { display: none !important; }
.wp-site-blocks > main { flex: 0 0 auto !important; }

/* Kadence post boxed wrapper off */
.content-style-unboxed .entry-content-wrap { padding: 0 !important; }

/* ========================================================================
   4. Header (text wordmark + minimal two-item nav)
   ======================================================================== */
.site-branding .site-title,
.site-branding .site-title a {
  font-family: 'Fraunces', 'Source Serif 4', Georgia, serif !important;
  font-weight: 500 !important;
  font-style: italic;
  font-size: 1.7rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--rp-ink) !important;
}
.site-branding .site-title a:hover { color: var(--rp-accent) !important; }

.main-navigation .menu > .menu-item > a {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  color: var(--rp-ink) !important;
}
html body .main-navigation .menu > .menu-item > a:hover,
html body .main-navigation .menu > .current-menu-item > a {
  color: var(--rp-accent) !important;
}

.site-header { background: var(--rp-paper) !important; border-bottom: 1px solid var(--rp-line) !important; }

/* ========================================================================
   5. Section primitives (Elementor + Gutenberg shared)
   ======================================================================== */
.rp-section {
  padding: 5rem 0 !important;
}
.rp-section-tight { padding: 3rem 0 !important; }
.rp-section-paper { background: var(--rp-paper) !important; }
.rp-section-card-bg { background: #F2EDE3 !important; }
.rp-section-ink { background: var(--rp-ink) !important; color: var(--rp-paper) !important; }
.rp-section-ink h1, .rp-section-ink h2, .rp-section-ink h3 { color: var(--rp-paper) !important; }
.rp-section-ink p { color: rgba(250, 247, 242, 0.78) !important; }

.rp-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1.5rem;
}
.rp-container-narrow {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* ========================================================================
   6. Hero
   ======================================================================== */
.rp-hero { padding: 6rem 0 5rem !important; }
.rp-hero .rp-eyebrow { margin-bottom: 1.4rem; display: inline-block; }
.rp-hero h1 { margin-bottom: 1.4rem; }
.rp-hero .rp-lede {
  font-size: 1.2rem;
  line-height: 1.55;
  color: var(--rp-ink-soft);
  max-width: 640px;
  margin-bottom: 2rem;
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-weight: 400;
}
.rp-hero-links {
  display: flex;
  gap: 1.6rem;
  flex-wrap: wrap;
  margin-top: 1.8rem;
}
.rp-hero-link {
  font-size: 0.82rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--rp-ink) !important;
  border-bottom: 1.5px solid var(--rp-accent);
  padding-bottom: 0.3rem;
}
.rp-hero-link:hover { color: var(--rp-accent) !important; text-decoration: none; }

.rp-hero-portrait {
  border-radius: var(--rp-r-lg);
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--rp-accent-soft);
  border: 1px solid var(--rp-line);
  box-shadow: 0 30px 60px -20px rgba(31, 41, 51, 0.18);
}
.rp-hero-portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ========================================================================
   7. About (single column long-form)
   ======================================================================== */
.rp-about-eyebrow { margin-bottom: 1rem; }
.rp-about h2 { margin-bottom: 2rem; }
.rp-about p {
  font-size: 1.15rem;
  line-height: 1.7;
  margin-bottom: 1.4rem;
  color: var(--rp-ink-soft);
}
.rp-about p:first-of-type {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 1.35rem;
  line-height: 1.5;
  color: var(--rp-ink);
}

/* ========================================================================
   8. What I do card grid
   ======================================================================== */
.rp-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
  margin-top: 2.6rem;
}
.rp-card {
  background: var(--rp-paper-card);
  border: 1px solid var(--rp-line);
  border-radius: var(--rp-r-md);
  padding: 1.8rem;
  display: flex;
  flex-direction: column;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.rp-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 40px -16px rgba(31, 41, 51, 0.14);
  border-color: var(--rp-accent-soft);
}
.rp-card .rp-card-eyebrow {
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rp-accent);
  font-weight: 600;
  margin-bottom: 0.6rem;
}
.rp-card h3 {
  font-size: 1.3rem;
  margin-bottom: 0.6rem;
}
.rp-card p {
  font-size: 0.96rem;
  color: var(--rp-mute);
  margin-bottom: 1.2rem;
  flex-grow: 1;
}
.rp-card-link {
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--rp-accent) !important;
  margin-top: auto;
}
.rp-card-link:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ========================================================================
   9. Latest thoughts strip
   ======================================================================== */
.rp-thoughts-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
  margin-top: 2rem;
}
.rp-thought-card {
  background: transparent;
  border-top: 1px solid var(--rp-line);
  padding-top: 1.4rem;
}
.rp-thought-card .rp-thought-date {
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rp-mute);
  margin-bottom: 0.6rem;
}
.rp-thought-card h3 {
  font-size: 1.18rem;
  line-height: 1.3;
  margin-bottom: 0.5rem;
}
.rp-thought-card h3 a { color: var(--rp-ink) !important; }
.rp-thought-card h3 a:hover { color: var(--rp-accent) !important; text-decoration: none; }
.rp-thought-card p {
  font-size: 0.95rem;
  color: var(--rp-mute);
  margin-bottom: 0.8rem;
}
.rp-thought-card .rp-thought-more {
  font-size: 0.74rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--rp-accent) !important;
}

/* ========================================================================
   10. Connect block
   ======================================================================== */
.rp-connect {
  text-align: center;
  padding: 4rem 0 !important;
}
.rp-connect h2 { margin-bottom: 1.2rem; }
.rp-connect p {
  font-size: 1.1rem;
  max-width: 540px;
  margin: 0 auto 2rem;
  color: var(--rp-ink-soft);
}
.rp-connect-email {
  display: inline-block;
  font-family: 'Fraunces', serif;
  font-size: 1.5rem;
  font-style: italic;
  border-bottom: 1.5px solid var(--rp-accent);
  padding-bottom: 0.4rem;
  color: var(--rp-ink) !important;
}
.rp-connect-email:hover { color: var(--rp-accent) !important; text-decoration: none; }

/* ========================================================================
   11. Thoughts (blog) index — Substack stack style
   ======================================================================== */
.blog .content-container,
.archive .content-container,
.single .content-container {
  background: var(--rp-paper) !important;
}

.blog .loop-entry,
.archive .loop-entry {
  border-bottom: 1px solid var(--rp-line);
  padding: 2.4rem 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  display: block !important;
}
.blog .loop-entry .post-thumbnail-wrap,
.blog .loop-entry .entry-taxonomies,
.blog .loop-entry .meta-author,
.blog .loop-entry .posted-by,
.blog .loop-entry .entry-meta-divider,
.archive .loop-entry .post-thumbnail-wrap,
.archive .loop-entry .entry-taxonomies,
.archive .loop-entry .meta-author,
.archive .loop-entry .posted-by,
.archive .loop-entry .entry-meta-divider { display: none !important; }

.blog .loop-entry .entry-title,
.archive .loop-entry .entry-title {
  font-size: 1.6rem !important;
  margin-bottom: 0.5rem !important;
  color: var(--rp-ink) !important;
  font-family: 'Fraunces', serif !important;
  font-weight: 500 !important;
}
.blog .loop-entry .entry-title a,
.archive .loop-entry .entry-title a {
  color: var(--rp-ink) !important;
  text-decoration: none !important;
}
.blog .loop-entry .entry-title a:hover,
.archive .loop-entry .entry-title a:hover {
  color: var(--rp-accent) !important;
}
.blog .loop-entry .entry-meta,
.archive .loop-entry .entry-meta {
  font-size: 0.72rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--rp-mute) !important;
  margin-bottom: 0.5rem !important;
}
.blog .loop-entry .entry-summary,
.archive .loop-entry .entry-summary {
  font-size: 1rem !important;
  color: var(--rp-mute) !important;
  line-height: 1.55 !important;
  margin-bottom: 0.8rem !important;
}
.blog .loop-entry .read-more,
.archive .loop-entry .read-more {
  font-size: 0.72rem !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  color: var(--rp-accent) !important;
}

/* Thoughts index hero (above-the-loop) */
.rp-thoughts-hero {
  padding: 4.5rem 0 2rem;
  background: var(--rp-paper);
  text-align: center;
  border-bottom: 1px solid var(--rp-line);
}
.rp-thoughts-hero .rp-eyebrow { margin-bottom: 1rem; }
.rp-thoughts-hero h1 { font-size: 3.2rem; margin-bottom: 0.4rem; }
.rp-thoughts-hero .rp-thoughts-tagline {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 1.2rem;
  color: var(--rp-mute);
}

/* ========================================================================
   12. Single post
   ======================================================================== */
.single-post .entry-content-wrap {
  max-width: 720px !important;
  margin: 0 auto !important;
  padding: 4rem 1.5rem !important;
}
.single-post .entry-content h1,
.single-post .entry-content h2,
.single-post .entry-content h3 { margin-top: 2rem; margin-bottom: 0.8rem; }
.single-post .entry-content p {
  font-size: 1.12rem;
  line-height: 1.7;
  margin-bottom: 1.3rem;
}
.single-post .entry-content blockquote {
  border-left: 3px solid var(--rp-accent);
  padding-left: 1.2rem;
  font-style: italic;
  color: var(--rp-ink);
  font-family: 'Fraunces', serif;
  font-size: 1.18rem;
}
.single-post .post-navigation,
.single-post .nav-links,
.single-post .post-navigation-sub,
.single-post .entry-taxonomies { display: none !important; }

.rp-single-meta {
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rp-mute);
  margin-bottom: 0.6rem;
}
.rp-single-back {
  display: inline-block;
  margin-top: 3rem;
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--rp-accent) !important;
}

/* ========================================================================
   13. Footer
   ======================================================================== */
.site-footer { background: var(--rp-ink) !important; color: rgba(250, 247, 242, 0.7) !important; }
.site-footer a { color: var(--rp-paper) !important; }
.site-footer a:hover { color: var(--rp-accent) !important; }
.site-footer .site-bottom-footer-wrap .site-footer-row-container-inner { padding: 1.4rem 0 !important; }
.site-footer .footer-widget-area-inner { padding: 0 !important; }
.site-footer h4, .site-footer .widget-title {
  font-family: 'Fraunces', serif !important;
  font-size: 1.1rem !important;
  color: var(--rp-paper) !important;
  margin-bottom: 0.8rem !important;
}
.site-footer p, .site-footer ul { font-size: 0.92rem; line-height: 1.6; color: rgba(250, 247, 242, 0.7) !important; }
.site-top-footer-wrap { padding: 3rem 0 2rem !important; }

/* ========================================================================
   14. Mobile rules
   ======================================================================== */
@media (max-width: 768px) {
  .rp-section { padding: 3rem 0 !important; }
  .rp-hero { padding: 3.5rem 0 2.5rem !important; }
  .rp-hero h1 { font-size: 2.2rem; }
  .rp-hero .rp-lede { font-size: 1.05rem; }
  .rp-card-grid { grid-template-columns: 1fr; gap: 1rem; }
  .rp-thoughts-strip { grid-template-columns: 1fr; }
  .rp-thoughts-hero h1 { font-size: 2.2rem; }
  .single-post .entry-content-wrap { padding: 2.5rem 1.2rem !important; }
}

/* ========================================================================
   15. Patches after first puppeteer pass
   ======================================================================== */

/* About: only the first paragraph (after the h2) gets serif italic */
.rp-about .elementor-widget-text-editor:first-of-type p {
  font-family: 'Fraunces', serif !important;
  font-style: italic !important;
  font-size: 1.35rem !important;
  line-height: 1.5 !important;
  color: var(--rp-ink) !important;
}
.rp-about .elementor-widget-text-editor:not(:first-of-type) p {
  font-family: 'Inter', sans-serif !important;
  font-style: normal !important;
  font-size: 1.05rem !important;
  line-height: 1.7 !important;
  color: var(--rp-ink-soft) !important;
}

/* Hero outline button — make it actually visible */
.rp-button-outline .elementor-button,
.elementor-element.rp-button-outline .elementor-button-link {
  border: 1.5px solid var(--rp-ink) !important;
  background: transparent !important;
  color: var(--rp-ink) !important;
}
.rp-button-outline .elementor-button:hover,
.elementor-element.rp-button-outline .elementor-button-link:hover {
  background: var(--rp-ink) !important;
  color: var(--rp-paper) !important;
  border-color: var(--rp-ink) !important;
}

/* Hero portrait — drop the white wrapper, just round the image */
.rp-hero-portrait .elementor-widget-container,
.rp-hero-portrait img {
  background: transparent !important;
  border: none !important;
  box-shadow: 0 30px 60px -20px rgba(31, 41, 51, 0.20) !important;
  border-radius: 22px !important;
  overflow: hidden !important;
}
.rp-hero-portrait .elementor-image {
  border-radius: 22px !important;
  overflow: hidden !important;
}

/* What I do cards: equal-height with CTAs pinned to bottom */
.rp-section-card-bg .elementor-section.elementor-inner-section > .elementor-container {
  align-items: stretch !important;
}
.rp-section-card-bg .elementor-inner-section .elementor-column {
  background: var(--rp-paper-card) !important;
  border: 1px solid var(--rp-line) !important;
  border-radius: 14px !important;
  padding: 1.8rem !important;
  display: flex !important;
  flex-direction: column !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease !important;
}
.rp-section-card-bg .elementor-inner-section .elementor-column:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 40px -16px rgba(31, 41, 51, 0.14);
}
.rp-section-card-bg .elementor-inner-section .elementor-column > .elementor-widget-wrap {
  display: flex !important;
  flex-direction: column !important;
  flex-grow: 1 !important;
}
.rp-section-card-bg .elementor-inner-section .elementor-column .elementor-widget-button {
  margin-top: auto !important;
}
.rp-section-card-bg .elementor-inner-section .elementor-column .elementor-widget-text-editor {
  flex-grow: 1 !important;
}
/* Make the card button match the rp-card-link visual rather than a heavy filled pill */
.rp-card-link-btn .elementor-button {
  background: transparent !important;
  color: var(--rp-accent) !important;
  padding: 0 !important;
  border: none !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.18em !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  align-self: flex-start !important;
}
.rp-card-link-btn .elementor-button:hover {
  color: var(--rp-accent-hover) !important;
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
  background: transparent !important;
}

/* Connect section email link inherits via inline; just ensure no weird margins */
.rp-connect .elementor-widget-heading + .elementor-widget-heading { margin-top: 0; }

/* Force italic Fraunces only on the rp-about-lede widget */
.rp-about-lede .elementor-widget-container p,
.elementor-widget.rp-about-lede p {
  font-family: 'Fraunces', serif !important;
  font-style: italic !important;
  font-size: 1.45rem !important;
  line-height: 1.5 !important;
  color: var(--rp-ink) !important;
}

/* Remove the stray :first-of-type rules from the previous patch by overriding */
.rp-about .elementor-widget-text-editor:first-of-type p {
  font-family: inherit !important;
  font-style: normal !important;
}

/* Footer: remove Kadence's "WordPress Theme by Kadence WP" credit line */
.site-footer .footer-html-content,
.site-footer .copyright-info { display: block; }
.site-footer .powered-by-text, .site-footer .footer-credits { display: none !important; }
/* ========================================================================
   16. Patches v3 — feedback round 2
   ======================================================================== */

/* (1) Hero CTAs side-by-side */
.rp-hero-cta { display: inline-block !important; }
.elementor-widget.rp-hero-cta {
  width: auto !important;
  display: inline-block !important;
  margin-right: 12px !important;
  margin-bottom: 8px !important;
}
.elementor-widget.rp-hero-cta .elementor-button {
  display: inline-block !important;
}

/* (4) Card CTAs as real buttons */
.rp-card-cta .elementor-button {
  background: var(--rp-accent) !important;
  color: var(--rp-paper) !important;
  padding: 11px 22px !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  letter-spacing: 0.16em !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  border: none !important;
  transition: background 0.18s ease !important;
}
.rp-card-cta .elementor-button:hover {
  background: var(--rp-accent-hover) !important;
}

/* (3) Card icons styling */
.rp-card-icon {
  color: var(--rp-accent);
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  height: 36px;
}
.rp-card-icon svg { width: 32px; height: 32px; }

/* (5) Connect section full-bleed — force ink bg to span the viewport */
.rp-section-ink,
.rp-connect {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: 100vw !important;
  max-width: none !important;
}
/* Ensure the inner container stays bounded */
.rp-section-ink > .elementor-container,
.rp-connect > .elementor-container {
  max-width: 760px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
}

/* (6) Hide Kadence's duplicate page-title hero on the Thoughts archive */
body.blog .entry-hero,
body.blog .entry-hero-section,
body.home .entry-hero,
body.home .entry-hero-section { display: none !important; }

/* (8) Thoughts: each post as bordered card */
body.blog .loop-entry,
body.archive .loop-entry,
body.home.blog .loop-entry {
  background: var(--rp-paper-card) !important;
  border: 1px solid var(--rp-line) !important;
  border-radius: var(--rp-r-md) !important;
  padding: 1.8rem 2rem !important;
  margin-bottom: 1.4rem !important;
  box-shadow: 0 6px 18px -10px rgba(31, 41, 51, 0.10) !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease !important;
}
body.blog .loop-entry:hover,
body.archive .loop-entry:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px -14px rgba(31, 41, 51, 0.14) !important;
}

/* (9) Single post: show title + fix the white frame */
body.single-post .entry-title { display: block !important; }
body.single-post .content-container,
body.single-post .content-area,
body.single-post .wp-site-blocks {
  background: var(--rp-paper) !important;
}
body.single-post .content-container .site-container,
body.single-post .site-container {
  background: transparent !important;
}
body.single-post .entry,
body.single-post .entry-content-wrap {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
body.single-post .content-style-unboxed .entry-content-wrap {
  padding: 4rem 1.5rem !important;
  max-width: 720px !important;
  margin: 0 auto !important;
}
body.single-post .entry-header {
  max-width: 720px !important;
  margin: 0 auto !important;
  padding: 4rem 1.5rem 0 !important;
  text-align: left !important;
}
body.single-post .entry-title {
  font-family: 'Fraunces', serif !important;
  font-weight: 500 !important;
  font-size: 2.6rem !important;
  line-height: 1.1 !important;
  color: var(--rp-ink) !important;
  margin: 0 0 0.6rem !important;
  text-align: left !important;
}
body.single-post .entry-meta {
  font-size: 0.72rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--rp-mute) !important;
  margin-bottom: 0 !important;
}
body.single-post .entry-meta .byline,
body.single-post .entry-meta .meta-author,
body.single-post .entry-meta .posted-by { display: none !important; }
body.single-post .entry-taxonomies,
body.single-post .post-thumbnail-wrap { display: none !important; }

/* (7 + 10) Sticky-foot for short pages: push main content to fill viewport */
.wp-site-blocks {
  min-height: calc(100vh - 100px) !important;
  display: flex !important;
  flex-direction: column !important;
}
.wp-site-blocks > main,
.wp-site-blocks > .content-area {
  flex: 1 0 auto !important;
}
.site-footer {
  flex-shrink: 0 !important;
}

/* Drop the rp-button-outline shrink-wrap issue when sitting next to filled CTA */
.elementor-widget.rp-hero-cta.rp-button-outline .elementor-button {
  background: transparent !important;
  border: 1.5px solid var(--rp-ink) !important;
}
.elementor-widget.rp-hero-cta.rp-button-outline .elementor-button:hover {
  background: var(--rp-ink) !important;
  color: var(--rp-paper) !important;
}

/* Connect block injected at bottom of Thoughts archive + single posts */
.rp-thoughts-connect {
  background: var(--rp-ink);
  padding: 5rem 1.5rem;
  text-align: center;
  margin-top: 3rem;
}
.rp-thoughts-connect-inner {
  max-width: 760px;
  margin: 0 auto;
}

/* Tighten the rp-thoughts-hero so it does not feel like a duplicate */
.rp-thoughts-hero h1 { font-size: 2.8rem !important; }
/* Force the injected Connect block to break out of Kadence's container */
.rp-thoughts-connect {
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: 100vw !important;
  max-width: none !important;
  margin-top: 4rem !important;
}
/* ========================================================================
   17. Patches v5 — feedback round 3
   ======================================================================== */

/* (11) Mobile drawer — cream bg, ink text, coral accent */
.mobile-drawer,
.mobile-drawer-inner,
.drawer-content-wrap,
.drawer-inner,
.popup-drawer.popup-drawer-layout-fullwidth .drawer-inner,
.popup-drawer.popup-drawer-layout-sidepanel .drawer-inner,
.popup-drawer.popup-drawer-layout-fullwidth .drawer-content-wrap,
.popup-drawer.popup-drawer-layout-sidepanel .drawer-content-wrap {
  background: var(--rp-paper) !important;
  color: var(--rp-ink) !important;
}
.popup-drawer .header-mobile-navigation .menu-item a,
.popup-drawer .menu-item > a,
.popup-drawer .menu > .menu-item > a,
.mobile-toggle-open-container .menu-toggle-open .menu-toggle-label {
  color: var(--rp-ink) !important;
  font-family: 'Inter', sans-serif !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
}
.popup-drawer .header-mobile-navigation .menu-item > a:hover,
.popup-drawer .menu > .menu-item.current-menu-item > a,
.popup-drawer .menu > .menu-item > a:hover {
  color: var(--rp-accent) !important;
}
.popup-drawer .header-mobile-navigation .menu-item {
  border-bottom: 1px solid var(--rp-line) !important;
}
.popup-drawer .drawer-header,
.popup-drawer .menu-toggle-close,
.popup-drawer .drawer-toggle-button {
  color: var(--rp-ink) !important;
  background: transparent !important;
}
.popup-drawer .drawer-toggle-button svg,
.popup-drawer .menu-toggle-close svg,
.menu-toggle-close { color: var(--rp-ink) !important; fill: var(--rp-ink) !important; }

/* Burger icon (closed state, on header) should match the ink */
.mobile-toggle-open-container .menu-toggle-open,
.mobile-toggle-open-container .menu-toggle-open svg {
  color: var(--rp-ink) !important;
  fill: var(--rp-ink) !important;
}

/* (13) Home latest thoughts: card styling matching the Thoughts archive */
.rp-thoughts-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
  margin-top: 2rem;
}
.rp-thought-card {
  background: var(--rp-paper-card) !important;
  border: 1px solid var(--rp-line) !important;
  border-radius: var(--rp-r-md) !important;
  padding: 1.6rem 1.8rem !important;
  box-shadow: 0 6px 18px -10px rgba(31, 41, 51, 0.10) !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease !important;
  display: flex;
  flex-direction: column;
}
.rp-thought-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px -14px rgba(31, 41, 51, 0.14) !important;
}
.rp-thought-card .rp-thought-date {
  font-size: 0.7rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--rp-mute) !important;
  margin-bottom: 0.7rem !important;
  font-weight: 600 !important;
}
.rp-thought-card h3 {
  font-size: 1.2rem !important;
  line-height: 1.3 !important;
  margin-bottom: 0.6rem !important;
  font-family: 'Fraunces', serif !important;
  font-weight: 500 !important;
}
.rp-thought-card h3 a { color: var(--rp-ink) !important; }
.rp-thought-card h3 a:hover { color: var(--rp-accent) !important; text-decoration: none !important; }
.rp-thought-card p {
  font-size: 0.92rem !important;
  color: var(--rp-mute) !important;
  margin-bottom: 1rem !important;
  flex-grow: 1;
}
.rp-thought-card .rp-thought-more {
  font-size: 0.7rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  color: var(--rp-accent) !important;
  margin-top: auto;
}
.rp-thought-card .rp-thought-more:hover {
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
}
/* ========================================================================
   18. Patches v6 — Similar Posts (Kadence related-posts module)
   ======================================================================== */

/* Strip the default light-blue band; let it sit on our paper bg */
.entry-related,
.entry-related.alignfull,
.entry-related.entry-related-style-wide,
.entry-related.entry-related-style-narrow {
  background: var(--rp-paper) !important;
  border-top: 1px solid var(--rp-line) !important;
  padding: 4rem 1.5rem !important;
  margin-top: 0 !important;
}
.entry-related-inner-content {
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* Section heading: "Similar Posts" — make it match our other section eyebrows + headings */
.entry-related-title {
  font-family: 'Fraunces', serif !important;
  font-weight: 500 !important;
  font-size: 2rem !important;
  letter-spacing: -0.012em !important;
  color: var(--rp-ink) !important;
  text-align: center !important;
  margin: 0 0 2.5rem !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
}
/* Add a coral eyebrow above via ::before pseudo */
.entry-related-title::before {
  content: "More thoughts";
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--rp-accent);
  margin-bottom: 0.7rem;
}

/* Each related post card */
.entry-related .entry-list-item,
.entry-related .kadence-posts-list .entry-list-item,
.entry-related li.entry-list-item {
  background: var(--rp-paper-card) !important;
  border: 1px solid var(--rp-line) !important;
  border-radius: var(--rp-r-md) !important;
  padding: 1.6rem 1.8rem !important;
  box-shadow: 0 6px 18px -10px rgba(31, 41, 51, 0.10) !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease !important;
  list-style: none !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}
.entry-related .entry-list-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px -14px rgba(31, 41, 51, 0.14) !important;
}

/* The post-thumbnail-wrap inside related items: hide (we keep it text-first) */
.entry-related .entry-list-item .post-thumbnail-wrap,
.entry-related .entry-list-item .post-thumbnail,
.entry-related .entry-list-item .entry-taxonomies,
.entry-related .entry-list-item .entry-meta-divider,
.entry-related .entry-list-item .meta-author,
.entry-related .entry-list-item .posted-by,
.entry-related .entry-list-item .read-more-wrap { display: none !important; }

/* Date */
.entry-related .entry-list-item .entry-meta,
.entry-related .entry-list-item .entry-meta * {
  font-size: 0.7rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--rp-mute) !important;
  font-weight: 600 !important;
  margin: 0 0 0.6rem !important;
}
.entry-related .entry-list-item .entry-meta::before { content: none !important; }

/* Title */
.entry-related .entry-list-item .entry-title {
  font-family: 'Fraunces', serif !important;
  font-weight: 500 !important;
  font-size: 1.2rem !important;
  line-height: 1.3 !important;
  margin: 0 0 0.6rem !important;
  letter-spacing: 0 !important;
}
.entry-related .entry-list-item .entry-title a {
  color: var(--rp-ink) !important;
  text-decoration: none !important;
}
.entry-related .entry-list-item .entry-title a:hover {
  color: var(--rp-accent) !important;
}

/* Excerpt */
.entry-related .entry-list-item .entry-summary,
.entry-related .entry-list-item .entry-summary p {
  font-size: 0.92rem !important;
  color: var(--rp-mute) !important;
  line-height: 1.55 !important;
  margin: 0 !important;
  flex-grow: 1;
}

/* Carousel arrows + dots — coral when active */
.entry-related .splide__arrow {
  background: var(--rp-paper-card) !important;
  border: 1px solid var(--rp-line) !important;
  color: var(--rp-ink) !important;
  opacity: 1 !important;
}
.entry-related .splide__arrow:hover {
  background: var(--rp-accent) !important;
  border-color: var(--rp-accent) !important;
  color: var(--rp-paper) !important;
}
.entry-related .splide__arrow svg { fill: currentColor !important; }
.entry-related .splide__pagination__page {
  background: var(--rp-line) !important;
  opacity: 1 !important;
}
.entry-related .splide__pagination__page.is-active {
  background: var(--rp-accent) !important;
  transform: scale(1) !important;
}

/* Gap between cards inside the splide track */
.entry-related .splide__list { gap: 1.6rem !important; }
/* ========================================================================
   19. Patches v7 — Similar Posts cleanup (cards too tall, date below title)
   ======================================================================== */

/* Use flexbox column order to put date above title without changing markup */
.entry-related .entry-list-item {
  flex-direction: column !important;
  justify-content: flex-start !important;
  padding: 1.6rem 1.6rem 1.6rem !important;
  min-height: 0 !important;
  height: auto !important;
}
.entry-related .entry-list-item .entry-content-wrap,
.entry-related .entry-list-item article {
  display: flex !important;
  flex-direction: column !important;
}
.entry-related .entry-list-item .entry-meta {
  order: 1 !important;
}
.entry-related .entry-list-item .entry-title {
  order: 2 !important;
  margin: 0.4rem 0 0.6rem !important;
}
.entry-related .entry-list-item .entry-summary {
  order: 3 !important;
}

/* Make sure the carousel doesn't enforce equal slide heights creating empty top space */
.entry-related .splide__slide,
.entry-related .splide__list > li {
  height: auto !important;
}
.entry-related .splide__track { align-items: stretch !important; }
.entry-related .splide__list { align-items: stretch !important; }

/* Tighter card shape — remove the empty top zone from the thumbnail wrap if it's still rendering with reserved space */
.entry-related .entry-list-item > *:first-child:not(.entry-meta):not(.entry-title) {
  display: none !important;
}
/* ========================================================================
   20. Patches v8 — Similar Posts fix overshoot
   ======================================================================== */

/* UNDO the patch7 first-child-hide rule that was too aggressive */
.entry-related .entry-list-item > *:first-child:not(.entry-meta):not(.entry-title) {
  display: block !important;
}

/* The card's article is the real container — flex it properly */
.entry-related .entry-list-item article.entry,
.entry-related .entry-list-item .entry {
  display: flex !important;
  flex-direction: column !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  height: 100% !important;
}
.entry-related .entry-list-item .entry-content-wrap {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}
.entry-related .entry-list-item .entry-header {
  display: flex !important;
  flex-direction: column !important;
}

/* Hide category links + author meta inside related */
.entry-related .entry-list-item .entry-taxonomies,
.entry-related .entry-list-item .meta-author,
.entry-related .entry-list-item .posted-by,
.entry-related .entry-list-item .entry-meta-divider,
.entry-related .entry-list-item .entry-meta .meta-label,
.entry-related .entry-list-item .entry-meta .author,
.entry-related .entry-list-item .entry-meta .vcard { display: none !important; }

/* Date first */
.entry-related .entry-list-item .entry-header .entry-meta {
  order: 0 !important;
  margin: 0 0 0.6rem !important;
}
.entry-related .entry-list-item .entry-header .entry-title {
  order: 1 !important;
}

/* Make sure the .entry-meta date itself shows */
.entry-related .entry-list-item .entry-meta .posted-on,
.entry-related .entry-list-item .entry-meta time {
  font-size: 0.7rem !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--rp-mute) !important;
  font-weight: 600 !important;
  display: inline !important;
}
/* ========================================================================
   21. Patches v9 — Similar Posts: anchor content to top, kill empty space
   ======================================================================== */

/* The header is the wrapper — make it start content from the top */
.entry-related .entry-list-item article.entry,
.entry-related .entry-list-item .entry-content-wrap,
.entry-related .entry-list-item .entry-header {
  justify-content: flex-start !important;
  align-items: stretch !important;
  align-content: flex-start !important;
}

/* The carousel sets a fixed height on each slide. Override to a content-driven shorter height */
.entry-related .splide__slide.carousel-item,
.entry-related .splide__list > li {
  height: auto !important;
  min-height: 0 !important;
}

/* The .entry-list-item card itself — shrink it visually */
.entry-related .entry-list-item {
  min-height: 140px !important;
  max-height: 180px !important;
  height: auto !important;
}

/* The narrow column width is from Kadence reserving 3 columns even with 2 posts.
   Force the splide list to display them at natural width. */
.entry-related .splide__list {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 1.6rem !important;
}
.entry-related .splide__slide {
  width: 350px !important;
  max-width: 350px !important;
  flex: 0 0 350px !important;
}
.entry-related .splide__track {
  overflow: visible !important;
}
/* ========================================================================
   22. Patches v10 — Similar Posts: content-shaped, no caps
   ======================================================================== */

/* Drop my v9 height caps that clipped the title */
.entry-related .entry-list-item {
  min-height: 0 !important;
  max-height: none !important;
  height: auto !important;
}

/* Kill the giant empty header padding */
.entry-related .entry-list-item .entry-header {
  padding: 0 !important;
  margin: 0 !important;
  text-align: left !important;
  border: none !important;
  background: transparent !important;
}
.entry-related .entry-list-item .entry-header::before,
.entry-related .entry-list-item .entry-header::after { display: none !important; }

/* Article wrapper: no padding/min-height of its own */
.entry-related .entry-list-item article.entry {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}
.entry-related .entry-list-item .entry-content-wrap {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}

/* No carousel-driven empty space — natural height */
.entry-related .splide__list,
.entry-related .splide__slide {
  align-items: flex-start !important;
}

/* Bring back the flex-column order */
.entry-related .entry-list-item .entry-header {
  display: flex !important;
  flex-direction: column !important;
}
.entry-related .entry-list-item .entry-header .entry-meta {
  order: 0 !important;
  margin: 0 0 0.5rem !important;
}
.entry-related .entry-list-item .entry-header .entry-title {
  order: 1 !important;
}
/* ========================================================================
   23. Patches v11 — Kill the Splide carousel duplicates on mobile (and desktop)
   ======================================================================== */

/* Force the carousel to NOT slide. Stack all cards vertically on mobile, side-by-side on desktop.
   Hide the cloned slides Splide injects for looping. */
.entry-related .splide__list {
  transform: none !important;
}
.entry-related .splide__slide.splide__slide--clone,
.entry-related li.splide__slide--clone {
  display: none !important;
}

/* Arrows + pagination — hide entirely since we are showing all posts on one screen */
.entry-related .splide__arrows,
.entry-related .splide__pagination,
.entry-related .splide__arrow,
.entry-related .splide__pagination__page {
  display: none !important;
}

/* Desktop: 2-column natural layout */
.entry-related .splide__list {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 1.6rem !important;
}
.entry-related .splide__slide {
  width: 350px !important;
  max-width: 350px !important;
  flex: 0 0 350px !important;
}

/* Mobile: single-column stack */
@media (max-width: 600px) {
  .entry-related .splide__slide {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }
  .entry-related .splide__list {
    flex-direction: column !important;
    gap: 1rem !important;
  }
}

/* The track scroll container — we don't need overflow hidden any more */
.entry-related .splide__track {
  overflow: visible !important;
}
/* ========================================================================
   24. Patches v12 — Similar Posts mobile margin bug fix
   ======================================================================== */

/* Kadence's .alignwide negative-margin trick was clipping content past the viewport */
.entry-related .entry-related-inner-content.alignwide,
.entry-related .entry-related-inner-content {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 1180px !important;
  width: 100% !important;
}

/* And keep section padding sane on mobile */
@media (max-width: 600px) {
  .entry-related {
    padding-left: 1.2rem !important;
    padding-right: 1.2rem !important;
  }
}
/* ========================================================================
   25. Patches v13 — Hero headline mobile + card eyebrow word-break
   ======================================================================== */

/* Desktop: each .rp-h-line is its own line */
.rp-hero h1 .rp-h-line {
  display: block;
}
/* Mobile: let them flow naturally */
@media (max-width: 768px) {
  .rp-hero h1 .rp-h-line {
    display: inline;
  }
}

/* Card eyebrow: reduce letter-spacing on mobile so PHOTOGRAPHY doesn't break */
@media (max-width: 768px) {
  .rp-card-eyebrow,
  .rp-section-card-bg .elementor-widget-heading.rp-card-eyebrow .elementor-heading-title {
    letter-spacing: 0.12em !important;
    font-size: 10px !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }
}
/* ========================================================================
   26. Patches v14 — Cards: icon + eyebrow on one row
   ======================================================================== */

/* Wrap the icon widget and eyebrow widget side-by-side using grid */
.rp-section-card-bg .elementor-inner-section .elementor-column > .elementor-widget-wrap {
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  grid-template-areas:
    "icon eyebrow"
    "title title"
    "body body"
    "cta cta" !important;
  column-gap: 14px !important;
  row-gap: 4px !important;
  align-items: center !important;
}

/* Place each widget into its grid area */
.rp-section-card-bg .elementor-inner-section .elementor-column > .elementor-widget-wrap > .elementor-widget-html {
  grid-area: icon;
  margin: 0 !important;
}
.rp-section-card-bg .elementor-inner-section .elementor-column > .elementor-widget-wrap > .elementor-widget-heading.rp-card-eyebrow {
  grid-area: eyebrow;
  margin: 0 !important;
  align-self: center !important;
}
.rp-section-card-bg .elementor-inner-section .elementor-column > .elementor-widget-wrap > .elementor-widget-heading:not(.rp-card-eyebrow) {
  grid-area: title;
  margin: 14px 0 10px !important;
}
.rp-section-card-bg .elementor-inner-section .elementor-column > .elementor-widget-wrap > .elementor-widget-text-editor {
  grid-area: body;
  margin: 0 0 22px !important;
}
.rp-section-card-bg .elementor-inner-section .elementor-column > .elementor-widget-wrap > .elementor-widget-button {
  grid-area: cta;
  margin-top: auto !important;
}

/* Reset card icon container to align nicely as inline icon */
.rp-card-icon {
  margin-bottom: 0 !important;
  height: auto !important;
  display: inline-flex !important;
  align-items: center !important;
}
.rp-card-icon svg {
  width: 26px !important;
  height: 26px !important;
}

/* Card eyebrow when next to icon: ensure it sits centered with the icon */
.rp-card-eyebrow .elementor-heading-title,
.rp-section-card-bg .elementor-widget-heading.rp-card-eyebrow .elementor-heading-title {
  margin: 0 !important;
  line-height: 1 !important;
}
/* ========================================================================
   27. Patches v15 — Fix home latest-thoughts mobile stack
   ======================================================================== */

/* The home page rp-thoughts-strip never had a mobile single-column override */
@media (max-width: 768px) {
  .rp-thoughts-strip {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
}
/* ========================================================================
   28. Patches v19 — Lower the Kadence desktop/mobile header breakpoint to 768
   ======================================================================== */

/* Show #main-header (desktop) from 768 upward */
@media screen and (min-width: 768px) {
  #main-header { display: block !important; }
  #mobile-header { display: none !important; }
}

/* And of course at <768, keep it hidden and use the mobile header */
@media screen and (max-width: 767px) {
  #main-header { display: none !important; }
  #mobile-header { display: block !important; }
}
/* ========================================================================
   32. Patches v24 — Hero portrait fills its container edge-to-edge
   ======================================================================== */

.elementor-widget.rp-hero-portrait {
  background: transparent !important;
  border: none !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  box-shadow: 0 30px 60px -20px rgba(31, 41, 51, 0.22) !important;
  padding: 0 !important;
  line-height: 0 !important;
}

.elementor-widget.rp-hero-portrait .elementor-widget-container,
.elementor-widget.rp-hero-portrait > * {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border-radius: 22px !important;
  overflow: hidden !important;
}

.elementor-widget.rp-hero-portrait img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  border-radius: 22px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}
/* ========================================================================
   33. Patches v25 — Crop the portrait visually to focus on the silhouette
   ======================================================================== */

.elementor-widget.rp-hero-portrait img {
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  object-position: center 30% !important;
  width: 100% !important;
  height: auto !important;
}
