/*
Theme Name: Galenus Fórum
Description: A Galenus fórum témája – a dev.patikamagazin.hu arculatához igazítva (Roboto, piros kiemelőszín, szürke menüsáv). bbPress-hez készült.
Version: 0.1.0
Text Domain: galenus-forum
*/

:root {
	--gf-primary: #ef3c26;
	--gf-primary-rgb: 239, 60, 38;
	--gf-primary-dark: #a30000;
	--gf-primary-soft: rgba(var(--gf-primary-rgb), 0.08);
	--gf-text: #111111;
	--gf-muted: #5f5f5f;
	--gf-surface: #ffffff;
	--gf-menu-bg: #f4f4f4;
	--gf-line: #e3e3e3;
	--gf-footer-bg: #e5e7eb;
	--gf-width: 1120px;
	--gf-radius: 10px;
	--gf-shadow: 0 12px 28px rgba(var(--gf-primary-rgb), 0.10);
	--gf-font: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;
}

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

body {
	margin: 0;
	font-family: var(--gf-font);
	font-size: 16px;
	line-height: 1.55;
	color: var(--gf-text);
	background: var(--gf-surface);
	-webkit-font-smoothing: antialiased;
}

a { color: var(--gf-text); text-decoration: none; }
a:hover, a:focus-visible { color: var(--gf-primary); }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { line-height: 1.2; margin: 0 0 .6em; }

.gf-container { width: min(100% - 32px, var(--gf-width)); margin-inline: auto; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }

/* ---------- Fejléc ---------- */
.gf-utility { font-size: 13px; color: var(--gf-muted); border-bottom: 1px solid var(--gf-line); }
.gf-utility__inner { display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: space-between; align-items: center; min-height: 36px; }
.gf-utility__brand { text-transform: uppercase; letter-spacing: .06em; font-weight: 700; color: var(--gf-text); }
.gf-utility nav { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.gf-utility nav a { color: var(--gf-muted); }
.gf-utility nav a:hover { color: var(--gf-primary); }

.gf-branding { padding: 22px 0 18px; text-align: center; }
.gf-logo { display: inline-flex; align-items: center; gap: 12px; color: var(--gf-text); }
.gf-logo:hover { color: var(--gf-text); }
.gf-logo__mark { display: block; width: 64px; height: 64px; }
.gf-footer__logo { display: block; width: 120px; height: auto; margin-bottom: 14px; }
.gf-logo__text { display: flex; flex-direction: column; align-items: flex-start; line-height: 1; }
.gf-logo__name { font-size: 34px; font-weight: 700; letter-spacing: .04em; }
.gf-logo__name span { color: var(--gf-primary); }
.gf-logo__tag { font-size: 12px; text-transform: uppercase; letter-spacing: .14em; color: var(--gf-muted); margin-top: 6px; }

.gf-menubar { position: sticky; top: 0; z-index: 100; background: var(--gf-menu-bg); }
.admin-bar .gf-menubar { top: 32px; }
.gf-menubar__inner { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.gf-menubar__home { display: grid; place-items: center; width: 28px; height: 44px; color: #000; }
.gf-menubar__home svg { width: 20px; height: 20px; fill: currentColor; }
.gf-menu { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.gf-menu a { display: block; padding: 11px 14px; font-size: 15px; font-weight: 700; }
.gf-menu .current-menu-item > a, .gf-menu a:hover { color: var(--gf-primary); box-shadow: inset 0 -3px 0 var(--gf-primary); }
.gf-menubar__account { margin-left: auto; display: flex; gap: 8px; align-items: center; font-size: 14px; }
.gf-menubar__account .gf-user { color: var(--gf-muted); }

.gf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	padding: 8px 16px; border-radius: 999px; border: 2px solid var(--gf-primary);
	background: var(--gf-primary); color: #fff !important; font-weight: 700; font-size: 14px; line-height: 1.2; cursor: pointer;
}
.gf-btn:hover { background: var(--gf-primary-dark); border-color: var(--gf-primary-dark); }
.gf-btn--ghost { background: transparent; color: var(--gf-primary) !important; }
.gf-btn--ghost:hover { background: var(--gf-primary-soft); }

.gf-menu-toggle { display: none; }

/* ---------- Tartalom ---------- */
.gf-main { padding: 32px 0 56px; }
.gf-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 36px; align-items: start; }
.gf-layout--full { grid-template-columns: minmax(0, 1fr); }

.gf-hero {
	position: relative; overflow: hidden; border-radius: var(--gf-radius);
	background: linear-gradient(120deg, #fff 0%, #fff 55%, var(--gf-primary-soft) 100%);
	border: 1px solid var(--gf-line); box-shadow: var(--gf-shadow);
	padding: 32px 36px; margin-bottom: 32px;
}
.gf-hero::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: var(--gf-primary); opacity: .09; }
.gf-hero h1 { font-size: 32px; }
.gf-hero p { max-width: 640px; color: #333; margin: 0 0 18px; }
.gf-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; }

.gf-section-title { display: flex; align-items: center; gap: 10px; font-size: 22px; margin: 0 0 16px; }
.gf-section-title::before { content: ""; width: 6px; height: 24px; border-radius: 3px; background: var(--gf-primary); }

.gf-platforms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 36px; }
.gf-card {
	display: flex; flex-direction: column; gap: 6px; padding: 20px; border-radius: var(--gf-radius);
	border: 1px solid var(--gf-line); background: #fff; transition: box-shadow .2s, transform .2s;
}
.gf-card:hover { box-shadow: var(--gf-shadow); transform: translateY(-2px); color: var(--gf-text); }
.gf-card__icon { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--gf-primary-soft); color: var(--gf-primary); font-weight: 700; }
.gf-card h3 { font-size: 17px; margin: 6px 0 0; }
.gf-card p { margin: 0; font-size: 14px; color: var(--gf-muted); }
.gf-card__more { margin-top: auto; padding-top: 8px; font-size: 14px; font-weight: 700; color: var(--gf-primary); }

.gf-entry { min-width: 0; }
.gf-entry__title { font-size: 30px; }
.gf-entry__content > *:first-child { margin-top: 0; }

/* ---------- Oldalsáv ---------- */
.gf-sidebar { display: flex; flex-direction: column; gap: 20px; }
.gf-widget { border: 1px solid var(--gf-line); border-radius: var(--gf-radius); padding: 18px 20px; background: #fff; }
.gf-widget h2, .gf-widget .widget-title { font-size: 15px; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 12px; padding-bottom: 10px; border-bottom: 2px solid var(--gf-primary); }
.gf-widget ul { list-style: none; margin: 0; padding: 0; }
.gf-widget li { padding: 8px 0; border-bottom: 1px solid var(--gf-line); font-size: 14px; }
.gf-widget li:last-child { border-bottom: 0; }
.gf-widget--accent { background: var(--gf-primary); border-color: var(--gf-primary); color: #fff; }
.gf-widget--accent h2 { border-color: rgba(255,255,255,.5); }
.gf-widget--accent a { color: #fff; text-decoration: underline; }
.gf-widget--accent p { margin: 0 0 10px; font-size: 14px; }

/* ---------- Lábléc ---------- */
.gf-footer { background: var(--gf-footer-bg); color: #1f2937; padding: 40px 0 0; font-size: 14px; }
.gf-footer a { color: #1f2937; }
.gf-footer a:hover { color: var(--gf-primary); }
.gf-footer__cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; }
.gf-footer h2 { font-size: 14px; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 12px; }
.gf-footer ul { list-style: none; margin: 0; padding: 0; }
.gf-footer li { margin: 0 0 6px; }
.gf-footer__meta { margin-top: 32px; padding: 14px 0; border-top: 1px solid #cbd5e1; font-size: 13px; color: #4b5563; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }

/* ---------- bbPress ---------- */
#bbpress-forums { font-size: 15px; margin-bottom: 0; }
#bbpress-forums ul.bbp-forums, #bbpress-forums ul.bbp-topics, #bbpress-forums ul.bbp-replies, #bbpress-forums ul.bbp-search-results, #bbpress-forums ul.bbp-lead-topic {
	border: 1px solid var(--gf-line); border-radius: var(--gf-radius); overflow: hidden; font-size: 15px; margin-bottom: 24px;
}
#bbpress-forums li.bbp-header { background: var(--gf-text); color: #fff; padding: 10px 14px; border: 0; text-transform: uppercase; font-size: 12px; letter-spacing: .06em; }
#bbpress-forums li.bbp-header a { color: #fff; }
#bbpress-forums li.bbp-footer { background: var(--gf-menu-bg); border-top: 1px solid var(--gf-line); padding: 6px 14px; }
#bbpress-forums li.bbp-body ul.forum, #bbpress-forums li.bbp-body ul.topic { padding: 14px; border-top: 1px solid var(--gf-line); }
#bbpress-forums div.odd, #bbpress-forums ul.odd { background: #fff; }
#bbpress-forums div.even, #bbpress-forums ul.even { background: #fafafa; }
#bbpress-forums .bbp-forum-title, #bbpress-forums .bbp-topic-permalink { font-weight: 700; font-size: 16px; }
#bbpress-forums .bbp-forum-content { color: var(--gf-muted); font-size: 14px; margin-top: 2px; }
#bbpress-forums .bbp-forums-list { border-left: 3px solid var(--gf-primary); padding-left: 10px; margin-top: 8px; }
#bbpress-forums .bbp-forums-list li { font-size: 13px; }
#bbpress-forums li.bbp-forum-freshness, #bbpress-forums li.bbp-topic-freshness { font-size: 13px; }
#bbpress-forums .bbp-breadcrumb { font-size: 13px; color: var(--gf-muted); margin-bottom: 14px; }
#bbpress-forums .bbp-breadcrumb a { color: var(--gf-primary); }
#bbpress-forums div.bbp-forum-header, #bbpress-forums div.bbp-topic-header, #bbpress-forums div.bbp-reply-header { background: var(--gf-menu-bg); border-top: 1px solid var(--gf-line); }
#bbpress-forums div.bbp-reply-author .bbp-author-name { font-weight: 700; }
#bbpress-forums div.bbp-reply-content, #bbpress-forums div.bbp-topic-content { font-size: 15px; }
#bbpress-forums fieldset.bbp-form { border: 1px solid var(--gf-line); border-radius: var(--gf-radius); padding: 18px 20px; background: #fff; }
#bbpress-forums fieldset.bbp-form legend { font-weight: 700; padding: 0 6px; }
#bbpress-forums input[type=text], #bbpress-forums input[type=email], #bbpress-forums input[type=password], #bbpress-forums select, #bbpress-forums textarea,
.bbp-login-form input[type=text], .bbp-login-form input[type=password], .bbp-login-form input[type=email], .bbp-login-form select {
	border: 1px solid #c8c8c8; border-radius: 6px; padding: 8px 10px; font: inherit; max-width: 100%;
}
#bbpress-forums button, .bbp-login-form button, .bbp-submit-wrapper button {
	padding: 9px 18px; border-radius: 999px; border: 0; background: var(--gf-primary); color: #fff; font-weight: 700; cursor: pointer; font: inherit; font-weight: 700;
}
#bbpress-forums button:hover, .bbp-login-form button:hover { background: var(--gf-primary-dark); }
#bbpress-forums .bbp-pagination-links span.current { background: var(--gf-primary); color: #fff; border-color: var(--gf-primary); }
div.bbp-template-notice { border-radius: 6px; }
div.bbp-template-notice.info { border-color: #f3c2bb; background: var(--gf-primary-soft); }
.bbp-login-form fieldset { border: 0; padding: 0; }
.bbp-login-form label { display: inline-block; min-width: 150px; font-weight: 500; }

.gf-role-badge {
	display: inline-block; margin-top: 6px; padding: 2px 8px; border-radius: 999px;
	font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
	background: var(--gf-primary-soft); color: var(--gf-primary-dark);
}
.gf-role-badge--orvos { background: #e6f0fb; color: #1d4f8c; }
.gf-role-badge--asszisztens { background: #eaf6ee; color: #1f6b3a; }

/* ---------- Reszponzív ---------- */
@media (max-width: 960px) {
	.gf-layout { grid-template-columns: minmax(0, 1fr); }
	.gf-platforms { grid-template-columns: minmax(0, 1fr); }
	.gf-footer__cols { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 782px) {
	.admin-bar .gf-menubar { top: 0; position: relative; }
	.gf-menu-toggle { display: grid; place-items: center; width: 40px; height: 44px; border: 0; background: transparent; cursor: pointer; }
	.gf-menu-toggle svg { width: 22px; height: 22px; }
	.gf-menubar__inner { flex-wrap: wrap; }
	.gf-menubar nav { order: 3; width: 100%; display: none; }
	.gf-menubar.is-open nav { display: block; }
	.gf-menu { flex-direction: column; }
	.gf-menu a { padding: 10px 4px; border-top: 1px solid var(--gf-line); }
	.gf-hero { padding: 24px 20px; }
	.gf-hero h1 { font-size: 26px; }
	.gf-logo__name { font-size: 28px; }
	#bbpress-forums li.bbp-forum-info, #bbpress-forums li.bbp-topic-title { width: 100%; float: none; }
	#bbpress-forums li.bbp-forum-topic-count, #bbpress-forums li.bbp-forum-reply-count,
	#bbpress-forums li.bbp-topic-voice-count, #bbpress-forums li.bbp-topic-reply-count { display: none; }
	#bbpress-forums li.bbp-forum-freshness, #bbpress-forums li.bbp-topic-freshness { width: 100%; float: none; text-align: left; }
}
