/*
Theme Name: Forrásközpont
Theme URI: https://forraskozpont.kre.hu
Description: A Buda Béla Mentálhigiénés Forrásközpont egyedi, klasszikus (PHP-sablonos) gyermektémája a Twenty Twenty-One alapjára építve.
Author: Forrásközpont
Template: twentytwentyone
Version: 2.4.1
Requires at least: 7.0
Requires PHP: 8.0
Text Domain: forraskozpont
*/

/* 1. Alapok */
:root {
	--fkp-accent: #dd8502;
	--fkp-accent-dark: #a86400;
	--fkp-bg: #ebebeb;
	--fkp-ink: #444;
	--fkp-dark: #222;
	--fkp-line: #999;
	--fkp-w: 1170px;
	--fkp-body: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
	--fkp-head: 'Oswald', 'Arial Narrow', Arial, sans-serif;
}

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

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

body.fkp {
	margin: 0;
	background: var(--fkp-bg);
	color: var(--fkp-ink);
	font: 400 17px/1.6 var(--fkp-body);
	overflow-wrap: break-word;
}

.fkp img { max-width: 100%; height: auto; }
.fkp :where(a) { color: var(--fkp-ink); }
.fkp :where(a:hover) { color: var(--fkp-accent-dark); }
.fkp :focus-visible { outline: 2px solid var(--fkp-accent); outline-offset: 2px; }

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal;
}
.skip-link:focus {
	clip: auto;
	clip-path: none;
	background: #fff;
	color: #000;
	height: auto;
	width: auto;
	left: 10px;
	top: 10px;
	padding: 10px 14px;
	z-index: 1000;
}

.fkp-wrap {
	width: 100%;
	max-width: var(--fkp-w);
	margin: 0 auto;
	padding: 0 15px;
}

/* 2. Fejléc */
.fkp-header { background: var(--fkp-bg); }

.fkp-header__top {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px 30px;
	padding: 12px 0 4px;
}

.fkp-brand { flex: 0 1 32%; min-width: 270px; }
.fkp-brand__title {
	margin: 0;
	font: 400 42px/1.1 var(--fkp-head);
	letter-spacing: 1px;
	text-transform: uppercase;
}
.fkp-brand__title a { color: var(--fkp-ink); text-decoration: none; }
.fkp-brand__desc { margin: 4px 0 0; font: italic 400 14px/1.3 var(--fkp-body); }

.fkp-header__right {
	flex: 1 1 60%;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
	text-align: right;
}
.fkp-userbar { margin: 0; font-size: 16px; line-height: 1.4; }

.fkp-datebar {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 24px;
	width: 100%;
}
.fkp-nameday { margin: 0; flex: 1 1 auto; max-width: 340px; font-size: 16px; line-height: 1.4; text-align: left; }

.fkp-search { display: flex; flex: 0 0 340px; max-width: 100%; }
.fkp-search input[type="search"] {
	flex: 1;
	min-width: 0;
	border: 1px solid #d4d4d4;
	border-right: 0;
	padding: 9px 12px;
	background: #fff;
	color: var(--fkp-ink);
	font: 400 16px/1.2 var(--fkp-body);
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
}
.fkp-search button {
	border: 0;
	padding: 9px 20px;
	background: var(--fkp-accent);
	color: #fff;
	font: 500 16px/1.2 var(--fkp-body);
	cursor: pointer;
	border-radius: 0;
}
.fkp-search button:hover,
.fkp-search button:focus-visible { background: var(--fkp-accent-dark); }

/* 3. Főmenü */
.fkp-nav { position: relative; }
.fkp-nav ul { list-style: none; margin: 0; padding: 0; }
.fkp-nav-toggle { display: none; }

.fkp-menu { display: flex; flex-wrap: wrap; padding: 5px 0 10px; }
.fkp-menu > li { position: relative; }
.fkp-menu a {
	display: block;
	padding: 9px 14px;
	font: 300 16px/1.2 var(--fkp-head);
	letter-spacing: 0.2px;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--fkp-ink);
}
.fkp-menu > li > a:hover,
.fkp-menu > li > a:focus-visible,
.fkp-menu > li.current-menu-item > a,
.fkp-menu > li.current-menu-ancestor > a,
.fkp-menu > li.current-post-ancestor > a,
.fkp-menu > li.current-category-ancestor > a {
	background: var(--fkp-accent);
	color: #fff;
}
.fkp-menu .menu-item-has-children > a::after {
	content: '';
	display: inline-block;
	width: 5px;
	height: 5px;
	margin: 0 0 3px 7px;
	border: solid currentColor;
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
}
.fkp-menu .sub-menu {
	display: none;
	position: absolute;
	left: 0;
	top: 100%;
	z-index: 50;
	min-width: 270px;
	background: #fff;
	border-top: 2px solid var(--fkp-accent);
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.18);
}
.fkp-menu .sub-menu .sub-menu { left: 100%; top: -2px; }
.fkp-menu li:hover > .sub-menu,
.fkp-menu li:focus-within > .sub-menu,
.fkp-menu li.is-open > .sub-menu { display: block; }
.fkp-menu .sub-menu li { position: relative; }
.fkp-menu .sub-menu a {
	padding: 10px 14px;
	font-size: 15px;
	text-transform: none;
	border-bottom: 1px solid #eee;
}
.fkp-menu .sub-menu a:hover,
.fkp-menu .sub-menu a:focus-visible { background: var(--fkp-accent); color: #fff; }
.fkp-menu .sub-menu .menu-item-has-children > a::after {
	margin: 0 0 0 8px;
	float: right;
	margin-top: 5px;
	transform: rotate(-45deg);
}

/* 4. Elrendezés, dobozok */
.fkp-main { padding: 10px 0 24px; }
.fkp-cols { display: flex; gap: 2%; align-items: flex-start; }
.fkp-col-main { flex: 0 0 65%; min-width: 0; }
.fkp-col-side { flex: 0 0 33%; min-width: 0; }
.fkp-box {
	background: #fff;
	margin: 0 0 15px;
	border-bottom: 1px solid var(--fkp-line);
}

.fkp-section-title {
	margin: 0;
	padding: 14px 14px 4px;
	font: 400 34px/1.2 var(--fkp-head);
	color: #000;
}
.fkp-section-title a { color: inherit; text-decoration: none; }

/* 5. Főoldali slider */
.fkp-slider { position: relative; margin-top: 10px; }
.fkp-slides {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.fkp-slides::-webkit-scrollbar { display: none; }
.fkp-slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
	display: grid;
	grid-template-columns: minmax(0, 45%) minmax(0, 55%);
	min-height: 300px;
}
.fkp-slide__img { display: block; background: #ddd; position: relative; min-height: 300px; }
.fkp-slide__img img { position: absolute; inset: 0; display: block; width: 100%; height: 100% !important; max-width: none; object-fit: cover; }
.fkp-slide__txt {
	background: #5a5a5a;
	color: #fff;
	padding: 22px 60px 22px 26px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.fkp-slide__txt h2 { margin: 0 0 12px; font: 400 28px/1.2 var(--fkp-head); }
.fkp-slide__txt h2 a { color: #fff; text-decoration: none; }
.fkp-slide__txt p { margin: 0; font-size: 16px; line-height: 1.5; }
.fkp-slider__btn {
	position: absolute;
	top: 50%;
	width: 40px;
	height: 56px;
	margin-top: -28px;
	border: 0;
	background: rgba(0, 0, 0, 0.55);
	color: #fff;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
}
.fkp-slider__btn:hover,
.fkp-slider__btn:focus-visible { background: var(--fkp-accent); }
.fkp-slider__btn--prev { left: 0; }
.fkp-slider__btn--next { right: 0; }

/* 6. Hírlista */
.fkp-news { padding-bottom: 10px; }
.fkp-news-list { padding: 8px 14px 0; }
.fkp-news-post {
	display: flex;
	gap: 14px;
	margin: 0 0 18px;
	padding-bottom: 16px;
	border-bottom: 1px solid #eee;
}
.fkp-news-post__img { flex: 0 0 300px; display: block; }
.fkp-news-post__img img { display: block; width: 300px; height: 200px; object-fit: cover; }
.fkp-news-post__body { flex: 1 1 auto; min-width: 0; }
.fkp-news-post__title { margin: 0 0 4px; font: 400 21px/1.25 var(--fkp-head); }
.fkp-news-post__title a { color: #000; text-decoration: none; }
.fkp-news-post__title a:hover { color: var(--fkp-accent-dark); }
.fkp-news-post__meta { margin: 0 0 6px; font-size: 13px; color: #777; }
.fkp-news-post__excerpt { font: 300 15px/1.45 var(--fkp-head); color: #111; }
.fkp-news-post__excerpt p { margin: 0; }
.fkp-news-more { display: block; padding: 4px 14px 10px; }

/* 7. Oldalsáv, widgetek */
.fkp-widget {
	background: #fff;
	margin: 0 0 15px;
	padding: 14px 16px 12px;
	border-bottom: 1px solid var(--fkp-line);
}
.fkp-widget-title {
	position: relative;
	margin: 0 0 14px;
	padding-bottom: 10px;
	font: 400 24px/1.2 var(--fkp-head);
	color: #000;
}
.fkp-widget-title::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 24px;
	height: 2px;
	background: var(--fkp-accent);
}
.fkp-widget ul { list-style: none; margin: 0; padding: 0; }
.fkp-widget li a { display: block; padding: 8px 0; text-decoration: none; font-size: 16px; }
.fkp-widget li a:hover { text-decoration: underline; }
.fkp-widget img { display: block; }
.fkp-banner { padding: 10px; }

/* 8. Cikk, oldal, archívum */
.fkp-article,
.fkp-archive-head,
.fkp-comments { padding: 14px 22px 18px; }
.fkp-article__title,
.fkp-archive-head h1 { margin: 0 0 6px; font: 400 36px/1.2 var(--fkp-head); color: #000; }
.fkp-article__meta { margin: 0 0 16px; font-size: 14px; color: #777; }
.fkp-article__meta a { color: #777; }
.entry-content { font-size: 17px; line-height: 1.7; }
.entry-content > * { max-width: 100%; }
.entry-content h2,
.entry-content h3,
.entry-content h4 { font-family: var(--fkp-head); font-weight: 400; line-height: 1.25; color: #000; }
.entry-content h2 { font-size: 30px; }
.entry-content h3 { font-size: 24px; }
.entry-content h4 { font-size: 20px; }
.entry-content a { color: var(--fkp-accent-dark); }
.entry-content table { border-collapse: collapse; width: 100%; }
.entry-content th,
.entry-content td { border: 1px solid #ddd; padding: 6px 10px; text-align: left; }
.entry-content blockquote { margin: 1.2em 0; padding: 4px 18px; border-left: 4px solid var(--fkp-accent); background: #fafafa; }
.entry-content iframe,
.entry-content video { max-width: 100%; }
.entry-content .alignleft { float: left; margin: 0.3em 1.2em 0.8em 0; }
.entry-content .alignright { float: right; margin: 0.3em 0 0.8em 1.2em; }
.entry-content .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.entry-content .wp-caption,
.entry-content figure { max-width: 100%; margin: 1em 0; }
.entry-content figcaption,
.entry-content .wp-caption-text { font-size: 14px; color: #666; }
.entry-content::after { content: ''; display: block; clear: both; }
.fkp-tags { font-size: 14px; color: #777; }
.fkp-archive-desc { font-size: 16px; }

.nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 20px; }
.nav-links .page-numbers,
.nav-links a {
	display: inline-block;
	padding: 6px 12px;
	background: #fff;
	border: 1px solid #ccc;
	text-decoration: none;
}
.nav-links .page-numbers.current { background: var(--fkp-accent); border-color: var(--fkp-accent); color: #fff; }
.post-navigation .nav-links { justify-content: space-between; }

/* 9. Hozzászólások */
.fkp-comments__title { margin: 0 0 12px; font: 400 26px/1.2 var(--fkp-head); }
.fkp-comment-list { list-style: none; margin: 0 0 20px; padding: 0; }
.fkp-comment-list .children { list-style: none; margin: 0; padding-left: 28px; }
.fkp-comment-list .comment-body { padding: 12px 0; border-bottom: 1px solid #eee; font-size: 15px; }
.fkp-comment-list .avatar { float: left; margin: 0 12px 6px 0; border-radius: 50%; }
.comment-form label { display: block; font-size: 14px; }
.comment-form textarea,
.comment-form input[type="text"],
.comment-form input[type="email"] { width: 100%; max-width: 640px; padding: 8px 10px; border: 1px solid #ccc; font: inherit; }
.comment-form .submit,
.fkp-btn {
	border: 0;
	padding: 10px 24px;
	background: var(--fkp-accent);
	color: #fff;
	font: 500 16px/1.2 var(--fkp-body);
	cursor: pointer;
}
.comment-form .submit:hover,
.fkp-btn:hover { background: var(--fkp-accent-dark); }

/* 10. Belépés és jelszómódosítás */
.fkp-login { max-width: 560px; margin: 24px auto; padding: 22px 28px 28px; }
.fkp-login__title { margin: 0 0 12px; font: 400 36px/1.2 var(--fkp-head); color: #000; }
.fkp-login form p { margin: 0 0 14px; }
.fkp-login label { display: block; margin-bottom: 4px; font-size: 15px; }
.fkp-login input[type="text"],
.fkp-login input[type="password"] { width: 100%; padding: 10px 12px; border: 1px solid #ccc; font: inherit; }
.fkp-login input[type="submit"] {
	border: 0;
	padding: 10px 28px;
	background: var(--fkp-accent);
	color: #fff;
	font: 500 16px/1.2 var(--fkp-body);
	cursor: pointer;
}
.fkp-login input[type="submit"]:hover { background: var(--fkp-accent-dark); }
.fkp-login .login-remember label { display: inline; }
.fkp-login__lost { margin: 6px 0 0; font-size: 15px; }
.fkp-login__or { display: flex; align-items: center; gap: 12px; margin: 22px 0 16px; color: #777; font-size: 14px; }
.fkp-login__or::before,
.fkp-login__or::after { content: ''; flex: 1; height: 1px; background: #ddd; }
.fkp-notice { margin: 0 0 16px; padding: 10px 14px; border-left: 4px solid var(--fkp-accent); background: #fff7e8; font-size: 15px; }
.fkp-notice--error { border-color: #b32d2e; background: #fcf0f0; }
.fkp-notice--ok { border-color: #2e7d32; background: #eef8ee; }

/* Hivatalos megjelenésű Google-gomb (világos téma) */
.fkp a.fkp-google-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	max-width: 340px;
	height: 40px;
	margin: 0 auto;
	padding: 0 12px;
	background: #fff;
	border: 1px solid #747775;
	border-radius: 4px;
	color: #1f1f1f;
	font: 500 14px/20px Roboto, Arial, sans-serif;
	text-decoration: none;
}
.fkp a.fkp-google-btn:hover,
.fkp a.fkp-google-btn:focus-visible { background: #f6f8fc; box-shadow: 0 1px 3px rgba(60, 64, 67, 0.3); color: #1f1f1f; }
.fkp-google-btn svg { display: block; flex: 0 0 20px; }

/* 11. Lábléc */
.fkp-footer {
	margin-top: 10px;
	padding: 28px 0 22px;
	background: var(--fkp-dark);
	border-top: 2px solid var(--fkp-accent);
	color: #fff;
	font-size: 16px;
	line-height: 1.6;
	text-align: center;
}
.fkp-footer p { margin: 0 0 14px; }
.fkp-footer a { color: #fff; text-decoration: underline dotted; text-underline-offset: 3px; }
.fkp-footer a:hover { color: var(--fkp-accent); }
.fkp-footer__logo { display: inline-block; margin-bottom: 16px; }
.fkp-footer__logo img { display: block; max-width: 354px; width: 100%; height: auto; }
.fkp-counter {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 8px;
	background: #111;
	border: 1px solid var(--fkp-accent);
	color: var(--fkp-accent);
	font: 600 15px/1.5 var(--fkp-body);
	letter-spacing: 2px;
}

/* 12. Reszponzív */
@media (max-width: 1000px) {
	.fkp-cols { display: block; }
	.fkp-col-main,
	.fkp-col-side { flex: none; width: 100%; }
}

@media (max-width: 800px) {
	body.fkp { font-size: 16px; }
	.fkp-header__top { padding-top: 10px; }
	.fkp-brand { flex-basis: 100%; min-width: 0; }
	.fkp-brand__title { font-size: 34px; }
	.fkp-header__right { flex-basis: 100%; align-items: stretch; text-align: left; }
	.fkp-datebar { flex-wrap: wrap; justify-content: flex-start; gap: 8px; }
	.fkp-search { flex: 1 1 100%; }
	.fkp-nameday { max-width: none; }

	.fkp-nav-toggle {
		display: block;
		width: 100%;
		margin: 6px 0;
		padding: 10px 14px;
		border: 0;
		background: var(--fkp-accent);
		color: #fff;
		font: 400 17px/1.2 var(--fkp-head);
		letter-spacing: 1px;
		text-transform: uppercase;
		text-align: left;
		cursor: pointer;
	}
	.fkp-menu { display: none; padding: 0 0 10px; }
	.fkp-nav.is-open .fkp-menu { display: block; }
	.fkp-menu > li > a { background: #fff; border-bottom: 1px solid #ddd; }
	.fkp-menu .sub-menu,
	.fkp-menu .sub-menu .sub-menu { position: static; display: none; min-width: 0; box-shadow: none; border-top: 0; background: #f7f7f7; padding-left: 14px; }
	.fkp-menu li:hover > .sub-menu,
	.fkp-menu li:focus-within > .sub-menu { display: none; }
	.fkp-menu li.is-open > .sub-menu { display: block; }

	.fkp-slide { grid-template-columns: 1fr; }
	.fkp-slide__img { min-height: 220px; }
	.fkp-news-post { flex-direction: column; }
	.fkp-news-post__img { flex-basis: auto; }
	.fkp-news-post__img img { width: 100%; height: auto; aspect-ratio: 3 / 2; }
	.fkp-section-title { font-size: 28px; }
	.fkp-article,
	.fkp-archive-head,
	.fkp-comments { padding-left: 14px; padding-right: 14px; }
	.fkp-article__title,
	.fkp-archive-head h1 { font-size: 30px; }
}

@media (prefers-reduced-motion: reduce) {
	.fkp-slides { scroll-behavior: auto; }
}

/* TT21 almenü-kapcsoló gombok elrejtése */
.sub-menu-toggle, .fkp-nav .sub-menu-toggle { display: none !important; }

/* ---------- Fotógaléria ---------- */
.fkp-gal-years { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.fkp-gal-years a { padding: 3px 10px; border: 1px solid #ccc; background: #fff; color: #444; text-decoration: none; font-size: 14px; }
.fkp-gal-years a:hover, .fkp-gal-years a.is-current { background: var(--fkp-accent); border-color: var(--fkp-accent); color: #fff; }
.fkp-gal-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin: 16px 0; }
.fkp-gal-card { display: flex; flex-direction: column; background: #fff; color: #222; text-decoration: none; box-shadow: 0 1px 0 rgba(0, 0, 0, .15); }
.fkp-gal-card__img { display: block; aspect-ratio: 4 / 3; background: #ddd; overflow: hidden; }
.fkp-gal-card__img img { display: block; width: 100%; height: 100% !important; max-width: none; object-fit: cover; transition: transform .3s; }
.fkp-gal-card:hover .fkp-gal-card__img img { transform: scale(1.04); }
.fkp-gal-card__title { padding: 10px 12px 2px; font: 400 18px/1.25 var(--fkp-head); }
.fkp-gal-card:hover .fkp-gal-card__title { color: var(--fkp-accent-dark); }
.fkp-gal-card__meta { padding: 0 12px 12px; font-size: 13px; color: #777; }
.fkp-gal-single { padding: 18px 20px 24px; }
.fkp-gal-single h1 { margin: 6px 0; font: 400 32px/1.2 var(--fkp-head); }
.fkp-gal-back { margin: 0; font-size: 14px; }
.fkp-gal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; margin-top: 16px; }
.fkp-gal-grid a { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #ddd; }
.fkp-gal-grid img { display: block; width: 100%; height: 100% !important; max-width: none; object-fit: cover; transition: transform .25s; }
.fkp-gal-grid a:hover img, .fkp-gal-grid a:focus-visible img { transform: scale(1.05); }
.fkp-lb { position: fixed; inset: 0; z-index: 99999; background: rgba(0, 0, 0, .92); display: flex; align-items: center; justify-content: center; }
.fkp-lb[hidden] { display: none; }
.fkp-lb__fig { margin: 0; max-width: 92vw; text-align: center; color: #eee; }
.fkp-lb__fig img { display: block; max-width: 92vw; max-height: 82vh; margin: 0 auto; object-fit: contain; }
.fkp-lb__fig figcaption { padding-top: 10px; font-size: 14px; }
.fkp-lb__fig figcaption a { color: var(--fkp-accent); margin-left: 12px; }
.fkp-lb__count { margin-left: 12px; opacity: .7; }
.fkp-lb__close, .fkp-lb__nav { position: absolute; background: rgba(0, 0, 0, .4); color: #fff; border: 0; cursor: pointer; font-size: 36px; line-height: 1; padding: 8px 16px; }
.fkp-lb__close { top: 8px; right: 8px; }
.fkp-lb__prev { left: 8px; top: 50%; transform: translateY(-50%); }
.fkp-lb__next { right: 8px; top: 50%; transform: translateY(-50%); }
.fkp-lb__close:hover, .fkp-lb__nav:hover, .fkp-lb__close:focus-visible, .fkp-lb__nav:focus-visible { background: var(--fkp-accent); }
.fkp-lb-open { overflow: hidden; }
@media (max-width: 600px) {
	.fkp-gal-grid { grid-template-columns: repeat(2, 1fr); }
	.fkp-gal-cards { grid-template-columns: 1fr; }
}

/* ---------- Galéria-slideshow widget ---------- */
.fkp-galslide { position: relative; }
.fkp-galslide__stage { position: relative; aspect-ratio: 4 / 3; background: #ddd; overflow: hidden; }
.fkp-galslide__item { position: absolute; inset: 0; display: block; opacity: 0; transition: opacity .5s; }
.fkp-galslide__item.is-active { opacity: 1; z-index: 1; }
.fkp-galslide__item img { display: block; width: 100%; height: 100% !important; max-width: none; object-fit: cover; }
.fkp-galslide__title { margin: 8px 0 0; font: 400 16px/1.3 var(--fkp-head); }
.fkp-galslide__title a { color: #222; text-decoration: none; }
.fkp-galslide__title a:hover { color: var(--fkp-accent-dark); }
@media (prefers-reduced-motion: reduce) { .fkp-galslide__item { transition: none; } }
