/*
Theme Name: Hello Elementor Child — Personyze
Theme URI: https://www.personyze.com
Description: Child theme of Hello Elementor with header and footer ported from Elementor Pro Theme Builder. Eliminates the Elementor Pro dependency for site-wide layout.
Author: Personyze
Author URI: https://www.personyze.com
Template: hello-elementor
Version: 1.3.6
Text Domain: hello-elementor-child
*/

/* ==========================================================================
   Site-wide safety: confine accidental nested HTML widget content
   ========================================================================== */
/* If any HTML widget still contains <html>/<body> wrappers despite the PHP
   filter, hide them visually so they don't blow up the layout. */
.elementor-widget-html > html,
.elementor-widget-html > body,
.elementor-widget-html-container > html,
.elementor-widget-html-container > body { display: contents; }



/* ==========================================================================
   HIDE WP-rendered page title on Elementor-built pages
   The Hello Elementor parent's page.php injects <div class="page-header"><h1>
   above the Elementor content. Elementor Pro's Theme Builder used to hide this
   via Elementor's page settings. Without Pro, we suppress it via CSS on any
   page that has Elementor-built content (body.elementor-page).
   Blog posts (body.single-post) keep their h1 since they need it.
   ========================================================================== */
body.elementor-page .page-header,
body.elementor-page main#content > .page-header,
body.page-template-default.elementor-page .page-header { display: none !important; }

body.elementor-page main#content,
body.elementor-page .page-content { padding: 0 !important; margin: 0 !important; max-width: none !important; }

/* ==========================================================================
   BLOG POST TYPOGRAPHY
   Hello Elementor is intentionally minimal. Without Elementor Pro's
   Single Post template, blog post content renders with zero styling.
   These rules style standard WP post content (paragraphs, headings,
   images, lists, quotes) without affecting Elementor-built pages.
   Scoped to body.single-post and body.blog so Elementor pages aren't touched.
   ========================================================================== */

body.single-post,
body.archive,
body.search-results,
body.error404 {
  background: #FAF7F0;
}

body.single-post main#content,
body.archive main#content,
body.search-results main#content,
body.error404 main#content {
  max-width: 760px;
  margin: 0 auto;
  padding: 64px 28px 100px;
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #0F1420;
  line-height: 1.65;
  font-size: 17px;
}

@media (max-width: 540px) {
  body.single-post main#content,
  body.archive main#content,
  body.search-results main#content,
  body.error404 main#content {
    padding: 40px 20px 70px;
    font-size: 16px;
  }
}

/* Page header / entry title */
body.single-post .page-header,
body.archive .page-header,
body.search-results .page-header,
body.error404 .page-header {
  margin: 0 0 36px;
  padding-bottom: 24px;
  border-bottom: 1px solid #E8E3D7;
}

body.single-post .entry-title,
body.archive .entry-title,
body.search-results .entry-title,
body.error404 .entry-title,
body.single-post h1.entry-title {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: clamp(30px, 4.5vw, 44px) !important;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #0F1420;
  margin: 0;
  text-wrap: balance;
}

/* Content body */
body.single-post .page-content,
body.archive .page-content,
body.search-results .page-content {
  font-family: 'Inter', system-ui, sans-serif;
}

body.single-post .page-content p,
body.archive .page-content p {
  margin: 0 0 1.2em;
  color: #2A2F3D;
  font-size: 17px;
  line-height: 1.7;
}

body.single-post .page-content h2 {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.25;
  margin: 2em 0 0.6em;
  color: #0F1420;
}

body.single-post .page-content h3 {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 1.6em 0 0.5em;
  color: #0F1420;
}

body.single-post .page-content h4 {
  font-size: 17px;
  font-weight: 700;
  margin: 1.4em 0 0.4em;
  color: #0F1420;
}

body.single-post .page-content a {
  color: #E54944;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1.5px;
}

body.single-post .page-content a:hover {
  color: #D63B36;
  text-decoration-thickness: 2px;
}

/* Italic emphasis for the lead paragraph */
body.single-post .page-content > p:first-of-type em {
  display: inline;
  font-style: italic;
  color: #3E4352;
}

body.single-post .page-content img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 1.4em auto;
  display: block;
  box-shadow: 0 8px 24px -10px rgba(15, 20, 32, 0.18);
}

body.single-post .page-content blockquote {
  margin: 1.8em 0;
  padding: 16px 24px;
  border-left: 3px solid #E54944;
  font-style: italic;
  color: #3E4352;
  font-size: 18px;
  background: rgba(229, 73, 68, 0.04);
  border-radius: 0 8px 8px 0;
}

body.single-post .page-content ul,
body.single-post .page-content ol {
  margin: 0 0 1.2em 1.3em;
  padding: 0;
}

body.single-post .page-content li {
  margin: 0 0 0.5em;
  line-height: 1.65;
}

body.single-post .page-content code {
  background: #F4EFE5;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 0.92em;
  font-family: 'JetBrains Mono', ui-monospace, "SF Mono", Consolas, monospace;
  color: #B73C37;
}

body.single-post .page-content pre {
  background: #0F1420;
  color: #E8E3D7;
  padding: 20px 24px;
  border-radius: 10px;
  overflow-x: auto;
  font-size: 14.5px;
  line-height: 1.55;
  margin: 1.4em 0;
}

body.single-post .page-content pre code {
  background: transparent;
  color: inherit;
  padding: 0;
  border-radius: 0;
}

body.single-post .page-content hr {
  border: 0;
  height: 1px;
  background: #E8E3D7;
  margin: 2.5em auto;
  max-width: 280px;
}

/* Archive cards (blog index) */
body.archive .page-content article,
body.search-results article,
body.blog article {
  margin-bottom: 36px;
  padding-bottom: 32px;
  border-bottom: 1px solid #E8E3D7;
}

body.archive article h2,
body.search-results article h2,
body.blog article h2 {
  font-size: 24px !important;
  font-weight: 700;
  margin: 0 0 12px;
  letter-spacing: -0.015em;
}

body.archive article h2 a,
body.search-results article h2 a,
body.blog article h2 a {
  color: #0F1420;
  text-decoration: none;
}

body.archive article h2 a:hover,
body.search-results article h2 a:hover,
body.blog article h2 a:hover {
  color: #E54944;
}
