/*
Theme Name: GeneratePress Child — Ivitskiy Blog
Template: generatepress
Author: Igor Ivitskiy
Description: Child theme for blog.ivitskiy.com — brand-matched to the Webflow site (Oswald/Montserrat, blue #1c73f6 + yellow #f3e300, 20px radius). GEO-friendly semantic HTML.
Version: 0.2.0
*/

:root{
  --brand-blue:#1c73f6;
  --brand-blue-dark:#0050bd;
  --brand-blue-light:#3d8bff;
  --brand-blue-tint:#eaf1ff;
  --brand-yellow:#f3e300;
  --brand-yellow-light:#fff563;
  --ink:#0f0f0f;
  --ink-soft:#1c1c1c;
  --bg:#fbfcfc;
  --grey:#878787;
  --border:#e2e6ea;
  --radius:20px;
  --radius-sm:10px;
}

/* ============ Base ============ */
body{
  font-family:'Montserrat', sans-serif;
  font-size:17px;
  line-height:1.7;
  color:var(--ink);
  background-color:var(--bg);
  -webkit-font-smoothing:antialiased;
}
.site-content{ padding-top:12px; }

/* ============ Typography ============ */
h1,h2,h3,h4,h5,h6,
.entry-title,
.entry-title a,
.site-title,
.site-title a,
.widget-title{
  font-family:'Oswald', sans-serif !important;
  font-weight:600;
  color:var(--ink);
  line-height:1.2;
  letter-spacing:.2px;
}
/* Article content headings — readable, normal case */
.entry-content h2{ font-size:1.7rem; margin-top:2em; }
.entry-content h3{ font-size:1.32rem; margin-top:1.6em; }
.entry-content h4{ font-size:1.12rem; }
.entry-content p{ margin-bottom:1.15em; }
.entry-content a{ color:var(--brand-blue); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.entry-content a:hover{ color:var(--brand-blue-dark); }

/* Post title */
.entry-title{ font-size:2.15rem; line-height:1.18; }
.entry-title a{ color:var(--ink); text-decoration:none; }
.entry-title a:hover{ color:var(--brand-blue); }

/* ============ Brand "chrome": uppercase Oswald ============ */
.main-navigation .menu-item a,
.site-title,
.widget-title,
.entry-meta,
.read-more-container a,
.pagination a,
.pagination .current{
  font-family:'Oswald', sans-serif;
  text-transform:uppercase;
  letter-spacing:.6px;
}
.main-navigation .menu-item a{ font-weight:500; font-size:.92rem; }
.widget-title{ font-weight:600; font-size:1.05rem; border-left:4px solid var(--brand-blue); padding-left:.55em; }

/* ============ Header ============ */
.site-header{ background:#fff; border-bottom:3px solid var(--brand-blue); }
.main-navigation .current-menu-item > a,
.main-navigation .menu-item a:hover{ color:var(--brand-blue); }

/* ============ Buttons / CTAs (pill, brand) ============ */
.button,
button,
input[type="submit"],
.wp-block-button__link,
.wp-element-button,
.read-more-container a{
  display:inline-block;
  background-color:var(--brand-blue);
  color:#fff !important;
  border:none;
  border-radius:40px;
  font-family:'Oswald', sans-serif;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.6px;
  padding:.65em 1.6em;
  text-decoration:none;
  transition:background-color .15s ease, transform .15s ease;
}
.button:hover, button:hover, input[type="submit"]:hover,
.wp-block-button__link:hover, .wp-element-button:hover,
.read-more-container a:hover{ background-color:var(--brand-blue-dark); color:#fff !important; }

/* ============ Cards / featured images (signature 20px radius) ============ */
.post-image img,
.wp-post-image,
.entry-content img.wp-post-image{ border-radius:var(--radius); }
.separate-containers .inside-article{
  background:#fff;
  border-radius:var(--radius);
  border:1px solid var(--border);
}
.separate-containers .site-main .paging-navigation{ background:transparent; }

/* ============ Meta / secondary ============ */
.entry-meta{ color:var(--grey); font-size:.8rem; }
.entry-meta a{ color:var(--grey); text-decoration:none; }
.entry-meta a:hover{ color:var(--brand-blue); }

/* ============ Reading column: constrain content for readability ============ */
.single .entry-content > *:not(.alignwide):not(.alignfull):not(.gb-container){
  max-width:760px; margin-left:auto; margin-right:auto;
}
.single .entry-content > .wp-post-image{ max-width:100%; }

/* ============ GEO blocks (answer-first / TL;DR / takeaways / FAQ) ============ */
.tldr, .key-takeaways{
  background:var(--brand-blue-tint);
  border-left:5px solid var(--brand-blue);
  border-radius:var(--radius-sm);
  padding:1em 1.25em;
  margin:0 auto 1.8em;
  font-size:.98rem;
}
.tldr strong, .key-takeaways strong{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.5px; color:var(--brand-blue-dark); }
.faq-item{ border-bottom:1px solid var(--border); padding:.9em 0; }
.faq-item .faq-q{ font-family:'Oswald',sans-serif; font-weight:600; color:var(--ink); }

/* Author entity box */
.author-box{
  display:flex; gap:1em; align-items:center;
  background:#fff; border:1px solid var(--border); border-radius:var(--radius);
  padding:1.1em 1.3em; margin:2.4em auto 0; max-width:760px;
}
.author-box img{ border-radius:50%; width:64px; height:64px; }
.author-box .author-name{ font-family:'Oswald',sans-serif; font-weight:600; }

/* ============ Accents / misc ============ */
mark, .highlight{ background:var(--brand-yellow); color:var(--ink); padding:.05em .2em; border-radius:3px; }
blockquote{ border-left:4px solid var(--brand-yellow); background:#fffdf0; padding:.8em 1.2em; border-radius:0 var(--radius-sm) var(--radius-sm) 0; font-style:normal; }
hr{ border:none; border-top:1px solid var(--border); }
.entry-content table th{ background:var(--brand-blue-tint); font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.4px; }
.entry-content table td, .entry-content table th{ border:1px solid var(--border); }

/* Focus visibility (a11y) */
a:focus-visible, button:focus-visible{ outline:2px solid var(--brand-blue); outline-offset:2px; }

/* Footer */
.site-footer{ background:var(--ink); color:#c8c8c8; }
.site-footer a{ color:#fff; }
.site-info{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.5px; font-size:.82rem; }

/* ============ Reading progress bar ============ */
.reading-progress{
  position:fixed; top:0; left:0; height:4px; width:0;
  background:linear-gradient(90deg, var(--brand-blue), var(--brand-blue-light));
  z-index:9999; transition:width .06s linear;
}

/* ============ Reading-time badge ============ */
.reading-time{
  display:inline-block;
  font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.5px;
  font-size:.78rem; color:var(--brand-blue-dark);
  background:var(--brand-blue-tint); border-radius:40px;
  padding:.25em .9em; margin:0 auto 1.4em; 
}
.single .entry-content > .reading-time{ display:block; width:max-content; }

/* ============ Auto table of contents ============ */
.blog-toc{
  background:#fff; border:1px solid var(--border); border-left:5px solid var(--brand-blue);
  border-radius:var(--radius-sm); padding:1em 1.3em; margin:0 auto 2em; max-width:760px;
}
.blog-toc-title{
  font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.6px;
  font-weight:600; color:var(--brand-blue-dark); margin-bottom:.5em; font-size:.95rem;
}
.blog-toc ul{ list-style:none; margin:0; padding:0; }
.blog-toc li{ margin:.2em 0; line-height:1.4; }
.blog-toc li.toc-h3{ padding-left:1.1em; font-size:.94rem; }
.blog-toc a{ color:var(--ink-soft); text-decoration:none; border-bottom:1px solid transparent; }
.blog-toc a:hover{ color:var(--brand-blue); border-bottom-color:var(--brand-blue); }

/* ============ Reusable CTA block (webinar/course invitation via GP Elements) ============ */
.cta-block{
  background:linear-gradient(135deg, var(--brand-blue), var(--brand-blue-dark));
  color:#fff; border-radius:var(--radius); padding:1.8em 2em; margin:2.4em auto; max-width:760px;
  text-align:center; box-shadow:0 8px 30px rgba(28,115,246,.22);
}
.cta-block h3, .cta-block h2{ color:#fff !important; margin-top:0; text-transform:none; }
.cta-block p{ color:#eaf1ff; margin-bottom:1.2em; }
.cta-block .cta-btn,
.cta-block a.button{
  background:var(--brand-yellow); color:var(--ink) !important;
  border-radius:40px; font-family:'Oswald',sans-serif; text-transform:uppercase;
  letter-spacing:.6px; font-weight:600; padding:.8em 2em; display:inline-block; text-decoration:none;
}
.cta-block .cta-btn:hover, .cta-block a.button:hover{ background:var(--brand-yellow-light); color:var(--ink) !important; }
.cta-block .cta-kicker{
  font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:1px;
  font-size:.8rem; color:var(--brand-yellow); margin-bottom:.4em; display:block;
}

/* ============ Enhanced tables (data-rich) ============ */
.entry-content table{ border-collapse:collapse; width:100%; margin:1.6em 0; font-size:.96rem; }
.entry-content table th{
  background:var(--brand-blue); color:#fff !important;
  font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.4px;
  padding:.7em .9em; text-align:left;
}
.entry-content table td{ padding:.65em .9em; border:1px solid var(--border); }
.entry-content table tr:nth-child(even) td{ background:#f6f8fb; }

/* ============ Breadcrumbs ============ */
.breadcrumbs{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.5px; font-size:.78rem; color:var(--grey); margin:0 auto 1.1em; max-width:760px; }
.single .entry-content > .breadcrumbs{ display:block; }
.breadcrumbs a{ color:var(--grey); text-decoration:none; }
.breadcrumbs a:hover{ color:var(--brand-blue); }
.breadcrumbs .current{ color:var(--ink); }
.breadcrumbs span{ margin:0 .25em; }

/* ============ Last-updated ============ */
.last-updated{ display:inline-block; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.5px; font-size:.74rem; color:var(--grey); margin-left:.6em; }

/* ============ Author box (extended) ============ */
.author-box{ align-items:flex-start; }
.author-avatar img{ border-radius:50%; width:72px; height:72px; }
.author-role{ color:var(--grey); font-size:.9rem; margin:.25em 0 .45em; line-height:1.4; }
.author-links a{ color:var(--brand-blue); text-decoration:none; font-size:.85rem; }
.author-links a:hover{ text-decoration:underline; }

/* ============ Related posts ============ */
.related-posts{ max-width:760px; margin:2.6em auto 0; }
.related-title{ font-size:1.4rem; border-left:5px solid var(--brand-blue); padding-left:.5em; margin-bottom:.2em; }
.related-grid{ display:grid; grid-template-columns:1fr; gap:.7em; margin-top:1em; }
.related-card{ display:block; background:#fff; border:1px solid var(--border); border-radius:var(--radius-sm); padding:.9em 1.1em; color:var(--ink); text-decoration:none; font-family:'Oswald',sans-serif; font-weight:500; line-height:1.3; transition:border-color .15s, color .15s; }
.related-card:hover{ border-color:var(--brand-blue); color:var(--brand-blue); }
@media(min-width:620px){ .related-grid{ grid-template-columns:1fr 1fr 1fr; } }

/* ============ FIX v0.4: single-post alignment (одна колонка, одна линия) ============ */
.single .inside-article{ max-width:880px; margin-left:auto; margin-right:auto; }
/* undo per-child centering — content now fills the narrow column, aligned left */
.single .entry-content > *:not(.alignwide):not(.alignfull):not(.gb-container):not(.wp-block-image){
  max-width:none; margin-left:0; margin-right:0;
}
/* breadcrumbs: above title, left, full width */
.single .breadcrumbs{ max-width:none; margin:0 0 .9em; text-align:left; }
/* reading-time + updated: one left-aligned meta line (not centered) */
.single .reading-time,
.single .entry-content > .reading-time{ display:inline-block; width:auto; margin:.1em 0 1.5em; }
.last-updated{ margin-left:.7em; }
/* related + author-box: match the column (were 760, now full 880 col) */
.single .author-box, .single .related-posts, .single .cta-block, .single .tldr, .single .key-takeaways{ max-width:none; }

/* ============ Header logo ============ */
.site-logo img, .header-image{ max-height:52px; width:auto; }
.site-header{ padding-top:4px; padding-bottom:4px; }

/* ============ Header: logo only (hide the old text title) ============ */
.site-header .site-title{ display:none; }
.site-logo{ padding:6px 0; }
.site-logo img, .header-image{ max-height:46px; width:auto; }

/* Header title text — hide (GP uses .main-title); keep logo only */
.site-header .main-title,
.site-header .site-description{ display:none !important; }
.site-logo img, .header-image{ max-height:54px; width:auto; }

/* Fix: nav search field must stay hidden until toggled (was showing as dark box) */
.navigation-search{ opacity:0; visibility:hidden; pointer-events:none; }
.navigation-search.nav-search-active{ opacity:1; visibility:visible; pointer-events:auto; }
