/*
Theme Name: Katie Tutorials
Theme URI: https://katietutorials.com/
Description: Lightweight, SEO-focused child theme for Katie Tutorials. Built on GeneratePress. No page builder, semantic HTML, WCAG-AA contrast.
Author: Katie Tutorials
Author URI: https://katietutorials.com/
Template: generatepress
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: katie-tutorials
*/

/* 1. Design tokens */
:root {
	--kt-paper:#FAF8F4; --kt-card:#FFFFFF; --kt-ink:#16211E; --kt-body:#24312C;
	--kt-ink-2:#46554F; --kt-muted:#6B6558; --kt-line:#E4DFD5; --kt-line-soft:#EFEBE2;
	--kt-accent:#0B6B53; --kt-accent-dk:#084F3E; --kt-wash:#EDF2EF; --kt-wash-line:#CBDAD3;
	--kt-cta:#B2481C; --kt-cta-dk:#93380F; --kt-dark:#16211E; --kt-dark-2:#1E2B27;
	--kt-dark-line:#2E3D38; --kt-on-dark:#B9C2BD; --kt-on-dark-2:#9AA5A0; --kt-placeholder:#EDE8DD;
	--kt-sans:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
	--kt-display:"Fraunces",Georgia,"Times New Roman",serif;
	--kt-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
	--kt-radius:12px; --kt-radius-sm:8px; --kt-shell:1120px; --kt-measure:68ch;
}

/* 2. Base */
body { background:var(--kt-paper); color:var(--kt-ink); font-family:var(--kt-sans); font-size:17px; line-height:1.7; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4 { font-family:var(--kt-display); font-weight:600; color:var(--kt-ink); letter-spacing:-0.015em; line-height:1.15; }
h1 { font-size:clamp(2.1rem,1.4rem + 2.6vw,3.1rem); line-height:1.06; letter-spacing:-0.02em; }
h2 { font-size:clamp(1.55rem,1.2rem + 1.4vw,2.1rem); margin-top:2.2em; }
h3 { font-size:clamp(1.2rem,1.05rem + 0.6vw,1.4rem); margin-top:1.8em; }
a { color:var(--kt-accent); text-decoration:none; }
a:hover, a:focus { color:var(--kt-accent-dk); text-decoration:underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
	outline:2px solid var(--kt-accent); outline-offset:3px; border-radius:4px;
}
::selection { background:var(--kt-wash); color:var(--kt-ink); }
img, video, iframe { max-width:100%; height:auto; }

/* 3. Shell */
.site-content .content-area, .inside-header, .site-info, .inside-footer-widgets { max-width:var(--kt-shell); margin-inline:auto; }
.site-content { padding-block:3rem; }
@media (max-width:768px) { .site-content { padding-block:1.75rem; } body { font-size:16px; } }

/* 4. Header + navigation */
.site-header { background:var(--kt-paper); border-bottom:1px solid var(--kt-line); }
.inside-header { padding-block:0.9rem; }
.site-logo img { height:40px; width:auto; }
.site-branding .main-title { font-family:var(--kt-display); font-size:1.32rem; font-weight:700; letter-spacing:-0.01em; line-height:1.05; }
.site-branding .main-title a { color:var(--kt-ink); text-decoration:none; }
.site-branding .site-description { font-family:var(--kt-sans); font-size:0.56rem; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--kt-accent); margin-top:2px; }
.main-navigation { background:transparent; }
.main-navigation .main-nav ul li a { font-family:var(--kt-sans); font-size:0.875rem; font-weight:500; color:var(--kt-ink); line-height:44px; padding-inline:0.9rem; }
.main-navigation .main-nav ul li:hover > a, .main-navigation .main-nav ul li a:focus, .main-navigation .main-nav ul li.current-menu-item > a {
	background:transparent; color:var(--kt-accent); box-shadow:inset 0 -2px 0 var(--kt-accent);
}
.main-navigation .menu-toggle { color:var(--kt-ink); min-height:44px; }

/* 5. Entry / article */
.entry-header { margin-bottom:1.25rem; }
.page-header h1, .entry-title { margin-bottom:0.5rem; }
.entry-title a { color:var(--kt-ink); }
.entry-title a:hover { color:var(--kt-accent); text-decoration:none; }
.entry-meta { font-size:0.8rem; color:var(--kt-muted); line-height:1.6; }
.entry-meta a { color:var(--kt-ink-2); }
.kt-updated { font-weight:600; color:var(--kt-ink); }
.entry-content { color:var(--kt-body); }
.entry-content > * { max-width:var(--kt-measure); }
.entry-content > .alignwide, .entry-content > .alignfull, .entry-content > figure, .entry-content > table { max-width:none; }
.entry-content p { margin-bottom:1.35em; }
.entry-content ul, .entry-content ol { margin-bottom:1.35em; padding-left:1.3em; }
.entry-content li { margin-bottom:0.45em; }
.entry-content blockquote { margin:2rem 0; padding:1.1rem 1.5rem; border-left:3px solid var(--kt-cta); background:#FBF3EE; border-radius:0 var(--kt-radius) var(--kt-radius) 0; font-family:var(--kt-display); font-size:1.25rem; line-height:1.45; color:var(--kt-ink); }
.entry-content figure { margin:2rem 0; }
.entry-content figure img { border-radius:var(--kt-radius); }
.entry-content figcaption { font-size:0.8rem; color:var(--kt-muted); margin-top:0.5rem; }
.entry-content table { width:100%; border-collapse:collapse; font-size:0.95rem; margin-bottom:1.5rem; }
.entry-content th, .entry-content td { border-bottom:1px solid var(--kt-line); padding:0.7rem 0.6rem; text-align:left; }
.entry-content th { font-weight:600; background:#F3F0E9; }
.entry-content code { font-family:var(--kt-mono); font-size:0.88em; background:var(--kt-wash); padding:0.12em 0.36em; border-radius:4px; }

/* 6. Theme components */
.kt-takeaways { max-width:var(--kt-measure); margin:0 0 2rem; padding:1.3rem 1.6rem; background:var(--kt-wash); border-left:3px solid var(--kt-accent); border-radius:0 var(--kt-radius) var(--kt-radius) 0; }
.kt-takeaways h2 { font-size:1.05rem; margin:0 0 0.7rem; letter-spacing:0.01em; }
.kt-takeaways ul { margin:0; padding-left:1.1rem; }
.kt-takeaways li { font-size:0.93rem; line-height:1.55; color:var(--kt-body); }
.kt-breadcrumbs { font-size:0.8rem; color:var(--kt-muted); margin-bottom:1rem; }
.kt-breadcrumbs a { color:var(--kt-ink-2); }
.kt-breadcrumbs .sep { margin:0 0.45rem; }
.kt-author-box { margin:3rem 0 0; padding:1.5rem; background:var(--kt-wash); border:1px solid #DCE4E0; border-radius:16px; display:flex; gap:1.25rem; align-items:flex-start; }
.kt-author-box img { width:76px; height:76px; flex-shrink:0; border-radius:999px; background:var(--kt-placeholder); }
.kt-author-box h2 { font-size:1.2rem; margin:0 0 0.35rem; }
.kt-author-box p { font-size:0.93rem; line-height:1.6; color:var(--kt-ink-2); margin:0 0 0.6rem; }
.kt-author-box .kt-author-links { display:flex; flex-wrap:wrap; gap:1rem; font-size:0.87rem; font-weight:600; }
@media (max-width:600px) { .kt-author-box { flex-direction:column; } }
.kt-read-next { margin:3rem 0 0; }
.kt-read-next > h2 { font-size:1.5rem; margin:0 0 1rem; }
.kt-read-next-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.25rem; }
.kt-card { display:flex; flex-direction:column; gap:0.5rem; padding:1.25rem; background:var(--kt-card); border:1px solid var(--kt-line); border-radius:14px; text-decoration:none; }
.kt-card:hover { border-color:var(--kt-accent); text-decoration:none; }
.kt-card .kt-eyebrow { font-family:var(--kt-mono); font-size:0.69rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--kt-cta); }
.kt-card h3 { font-size:1.1rem; margin:0; line-height:1.25; color:var(--kt-ink); }
.kt-card p { font-size:0.88rem; line-height:1.55; color:var(--kt-ink-2); margin:0; }
.generate-columns-container article .inside-article { background:var(--kt-card); border:1px solid var(--kt-line); border-radius:14px; padding:1.4rem; height:100%; }
.post-image img { border-radius:var(--kt-radius-sm); }
.screen-reader-text:focus { background:var(--kt-dark); color:var(--kt-paper); border-radius:var(--kt-radius-sm); padding:0.7rem 1.1rem; font-size:0.9rem; font-weight:600; z-index:100000; }

/* 7. Sidebar */
.sidebar .widget { background:var(--kt-card); border:1px solid var(--kt-line); border-radius:14px; padding:1.25rem; margin-bottom:1.5rem; }
.sidebar .widget .widget-title { font-size:1.1rem; margin:0 0 0.75rem; }
.sidebar .widget ul { padding-left:0; list-style:none; }
.sidebar .widget li { margin-bottom:0.6rem; font-size:0.92rem; line-height:1.45; }

/* 8. Footer */
.site-footer { background:var(--kt-dark); color:var(--kt-on-dark); border-top:none; }
.site-footer a { color:var(--kt-on-dark); }
.site-footer a:hover { color:#FFFFFF; }
.footer-widgets { padding-block:3rem 2rem; }
.site-footer .widget-title { font-family:var(--kt-mono); font-size:0.69rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--kt-on-dark-2); margin-bottom:0.9rem; }
.site-footer .widget ul { padding-left:0; list-style:none; }
.site-footer .widget li { margin-bottom:0.55rem; font-size:0.88rem; }
.site-info { border-top:1px solid var(--kt-dark-line); padding-block:1.25rem 1.75rem; font-size:0.78rem; color:var(--kt-on-dark-2); line-height:1.6; }
.kt-risk-warning { font-size:0.75rem; line-height:1.6; color:var(--kt-on-dark-2); margin-bottom:0.6rem; }
.kt-risk-warning strong { color:var(--kt-on-dark); }

/* 9. Buttons */
.kt-btn, .entry-content .wp-block-button__link {
	display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 1.4rem;
	background:var(--kt-accent); color:#FFFFFF; border:none; border-radius:10px;
	font-family:var(--kt-sans); font-size:1rem; font-weight:600; text-decoration:none; cursor:pointer;
}
.kt-btn:hover, .entry-content .wp-block-button__link:hover { background:var(--kt-accent-dk); color:#FFFFFF; text-decoration:none; }
.kt-btn--cta { background:var(--kt-cta); }
.kt-btn--cta:hover { background:var(--kt-cta-dk); }
.kt-btn--ghost { background:var(--kt-card); color:var(--kt-ink); border:1px solid #D8D2C6; }
.kt-btn--ghost:hover { background:var(--kt-paper); color:var(--kt-ink); }

/* 10. Print */
@media print {
	.site-header, .site-footer, .sidebar, .kt-read-next { display:none; }
	body { font-size:12pt; color:#000; background:#fff; }
	.entry-content > * { max-width:none; }
}

/* 11. Home page ----------------------------------------------------------- */
.home .entry-header, .home .entry-meta { display:none; }
.home .entry-content > * { max-width:none; }
.home .site-content { padding-top:0; }

.kt-hero { padding:3.5rem 0 3rem; border-bottom:1px solid var(--kt-line); }
.kt-pill { display:inline-block; padding:6px 13px; background:var(--kt-wash); border:1px solid var(--kt-wash-line); border-radius:999px; font-size:0.69rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--kt-accent); margin:0 0 1.1rem; }
.kt-hero-title { font-size:clamp(2.3rem,1.4rem + 3.2vw,3.6rem); line-height:1.04; letter-spacing:-0.02em; max-width:17ch; margin:0 0 1rem; }
.kt-hero-deck { font-size:1.18rem; line-height:1.55; color:var(--kt-ink-2); max-width:58ch; margin:0 0 1.7rem; }
.kt-trustline { font-size:0.85rem; color:var(--kt-muted); margin:1.3rem 0 0; }
.kt-trustline strong { color:var(--kt-ink); font-weight:600; }

.kt-section { padding:2.8rem 0; border-bottom:1px solid var(--kt-line); }
.kt-section > h2 { margin-top:0; }
.kt-section-sub { color:var(--kt-ink-2); margin:-0.4rem 0 1.7rem; }

.kt-paths .wp-block-column, .kt-trust .wp-block-column {
	background:var(--kt-card); border:1px solid var(--kt-line); border-radius:14px; padding:1.5rem;
}
.kt-paths h3, .kt-trust h3 { margin-top:0.4rem; font-size:1.3rem; }
.kt-trust h3 { margin-top:0; font-size:1.15rem; }
.kt-paths p, .kt-trust p { font-size:0.93rem; line-height:1.6; color:var(--kt-ink-2); }
.kt-eyebrow-mono { font-family:var(--kt-mono); font-size:0.69rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--kt-accent); margin:0; }
.kt-path-link { font-size:0.9rem; font-weight:600; }

.wp-block-latest-posts.is-grid { gap:1.25rem; }
.wp-block-latest-posts.is-grid li { background:var(--kt-card); border:1px solid var(--kt-line); border-radius:14px; padding:1.1rem; margin:0; }
.wp-block-latest-posts__featured-image img { border-radius:8px; margin-bottom:0.7rem; }
.wp-block-latest-posts__list li > a { font-family:var(--kt-display); font-weight:600; font-size:1.1rem; line-height:1.25; color:var(--kt-ink); display:block; }
.wp-block-latest-posts__post-date { display:block; font-size:0.78rem; color:var(--kt-muted); margin-top:0.4rem; }
.wp-block-latest-posts__post-excerpt { font-size:0.88rem; line-height:1.55; color:var(--kt-ink-2); margin-top:0.5rem; }

.kt-author-card { display:flex; gap:1.3rem; align-items:flex-start; background:var(--kt-wash); border:1px solid #DCE4E0; border-radius:16px; padding:1.6rem; }
.kt-author-card img { width:84px; height:84px; border-radius:999px; flex-shrink:0; }
.kt-author-card h2 { margin:0 0 0.5rem; font-size:1.35rem; }
@media (max-width:600px) { .kt-author-card { flex-direction:column; } }

/* Outline button variant = the ghost button from the design */
.entry-content .is-style-outline .wp-block-button__link {
	background:var(--kt-card); color:var(--kt-ink); border:1px solid #D8D2C6;
}
.entry-content .is-style-outline .wp-block-button__link:hover {
	background:var(--kt-paper); color:var(--kt-ink); border-color:var(--kt-ink);
}
.wp-block-buttons { gap:0.75rem; }
