@font-face {
	font-family: "Roboto Flex";
	src: url("../fonts/RobotoFlex.ttf") format("truetype");
	font-weight: 400 700;
	font-display: swap;
}

:root {
	--sw-blue-dark: #0d47a1;
	--sw-blue: #1976d2;
	--sw-navy: #072a63;
	--sw-charcoal: #272727;
	--sw-max: 1100px;
	--sw-ease: cubic-bezier(.22, .8, .24, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; font-family: "Roboto Flex", system-ui, sans-serif; background: var(--sw-blue-dark); color: #fff; }
img { max-width: 100%; height: auto; }
a { color: #fff; }
::selection { background: rgba(127, 183, 255, .5); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@keyframes sw-fade { from { opacity: 0; } to { opacity: 1; } }

/* Görgetés-jelző csík */
.sw-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 100; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, #7fb7ff, #fff); pointer-events: none; }

/* ===== Fejléc (tapadó, görgetésre üveghatású) ===== */
/* A fejléc magassága SOHA nem változik görgetéskor (különben az elrendezés ugrál / remeg); csak a háttér és az árnyék. */
.sw-header { position: sticky; top: 0; z-index: 50; height: 88px; background: var(--sw-blue-dark); transition: background-color .3s, box-shadow .3s; }
.sw-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(8, 46, 112, .9); box-shadow: 0 8px 30px rgba(0, 0, 0, .25); opacity: 0; transition: opacity .3s; pointer-events: none; }
.sw-header.is-scrolled::before { opacity: 1; }
.sw-header__inner { max-width: 1280px; height: 100%; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.sw-logo { flex: none; display: block; line-height: 0; }
.sw-logo img { display: block; width: 116px; height: 116px; margin: 0; transform-origin: 0 50%; transition: transform .4s var(--sw-ease); }
.sw-logo:hover img { transform: rotate(-4deg) scale(1.05); }
.sw-header.is-scrolled .sw-logo img { transform: scale(.82); }
.sw-logo:hover img { transform: rotate(-4deg) scale(1.05); }
.sw-nav { margin-left: auto; }
.sw-actions { display: flex; align-items: center; gap: 14px; flex: none; }

/* Nyelvváltó (a Belépés gomb mellett) */
.sw-lang { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .22); }
.sw-lang a { padding: 6px 12px; border-radius: 999px; color: rgba(255, 255, 255, .75); font-size: 13px; font-weight: 500; letter-spacing: .04em; text-decoration: none; transition: background .25s, color .25s; }
.sw-lang a:hover { color: #fff; }
.sw-lang a.is-current { background: #fff; color: var(--sw-blue-dark); }

.sw-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 30px; }
.sw-nav a { position: relative; display: inline-block; padding: 6px 0; color: rgba(255, 255, 255, .9); text-decoration: none; font-weight: 500; transition: color .2s; }
.sw-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px; background: #fff; transform: scaleX(0); transform-origin: 0 50%; transition: transform .35s var(--sw-ease); }
.sw-nav a:hover, .sw-nav .current-menu-item > a { color: #fff; }
.sw-nav a:hover::after, .sw-nav .current-menu-item > a::after { transform: scaleX(1); }
.sw-nav-toggle { display: none; background: none; border: 0; width: 44px; height: 44px; cursor: pointer; }
.sw-nav-toggle i, .sw-nav-toggle i::before, .sw-nav-toggle i::after { display: block; width: 24px; height: 2px; border-radius: 2px; background: #fff; position: relative; content: ""; transition: transform .3s var(--sw-ease), top .3s var(--sw-ease), background .2s; }
.sw-nav-toggle i::before { position: absolute; top: -7px; }
.sw-nav-toggle i::after { position: absolute; top: 7px; }
.sw-nav-toggle[aria-expanded="true"] i { background: transparent; }
.sw-nav-toggle[aria-expanded="true"] i::before { top: 0; transform: rotate(45deg); }
.sw-nav-toggle[aria-expanded="true"] i::after { top: 0; transform: rotate(-45deg); }

/* ===== Tartalmi szekciók ===== */
.sw-main { display: block; }
.sw-content > .wp-block-group, .sw-section { position: relative; padding: 90px 24px; margin: 0; overflow: hidden; }
.sw-inner { max-width: var(--sw-max); margin: 0 auto; }
.sw-section--blue, .sw-bg-blue-dark { background: linear-gradient(180deg, #0d47a1 0%, #0b3f93 100%); }
.sw-section--light, .sw-bg-blue { background: linear-gradient(180deg, #1976d2 0%, #1668bd 100%); }
.sw-bg-charcoal { background: var(--sw-charcoal); }
.sw-content > .wp-block-group > * { position: relative; z-index: 1; }
.sw-content h1, .sw-content h2 { font-weight: 500; }
.sw-content h2 { font-size: clamp(26px, 3vw, 34px); margin-top: 0; }
/* A szekciók tartalma: 1100px-es, balra igazított oszlop, középre helyezve */
.sw-content > .wp-block-group > * { max-width: var(--sw-max) !important; margin-left: auto !important; margin-right: auto !important; width: 100%; }
.sw-content p { margin-top: 0; line-height: 1.7; }

/* ===== Hős (animált hálózat a háttérben) ===== */
.sw-hero { min-height: min(78vh, 640px); display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 40px; background: radial-gradient(900px 500px at 80% 20%, rgba(63, 140, 255, .35), transparent 60%), linear-gradient(160deg, #0d47a1 0%, #0a3a85 55%, #072a63 100%) !important; }
.sw-hero__net { position: absolute !important; inset: 0; z-index: 0 !important; width: 100%; height: 100%; max-width: none !important; margin: 0 !important; pointer-events: none; opacity: 0; transition: opacity 1.2s ease; }
.sw-hero__net.is-on { opacity: 1; }
.sw-hero > * { grid-row: 1; }
.sw-hero > .wp-block-heading { grid-column: 1; }
.sw-hero h1 { font-size: clamp(36px, 5.2vw, 62px); font-weight: 500; line-height: 1.15; margin: 0; letter-spacing: -.01em; text-shadow: 0 6px 30px rgba(0, 0, 0, .25); }
.sw-hero h1 .sw-line { display: block; overflow: hidden; }
.sw-hero h1 .sw-line > span { display: inline-block; animation: sw-line-in 1s var(--sw-ease) both; animation-delay: calc(.15s + var(--l, 0) * .18s); }
@keyframes sw-line-in { from { transform: translateY(110%); opacity: 0; } to { transform: none; opacity: 1; } }
.sw-hero > .wp-block-image { grid-column: 2; max-width: 320px !important; width: auto; margin: 0 !important; transform: translate3d(var(--px, 0), var(--py, 0), 0); transition: transform .5s var(--sw-ease); }
.sw-hero > .wp-block-image img { display: block; animation: sw-float 7s ease-in-out infinite, sw-fade 1.4s .4s ease both; filter: drop-shadow(0 20px 40px rgba(0, 0, 0, .35)); }
@keyframes sw-float { 50% { transform: translateY(-14px); } }

/* ===== Megjelenés görgetésre ===== */
.js [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--sw-ease), transform .8s var(--sw-ease); transition-delay: calc(var(--i, 0) * 70ms); }
.js [data-reveal].is-in { opacity: 1; transform: none; }

/* ===== Lista nyilakkal ===== */
.sw-chevrons { list-style: none; padding: 0; column-count: 2; column-gap: 48px; }
.sw-chevrons li { break-inside: avoid; padding: 7px 0 7px 26px; position: relative; transition: transform .3s var(--sw-ease), color .2s; }
.sw-chevrons li::before { content: ""; position: absolute; left: 4px; top: 17px; width: 7px; height: 7px; border-right: 2px solid #9cc9ff; border-top: 2px solid #9cc9ff; transform: rotate(45deg); transition: transform .3s var(--sw-ease), border-color .2s; }
.sw-chevrons li:hover { transform: translateX(6px); }
.sw-chevrons li:hover::before { border-color: #fff; transform: rotate(45deg) translate(2px, -2px); }

/* ===== Szolgáltatás kártyák ===== */
.sw-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.sw-grid > * { margin: 0; }
.sw-grid > .wp-block-group { position: relative; padding: 30px 28px; border-radius: 20px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .15); overflow: hidden; transition: transform .45s var(--sw-ease), background .3s, border-color .3s, box-shadow .45s; }
.sw-grid > .wp-block-group::before { content: ""; position: absolute; inset: 0; background: radial-gradient(280px circle at var(--mx, 50%) var(--my, 0%), rgba(127, 183, 255, .25), transparent 60%); opacity: 0; transition: opacity .35s; pointer-events: none; }
.sw-grid > .wp-block-group::after { content: ""; position: absolute; left: 28px; top: 0; width: 44px; height: 3px; border-radius: 0 0 4px 4px; background: linear-gradient(90deg, #7fb7ff, #fff); transform-origin: 0 0; transform: scaleX(.4); transition: transform .5s var(--sw-ease); }
.sw-grid > .wp-block-group:hover { transform: translateY(-8px); background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .32); box-shadow: 0 24px 50px rgba(0, 0, 0, .3); }
.sw-grid > .wp-block-group:hover::before { opacity: 1; }
.sw-grid > .wp-block-group:hover::after { transform: scaleX(1.6); }
.sw-grid h3 { margin: 0 0 10px; font-size: 22px; font-weight: 500; }
.sw-grid p { margin: 0; color: rgba(255, 255, 255, .85); line-height: 1.65; }

/* ===== Lábléc ===== */
.sw-footer { background: linear-gradient(180deg, #1976d2 0%, #1360b0 100%); }
.sw-footer__inner { max-width: var(--sw-max); margin: 0 auto; padding: 64px 24px 24px; }
.sw-footer h2 { margin: 0 0 8px; font-size: 22px; font-weight: 500; }
.sw-footer p { margin: 0 0 40px; }
.sw-footer a { text-decoration-color: rgba(255, 255, 255, .4); text-underline-offset: 4px; transition: text-decoration-color .2s; }
.sw-footer a:hover { text-decoration-color: #fff; }
.sw-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .3); padding-top: 16px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; }
.sw-footer-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 20px; flex-wrap: wrap; }

/* ===== Kapcsolat űrlap (Contact Form 7) ===== */
.sw-form { max-width: 640px; }
.sw-form label { display: block; margin-bottom: 20px; color: rgba(255, 255, 255, .85); font-size: 15px; }
.sw-form input[type="text"], .sw-form input[type="email"], .sw-form textarea { display: block; width: 100%; margin-top: 8px; padding: 14px 16px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 14px; font: inherit; font-size: 16px; color: #fff; background: rgba(255, 255, 255, .09); transition: border-color .2s, background .2s, box-shadow .25s; }
.sw-form textarea { min-height: 170px; resize: vertical; }
.sw-form input:focus, .sw-form textarea:focus { outline: 0; border-color: #7fb7ff; background: rgba(255, 255, 255, .15); box-shadow: 0 0 0 4px rgba(127, 183, 255, .25); }
.sw-form .wpcf7-acceptance { display: block; margin-bottom: 24px; font-size: 14px; }
.sw-form .wpcf7-acceptance label { display: flex; gap: 10px; align-items: flex-start; margin: 0; }
.sw-form .wpcf7-not-valid-tip { color: #ffc2c2; font-size: 14px; margin-top: 6px; }
.sw-form .wpcf7-response-output { margin: 24px 0 0; padding: 14px 18px; border: 1px solid rgba(255, 255, 255, .5); border-radius: 14px; background: rgba(255, 255, 255, .1); animation: sw-pop .5s var(--sw-ease) both; }
.sw-form .wpcf7-spinner { display: none; }
@keyframes sw-pop { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }

@media (max-width: 800px) {
	.sw-nav-toggle { display: block; order: 3; }
	.sw-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: rgba(8, 46, 112, .96); backdrop-filter: blur(14px); padding: 12px 24px 24px; z-index: 10; }
	.sw-nav.is-open { display: block; animation: sw-pop .35s var(--sw-ease) both; }
	.sw-nav ul { flex-direction: column; gap: 10px; }
	.sw-header { height: 72px; }
	.sw-header__inner { position: relative; padding: 0 14px; gap: 8px; }
	.sw-logo img { width: 78px; height: 78px; }
	.sw-actions { order: 2; margin-left: auto; gap: 8px; }
	.sw-lang a { padding: 5px 9px; font-size: 12px; }
	.sw-login-btn.swb--sm { padding: 7px 14px; font-size: 13px; }
	.sw-chevrons { column-count: 1; }
	.sw-hero { grid-template-columns: 1fr; min-height: 0; }
	.sw-hero > .wp-block-image { grid-column: 1; grid-row: 2; max-width: 190px !important; }
	.sw-content > .wp-block-group { padding: 60px 24px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; transition-duration: .01ms !important; }
	.js [data-reveal] { opacity: 1; transform: none; }
	.sw-hero__net { display: none; }
}

/* Belépett felhasználó a fejlécben */
.sw-profile { display: inline-flex; align-items: center; gap: 10px; padding: 3px 14px 3px 3px; border-radius: 999px; color: #fff; text-decoration: none; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .22); transition: background .25s, transform .3s var(--sw-ease); }
.sw-profile:hover { background: rgba(255, 255, 255, .2); transform: translateY(-2px); }
.sw-profile__avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; font-weight: 600; background: linear-gradient(135deg, #7fb7ff, #3f8cff 55%, #2a63d6); box-shadow: 0 4px 12px rgba(0, 0, 0, .3); }
.sw-profile__name { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 500; }
.sw-logout { padding: 9px 12px; }
.sw-logout svg { flex: none; }
.sw-logout__label { display: none; }
.sw-nav__account { display: none; }
@media (max-width: 1180px) { .sw-profile__name { display: none; } .sw-profile { padding: 3px; } }
@media (max-width: 800px) {
	.sw-profile, .sw-logout { display: none; }
	.sw-nav__account { display: grid; gap: 4px; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .2); }
	.sw-nav__account a { color: #fff; text-decoration: none; padding: 8px 0; }
}

/* Jogi oldalak (adatkezelési tájékoztató, impresszum) */
.sw-legal { counter-reset: none; }
.sw-content .sw-legal > h3 { margin: 38px auto 10px; font-size: 21px; font-weight: 500; }
.sw-content .sw-legal > p, .sw-content .sw-legal > ul { max-width: 860px !important; margin-left: auto !important; margin-right: auto !important; }
.sw-legal .wp-block-list { padding-left: 22px; }
.sw-legal li { margin: 8px 0; line-height: 1.65; }
.sw-legal .wp-block-table { max-width: 860px !important; overflow-x: auto; }
.sw-legal table { width: 100%; border-collapse: collapse; font-size: 15px; background: rgba(255, 255, 255, .06); border-radius: 12px; overflow: hidden; }
.sw-legal th, .sw-legal td { text-align: left; padding: 12px 14px; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .15); vertical-align: top; }
.sw-legal th { background: rgba(255, 255, 255, .12); font-weight: 500; }
.sw-legal a { text-underline-offset: 3px; }
