/* Hide TwentyTwentyOne chrome on the two landing pages */
body.page-id-12 .site-header, body.page-id-48 .site-header,
body.page-id-12 .site-footer, body.page-id-48 .site-footer,
body.page-id-12 .entry-header, body.page-id-48 .entry-header,
body.page-id-12 .entry-title,  body.page-id-48 .entry-title,
body.page-id-12 .post-thumbnail, body.page-id-48 .post-thumbnail {
  display: none !important;
}

body.page-id-12 article > p, body.page-id-48 article > p {
  display: none !important;
}

/* FULL WIDTH on the landing pages — every container that constrains width */
body.page-id-12 .entry-content, body.page-id-48 .entry-content,
body.page-id-12 .site-content, body.page-id-48 .site-content,
body.page-id-12 .site-main,    body.page-id-48 .site-main,
body.page-id-12 article,       body.page-id-48 article,
body.page-id-12 main,          body.page-id-48 main,
body.page-id-12 #content,      body.page-id-48 #content,
body.page-id-12 #page,         body.page-id-48 #page,
body.page-id-12 #primary,      body.page-id-48 #primary,
body.page-id-12 .elementor.elementor-12,
body.page-id-48 .elementor,
body.page-id-12 .elementor-section, body.page-id-48 .elementor-section,
body.page-id-12 .elementor-container, body.page-id-48 .elementor-container,
body.page-id-12 .e-con, body.page-id-48 .e-con,
body.page-id-12 .e-con-inner, body.page-id-48 .e-con-inner,
body.page-id-12 .elementor-widget-html, body.page-id-48 .elementor-widget-html {
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.elementor-element-7ae47665, .elementor-element-44071790 { display: none !important; }


/* Apply brand colors + clean layout to all blog post articles */

/* Override TwentyTwentyOne pale mint background with clean white */
body.single-post {
  background-color: #ffffff !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  color: #1a1a1a;
}
body.single-post .site,
body.single-post #page,
body.single-post #content,
body.single-post .site-content,
body.single-post .site-main { background-color: #ffffff !important; }

/* Branded header bar */
body.single-post .site-header {
  background: #0e0e0e !important;
  color: #ffffff !important;
  padding: 14px 24px !important;
  border-bottom: 3px solid #F5B71C !important;
  text-align: center !important;
  position: relative !important;
}
body.single-post .site-header > * { margin: 0 auto !important; }
body.single-post .site-branding,
body.single-post .site-title,
body.single-post .site-description { background: transparent !important; }
body.single-post .site-title a {
  color: #ffffff !important;
  text-decoration: none !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  font-size: 1.1em !important;
  background: none !important;
}
body.single-post .site-description {
  color: #c0c0c0 !important;
  font-size: 0.82em !important;
  letter-spacing: 0.02em !important;
  margin-top: 4px !important;
}

/* Hide TwentyTwentyOne primary nav menu and "Skip to content" if present */
body.single-post .main-navigation,
body.single-post .menu-toggle,
body.single-post .primary-menu-container { display: none !important; }

/* Center the main content column at a comfortable reading width */
body.single-post .entry-header,
body.single-post .entry-content,
body.single-post .post-thumbnail,
body.single-post .entry-footer,
body.single-post .comments-area {
  max-width: 820px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  box-sizing: border-box !important;
}

/* Article header typography */
body.single-post .entry-header { padding-top: 40px !important; padding-bottom: 8px !important; }
body.single-post .entry-title {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  font-weight: 800 !important;
  color: #0e0e0e !important;
  font-size: 2.1em !important;
  line-height: 1.18 !important;
  letter-spacing: -0.01em !important;
  margin: 0 0 12px 0 !important;
  text-align: left !important;
  background: none !important;
}
body.single-post .entry-meta,
body.single-post .posted-on,
body.single-post .byline {
  font-size: 0.85em !important;
  color: #666 !important;
  font-family: inherit !important;
}

/* Hide the giant horizontal-rule separator TwentyTwentyOne adds under title */
body.single-post .entry-header::after,
body.single-post .entry-title + hr,
body.single-post .entry-header hr { display: none !important; }

/* Body copy */
body.single-post .entry-content { padding-top: 8px !important; padding-bottom: 48px !important; }
body.single-post .entry-content p,
body.single-post .entry-content li {
  font-size: 1.02em !important;
  line-height: 1.7 !important;
  color: #1f1f1f !important;
  font-family: inherit !important;
  max-width: none !important;
}
body.single-post .entry-content h2 {
  font-family: inherit !important;
  font-weight: 700 !important;
  color: #0e0e0e !important;
  font-size: 1.55em !important;
  line-height: 1.25 !important;
  margin-top: 1.7em !important;
  margin-bottom: 0.5em !important;
  background: none !important;
}
body.single-post .entry-content h3 {
  font-family: inherit !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  font-size: 1.18em !important;
  margin-top: 1.4em !important;
  margin-bottom: 0.4em !important;
  background: none !important;
}
body.single-post .entry-content a:not([style]) { color: #1a6f3a; text-decoration: underline; }
body.single-post .entry-content a:not([style]):hover { color: #0e0e0e; }

/* Tables — keep inline styles working but tighten spacing */
body.single-post .entry-content table {
  width: 100% !important;
  font-size: 0.93em !important;
  margin: 18px 0 !important;
}

/* Strip TwentyTwentyOne wide-content & alignfull oddities so article width stays steady */
body.single-post .alignwide,
body.single-post .alignfull { max-width: 820px !important; margin-left: auto !important; margin-right: auto !important; }

/* Footer cleanup */
body.single-post .site-footer {
  background: #f7f5f0 !important;
  color: #666 !important;
  border-top: 1px solid #e5e1d6 !important;
  padding: 28px 24px !important;
  margin-top: 32px !important;
  text-align: center !important;
  font-size: 0.85em !important;
}
body.single-post .site-info a { color: #1a1a1a; }

/* Hide author boxes, related posts widgets, etc. if Jetpack adds them ugly */
body.single-post #jp-relatedposts { 
  max-width: 820px !important; 
  margin: 24px auto !important; 
  padding: 0 24px !important;
}
body.single-post #jp-relatedposts h3.jp-relatedposts-headline {
  font-family: inherit !important;
  font-weight: 700 !important;
  color: #0e0e0e !important;
}




/* SINGLE-POST BRAND MATCH (added 2026-05-14, replaces earlier blocks) */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,700;1,9..144,500&family=Inter:wght@400;500;600;700;800&display=swap');

/* Hide TwentyTwentyOne default header/footer completely on single posts — we inject our own */
body.single-post .site-header,
body.single-post .site-footer,

body.single-post .post-thumbnail,
body.single-post .wp-block-separator,
body.single-post .entry-header::after,
body.single-post .entry-header::before {
  display: none !important;
}

/* Article body — clean white, Inter for paragraphs, Fraunces for major headings */
body.single-post {
  background-color: #ffffff !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  color: #1a2540 !important;
  margin: 0 !important;
}
body.single-post .site,
body.single-post #page,
body.single-post #content,
body.single-post .site-content,
body.single-post .site-main { background-color: #ffffff !important; padding: 0 !important; }
body.single-post .entry-content,
body.single-post .entry-footer,
body.single-post .comments-area {
  max-width: 820px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  box-sizing: border-box !important;
}
body.single-post .entry-content {
  padding-top: 32px !important;
  padding-bottom: 48px !important;
}

/* Heading typography — H2 uses Fraunces serif (matches homepage hero), body H3 uses Inter */
body.single-post .entry-content h2 {
  font-family: 'Fraunces', Georgia, 'Times New Roman', serif !important;
  font-weight: 700 !important;
  color: #0A2540 !important;
  font-size: 1.8em !important;
  line-height: 1.18 !important;
  letter-spacing: -0.015em !important;
  margin-top: 1.8em !important;
  margin-bottom: 0.45em !important;
  background: none !important;
}
body.single-post .entry-content h3 {
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  color: #0A2540 !important;
  font-size: 1.18em !important;
  margin-top: 1.5em !important;
  margin-bottom: 0.4em !important;
  background: none !important;
}
body.single-post .entry-content p,
body.single-post .entry-content li {
  font-size: 1.02em !important;
  line-height: 1.7 !important;
  color: #1a2540 !important;
  font-family: 'Inter', sans-serif !important;
  max-width: none !important;
}
body.single-post .entry-content a:not([style]) { color: #00A86B; text-decoration: underline; }
body.single-post .entry-content a:not([style]):hover { color: #0A2540; }

/* Tables — keep inline styles but ensure full width and tight spacing */
body.single-post .entry-content table {
  width: 100% !important;
  font-size: 0.93em !important;
  margin: 18px 0 !important;
  font-family: 'Inter', sans-serif !important;
}

/* The injected brand header inside each post needs to break out of .entry-content's 820px constraint */
body.single-post .entry-content > .cmr-brand-header,
body.single-post .entry-content > .cmr-brand-footer {
  position: relative !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  width: 100vw !important;
  max-width: 100vw !important;
  box-sizing: border-box !important;
}

/* Brand header inner row */
body.single-post .cmr-brand-header {
  background: #ffffff !important;
  border-bottom: 1px solid #e5e7eb !important;
  padding: 18px 32px !important;
  margin: 0 0 24px 0 !important;
}
body.single-post .cmr-brand-header .cmr-row {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
}
body.single-post .cmr-brand-header .cmr-logo {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  text-decoration: none !important;
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  letter-spacing: -0.02em !important;
  color: #0A2540 !important;
}
body.single-post .cmr-brand-header .cmr-logo .w-cost { color: #0A2540 !important; font-weight: 700 !important; }
body.single-post .cmr-brand-header .cmr-logo .w-of { color: rgb(100,116,139) !important; font-style: italic !important; font-weight: 500 !important; padding: 0 3px !important; }
body.single-post .cmr-brand-header .cmr-logo .w-roof { color: #00A86B !important; font-weight: 700 !important; }
body.single-post .cmr-brand-header .cmr-cta {
  background: #0A2540 !important;
  color: #ffffff !important;
  padding: 11px 22px !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  display: inline-block !important;
  white-space: nowrap !important;
}
body.single-post .cmr-brand-header .cmr-cta:hover { background: #1a3550 !important; }

/* Brand footer */
body.single-post .cmr-brand-footer {
  background: #0A2540 !important;
  color: #ffffff !important;
  padding: 36px 32px !important;
  margin: 48px 0 0 0 !important;
  text-align: center !important;
}
body.single-post .cmr-brand-footer .cmr-row {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
}
body.single-post .cmr-brand-footer .cmr-logo {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  text-decoration: none !important;
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  color: #ffffff !important;
}
body.single-post .cmr-brand-footer .cmr-logo .w-cost { color: #ffffff !important; }
body.single-post .cmr-brand-footer .cmr-logo .w-of { color: rgba(255,255,255,0.55) !important; font-style: italic !important; font-weight: 500 !important; padding: 0 3px !important; }
body.single-post .cmr-brand-footer .cmr-logo .w-roof { color: #F5B71C !important; }
body.single-post .cmr-brand-footer p { color: rgba(255,255,255,0.7) !important; font-size: 13px !important; margin: 4px 0 0 0 !important; }
body.single-post .cmr-brand-footer a.cmr-cta {
  background: #00A86B !important;
  color: #ffffff !important;
  padding: 12px 26px !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  margin-top: 8px !important;
}

/* Mobile responsiveness for header */
@media (max-width: 640px) {
  body.single-post .cmr-brand-header { padding: 14px 18px !important; }
  body.single-post .cmr-brand-header .cmr-logo { font-size: 18px !important; }
  body.single-post .cmr-brand-header .cmr-cta { padding: 9px 16px !important; font-size: 13px !important; }
  body.single-post .entry-content { padding-left: 18px !important; padding-right: 18px !important; }
  body.single-post .entry-content h2 { font-size: 1.5em !important; }
}


/* SINGLE-POST BRAND MATCH v2 — restore title, fix horizontal scroll, remove leftover bar */
body.single-post .entry-title { display: block !important; }
body.single-post .entry-header { display: block !important; }

/* Style the H1 with Fraunces serif to match homepage hero */
body.single-post .entry-title {
  font-family: 'Fraunces', Georgia, 'Times New Roman', serif !important;
  font-weight: 700 !important;
  color: #0A2540 !important;
  font-size: 2.4em !important;
  line-height: 1.12 !important;
  letter-spacing: -0.02em !important;
  margin: 0 auto 16px auto !important;
  max-width: 820px !important;
  padding: 16px 24px 0 24px !important;
  text-align: left !important;
  background: none !important;
  border: none !important;
}
body.single-post .entry-header {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: none !important;
  max-width: 100% !important;
}
body.single-post .entry-header::after,
body.single-post .entry-header::before,
body.single-post .entry-title::after,
body.single-post .entry-title::before {
  display: none !important;
  content: none !important;
  border: none !important;
  background: none !important;
  height: 0 !important;
}

/* Fix horizontal scrollbar caused by 100vw on full-bleed elements */
html, body.single-post { overflow-x: hidden !important; }

/* Remove the post-thumbnail wrapper space and any default theme top borders */
body.single-post .site-content { padding-top: 0 !important; margin-top: 0 !important; }
body.single-post #primary { padding-top: 0 !important; margin-top: 0 !important; }
body.single-post article.post { padding-top: 0 !important; margin-top: 0 !important; border: none !important; }

/* Reset all hr children of single-post */
body.single-post hr { display: none !important; }


/* SINGLE-POST BRAND MATCH v3 — promote brand header to TOP of article via absolute positioning */
body.single-post article.post,
body.single-post .post.type-post {
  position: relative !important;
  padding-top: 96px !important;
  margin-top: 0 !important;
}
body.single-post .entry-content > .cmr-brand-header:first-child {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  transform: none !important;
  z-index: 50 !important;
}
/* Reset entry-header positioning so title flows below the brand header */
body.single-post .entry-header { margin-top: 24px !important; }
body.single-post .entry-title { margin-top: 0 !important; padding-top: 0 !important; }

/* Tighten entry-content top spacing */
body.single-post .entry-content { padding-top: 16px !important; }
