/*
Theme Name:        EarEarBlog
Theme URI:         https://earearblog.com
Author:            BOVER Technologies
Author URI:        https://bovertechnologies.com
Description:       A clean, flexible blog theme for earearblog.com. Rebuilt from the ground up (formerly "Claudya" by Envalabs) on modern WordPress APIs only -- no bundled third-party frameworks -- so it stays compatible with current WordPress and PHP releases. Layout, colours, header, social links and widgets are all controlled from the Customizer; nothing is hardcoded in the templates.
Version:           1.0.0
Requires at least: 6.4
Tested up to:      6.7
Requires PHP:      7.4
License:           GNU General Public License v2 or later
License URI:       http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       earearblog
Tags:              blog, two-columns, three-columns, left-sidebar, right-sidebar, custom-background, custom-header, custom-logo, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready, accessibility-ready, threaded-comments, footer-widgets

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/

/* =============================================================
   Table of Contents
   1.0  CSS Variables (defaults - overridden per-site from the Customizer)
   2.0  Reset / Base
   3.0  Accessibility
   4.0  Layout / Grid
   5.0  Header / Branding / Nav
   6.0  Hero (custom header)
   7.0  Featured Strip
   8.0  Content / Entries
   9.0  Post Formats
   10.0 Widgets / Sidebar
   11.0 Footer
   12.0 Comments
   13.0 Forms
   14.0 Alignments & Captions
   15.0 Responsive
   ============================================================= */

/* =====================================================
   1.0 CSS Variables
   Defaults only. The live values are written inline in
   the <head> by inc/customizer.php from the site owner's
   Customizer choices, so nothing here is hardcoded per-site.
   ===================================================== */
:root {
	--eeb-accent: #FC7A69;
	--eeb-accent-dark: #e8604e;
	--eeb-text: #7e7e7e;
	--eeb-heading: #2b2b2b;
	--eeb-border: #e2e2e2;
	--eeb-bg: #ffffff;
	--eeb-bg-alt: #f5f5f5;
	--eeb-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--eeb-font-heading: Georgia, "Times New Roman", serif;
	--eeb-container: 1320px;
}

/* =====================================================
   2.0 Reset / Base
   ===================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--eeb-bg);
	color: var(--eeb-text);
	font-family: var(--eeb-font-body);
	font-size: 16px;
	line-height: 1.7;
}
img { max-width: 100%; height: auto; }
a { color: var(--eeb-accent); text-decoration: none; transition: color .15s ease-in-out; }
a:hover, a:focus { color: var(--eeb-accent-dark); }
h1, h2, h3, h4, h5, h6 {
	font-family: var(--eeb-font-heading);
	color: var(--eeb-heading);
	line-height: 1.3;
	margin: 0 0 .6em;
}
ul, ol { padding-left: 1.4em; }
table { width: 100%; border-collapse: collapse; }

/* =====================================================
   3.0 Accessibility
   ===================================================== */
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--eeb-heading);
	color: #fff;
	padding: 12px 20px;
	z-index: 100000;
}
.skip-link:focus { left: 6px; top: 6px; }
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus {
	outline: 2px solid var(--eeb-accent);
	outline-offset: 2px;
}
.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
	height: 1px; width: 1px; overflow: hidden; position: absolute !important;
	word-wrap: normal !important; margin: -1px; padding: 0;
}

/* =====================================================
   4.0 Layout / Grid
   ===================================================== */
.eeb-container {
	max-width: var(--eeb-container);
	margin: 0 auto;
	padding: 0 20px;
}
.eeb-content-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	padding: 50px 0;
	align-items: flex-start;
}
.eeb-main {
	flex: 1 1 640px;
	min-width: 0;
}
.eeb-sidebar {
	flex: 0 1 300px;
	min-width: 260px;
}
/* Layout variants set via body_class() from the Customizer "layout" control */
body.layout-content-only .eeb-sidebar { display: none; }
body.layout-content-only .eeb-main { flex-basis: 100%; }
body.layout-sidebar-content { flex-direction: row-reverse; }
body.layout-sidebar-both .eeb-main { flex-basis: 55%; }

/* =====================================================
   5.0 Header / Branding / Nav
   ===================================================== */
.eeb-topbar {
	border-bottom: 1px solid var(--eeb-border);
	background: var(--eeb-bg);
}
.eeb-topbar .eeb-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	flex-wrap: wrap;
}
.eeb-branding-inline { display: flex; align-items: center; gap: 12px; }
.eeb-branding-inline img { max-height: 40px; width: auto; }
.eeb-branding-inline .site-title { font-size: 1.3rem; margin: 0; }
.eeb-branding-inline .site-title a { color: var(--eeb-heading); }

.eeb-nav-toggle {
	display: none;
	background: none;
	border: 1px solid var(--eeb-border);
	border-radius: 4px;
	padding: 8px 12px;
	font-size: 1rem;
	cursor: pointer;
}
.eeb-primary-nav ul {
	list-style: none;
	display: flex;
	gap: 26px;
	margin: 0;
	padding: 0;
}
.eeb-primary-nav li { position: relative; }
.eeb-primary-nav a {
	color: var(--eeb-heading);
	text-transform: uppercase;
	font-size: .85rem;
	letter-spacing: .05em;
	font-weight: 600;
	display: block;
	padding: 22px 0;
}
.eeb-primary-nav a:hover { color: var(--eeb-accent); }
.eeb-primary-nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: #fff;
	border: 1px solid var(--eeb-border);
	min-width: 200px;
	padding: 10px 0;
	z-index: 50;
	flex-direction: column;
	gap: 0;
}
.eeb-primary-nav .sub-menu a { padding: 8px 18px; text-transform: none; font-weight: 400; }
.eeb-primary-nav li:hover > .sub-menu,
.eeb-primary-nav li:focus-within > .sub-menu { display: flex; }
/* Search now lives in its own bar under the header/hero -- see 6.1 below. */

/* =====================================================
   6.0 Hero (custom header)
   ===================================================== */
.eeb-hero {
	position: relative;
	background-size: cover;
	background-position: center;
	color: #fff;
	text-align: center;
	padding: 90px 20px 40px;
}
.eeb-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(20, 20, 20, .45);
}
.eeb-hero-inner { position: relative; z-index: 2; }
.eeb-hero .site-title {
	font-size: 3rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: 6px;
}
.eeb-hero .site-description { color: #eee; margin-bottom: 24px; }
.eeb-hero-social {
	display: flex;
	justify-content: center;
	gap: 12px;
	list-style: none;
	padding: 0;
	margin: 0 0 30px;
}
.eeb-hero-social a {
	width: 40px; height: 40px;
	border: 1px solid rgba(255,255,255,.6);
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	color: #fff;
}
.eeb-hero-social a:hover { background: var(--eeb-accent); border-color: var(--eeb-accent); }
body:not(.has-header-image) .eeb-hero { background-color: var(--eeb-heading); }
body:not(.has-header-image) .eeb-hero::before { background: rgba(0,0,0,.15); }

/* 6.1 Header search bar (sits under the hero / header) */
.eeb-header-search-bar {
	border-bottom: 1px solid var(--eeb-border);
	background: var(--eeb-bg-alt);
	padding: 16px 0;
}
.eeb-header-search-bar .eeb-search-form {
	max-width: 480px;
	margin: 0 auto;
}

/* =====================================================
   7.0 Featured Strip
   ===================================================== */
.eeb-featured-strip {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: stretch;
	gap: 16px;
	overflow-x: auto;
	padding-bottom: 10px;
	scroll-snap-type: x proximity;
}
.eeb-featured-strip .eeb-featured-item {
	flex: 0 0 auto;
	width: 220px;
	min-height: 86px;
	display: flex;
	align-items: center;
	gap: 10px;
	background: rgba(0,0,0,.35);
	border-radius: 4px;
	overflow: hidden;
	text-align: left;
	padding: 8px;
	scroll-snap-align: start;
	box-sizing: border-box;
}
.eeb-featured-strip img {
	width: 60px;
	height: 60px;
	object-fit: cover;
	flex-shrink: 0;
	border-radius: 3px;
}
.eeb-featured-strip > .eeb-featured-item > div { min-width: 0; }
.eeb-featured-strip .eeb-featured-title {
	color: #fff;
	font-size: .85rem;
	margin: 0 0 4px;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.eeb-featured-strip .eeb-featured-title a { color: #fff; }
.eeb-featured-strip time { color: #ddd; font-size: .72rem; }

/* =====================================================
   8.0 Content / Entries
   ===================================================== */
.eeb-entry {
	margin-bottom: 50px;
	padding-bottom: 50px;
	border-bottom: 1px dotted var(--eeb-border);
}
.eeb-entry:last-child { border-bottom: none; }
.eeb-entry-terms { margin-bottom: 14px; }
.eeb-entry-terms a {
	display: inline-block;
	background: var(--eeb-accent);
	color: #fff;
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: 5px 12px;
	border-radius: 3px;
	margin: 0 6px 6px 0;
}
.eeb-entry-terms a:hover { background: var(--eeb-accent-dark); color: #fff; }
.eeb-entry.sticky::before {
	content: attr(data-sticky-label);
	display: inline-block;
	background: var(--eeb-heading);
	color: #fff;
	font-size: .72rem;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 3px;
	margin-bottom: 10px;
}
.eeb-entry-title {
	font-size: 1.9rem;
	text-align: center;
	position: relative;
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: 1px dotted var(--eeb-border);
}
.eeb-entry-title a { color: var(--eeb-heading); }
.eeb-entry-title a:hover { color: var(--eeb-accent); }
.eeb-entry-meta {
	text-align: center;
	font-size: .85rem;
	margin-bottom: 24px;
}
.eeb-entry-meta a { color: var(--eeb-accent); }
.eeb-entry-thumb { margin-bottom: 24px; }
.eeb-entry-thumb img { width: 100%; height: auto; display: block; }
.eeb-entry-content p:first-child { margin-top: 0; }
.eeb-entry-footer {
	margin-top: 24px;
	font-size: .85rem;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
}
.eeb-read-more {
	display: inline-block;
	margin-top: 10px;
	font-weight: 600;
	text-transform: uppercase;
	font-size: .8rem;
	letter-spacing: .04em;
}

.eeb-pagination {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: 20px;
	flex-wrap: wrap;
}
.eeb-pagination a, .eeb-pagination span {
	display: inline-block;
	padding: 8px 14px;
	border: 1px solid var(--eeb-border);
	border-radius: 3px;
	color: var(--eeb-heading);
}
.eeb-pagination .current { background: var(--eeb-accent); border-color: var(--eeb-accent); color: #fff; }

/* Grid loop layout (2 or 3 col via Customizer "posts_layout") */
.eeb-loop--grid { display: grid; gap: 30px; }
.eeb-loop--grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.eeb-loop--grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.eeb-loop--grid .eeb-entry { border: 1px solid var(--eeb-border); border-radius: 4px; padding: 20px; margin-bottom: 0; }

/* =====================================================
   9.0 Post Formats
   ===================================================== */
.format-quote .eeb-entry-content { font-style: italic; font-size: 1.2rem; border-left: 3px solid var(--eeb-accent); padding-left: 20px; }
.format-link .eeb-format-link-icon,
.format-aside .eeb-format-aside-icon,
.format-audio .eeb-format-audio-icon,
.format-video .eeb-format-video-icon,
.format-gallery .eeb-format-gallery-icon { color: var(--eeb-accent); margin-right: 6px; }
.eeb-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 20px; }
.eeb-gallery-grid img { width: 100%; height: 140px; object-fit: cover; border-radius: 3px; }

/* =====================================================
   10.0 Widgets / Sidebar
   ===================================================== */
.widget { margin-bottom: 40px; }
.widget-title {
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	border-bottom: 1px dotted var(--eeb-border);
	padding-bottom: 12px;
	margin-bottom: 18px;
}
.eeb-aboutme-widget { text-align: center; }
.eeb-aboutme-widget img { border-radius: 50%; width: 120px; height: 120px; object-fit: cover; margin-bottom: 14px; }
.widget ul { list-style: none; padding: 0; margin: 0; }
.widget ul li { margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px dotted var(--eeb-border); }
.widget ul li:last-child { border-bottom: none; }
.eeb-widget-post { display: flex; gap: 12px; }
.eeb-widget-post img { width: 60px; height: 60px; object-fit: cover; border-radius: 3px; flex-shrink: 0; }
.eeb-widget-post .entry-title { font-size: .9rem; margin: 0 0 4px; }
.eeb-widget-post time { font-size: .75rem; color: var(--eeb-text); }
.eeb-social-links-widget ul { display: flex; flex-wrap: wrap; gap: 8px; }
.eeb-social-links-widget a {
	width: 36px; height: 36px; border-radius: 50%;
	border: 1px solid var(--eeb-border);
	display: flex; align-items: center; justify-content: center;
	color: var(--eeb-heading);
}
.eeb-social-links-widget a:hover { background: var(--eeb-accent); border-color: var(--eeb-accent); color: #fff; }
.eeb-feed-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.eeb-feed-grid img { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 3px; }
.eeb-feed-error { font-size: .8rem; font-style: italic; }
.eeb-tweet { font-size: .9rem; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px dotted var(--eeb-border); }
.eeb-tweet time { display: block; font-size: .75rem; color: var(--eeb-text); margin-top: 6px; }

/* =====================================================
   11.0 Footer
   ===================================================== */
.eeb-footer { background: var(--eeb-heading); color: #cfcfcf; padding: 50px 0 0; margin-top: 40px; }
.eeb-footer-social { list-style: none; display: flex; justify-content: center; gap: 10px; padding: 0; margin: 0 0 40px; }
.eeb-footer-social a {
	width: 38px; height: 38px; border-radius: 50%;
	border: 1px solid rgba(255,255,255,.3);
	display: flex; align-items: center; justify-content: center; color: #fff;
}
.eeb-footer-social a:hover { background: var(--eeb-accent); border-color: var(--eeb-accent); }
.eeb-footer-widgets {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 30px;
	padding: 0 0 30px;
	border-bottom: 1px solid rgba(255,255,255,.1);
}
.eeb-footer-widgets .widget-title { color: #fff; border-color: rgba(255,255,255,.2); }
.eeb-footer-widgets a { color: #cfcfcf; }
.eeb-footer-widgets a:hover { color: #fff; }
.eeb-footer-bottom { text-align: center; padding: 20px 0; font-size: .8rem; }
.eeb-back-to-top {
	position: fixed;
	right: 24px;
	bottom: 24px;
	width: 44px; height: 44px;
	border-radius: 50%;
	background: var(--eeb-accent);
	color: #fff;
	border: none;
	display: none;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 40;
}
.eeb-back-to-top.is-visible { display: flex; }

/* =====================================================
   12.0 Comments
   ===================================================== */
.comment-list { list-style: none; margin: 0; padding: 0; }
.comment-list .children { list-style: none; padding-left: 40px; }
.comment-body { border-bottom: 1px dotted var(--eeb-border); padding-bottom: 20px; margin-bottom: 20px; }
.comment-author img { border-radius: 50%; vertical-align: middle; margin-right: 10px; }
.comment-metadata { font-size: .8rem; }

/* =====================================================
   13.0 Forms
   ===================================================== */
input[type="text"], input[type="email"], input[type="url"], input[type="search"], input[type="password"], textarea, select {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--eeb-border);
	border-radius: 3px;
	font-family: inherit;
	font-size: .95rem;
}
button, input[type="submit"] {
	background: var(--eeb-accent);
	color: #fff;
	border: none;
	padding: 12px 26px;
	border-radius: 3px;
	cursor: pointer;
	text-transform: uppercase;
	font-size: .8rem;
	letter-spacing: .04em;
}
button:hover, input[type="submit"]:hover { background: var(--eeb-accent-dark); }
.eeb-search-form { display: flex; gap: 8px; }

/* =====================================================
   14.0 Alignments & Captions
   ===================================================== */
.alignleft { float: left; margin: 0 24px 12px 0; }
.alignright { float: right; margin: 0 0 12px 24px; }
.aligncenter { display: block; margin: 0 auto 12px; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: .8rem; color: var(--eeb-text); text-align: center; margin-top: 6px; }
.screen-reader-text.skip-link { left: -9999px; }

/* =====================================================
   15.0 Responsive
   ===================================================== */
@media (max-width: 900px) {
	.eeb-loop--grid.cols-2,
	.eeb-loop--grid.cols-3 { grid-template-columns: 1fr; }
	.eeb-content-wrap { flex-direction: column; }
	body.layout-sidebar-content { flex