/*
Theme Name: Assembly Theme
Theme URI: https://assembly.hu
Description: Assembly fejlesztői alap-sablon WordPress-hez.
Author: Assembly
Author URI: https://assembly.hu
Version: 2026.01
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: assembly
*/

/* ==========================================================================
   CSS változók – színek, méretek központilag
   ========================================================================== */
:root {
	/* Semleges, univerzális alap – cégenként a --color-primary / --color-accent
	   értékének cseréjével könnyen „egyszínűsíthető” a sablon. */
	--color-primary: #111827; /* gombok, aside háttér                     */
	--color-accent:  #0f172a; /* #tophead háttér és sötét felületek        */
	--color-danger:  #dc2626;
	--color-text:    #1a1a1a;
	--color-muted:   #6b7280;
	--color-bg:      #ffffff;
	--color-surface: #f5f5f7; /* enyhén szürke háttér, "kártyákhoz"        */
	--color-border:  #e5e7eb;
	--color-dark:    #000000;

	--radius-sm: 4px;
	--radius-md: 8px;
	--radius-lg: 12px;

	--wrapper-max: 1800px;

	--transition-fast: 150ms ease;
	--transition-mid:  250ms ease;
	--transition-slow: 500ms ease;

	--shadow-soft: 0 1px 3px rgba(15, 23, 42, 0.06), 0 4px 20px rgba(15, 23, 42, 0.08);
	--shadow-deep: 0 10px 40px rgba(15, 23, 42, 0.12);
}

/* ==========================================================================
   Alapok / reset
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

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

body {
	margin: 0;
	padding: 0;
	color: var(--color-text);
	/* A body háttere a 4K/ultraszéles képernyők oldalsávját adja a #hd körül.
	   Ha fehér legyen végig, írd át var(--color-bg)-re. */
	background-color: var(--color-surface);
	font-family: "Manrope", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
	font-size: 17px;
	line-height: 1.65;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* A teljes oldal-tartalom "kerete" – 1920px-nél szélesebb képernyőkön
   középre húzza a sablont, hogy ne nyúljon szét vékony, elnyújtott csíkká. */
#hd {
	max-width: 1920px;
	margin: 0 auto;
	position: relative;
	background-color: var(--color-bg);
	overflow: hidden; /* pl. nagy box-shadow-k nem "szivárognak" a sávba */
}

/* Az input elemek alapból nem öröklik a font-family-t – ezt pótoljuk. */
input, select, textarea, button {
	font-family: inherit;
	font-size: inherit;
}

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

/* Akadálymentes skip-link */
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	border: 0; clip: rect(1px, 1px, 1px, 1px);
	overflow: hidden;
	white-space: nowrap;
}
.skip-link:focus {
	position: fixed;
	top: 10px; left: 10px;
	width: auto; height: auto; clip: auto;
	padding: 10px 16px;
	background: #000; color: #fff;
	z-index: 1000;
}

/* Átmenetek */
a, .fast { transition: all var(--transition-fast); }
.anim    { transition: all var(--transition-mid); }
.slow    { transition: all var(--transition-slow); }

.hide { opacity: 0 !important; }

/* ==========================================================================
   Tipográfia
   ========================================================================== */
h1, h2, h3, h4, h5, h6 {
	line-height: 1.25;
	font-weight: 700;
	letter-spacing: -0.015em;
	color: var(--color-text);
}
h1 { font-size: clamp(1.875rem, 3.5vw, 2.5rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.625rem); }
h4 { font-size: clamp(1.125rem, 2vw, 1.375rem); }

p { margin: 0 0 1em; }
a { color: var(--color-text); }

/* ==========================================================================
   Layout
   ========================================================================== */
.wrapper {
	position: relative;
	margin: 0 auto;
	padding: 0;
	max-width: var(--wrapper-max);
}

.padding {
	position: relative;
	margin: 0 3%;
}

.layout {
	padding: 5% 0;
	position: relative;
	overflow: hidden;
}

.entry {
	position: relative;
	z-index: 100;
	line-height: 1.5;
}

.narrow {
	max-width: 800px;
	margin: -80px auto 0;
	padding: 5%;
	background-color: #fff;
	box-shadow: var(--shadow-deep);
	position: relative;
}

.layoutimage {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
}

.parallax {
	text-align: center;
	background-color: var(--color-dark);
	color: #fff;
}
.parallax .entry { max-width: 640px; margin: 0 auto 2em; }
.parallax .layoutimage img {
	width: 100%; height: 100%;
	object-fit: cover;
	position: fixed;
	top: 0; left: 0;
	opacity: .5;
}

.clear { clear: both; }

/* Pozicionáló segédek (transform alapú centrálás) */
.center, .hcenter, .vcenter { position: absolute; }
.center  { top: 50%; left: 50%; transform: translate(-50%, -50%); }
.hcenter { left: 50%; transform: translateX(-50%); }
.vcenter { top: 50%; transform: translateY(-50%); }

/* ==========================================================================
   Morzsa-navigáció
   ========================================================================== */
.breadcrumb {
	font-size: 12px;
	margin: 0 0 56px;
	text-align: center;
	letter-spacing: 0.08em;
	line-height: 1.4;
	padding: 0;
	text-transform: uppercase;
	font-weight: 500;
}
.breadcrumb ul { list-style: none; padding: 0; margin: 0; }
.breadcrumb .padding { padding: 0; }
.breadcrumb li  { display: inline-block; color: rgba(255, 255, 255, .55); }
.breadcrumb a   { text-decoration: none; color: rgba(255, 255, 255, .85); transition: color var(--transition-fast); }
.breadcrumb a:hover { color: #fff; }
.breadcrumb li::after {
	content: "/";
	font-family: inherit;
	font-weight: 400;
	display: inline-block;
	margin: 0 10px;
	color: rgba(255, 255, 255, .3);
}
.breadcrumb li:last-child::after { content: none; }

/* ==========================================================================
   Gombok
   ========================================================================== */
.button {
	display: inline-block;
	padding: 14px 26px;
	background-color: var(--color-primary);
	color: #fff !important;
	border: 1px solid var(--color-primary);
	border-radius: var(--radius-sm);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-decoration: none;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: background-color var(--transition-mid), border-color var(--transition-mid), transform var(--transition-fast);
}
.button:hover {
	background-color: #000;
	border-color: #000;
	transform: translateY(-1px);
}
/* A .entry a globális szabály (aláhúzás) felülírása gomboknál. */
.entry a.button,
.entry a.button:hover { text-decoration: none; }
.button.cancel {
	background-color: transparent;
	color: var(--color-text) !important;
	border-color: var(--color-border);
}
.button.cancel:hover {
	background-color: var(--color-surface);
	border-color: var(--color-text);
}

/* ==========================================================================
   Űrlap elemek
   ========================================================================== */
.formline { margin-bottom: 10px; }

label {
	display: block;
	font-size: 13px;
	font-weight: 500;
	color: var(--color-muted);
	margin-bottom: 6px;
	letter-spacing: 0.01em;
}

.field,
#contactform textarea,
.dropdown {
	width: 100%;
	padding: 12px 14px;
	font-size: 15px;
	color: var(--color-text);
	background-color: #fff;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.field:focus,
#contactform textarea:focus,
.dropdown:focus {
	outline: none;
	border-color: var(--color-text);
	box-shadow: 0 0 0 3px rgba(17, 24, 39, 0.08);
}
#contactform textarea { min-height: 150px; resize: vertical; }

#fieldboxes {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 20px;
}
.fieldbox { font-size: 15px; min-width: 0; }

/* Checkbox sorok (pl. kapcsolat-űrlap kötelező jelölőnégyzetek) */
.checkbox-line { margin: 0 0 12px; }
.checkbox-line label.checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	width: auto;
	font-size: 14px;
	font-weight: 400;
	color: var(--color-text);
	letter-spacing: 0;
	text-transform: none;
	margin: 0;
	cursor: pointer;
	line-height: 1.5;
}
.checkbox-line input[type="checkbox"] {
	margin: 3px 0 0;
	width: 16px;
	height: 16px;
	accent-color: var(--color-primary);
	flex-shrink: 0;
	cursor: pointer;
}
.checkbox-line a {
	color: var(--color-text);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}
.checkbox-line a:hover { color: var(--color-muted); }
.checkbox-line + .formline { margin-top: 22px; }

.infotext {
	font-size: 12px;
	text-align: right;
	opacity: .7;
}

.message {
	padding: 14px 18px;
	margin-bottom: 16px;
	border-radius: var(--radius-sm);
	background-color: #ecfdf5;
	color: #065f46;
	border: 1px solid #a7f3d0;
	font-size: 14px;
}
.message.error {
	background-color: #fef2f2;
	color: #991b1b;
	border-color: #fecaca;
}

/* ==========================================================================
   Status bar / fejléc top
   ========================================================================== */
#statusbar {
	position: relative;
	padding: 8px 0 0;
	color: rgba(255, 255, 255, .75);
	font-size: 12px;
	letter-spacing: 0.02em;
	overflow: hidden;
	min-height: 32px;
	background-color: var(--color-accent);
}
.headon #statusbar { padding: 0; min-height: 0; height: 0; }
#statusbar .padding { padding-bottom: 8px; }

#slogan { padding-right: 90px; }

#icons {
	position: absolute;
	right: 0;
	top: 0;
}
#icons a {
	display: inline-block;
	color: rgba(255, 255, 255, .75);
	border-left: 1px solid rgba(255, 255, 255, .18);
	padding: 0 12px;
	text-align: center;
	font-size: 13px;
	vertical-align: middle;
	transition: color var(--transition-fast);
}
#icons a:hover { color: #fff; }

#language {
	display: inline-block;
	vertical-align: middle;
	margin-right: 10px;
	padding-right: 10px;
	border-right: 1px solid rgba(255, 255, 255, .18);
}
#language .lang {
	display: inline-block;
	vertical-align: middle;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.05em;
}
#language .lang a {
	display: inline-block;
	padding: 0 6px;
	color: rgba(255, 255, 255, .55);
	text-decoration: none;
	border: 0;
	transition: color var(--transition-fast);
}
#language .lang a:hover { color: #fff; }
#language .lang.langon a { color: #fff; }

/* ==========================================================================
   Fejléc
   ========================================================================== */
/* Csak a site fejléce (közvetlen #hd gyermek) – így a szekció-címek
   fölé használt <header class="home-section-header"> nem kap háttért/borderet. */
#hd > header {
	position: relative;
	width: 100%;
	background-color: #fff;
	border-bottom: 1px solid var(--color-border);
	z-index: 300;
}
#hd > header a, h3 a { text-decoration: none; }

.headon           { background-color: rgba(0, 0, 0, .5); }
.headon #logo     { padding: 10px 0; }
.headon #logo img { height: 120px; }

#logo {
	position: relative;
	display: inline-block;
	padding: 20px 0;
	line-height: 0;
	z-index:100;
}
#logo img { height: 150px; width: auto; }

#topmenu {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}

/* Hamburger gomb (button elem) */
#hamburger {
	display: none;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	        z-index: 1000;
}
#hambi { display: block; width: 30px; }
#hambi span {
	display: block;
	background-color: #141611;
	height: 2px;
	margin: 4px auto;
	border-radius: 1px;
	transition: all var(--transition-mid);
}

.hambitox #x1 { transform: rotateZ(45deg)  translate(4px, 4px); }
.hambitox #x2 { transform: rotateY(90deg); }
.hambitox #x3 { transform: rotateZ(-45deg) translate(4.5px, -4.5px); }

/* ==========================================================================
   Menü
   ========================================================================== */
.nav {
	list-style: none;
	padding: 0;
	margin: 0;
	font-size: 0;
}
.nav li {
	display: inline-block;
	position: relative;
	transition: all var(--transition-mid);
}
.nav li a {
	display: block;
	padding: 14px 16px;
	color: var(--color-text);
	text-decoration: none;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.01em;
	transition: color var(--transition-fast);
}
.nav li a:hover { color: var(--color-muted); }

.nav ul {
	position: absolute;
	top: 100%;
	left: 0;
	background-color: #fff;
	padding: 0;
	z-index: 99999;
	box-shadow: 0 8px 10px -5px rgba(0, 0, 0, .5);
	visibility: hidden;
	opacity: 0;
	transition: visibility 0s linear .3s, opacity .3s linear;
}
.nav li:hover > ul {
	visibility: visible;
	opacity: 1;
	transition-delay: 0s;
}
.nav ul ul { top: 30%; left: 100%; background: #343434; }
.nav ul li { width: 100%; border-top: 1px solid #fff; }
.nav ul a {
	height: auto;
	line-height: 1em;
	padding: 15px 20px;
	white-space: nowrap;
}

.nav li:active, .nav li:focus, .clicked {
	box-shadow: 0 0 0 50px rgba(0, 0, 0, .01) inset;
}

.menu-item-has-children > a::after {
	content: "\f107";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	display: inline-block;
	margin-left: 8px;
	font-size: 0.85em;
	opacity: .6;
}

.current-menu-item > a { color: var(--color-text); position: relative; }
.current-menu-item > a::before {
	content: "";
	position: absolute;
	left: 16px; right: 16px; bottom: 8px;
	height: 2px;
	background-color: var(--color-text);
}

/* ==========================================================================
   Slider vezérlők (Owl alapú fallback-hoz)
   ========================================================================== */
.owl-buttons {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	overflow: hidden;
	font-weight: 300;
}
.owl-prev, .owl-next {
	position: absolute;
	top: 0;
	color: #fff;
	font-size: 140px;
	line-height: 350px;
	width: 45%; height: 100%;
	opacity: 0;
	transition: all var(--transition-mid);
}
.owl-prev { left: 0;  padding-left: 5%; }
.owl-next { right: 0; text-align: right; padding-right: 5%; }
.owl-prev:hover, .owl-next:hover { opacity: .5; }

#slider .slide {
	height: 400px;
	background-size: cover;
	background-position: center;
}

/* ==========================================================================
   Article / post
   ========================================================================== */
article {
	float: left;
	width: calc(97% - 320px);
	position: relative;
}

#tophead {
	position: relative;
	padding: 0;
	background-color: var(--color-accent);
	overflow: hidden;
}
#tophead::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 23, 42, 0.55) 0%, rgba(15, 23, 42, 0.75) 100%);
	z-index: 1;
	pointer-events: none;
}
#tophead img {
	position: absolute;
	top: 50%; left: 50%;
	min-width: 100%; min-height: 100%;
	width: auto; height: auto;
	transform: translate(-50%, -50%);
	opacity: .3;
	object-fit: cover;
	z-index: 0;
	filter: grayscale(1) contrast(15);
}
#tophead .wrapper,
#tophead .padding,
#tophead .breadcrumb { position: relative; z-index: 2; }

#tophead h1 {
	margin: 90px 0 16px;
	font-size: clamp(1.875rem, 4vw, 2.75rem);
	font-weight: 600;
	color: #ffffff;
	text-align: center;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.editpostlink {
	position: absolute;
	right: 3%; top: 16px;
}
.editpostlink .button {
	padding: 10px 14px;
	font-size: 13px;
	background-color: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.2);
	backdrop-filter: blur(4px);
}
.editpostlink .button:hover {
	background-color: rgba(255, 255, 255, 0.2);
	border-color: rgba(255, 255, 255, 0.35);
}

/* Csempék */
ul.boxes {
	margin: 0;
	padding: 0;
	text-align: center;
	font-size: 0;
	line-height: 0;
	list-style: none;
}

.box {
	position: relative;
	display: inline-block;
	vertical-align: top;
	width: calc(20% - 40px);
	margin: 20px;
	aspect-ratio: 9 / 7;
	border-radius: var(--radius-md);
	overflow: hidden;
	background-color: var(--color-surface);
	transition: transform var(--transition-mid), box-shadow var(--transition-mid);
}
.box:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-soft);
}
.box img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	z-index: 1;
}
.box h3 {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	margin: 0;
	padding: 20px 22px;
	text-align: left;
	color: #fff;
	font-size: 19px;
	font-weight: 600;
	letter-spacing: -0.01em;
	z-index: 15;
}

.textback {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 23, 42, 0) 40%, rgba(15, 23, 42, 0.75) 100%);
	z-index: 5;
}

.subpages {
	padding: 0;
	margin: 2em 0 0;
	list-style: none;
	border-top: 1px solid var(--color-border);
}
.subpages .subpage {
	border-bottom: 1px solid var(--color-border);
}
.subpages a {
	display: block;
	padding: 18px 0;
	color: var(--color-text) !important;
	text-decoration: none;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -0.01em;
	transition: color var(--transition-fast), padding-left var(--transition-mid);
}
.subpages a:hover {
	color: var(--color-muted) !important;
	padding-left: 8px;
}

.post {
	padding: 0;
	margin: 72px 0 96px;
	position: relative;
}

.entry a        { color: var(--color-text); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.entry a:hover  { color: var(--color-muted); }

.alignleft, .alignright {
	width: 40%;
	font-size: 0;
	line-height: 0;
	border-radius: var(--radius-md);
	overflow: hidden;
}
.alignright { float: right; margin: 0 0 2% 3%; }
.alignleft  { float: left;  margin: 0 3% 2% 0; }
.alignleft img, .alignright img { width: 100%; height: 100%; object-fit: cover; }

.wp-caption-text {
	margin: 0;
	padding: 6px 10px;
	background-color: #fff;
	font-size: 15px;
	line-height: 1.4;
}

/* ==========================================================================
   Képfeltöltés (admin)
   ========================================================================== */
.ui-sortable-handle {
	float: left;
	position: relative;
	width: auto;
	height: 80px;
	margin: 0 10px 10px 0;
	border: 1px solid #ccc;
}
.ui-sortable-handle:first-child::after {
	content: "kiemelt kép";
	position: absolute;
	left: 50%; bottom: -5px;
	padding: 0 3px;
	background-color: #fff;
	font-size: 13px;
	border-radius: 4px;
	box-shadow: 1px 1px 15px rgba(0, 0, 0, .5);
	opacity: .9;
	transform: translateX(-50%);
	white-space: nowrap;
}
.ui-sortable-handle label { width: auto; padding: 0; }
.ui-sortable-handle img   { width: auto; height: 80px; }

.torles {
	position: absolute;
	right: -5px; top: -5px;
	width: 15px;
	background-color: #fff;
	border: 3px solid #d64642;
	color: #d64642;
	text-align: center;
	font-size: 13px;
	font-weight: bold;
	text-decoration: none;
	box-shadow: 2px 2px 5px rgba(0, 0, 0, .3);
	border-radius: 50%;
}
.plus { cursor: pointer; }

/* ==========================================================================
   Aside / sidebar
   ========================================================================== */
aside {
	float: right;
	width: 280px;
	margin: 60px 0;
	padding: 28px 28px 32px;
	background-color: var(--color-surface);
	color: var(--color-text);
	text-align: left;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	line-height: 1.55;
	font-size: 15px;
	list-style: none;
}
aside a { color: var(--color-text); font-weight: 600; }
aside a:hover { color: var(--color-muted); }

#facebook { overflow: hidden; }

/* ==========================================================================
   Lábléc
   ========================================================================== */
footer {
	position: relative;
	clear: both;
	padding: 60px 30px 40px;
	background-color: var(--color-accent);
	color: rgba(255, 255, 255, .55);
	text-align: center;
	font-size: 13px;
	letter-spacing: 0.01em;
	z-index: 10;
}
footer a {
	color: rgba(255, 255, 255, .85);
	text-decoration: none;
	font-weight: 500;
	transition: color var(--transition-fast);
}
footer nav li a  { color: rgba(255, 255, 255, .85) !important; }
footer a:hover   { color: #fff; }
footer span      { display: inline-block; }

#footlogo img {
    width: 60%;
    max-width: 240px;
    margin-bottom: 30px;
    border: 10px solid #ffffff;
    opacity: .9;
    border-radius: 20px;
    box-shadow: 0 0 0 5px #abb2c3;
}

/* Közösségi / kapcsolati ikonok a láblécben */
footer .social-icons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin: 0 0 24px;
}
footer .social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.08);
	color: rgba(255, 255, 255, 0.85) !important;
	font-size: 16px;
	font-weight: 400;
	text-decoration: none;
	transition: background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}
footer .social-icon:hover {
	background-color: rgba(255, 255, 255, 0.16);
	color: #fff !important;
	transform: translateY(-2px);
}

/* ==========================================================================
   Kezdőoldal – szekciók
   ========================================================================== */
.home-section {
	position: relative;
	padding: 80px 0;
}
.home-section + .home-section { border-top: 1px solid var(--color-border); }

/* Váltakozó háttér – tiszta vizuális ritmus */
.home-section:nth-of-type(even) { background-color: var(--color-surface); }

/* „Eyebrow" kis felső címke, ami fölé emeli a szekció-címeket */
.home-eyebrow {
	display: inline-block;
	margin-bottom: 10px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-muted);
}

.home-section-header {
	max-width: 720px;
	margin: 0 auto 48px;
	text-align: center;
}
.home-section-header h2 {
	margin: 0;
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.02em;
}

/* ---- Bemutatkozó ---- */
.home-about-inner {
	max-width: 780px;
	margin: 0 auto;
	text-align: center;
	position: relative;
}
.home-about-inner h2 {
	margin: 0 0 20px;
	font-size: clamp(1.875rem, 3.2vw, 2.5rem);
	font-weight: 700;
	letter-spacing: -0.02em;
}
.home-about-excerpt {
	font-size: 17px;
	line-height: 1.7;
	color: var(--color-text);
	margin: 0 0 28px;
}
.home-about-excerpt p { margin: 0 0 1em; }
.home-about-excerpt p:last-child { margin-bottom: 0; }
.home-about-cta { margin: 0; }
.home-about-inner .editpostlink {
	position: absolute;
	right: 0; top: 0;
}

/* ---- Szolgáltatásaink ---- */
.home-services-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	justify-content: center;
}
/* 1 elem esetén nincs értelme gridnek – sima blokk, középre zárva */
.home-services-grid--count-1 {
	display: block;
	max-width: 420px;
	margin-left: auto;
	margin-right: auto;
}
.home-services-grid--count-2 {
	grid-template-columns: repeat(2, 1fr);
	max-width: 880px;
	margin-left: auto;
	margin-right: auto;
}
.service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	/* A téma globális `article { float: left; width: calc(97% - 320px) }`
	   szabálya ezt a szekció-kártyát szétcsúsztatná – explicit reset. */
	float: none;
	width: auto;
	background-color: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	overflow: hidden;
	transition: transform var(--transition-mid), box-shadow var(--transition-mid), border-color var(--transition-mid);
}
.service-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-soft);
	border-color: var(--color-text);
}
.home-section:nth-of-type(even) .service-card {
	background-color: var(--color-bg);
}
.service-card-thumb {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background-color: var(--color-surface);
}
.service-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform var(--transition-mid);
}
.service-card:hover .service-card-thumb img { transform: scale(1.04); }
.service-card-body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	padding: 24px 24px 22px;
}
.service-card-title {
	margin: 0 0 10px;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -0.01em;
}
.service-card-title a {
	color: var(--color-text);
	text-decoration: none;
	transition: color var(--transition-fast);
}
.service-card:hover .service-card-title a { color: var(--color-primary); }
.service-card-excerpt {
	margin: 0 0 18px;
	color: var(--color-muted);
	font-size: 15px;
	line-height: 1.55;
	flex: 1 1 auto;
}
.service-card-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--color-primary);
	text-decoration: none;
	transition: gap var(--transition-fast);
}
.service-card-link:hover { gap: 12px; }

.home-services-fallback {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
	color: var(--color-muted);
	font-size: 16px;
}
.home-services-fallback .button { margin-top: 8px; }

/* ---- Hírek ---- */
.home-news-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	justify-content: center;
}
/* 1 bejegyzés esetén nincs értelme gridnek – sima blokk, középre zárva */
.home-news-grid--count-1 {
	display: block;
	max-width: 420px;
	margin-left: auto;
	margin-right: auto;
}
.home-news-grid--count-2 {
	grid-template-columns: repeat(2, 1fr);
	max-width: 880px;
	margin-left: auto;
	margin-right: auto;
}
.news-card {
	display: flex;
	flex-direction: column;
	/* A globális `article { float: left; width: calc(97% - 320px) }` és
	   a `.post { margin: 72px 0 96px }` nem szabad hogy érvényesüljön
	   a kezdőoldali kártyáknál (ezek a post_class miatt megjelennek). */
	float: none;
	width: auto;
	margin: 0;
	background-color: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	overflow: hidden;
	transition: transform var(--transition-mid), box-shadow var(--transition-mid);
}
.news-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.news-card-thumb {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background-color: var(--color-surface);
}
.news-card-thumb img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform var(--transition-mid);
}
.news-card:hover .news-card-thumb img { transform: scale(1.04); }
.news-card-body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	padding: 22px 24px 24px;
}
.news-card-date {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-muted);
	margin-bottom: 8px;
}
.news-card-title {
	margin: 0 0 10px;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.35;
}
.news-card-title a {
	color: var(--color-text);
	text-decoration: none;
	transition: color var(--transition-fast);
}
.news-card:hover .news-card-title a { color: var(--color-primary); }
.news-card-excerpt {
	margin: 0 0 16px;
	color: var(--color-muted);
	font-size: 15px;
	line-height: 1.55;
	flex: 1 1 auto;
}
.news-card-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--color-primary);
	text-decoration: none;
	transition: gap var(--transition-fast);
}
.news-card-link:hover { gap: 12px; }

/* ---- Kapcsolat CTA – sötét kártya világos háttér fölött, hogy
   vizuálisan elváljon a láblécztől (amely ugyanilyen sötét tónusú). ---- */
.home-cta {
	padding-top: 60px;
	padding-bottom: 60px;
}
.home-cta-inner {
	max-width: 880px;
	margin: 0 auto;
	padding: 56px 40px;
	background-color: var(--color-primary);
	color: #fff;
	border-radius: var(--radius-md);
	text-align: center;
	box-shadow: var(--shadow-soft);
}
.home-cta-inner h2 {
	margin: 0 0 14px;
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #fff;
}
.home-cta-inner p {
	margin: 0 0 28px;
	font-size: 17px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.82);
}
.home-cta-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin: 0 !important;
}
.home-cta-actions .button {
	background-color: #fff;
	border-color: #fff;
	color: var(--color-primary) !important;
}
.home-cta-actions .button:hover {
	background-color: #e5e7eb;
	border-color: #e5e7eb;
	color: var(--color-primary) !important;
	transform: translateY(-1px);
}
.home-cta-actions .button.cancel {
	background-color: transparent;
	border-color: rgba(255, 255, 255, 0.35);
	color: #fff !important;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.home-cta-actions .button.cancel:hover {
	background-color: rgba(255, 255, 255, 0.12);
	border-color: #fff;
	color: #fff !important;
	transform: translateY(-1px);
}

/* ==========================================================================
   Reszponzív
   ========================================================================== */
@media (max-width: 1600px) {
	.box { width: calc(25% - 40px); font-size: 19px; }
	.nav li a { padding: 15px 10px; font-size: 16px; }
}

@media (max-width: 1350px) {
	.box      { width: calc(33% - 40px); font-size: 16px; }
	article   { width: 100%; float: none; }
	aside     { float: none; width: auto; margin: 30px 0; }

	#slider .slide { height: 300px; }
	.owl-prev, .owl-next { line-height: 270px; }

	#hamburger {
		display: inline-block;
		position: absolute;
		right: 3%;
		top: 50%;
		width: 40px;
		cursor: pointer;
		transform: translateY(-50%);
	}

	#fullmenu { position: absolute; }

	header nav {
		position: absolute;
		top: 100% !important;
		right: 0 !important;
		width: 100%;
		background-color: #fff;
		opacity: 0;
		visibility: hidden;
		transform: translateY(10%);
		transition: all var(--transition-mid);
		z-index: 30;
		display:none;
	}
	header .nav ul     { width: 100%; position: static; visibility: visible; opacity: 1; box-shadow: none; }
	header .nav ul li  { text-align: center; background-color: #fff; width: 100%; border-top: 1px solid rgba(0, 0, 0, .08); }
	header .nav li     { display: block; text-align: center; width: 100%; }
	header .nav li a   { border: 0; font-size: 14px; }
	header .menuon {
		transform: translateY(0%) !important;
		opacity: 1 !important;
		visibility: visible !important;
		display: block !important;
	}
}

/* ==========================================================================
   404 oldal
   ========================================================================== */
.tophead-error .padding {
	text-align: center;
	padding-top: 40px;
	padding-bottom: 40px;
}
.tophead-error .error-number {
	display: block;
	font-size: clamp(6rem, 16vw, 11rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.04em;
	color: #fff;
	opacity: 0.9;
	margin: 40px 0 8px;
}
.tophead-error h1 {
	margin: 0 0 24px;
	font-size: clamp(1.25rem, 2.4vw, 1.75rem);
	font-weight: 500;
	color: rgba(255, 255, 255, 0.85);
	letter-spacing: 0;
}

.error404 article.error-404 {
	float: none;
	width: 100%;
	max-width: 720px;
	margin: 0 auto;
}
.error-404 .entry { text-align: center; }
.error-404 .error-lead {
	font-size: 17px;
	line-height: 1.6;
	color: var(--color-muted);
	margin: 0 auto 28px;
	max-width: 560px;
}
.error-404 .error-search {
	max-width: 520px;
	margin: 0 auto 24px;
}
.error-404 .error-search .search-form {
	display: flex;
	gap: 8px;
	align-items: stretch;
	width: 100%;
}
.error-404 .error-search .search-field {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	height: 46px;
	padding: 0 14px;
	font-size: 15px;
	background-color: #fff;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	color: var(--color-text);
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.error-404 .error-search .search-field:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.08);
}
.error-404 .error-search .search-submit {
	flex: 0 0 auto;
	height: 46px;
	padding: 0 20px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	line-height: 1;
}
.error-404 .error-actions {
	margin: 0 0 48px;
}
.error-404 .error-actions .button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.error-404 .error-nav {
	border-top: 1px solid var(--color-border);
	padding-top: 32px;
	margin-top: 24px;
}
.error-404 .error-nav h2 {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-muted);
	margin: 0 0 16px;
}
.error-404 .error-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 24px;
}
.error-404 .error-nav-list li { margin: 0; padding: 0; }
.error-404 .error-nav-list a {
	display: inline-block;
	padding: 6px 4px;
	font-size: 15px;
	font-weight: 500;
	color: var(--color-text);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color var(--transition-fast), border-color var(--transition-fast);
}
.error-404 .error-nav-list a:hover {
	color: var(--color-primary);
	border-bottom-color: var(--color-primary);
}

@media (max-width: 560px) {
	.alignleft, .alignright { float: none; margin: 0 0 1em; width: 100%; }
	.alignleft img, .alignright img { width: 100%; height: auto; }
	
	.error-404 .error-search form,
	.error-404 .error-search .search-form {
		flex-direction: column;
	}
}

/* ==========================================================================
   Keresési eredmények oldal
   ========================================================================== */
.tophead-search .search-meta {
	margin: 4px 0 0;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.75);
	text-align: center;
}

.search article.search-results {
	float: none;
	width: 100%;
	max-width: 860px;
	margin: 0 auto;
}

.search-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.search-item {
	padding: 24px 0;
	border-bottom: 1px solid var(--color-border);
}
.search-item:first-child { padding-top: 8px; }
.search-item:last-child  { border-bottom: none; }

.search-item-title {
	margin: 0 0 6px;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
}
.search-item-title a {
	color: var(--color-text);
	text-decoration: none;
	transition: color var(--transition-fast);
}
.search-item-title a:hover { color: var(--color-primary); }

.search-item-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 12px;
	margin: 0 0 10px;
	font-size: 13px;
	color: var(--color-muted);
}
.search-item-type {
	display: inline-block;
	padding: 2px 10px;
	border: 1px solid var(--color-border);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.search-item-url {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 12px;
	opacity: 0.8;
	word-break: break-all;
}

.search-item-excerpt {
	font-size: 15px;
	line-height: 1.6;
	color: var(--color-text);
}
.search-item-excerpt p { margin: 0; }
.search-item-excerpt p + p { margin-top: 8px; }

/* Üres állapot */
.search-empty {
	max-width: 520px;
	margin: 0 auto;
	padding: 32px 0;
	text-align: center;
}
.search-empty h2 {
	margin: 0 0 12px;
	font-size: 22px;
	font-weight: 600;
}
.search-empty p {
	color: var(--color-muted);
	margin: 0 0 24px;
}
.search-empty-form .search-form {
	display: flex;
	gap: 8px;
	align-items: stretch;
}
.search-empty-form .search-field {
	flex: 1 1 auto;
	min-width: 0;
}

/* Oldalszámozás */
.search-results .navigation {
	margin-top: 32px;
	padding-top: 16px;
}
.search-results .pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
}
.search-results .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	font-size: 14px;
	font-weight: 500;
	color: var(--color-text);
	text-decoration: none;
	transition: all var(--transition-fast);
}
.search-results .page-numbers:hover {
	background-color: var(--color-surface);
	border-color: var(--color-text);
}
.search-results .page-numbers.current {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: #fff;
}

@media (max-width: 1000px) {
	.box               { width: calc(50% - 40px); font-size: 16px; }
	.home-services-grid,
	.home-news-grid    { grid-template-columns: repeat(2, 1fr); gap: 20px; }
	.home-section      { padding: 60px 0; }
}

@media (max-width: 800px) {
	.box          { width: calc(50% - 40px); font-size: 15px; }
}

@media (max-width: 560px) {
	.box               { width: calc(100% - 40px); font-size: 15px; }
	#fieldboxes        { grid-template-columns: 1fr; gap: 16px; }
	#logo img          { height: 100px; }
	.home-services-grid,
	.home-news-grid    { grid-template-columns: 1fr; gap: 16px; }
	.home-section      { padding: 48px 0; }
	.home-section-header { margin-bottom: 32px; }
}

@media (max-width: 400px) {

	label { width: auto; }
}

/* Csökkentett animáció – akadálymentesség */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
