/* ==========================================================================
   MyFoly — main.css
   Core theme styling. Loaded after bootstrap.min.css so it can override
   framework defaults with theme-specific design tokens.
   ========================================================================== */

:root{
	--myfoly-accent: #e63946;
	--myfoly-ink: #17181c;
	--myfoly-ink-soft: #4b4d55;
	--myfoly-bg: #ffffff;
	--myfoly-surface: #f7f7f9;
	--myfoly-border: #e6e6ea;
	--myfoly-radius: 10px;
	--myfoly-font-display: 'Georgia', 'Times New Roman', serif;
	--myfoly-font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--myfoly-container: 1200px;
}

*, *::before, *::after{ box-sizing: border-box; }

html{ -webkit-text-size-adjust: 100%; }

body{
	font-family: var(--myfoly-font-body);
	color: var(--myfoly-ink);
	background: var(--myfoly-bg);
	line-height: 1.6;
	font-size: 16px;
}

img{ max-width: 100%; height: auto; display: block; }

a{ color: var(--myfoly-accent); text-decoration: none; }
a:hover{ text-decoration: underline; }

h1, h2, h3, h4, h5, h6{
	font-family: var(--myfoly-font-display);
	line-height: 1.25;
	color: var(--myfoly-ink);
	margin: 0 0 0.5em;
}

.screen-reader-text{
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px,1px,1px,1px);
}
.skip-link{
	position: absolute; left: -9999px; top: 0; z-index: 999999;
	background: var(--myfoly-ink); color: #fff; padding: 12px 18px;
}
.skip-link:focus{ left: 8px; top: 8px; }

*:focus-visible{
	outline: 3px solid var(--myfoly-accent);
	outline-offset: 2px;
}

.myfoly-container{
	max-width: var(--myfoly-container);
	margin-inline: auto;
	padding-inline: 20px;
}

/* ---------------- Top bar ---------------- */
.myfoly-topbar{
	background: var(--myfoly-ink);
	color: #d8d9de;
	font-size: 0.82rem;
}
.myfoly-topbar__inner{
	display: flex; align-items: center; justify-content: space-between;
	padding-block: 8px;
}
.myfoly-topbar__social{ display: flex; gap: 12px; }
.myfoly-topbar__social a{ color: #d8d9de; }
.myfoly-topbar__social a:hover{ color: var(--myfoly-accent); text-decoration: none; }

/* ---------------- Header ---------------- */
.myfoly-header{
	border-bottom: 1px solid var(--myfoly-border);
	position: sticky; top: 0; z-index: 100;
	background: var(--myfoly-bg);
}
.myfoly-header-main__inner{
	display: flex; align-items: center; gap: 28px;
	padding-block: 16px;
}
.myfoly-site-title{
	font-family: var(--myfoly-font-display);
	font-size: 1.6rem; font-weight: 700; color: var(--myfoly-ink);
}
.myfoly-site-description{ font-size: 0.8rem; color: var(--myfoly-ink-soft); margin: 0; }
.custom-logo{ max-height: 56px; width: auto; }

.myfoly-primary-nav{ flex: 1; }
.myfoly-menu{ list-style: none; display: flex; gap: 4px; margin: 0; padding: 0; flex-wrap: wrap; }
.myfoly-menu-link{
	display: inline-flex; align-items: center; gap: 6px;
	padding: 10px 14px; color: var(--myfoly-ink); font-weight: 500; border-radius: 6px;
}
.myfoly-menu-link:hover{ background: var(--myfoly-surface); text-decoration: none; }
.myfoly-has-dropdown{ position: relative; }
.myfoly-submenu{
	list-style: none; margin: 0; padding: 8px; position: absolute; top: 100%; left: 0;
	background: var(--myfoly-bg); border: 1px solid var(--myfoly-border); border-radius: var(--myfoly-radius);
	min-width: 220px; box-shadow: 0 12px 24px rgba(0,0,0,0.08);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
	z-index: 50;
}
.myfoly-has-dropdown:hover > .myfoly-submenu,
.myfoly-has-dropdown:focus-within > .myfoly-submenu{
	opacity: 1; visibility: visible; transform: translateY(0);
}
.myfoly-nav-toggle{ display: none; background: none; border: 0; font-size: 1.3rem; cursor: pointer; }

.myfoly-header-actions{ display: flex; align-items: center; gap: 10px; }
.myfoly-search-toggle, .myfoly-dark-toggle{
	background: var(--myfoly-surface); border: 1px solid var(--myfoly-border);
	width: 40px; height: 40px; border-radius: 50%; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
}
.myfoly-dark-toggle .fa-sun{ display: none; }
.myfoly-search-panel{ border-top: 1px solid var(--myfoly-border); padding: 16px 0; }
.myfoly-search-panel[hidden]{ display: none; }
.search-form{ display: flex; gap: 8px; }
.search-form input[type="search"]{ flex: 1; padding: 10px 14px; border: 1px solid var(--myfoly-border); border-radius: 6px; }
.search-form button{ padding: 10px 16px; background: var(--myfoly-accent); color: #fff; border: 0; border-radius: 6px; cursor: pointer; }

/* ---------------- Content wrap / sidebar ---------------- */
.myfoly-content-wrap{
	display: grid;
	grid-template-columns: 1fr;
	gap: 48px;
	padding-block: 40px;
}
body.myfoly-has-sidebar .myfoly-content-wrap{ grid-template-columns: 2.2fr 1fr; }
.myfoly-sidebar .widget{ margin-bottom: 32px; }
.widget-title{ font-size: 1.05rem; border-bottom: 2px solid var(--myfoly-accent); padding-bottom: 8px; margin-bottom: 16px; display: inline-block; }

/* ---------------- Category & Archive Header ---------------- */
.myfoly-archive-header {
	background: var(--myfoly-surface);
	border: 1px solid var(--myfoly-border);
	border-radius: var(--myfoly-radius);
	padding: 28px 32px;
	margin-block: 24px 32px;
	width: 100%;
}
.myfoly-archive-title {
	font-size: 2rem;
	font-weight: 700;
	margin: 0;
	display: inline-block;
	color: var(--myfoly-ink);
}
.myfoly-archive-description {
	font-size: 0.95rem;
	color: var(--myfoly-ink-soft);
	margin-top: 10px;
	max-width: 720px;
	line-height: 1.6;
}

/* ---------------- Shaking Wiggle Animation ---------------- */
@keyframes myfolyShake {
	0% { transform: rotate(0deg) scale(1.05); }
	20% { transform: rotate(-6deg) scale(1.05); }
	40% { transform: rotate(6deg) scale(1.05); }
	60% { transform: rotate(-4deg) scale(1.05); }
	80% { transform: rotate(4deg) scale(1.05); }
	100% { transform: rotate(0deg) scale(1.05); }
}

/* ---------------- Post meta / pills ---------------- */
.myfoly-cats{ display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.myfoly-cat-pill{
	display: inline-flex;
	align-items: center;
	width: auto;
	max-width: max-content;
	font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em;
	background: var(--myfoly-accent, #e63946);
	color: #ffffff !important;
	padding: 4px 12px;
	border-radius: 999px;
	font-weight: 700;
	box-shadow: 0 2px 8px rgba(230, 57, 70, 0.35);
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.myfoly-cat-pill:hover{
	text-decoration: none;
	background: var(--myfoly-ink, #17181c);
	color: #ffffff !important;
	animation: myfolyShake 0.4s ease-in-out;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.mag-cats-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 10;
}

/* Single Post Featured Image Overlay & Styling */
.myfoly-single-post__thumb {
	position: relative;
	overflow: hidden;
	border-radius: var(--myfoly-radius, 14px);
	margin-block: 20px 32px;
	width: 100%;
	max-height: 480px;
	background: var(--myfoly-surface, #f7f7f9);
}

.myfoly-single-post__thumb img {
	width: 100%;
	height: auto;
	max-height: 480px;
	object-fit: cover;
	border-radius: var(--myfoly-radius, 14px);
	display: block;
}

.myfoly-single-thumb-cats {
	position: absolute;
	top: 18px;
	left: 18px;
	z-index: 10;
}

.myfoly-classic-post__meta{
	display: flex; gap: 12px; flex-wrap: wrap;
	font-size: 0.82rem; color: var(--myfoly-ink-soft); margin: 6px 0 14px;
}

/* ---------------- Classic Blog Layout ---------------- */
.myfoly-classic-blog {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.myfoly-classic-post {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 28px;
	background: var(--myfoly-surface, #ffffff);
	border: 1px solid var(--myfoly-border, #e6e6ea);
	border-radius: 14px;
	padding: 24px;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.myfoly-classic-post:hover {
	transform: translateY(-4px);
	border-color: color-mix(in srgb, var(--myfoly-accent) 50%, transparent);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
}

.myfoly-classic-post__thumb {
	display: block;
	overflow: hidden;
	border-radius: 10px;
	height: 100%;
	min-height: 200px;
	max-height: 220px;
	background: var(--myfoly-border, #e2e8f0);
}

.myfoly-classic-post__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 10px;
	transition: transform 0.4s ease;
}

.myfoly-classic-post:hover .myfoly-classic-post__thumb img {
	transform: scale(1.06);
}

.myfoly-classic-post__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.myfoly-classic-post__title {
	font-size: 1.45rem;
	font-weight: 700;
	line-height: 1.35;
	margin: 6px 0 10px;
}

.myfoly-classic-post__title a {
	color: var(--myfoly-ink, #17181c);
	transition: color 0.2s ease;
}

.myfoly-classic-post__title a:hover {
	color: var(--myfoly-accent, #e63946);
	text-decoration: none;
}

.myfoly-classic-post__excerpt {
	color: var(--myfoly-ink-soft, #4b4d55);
	font-size: 0.96rem;
	line-height: 1.6;
	margin-bottom: 16px;
}

.myfoly-readmore {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 18px;
	background: color-mix(in srgb, var(--myfoly-accent, #e63946) 10%, transparent);
	color: var(--myfoly-accent, #e63946);
	font-weight: 700;
	font-size: 0.88rem;
	border-radius: 999px;
	width: fit-content;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.myfoly-readmore:hover {
	background: var(--myfoly-accent, #e63946);
	color: #ffffff !important;
	text-decoration: none;
	transform: translateX(3px);
}

/* Alternating Image Position on Desktop (Even Posts: Image on Right, Content on Left) */
@media (min-width: 821px) {
	.myfoly-classic-post:nth-child(even) {
		grid-template-columns: 1fr 320px;
	}

	.myfoly-classic-post:nth-child(even) .myfoly-classic-post__thumb {
		order: 2;
	}

	.myfoly-classic-post:nth-child(even) .myfoly-classic-post__body {
		order: 1;
	}
}

/* ---------------- Numeric Pagination Styling ---------------- */
.navigation.pagination {
	margin-top: 40px;
	display: flex;
	justify-content: center;
}

.navigation.pagination .nav-links {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	border-radius: 10px;
	background: var(--myfoly-surface, #ffffff);
	border: 1px solid var(--myfoly-border, #e6e6ea);
	color: var(--myfoly-ink, #17181c);
	font-weight: 700;
	font-size: 0.92rem;
	text-decoration: none;
	transition: all 0.2s ease;
}

.navigation.pagination a.page-numbers:hover {
	background: var(--myfoly-accent, #e63946);
	border-color: var(--myfoly-accent, #e63946);
	color: #ffffff !important;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(230, 57, 70, 0.3);
}

.navigation.pagination .page-numbers.current {
	background: var(--myfoly-accent, #e63946);
	border-color: var(--myfoly-accent, #e63946);
	color: #ffffff !important;
	box-shadow: 0 4px 12px rgba(230, 57, 70, 0.35);
}

.navigation.pagination .page-numbers.dots {
	background: transparent;
	border: none;
	color: var(--myfoly-ink-soft, #8b949e);
}

/* ---------------- AJAX Load More / Infinite Scroll Styling ---------------- */
.myfoly-load-more-wrap {
	margin-top: 40px;
	text-align: center;
	display: flex;
	justify-content: center;
}

.myfoly-load-more-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 32px;
	background: var(--myfoly-accent, #e63946);
	color: #ffffff !important;
	border: none;
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.96rem;
	cursor: pointer;
	box-shadow: 0 4px 16px rgba(230, 57, 70, 0.35);
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.myfoly-load-more-btn:hover {
	background: var(--myfoly-ink, #17181c);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}

.myfoly-load-more-btn:disabled {
	opacity: 0.7;
	cursor: not-allowed;
}

.myfoly-load-more-btn .btn-spinner {
	animation: myfolySpin 1s linear infinite;
}

@keyframes myfolySpin {
	100% { transform: rotate(360deg); }
}

.myfoly-no-more {
	display: inline-block;
	padding: 10px 24px;
	background: var(--myfoly-surface, #f7f7f9);
	border: 1px solid var(--myfoly-border, #e6e6ea);
	border-radius: 999px;
	font-size: 0.88rem;
	color: var(--myfoly-ink-soft, #8b949e);
	font-weight: 600;
}

/* ---------------- Magazine layout ---------------- */
.myfoly-magazine__featured{ display: grid; grid-template-columns: 1.6fr 1fr; gap: 24px; margin-bottom: 36px; }
.myfoly-magazine__hero-link{ display: block; position: relative; border-radius: var(--myfoly-radius); overflow: hidden; color: #fff; }
.myfoly-magazine__hero-media img{ width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.myfoly-magazine__hero-body{
	position: absolute; inset: auto 0 0 0; padding: 28px;
	background: linear-gradient(0deg, rgba(0,0,0,.85), rgba(0,0,0,0));
}
.myfoly-magazine__hero-body h2{ color: #fff; font-size: 2rem; }
.myfoly-magazine__hero-body p{ color: #e6e6ea; }
.myfoly-magazine__hero-body .myfoly-classic-post__meta{ color: #cfd0d6; }

.myfoly-magazine__secondary{ margin-bottom: 20px; }
.myfoly-magazine__secondary a{ color: inherit; display: block; }
.myfoly-magazine__secondary-media img{ border-radius: var(--myfoly-radius); aspect-ratio: 16/10; object-fit: cover; }
.myfoly-magazine__secondary-body h3{ font-size: 1.15rem; margin-top: 10px; }

.myfoly-magazine__grid{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.myfoly-magazine__grid-item a{ color: inherit; display: block; }
.myfoly-magazine__grid-media img{ border-radius: var(--myfoly-radius); aspect-ratio: 4/3; object-fit: cover; }
.myfoly-magazine__grid-body h4{ font-size: 1rem; margin-top: 8px; }

/* ---------------- News Grid layout ---------------- */
.myfoly-news-grid__grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.myfoly-news-card{ border: 1px solid var(--myfoly-border); border-radius: var(--myfoly-radius); overflow: hidden; transition: transform .15s ease, box-shadow .15s ease; }
.myfoly-news-card:hover{ transform: translateY(-4px); box-shadow: 0 14px 30px rgba(0,0,0,.08); }
.myfoly-news-card__link{ color: inherit; }
.myfoly-news-card__media{ position: relative; }
.myfoly-news-card__media img{ aspect-ratio: 4/3; object-fit: cover; }
.myfoly-news-card__media .myfoly-cats{ position: absolute; top: 10px; left: 10px; margin: 0; }
.myfoly-news-card__body{ padding: 16px; }
.myfoly-news-card__body h3{ font-size: 1.05rem; }

/* ---------------- Single post ---------------- */
.myfoly-single-post{ padding-block: 40px; }
.myfoly-single-post__title{ font-size: clamp(1.8rem, 4vw, 2.6rem); }
.myfoly-single-post__thumb{ margin: 24px 0; }
.myfoly-single-post__thumb img{ width: 100%; border-radius: var(--myfoly-radius); }
.myfoly-single-post__thumb figcaption{ font-size: 0.82rem; color: var(--myfoly-ink-soft); margin-top: 8px; }
.myfoly-single-post__layout{ display: grid; grid-template-columns: 1fr; gap: 40px; }
body.myfoly-has-sidebar .myfoly-single-post__layout{ grid-template-columns: 2.2fr 1fr; }
.myfoly-single-post__body{ font-size: 1.08rem; }
.myfoly-single-post__body p{ margin: 0 0 1.4em; }
.myfoly-single-post__body img{ border-radius: var(--myfoly-radius); }
.myfoly-single-post__body blockquote{
	border-left: 4px solid var(--myfoly-accent); padding: 4px 20px; margin: 1.6em 0;
	font-style: italic; color: var(--myfoly-ink-soft);
}
.myfoly-page-links{ margin-top: 20px; }

.myfoly-single-post__footer{ display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; padding-block: 24px; border-top: 1px solid var(--myfoly-border); margin-top: 24px; }
.myfoly-tags a{ background: var(--myfoly-surface); padding: 4px 10px; border-radius: 999px; font-size: 0.8rem; margin-right: 6px; color: var(--myfoly-ink-soft); }
.myfoly-social-share{ display: flex; gap: 8px; }
.myfoly-share-btn{
	width: 38px; height: 38px; border-radius: 50%; background: var(--myfoly-surface);
	display: inline-flex; align-items: center; justify-content: center; color: var(--myfoly-ink);
}
.myfoly-share-btn:hover{ background: var(--myfoly-accent); color: #fff; text-decoration: none; }

.myfoly-author-bio{ display: flex; gap: 16px; padding: 24px; background: var(--myfoly-surface); border-radius: var(--myfoly-radius); margin-top: 24px; }
.myfoly-author-bio__avatar img{ border-radius: 50%; }
.myfoly-author-bio__name{ margin-bottom: 6px; font-size: 1.1rem; }

.myfoly-article-widget-area{ margin-top: 28px; }

/* ---------------- Related Posts Styling ---------------- */
.myfoly-related-posts {
	background: var(--myfoly-surface, #f7f7f9);
	border: 1px solid var(--myfoly-border, #e6e6ea);
	border-radius: var(--myfoly-radius, 12px);
	padding: 28px;
	margin-top: 40px;
}

.myfoly-related-posts__title {
	font-size: 1.35rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--myfoly-ink, #17181c);
	margin-bottom: 20px;
	display: inline-block;
	border-left: 4px solid var(--myfoly-accent, #e63946);
	padding-left: 12px;
}

.myfoly-related-posts__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 20px;
}

.myfoly-related-posts__card {
	background: var(--myfoly-bg, #ffffff);
	border: 1px solid var(--myfoly-border, #e6e6ea);
	border-radius: 10px;
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.myfoly-related-posts__card:hover {
	transform: translateY(-4px);
	border-color: var(--myfoly-accent, #e63946);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.myfoly-related-posts__item {
	color: inherit;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.myfoly-related-posts__thumb {
	overflow: hidden;
	width: 100%;
	height: 150px;
	background: #e2e8f0;
}

.myfoly-related-posts__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.myfoly-related-posts__card:hover .myfoly-related-posts__thumb img {
	transform: scale(1.06);
}

.myfoly-related-posts__item-title {
	font-size: 1.02rem;
	font-weight: 700;
	color: var(--myfoly-ink, #17181c);
	line-height: 1.4;
	padding: 14px 14px 6px 14px;
	margin: 0;
	transition: color 0.2s ease;
}

.myfoly-related-posts__card:hover .myfoly-related-posts__item-title {
	color: var(--myfoly-accent, #e63946);
}

.myfoly-related-posts__meta {
	font-size: 0.78rem;
	color: var(--myfoly-ink-soft, #4b4d55);
	padding: 0 14px 14px 14px;
	margin-top: auto;
}

/* TOC mount styling (works even without TD-Activator; plugin fills content in) */
#myfoly-toc, .myfoly-toc{
	border: 1px solid var(--myfoly-border); border-radius: var(--myfoly-radius); padding: 18px 22px; margin-bottom: 28px; background: var(--myfoly-surface);
}

/* ---------------- Popular posts widget ---------------- */
.myfoly-popular-posts{ list-style: none; margin: 0; padding: 0; }
.myfoly-popular-posts li + li{ margin-top: 14px; }
.myfoly-popular-posts__link{ display: flex; gap: 12px; color: inherit; }
.myfoly-popular-posts__thumb img{ width: 64px; height: 64px; object-fit: cover; border-radius: 8px; }
.myfoly-popular-posts__title{ display: block; font-weight: 600; font-size: 0.92rem; }
.myfoly-popular-posts__meta{ display: block; font-size: 0.76rem; color: var(--myfoly-ink-soft); }

/* ---------------- Breadcrumbs ---------------- */
.myfoly-breadcrumbs ol{ list-style: none; display: flex; gap: 6px; padding: 0; margin: 0 0 12px; font-size: 0.82rem; color: var(--myfoly-ink-soft); flex-wrap: wrap; }
.myfoly-breadcrumbs li:not(:last-child)::after{ content: '/'; margin-left: 6px; color: var(--myfoly-border); }

/* ---------------- Comments ---------------- */
.myfoly-comments{ margin-top: 48px; border-top: 1px solid var(--myfoly-border); padding-top: 32px; }
.myfoly-comment-list{ list-style: none; margin: 0; padding: 0; }
.comment-body{ display: flex; gap: 14px; padding: 18px 0; border-bottom: 1px solid var(--myfoly-border); }
.comment-author-avatar img{ border-radius: 50%; }
.comment-content{ margin-top: 8px; }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form textarea{
	width: 100%; padding: 10px 12px; border: 1px solid var(--myfoly-border); border-radius: 6px; margin-bottom: 14px;
}
.myfoly-btn{
	display: inline-block; background: var(--myfoly-accent); color: #fff; padding: 12px 24px;
	border: 0; border-radius: 6px; cursor: pointer; font-weight: 600;
}
.myfoly-btn:hover{ opacity: .9; color: #fff; text-decoration: none; }

/* ---------------- Footer ---------------- */
.myfoly-footer{ margin-top: 60px; background: var(--myfoly-surface); border-top: 1px solid var(--myfoly-border); }
.myfoly-footer-widgets{ padding-block: 48px; }
.myfoly-footer-widgets__grid{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.myfoly-footer-bottom{ border-top: 1px solid var(--myfoly-border); }
.myfoly-footer-bottom__inner{ display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 18px; font-size: 0.85rem; color: var(--myfoly-ink-soft); flex-wrap: wrap; }
.myfoly-footer-menu{ list-style: none; display: flex; gap: 16px; padding: 0; margin: 0; }
.myfoly-back-to-top{
	position: fixed;
	right: 24px;
	bottom: 24px;
	width: 44px; 
	height: 44px; 
	border-radius: 50%; 
	border: 1px solid var(--myfoly-border);
	background: var(--myfoly-bg); 
	cursor: pointer;
	z-index: 999;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--myfoly-ink);
	transition: background 0.3s, color 0.3s, border-color 0.3s, transform 0.3s;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.myfoly-back-to-top:hover {
	background: var(--myfoly-accent);
	color: #fff;
	border-color: var(--myfoly-accent);
	transform: translateY(-4px);
}
.myfoly-back-to-top svg {
	width: 1.2em;
	height: 1.2em;
}

/* ---------------- 404 ---------------- */
.myfoly-404{ text-align: center; padding-block: 100px; }
.myfoly-404__code{ font-size: 6rem; color: var(--myfoly-accent); margin: 0; }
.myfoly-404 form.search-form{ max-width: 420px; margin: 24px auto; }

/* ---------------- Front page intro (static front page's own content) ---------------- */
.myfoly-front-intro{ padding-top: 40px; font-size: 1.05rem; color: var(--myfoly-ink-soft); }
.myfoly-front-intro p:last-child{ margin-bottom: 0; }

/* ---------------- Utility ---------------- */
.myfoly-no-results{ padding-block: 60px; text-align: center; }
.myfoly-oembed{ position: relative; }
