/*
Theme Name: Hacktify Learn
Description: A Hacktify e-learning felülete (learn.hacktify.com), a hacktify.com Astro arculatára építve, Tutor LMS-hez.
Author: Hacktify International Kft.
Version: 0.1.0
Text Domain: hacktify-learn
WPVibe: yes
*/

/* Hacktify Learn: az Astro látványterv (v18) tokenjei.
   Navy #081427, Teal #56A099, Mély teal #2F6B65, Pára #EAF3F1, Köd #F4F8F7,
   Szürke #5B6B7C, Vonal #E1EAE8, Sötét kártya #14223B. Figtree + IBM Plex Mono. */
:root {
	--hk-navy: #081427;
	--hk-navy-2: #14223B;
	--hk-teal: #56A099;
	--hk-teal-deep: #2F6B65;
	--hk-teal-light: #8FD0C7;
	--hk-para: #EAF3F1;
	--hk-kod: #F4F8F7;
	--hk-line: #E1EAE8;
	--hk-line-2: #D5E2DF;
	--hk-muted: #5B6B7C;
	--hk-ice: #C5D3E1;
	--hk-coral: #E0664F;
	--hk-w: 1200px;
	--hk-font: "Figtree", Arial, sans-serif;
	--hk-mono: "IBM Plex Mono", ui-monospace, monospace;
}

/* Tutor LMS színei a Hacktify palettára (a body szintű definíció felülírja a Tutor :root értékeit). */
body {
	--tutor-color-primary: #081427;
	--tutor-color-primary-rgb: 8, 20, 39;
	--tutor-color-primary-hover: #2F6B65;
	--tutor-color-primary-hover-rgb: 47, 107, 101;
	--tutor-body-color: #081427;
	--tutor-border-color: #E1EAE8;
	--tutor-color-gray: #E1EAE8;
	--tutor-color-secondary: #5B6B7C;
	--tutor-color-success: #2F6B65;
	--tutor-color-success-rgb: 47, 107, 101;
	--tutor-color-warning: #B7791F;
	--tutor-color-danger: #B4442F;
	margin: 0;
	font-family: var(--hk-font);
	font-size: 17px;
	line-height: 1.6;
	color: var(--hk-navy);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}
body > main, .hk-main { flex: 1 0 auto; }
*, *::before, *::after { box-sizing: border-box; }
img, svg { max-width: 100%; }
a { color: var(--hk-teal-deep); }
a:hover { color: var(--hk-navy); }
:focus-visible { outline: 2px solid var(--hk-teal); outline-offset: 2px; }
::selection { background: var(--hk-teal); color: var(--hk-navy); }
[x-cloak] { display: none !important; }

.hk-wrap { width: 100%; max-width: var(--hk-w); margin: 0 auto; padding: 0 20px; }
@media (min-width: 640px) { .hk-wrap { padding: 0 32px; } }
.hk-kick { font-family: var(--hk-mono); font-size: 13px; text-transform: uppercase; letter-spacing: .14em; margin: 0; }
.hk-mono { font-family: var(--hk-mono); }
.hk-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hk-wordmark { font-weight: 800; letter-spacing: .12em; font-size: 20px; line-height: 1; }

/* ── Gombok ── */
.hk-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 6px; padding: 11px 18px; font: 700 15px/1.2 var(--hk-font); text-decoration: none; border: 0; cursor: pointer; transition: background-color .15s, color .15s, box-shadow .15s; white-space: nowrap; }
.hk-btn--teal { background: var(--hk-teal); color: var(--hk-navy); }
.hk-btn--teal:hover { background: #fff; color: var(--hk-navy); }
.hk-btn--navy { background: var(--hk-navy); color: #fff; }
.hk-btn--navy:hover { background: var(--hk-teal-deep); color: #fff; }
.hk-btn--ghost { background: transparent; color: var(--hk-navy); box-shadow: inset 0 0 0 1px var(--hk-line-2); }
.hk-btn--ghost:hover { box-shadow: inset 0 0 0 1px var(--hk-navy); color: var(--hk-navy); }
.hk-btn svg { width: 16px; height: 16px; flex: none; }

/* ── Fejléc ── */
.hk-util { background: var(--hk-kod); border-bottom: 1px solid var(--hk-line); font-size: 13px; }
.hk-util .hk-wrap { display: flex; align-items: center; justify-content: space-between; height: 40px; gap: 16px; }
.hk-util a { color: var(--hk-muted); text-decoration: none; }
.hk-util a:hover { color: var(--hk-navy); }
.hk-util__right { display: flex; align-items: center; gap: 20px; }
.hk-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--hk-teal); margin-right: 8px; vertical-align: 1px; }

.hk-head { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--hk-line); }
.admin-bar .hk-head { top: 32px; }
@media (max-width: 782px) { .admin-bar .hk-head { top: 46px; } }
.hk-head .hk-wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 72px; }
.hk-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; color: var(--hk-navy); }
.hk-brand img { height: 18px; width: auto; display: block; }
.hk-brand__tag { font-family: var(--hk-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .14em; color: var(--hk-teal-deep); padding-left: 14px; border-left: 1px solid var(--hk-line-2); line-height: 18px; }
.hk-nav { display: flex; align-items: stretch; height: 100%; }
.hk-nav ul { display: flex; align-items: stretch; list-style: none; margin: 0; padding: 0; }
.hk-nav li { display: flex; }
.hk-nav a { position: relative; display: flex; align-items: center; padding: 0 14px; font-size: 15px; font-weight: 600; color: var(--hk-navy); text-decoration: none; white-space: nowrap; }
.hk-nav a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 0; height: 3px; background: var(--hk-teal); transform: scaleX(0); transition: transform .2s; }
.hk-nav a:hover::after, .hk-nav .current-menu-item > a::after, .hk-nav a[aria-current="page"]::after { transform: scaleX(1); }
.hk-head__cta { display: flex; align-items: center; gap: 10px; }
.hk-burger { display: none; background: none; border: 0; padding: 8px; color: var(--hk-navy); cursor: pointer; }
.hk-burger svg { width: 24px; height: 24px; display: block; }
.hk-mnav { display: none; border-top: 1px solid var(--hk-line); background: #fff; padding: 12px 0 20px; }
.hk-mnav ul { list-style: none; margin: 0; padding: 0; }
.hk-mnav a { display: block; padding: 12px 0; font-size: 17px; font-weight: 600; color: var(--hk-navy); text-decoration: none; border-bottom: 1px solid var(--hk-line); }
.hk-mnav .hk-btn { margin-top: 16px; width: 100%; }
@media (max-width: 960px) {
	.hk-nav, .hk-util, .hk-head__cta .hk-btn--ghost, .hk-brand__tag { display: none; }
	.hk-burger { display: block; }
	.hk-head .hk-wrap { height: 60px; }
	.hk-mnav.is-open { display: block; }
}

/* ── Pontmátrix (a hacktify.com hero motívuma) ── */
.hk-dots { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(var(--cols, 22), 1fr); gap: 0; pointer-events: none; }
.hk-dots i { display: block; width: 4px; height: 4px; margin: auto; background: var(--hk-navy-2); }
.hk-dots i.on { background: var(--hk-teal); animation: hktw 5s ease-in-out infinite; }
@keyframes hktw { 0%, 100% { opacity: 1; } 50% { opacity: .2; } }
.hk-scan { position: absolute; top: 0; bottom: 0; width: 3px; background: var(--hk-teal); box-shadow: 0 0 18px 4px rgba(86,160,153,.45); animation: hkscan 9s 1.2s ease-in-out infinite; opacity: 0; }
@keyframes hkscan { 0% { left: 0; opacity: 0; } 5% { opacity: .9; } 30% { left: 100%; opacity: .9; } 32%, 100% { left: 100%; opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .hk-dots i.on, .hk-scan { animation: none; } .hk-scan { display: none; } }

/* ── Hero ── */
.hk-hero { position: relative; overflow: hidden; background: var(--hk-navy); color: #fff; }
.hk-hero__field { position: absolute; top: 0; bottom: 0; right: 0; width: 42%; -webkit-mask-image: linear-gradient(to right, transparent, #000 35%); mask-image: linear-gradient(to right, transparent, #000 35%); }
.hk-hero .hk-wrap { position: relative; padding-top: 80px; padding-bottom: 190px; }
.hk-hero .hk-kick { color: var(--hk-teal-light); }
.hk-hero h1 { margin: 20px 0 0; font-weight: 300; text-transform: uppercase; font-size: clamp(42px, 7vw, 88px); line-height: 1.06; letter-spacing: -.02em; }
.hk-hero h1 b { font-weight: 800; display: block; }
.hk-hero__lead { margin: 28px 0 0; max-width: 580px; font-size: 19px; line-height: 1.55; color: var(--hk-ice); }
@media (max-width: 760px) { .hk-hero__field { width: 100%; opacity: .5; } .hk-hero .hk-wrap { padding-top: 56px; padding-bottom: 170px; } }

/* ── Ajtók (a hero szélére lógó kártyák) ── */
.hk-doors { position: relative; z-index: 5; margin-top: -130px; }
.hk-doors > .hk-wrap > .hk-kick { color: var(--hk-teal-light); margin-bottom: 16px; }
.hk-doors__grid { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .hk-doors__grid { grid-template-columns: 1fr; } }
.hk-door { position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 280px; padding: 28px; border-radius: 18px; background: #fff; color: var(--hk-navy); text-decoration: none; box-shadow: 0 30px 60px -30px rgba(8,20,39,.45), 0 0 0 1px var(--hk-line-2); transition: transform .3s; }
.hk-door:hover { transform: translateY(-4px); color: var(--hk-navy); }
.hk-door .hk-kick { color: var(--hk-teal-deep); margin: 0; position: relative; }
.hk-door__q { position: relative; margin: 16px 0 0; font-size: 26px; font-weight: 700; line-height: 1.12; }
.hk-door__d { position: relative; margin: 8px 0 0; font-size: 16px; color: var(--hk-muted); }
.hk-door__tags { position: relative; margin-top: 20px; display: flex; flex-wrap: wrap; gap: 6px; }
.hk-tag { font-family: var(--hk-mono); font-size: 13px; padding: 4px 8px; border-radius: 4px; background: var(--hk-para); color: var(--hk-teal-deep); }
.hk-door__foot { position: relative; margin-top: auto; padding-top: 20px; border-top: 1px solid var(--hk-line); display: flex; align-items: center; justify-content: space-between; font-size: 16px; font-weight: 600; }
.hk-door__tags + .hk-door__foot { margin-top: auto; }
.hk-door__arrow { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 6px; background: var(--hk-navy); color: #fff; transition: background-color .15s; }
.hk-door:hover .hk-door__arrow { background: var(--hk-teal-deep); }
.hk-door__arrow svg { width: 18px; height: 18px; }
.hk-door--dark { background: var(--hk-navy-2); color: #fff; box-shadow: 0 0 0 1px rgba(86,160,153,.5); }
.hk-door--dark:hover { color: #fff; }
.hk-door--dark .hk-kick { color: var(--hk-teal-light); }
.hk-door--dark .hk-door__d { color: var(--hk-ice); }
.hk-door--dark .hk-tag { background: rgba(255,255,255,.1); color: #fff; }
.hk-door--dark .hk-door__foot { border-color: rgba(255,255,255,.1); }
.hk-door--dark .hk-door__arrow { background: var(--hk-teal); color: var(--hk-navy); }
.hk-door--dark .hk-dots { opacity: .6; }

/* ── Szekciók ── */
.hk-sec { padding: 96px 0; }
.hk-sec--mist { background: var(--hk-kod); }
.hk-sec__head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.hk-sec__head .hk-kick { color: var(--hk-teal-deep); }
.hk-h2 { margin: 10px 0 0; font-size: clamp(30px, 4vw, 44px); line-height: 1.08; font-weight: 300; text-transform: uppercase; letter-spacing: -.01em; }
.hk-h2 b { font-weight: 800; }
.hk-more { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; color: var(--hk-teal-deep); text-decoration: none; white-space: nowrap; }
.hk-more:hover { color: var(--hk-navy); }
.hk-more svg { width: 15px; height: 15px; }

/* Kurzuscsoportok */
.hk-groups { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.hk-group { display: flex; align-items: center; gap: 16px; padding: 18px; border-radius: 12px; background: #fff; border: 1px solid var(--hk-line); text-decoration: none; color: var(--hk-navy); transition: border-color .15s; }
.hk-group:hover { border-color: var(--hk-navy); color: var(--hk-navy); }
.hk-group__code { flex: none; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 8px; background: var(--hk-para); color: var(--hk-teal-deep); font: 600 20px/1 var(--hk-mono); transition: background-color .15s, color .15s; }
.hk-group:hover .hk-group__code { background: var(--hk-navy); color: var(--hk-teal); }
.hk-group__t { display: block; font-size: 16px; font-weight: 700; line-height: 1.25; }
.hk-group__n { display: block; margin-top: 2px; font: 13px var(--hk-mono); color: var(--hk-muted); }

/* Kurzuskártyák */
.hk-courses { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.hk-course { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: #fff; border: 1px solid var(--hk-line); text-decoration: none; color: var(--hk-navy); transition: border-color .15s, transform .3s; }
.hk-course:hover { border-color: var(--hk-navy); transform: translateY(-3px); color: var(--hk-navy); }
.hk-course__img { position: relative; aspect-ratio: 16 / 9; background: var(--hk-navy); overflow: hidden; }
.hk-course__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hk-course__img .hk-tag { position: absolute; left: 12px; top: 12px; background: var(--hk-navy-2); color: var(--hk-teal-light); text-transform: uppercase; letter-spacing: .1em; font-size: 12px; }
.hk-course__body { padding: 20px; display: flex; flex-direction: column; flex: 1; }
.hk-course__t { margin: 0; font-size: 19px; font-weight: 700; line-height: 1.25; }
.hk-course__x { margin: 8px 0 0; font-size: 15px; color: var(--hk-muted); }
.hk-course__meta { margin-top: auto; padding-top: 16px; display: flex; gap: 16px; font: 13px var(--hk-mono); color: var(--hk-muted); }

.hk-empty { display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: center; padding: 32px; border-radius: 18px; background: var(--hk-navy); color: #fff; position: relative; overflow: hidden; }
.hk-empty .hk-dots { left: 45%; -webkit-mask-image: linear-gradient(to right, transparent, #000 40%); mask-image: linear-gradient(to right, transparent, #000 40%); }
.hk-empty .hk-kick { color: var(--hk-teal-light); }
.hk-empty p { margin: 6px 0 0; color: var(--hk-ice); }
.hk-empty strong { display: block; margin-top: 8px; font-size: 24px; line-height: 1.2; color: #fff; }
.hk-empty__code { position: relative; display: flex; align-items: center; justify-content: center; width: 88px; height: 88px; border-radius: 12px; background: var(--hk-teal); color: var(--hk-navy); font: 600 30px/1 var(--hk-mono); }
.hk-empty > div:not(.hk-dots) { position: relative; }
@media (max-width: 640px) { .hk-empty { grid-template-columns: 1fr; } .hk-empty__code { width: 64px; height: 64px; font-size: 22px; } }

/* Így működik: jelsor */
.hk-steps { display: grid; gap: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--hk-line-2); }
@media (max-width: 900px) { .hk-steps { grid-template-columns: 1fr; } }
.hk-step { padding: 28px 28px 8px 0; position: relative; }
.hk-step::before { content: ""; position: absolute; top: -1px; left: 0; width: 64px; height: 3px; background: var(--hk-teal); }
.hk-step__n { font: 600 14px var(--hk-mono); color: var(--hk-teal-deep); }
.hk-step__t { margin: 12px 0 0; font-size: 22px; font-weight: 700; line-height: 1.2; }
.hk-step__d { margin: 8px 0 0; font-size: 16px; color: var(--hk-muted); max-width: 340px; }

/* CTA sáv */
.hk-cta { position: relative; overflow: hidden; background: var(--hk-navy); color: #fff; border-radius: 22px; padding: 56px; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 40px; align-items: center; }
@media (max-width: 900px) { .hk-cta { grid-template-columns: 1fr; padding: 36px 24px; } }
.hk-cta .hk-dots { left: 55%; opacity: .7; -webkit-mask-image: linear-gradient(to right, transparent, #000 40%); mask-image: linear-gradient(to right, transparent, #000 40%); }
.hk-cta > *:not(.hk-dots) { position: relative; }
.hk-cta h2 { margin: 0; font-size: clamp(30px, 4vw, 46px); line-height: 1.06; font-weight: 300; text-transform: uppercase; }
.hk-cta h2 b { font-weight: 800; display: block; }
.hk-cta p { margin: 16px 0 0; color: var(--hk-ice); max-width: 520px; }
.hk-cta__side { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.hk-cta__side a.hk-plain { color: #fff; font-weight: 600; text-decoration: none; }
.hk-cta__side a.hk-plain:hover { color: var(--hk-teal-light); }

/* ── Lábléc ── */
.hk-foot { margin-top: 96px; background: var(--hk-navy); color: #fff; overflow: hidden; }
.home .hk-foot { margin-top: 0; }
.hk-foot__top { display: grid; gap: 48px; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); padding-top: 64px; }
@media (max-width: 900px) { .hk-foot__top { grid-template-columns: 1fr; } }
.hk-foot__logo { display: inline-flex; align-items: center; gap: 18px; text-decoration: none; }
.hk-foot__logo img { display: block; width: 200px; height: auto; }
.hk-foot__tag { font-family: var(--hk-mono); font-size: 15px; text-transform: uppercase; letter-spacing: .14em; color: #8FD0C7; padding-left: 18px; border-left: 1px solid rgba(255,255,255,.25); line-height: 28px; }
.hk-foot__logo .hk-wordmark { font-size: 30px; color: #fff; }
.hk-foot__claim { margin: 40px 0 0; font-size: 28px; font-weight: 300; text-transform: uppercase; line-height: 1.1; }
.hk-foot__claim b { font-weight: 800; display: block; }
.hk-foot__contact { margin-top: 24px; font-size: 16px; }
.hk-foot__contact a { display: block; color: #fff; font-weight: 600; text-decoration: none; margin-bottom: 6px; }
.hk-foot__contact a:hover { color: var(--hk-teal-light); }
.hk-foot__contact span { display: block; margin-top: 4px; font-size: 15px; color: var(--hk-ice); }
.hk-foot__cols { display: grid; gap: 40px 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 640px) { .hk-foot__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hk-foot__cols .hk-kick { font-size: 12px; color: var(--hk-teal-light); }
.hk-foot__cols ul { list-style: none; margin: 16px 0 0; padding: 0; }
.hk-foot__cols li { margin-bottom: 10px; }
.hk-foot__cols a { color: var(--hk-ice); text-decoration: none; font-size: 15px; }
.hk-foot__cols a:hover { color: #fff; }
.hk-foot__bar { margin-top: 56px; border-top: 1px solid rgba(255,255,255,.1); }
.hk-foot__bar .hk-wrap { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between; padding-top: 24px; padding-bottom: 24px; font-size: 14px; color: var(--hk-ice); }
.hk-foot__bar .hk-mono { font-size: 13px; }

/* ── Oldalak és tananyag szöveg ── */
.hk-page-head { background: var(--hk-kod); border-bottom: 1px solid var(--hk-line); }
.hk-page-head .hk-wrap { padding-top: 48px; padding-bottom: 40px; }
.hk-page-head .hk-kick { color: var(--hk-teal-deep); }
.hk-page-head h1 { margin: 10px 0 0; font-size: clamp(32px, 4.5vw, 52px); line-height: 1.06; font-weight: 800; letter-spacing: -.01em; }
.hk-page { padding-top: 48px; padding-bottom: 24px; }
.hk-tutor-page { padding-bottom: 24px; }
.hk-prose { max-width: 760px; }
.hk-prose > * + * { margin-top: 1em; }
.hk-prose h2, .hk-prose h3, .tutor-course-details-content h2, .tutor-course-details-content h3 { font-weight: 800; line-height: 1.2; margin: 1.6em 0 .5em; }
.hk-prose h2 { font-size: 30px; }
.hk-prose h3 { font-size: 23px; }
.hk-prose ul, .hk-prose ol,
.tutor-course-details-content ul, .tutor-course-details-content ol,
.tutor-lesson-content ul, .tutor-lesson-content ol,
.tutor-course-topic-single-body ul, .tutor-course-topic-single-body ol { padding-left: 1.4em; margin: 1em 0; }
.hk-prose ul, .tutor-course-details-content ul, .tutor-lesson-content ul, .tutor-course-topic-single-body ul { list-style: disc; }
.hk-prose ol, .tutor-course-details-content ol, .tutor-lesson-content ol, .tutor-course-topic-single-body ol { list-style: decimal; }
.hk-prose li::marker, .tutor-lesson-content li::marker { color: var(--hk-teal-deep); }
.hk-prose p, .tutor-lesson-content p, .tutor-course-topic-single-body p { margin: 0 0 1em; }
.hk-prose table, .tutor-lesson-content table { width: 100%; border-collapse: collapse; font-size: 16px; }
.hk-prose th, .hk-prose td, .tutor-lesson-content th, .tutor-lesson-content td { border-bottom: 1px solid var(--hk-line); padding: 10px 12px; text-align: left; vertical-align: top; }
.hk-prose th, .tutor-lesson-content th { font-family: var(--hk-mono); font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--hk-teal-deep); background: var(--hk-kod); }
.hk-prose blockquote, .tutor-lesson-content blockquote { margin: 1.5em 0; padding: 16px 20px; border-left: 3px solid var(--hk-teal); background: var(--hk-para); border-radius: 0 10px 10px 0; }

/* ── Tutor LMS finomhangolás ── */
.tutor-wrap, .tutor-container, .tutor-dashboard, .tutor-course-details-page, .tutor-course-archive-page, .tutor-modal, .tutor-login-wrap, .tutor-quiz-wrap, .tutor-course-single-content-wrapper, .tutor-single-lesson-wrap, .tutor-course-single-sidebar-wrapper { font-family: var(--hk-font); }
.tutor-btn { border-radius: 6px !important; font-weight: 700 !important; }
.tutor-btn-primary { background-color: var(--hk-navy) !important; border-color: var(--hk-navy) !important; color: #fff !important; }
.tutor-btn-primary:hover { background-color: var(--hk-teal-deep) !important; border-color: var(--hk-teal-deep) !important; }
.tutor-btn-outline-primary { color: var(--hk-navy) !important; border-color: var(--hk-line-2) !important; }
.tutor-btn-outline-primary:hover { background: var(--hk-navy) !important; color: #fff !important; border-color: var(--hk-navy) !important; }
.tutor-card, .tutor-course-card { border-radius: 14px !important; border-color: var(--hk-line) !important; box-shadow: none !important; }
.tutor-card:hover, .tutor-course-card:hover { border-color: var(--hk-navy) !important; }
.tutor-course-name a, .tutor-course-card .tutor-course-name { font-weight: 700; color: var(--hk-navy); }
.tutor-progress-bar { background: var(--hk-para) !important; }
.tutor-progress-value { background: var(--hk-teal) !important; }
.tutor-badge-label, .tutor-badge { font-family: var(--hk-mono); }
.tutor-form-control:focus, .tutor-form-select:focus { border-color: var(--hk-teal) !important; box-shadow: 0 0 0 3px rgba(86,160,153,.2) !important; }
.tutor-dashboard .tutor-dashboard-left-menu .tutor-dashboard-menu-item.active a,
.tutor-dashboard .tutor-dashboard-left-menu .tutor-dashboard-menu-item a:hover { background: var(--hk-para) !important; color: var(--hk-navy) !important; }
.tutor-course-topic-item.is-active, .tutor-course-topic-item.is-active a { background: var(--hk-para) !important; }
.tutor-quiz-question-title, .tutor-quiz-wrap h3 { font-weight: 800; }

/* ── Lecke-elemek (KiberMozaik importáló osztályai) ── */
.tutor-lesson-content-area h3, .tutor-course-details-content h3 { font-size: 26px; font-weight: 800; line-height: 1.2; letter-spacing: -.01em; margin: 0 0 18px; }
.tutor-lesson-content-area p, .tutor-lesson-content-area li { font-size: 17px; line-height: 1.7; }
.hk-keys { position: relative; margin: 0 0 28px; padding: 22px 24px 20px; border-radius: 16px; background: var(--hk-navy); color: #fff; overflow: hidden; }
.hk-keys::before { content: "A DIÁN"; display: block; margin-bottom: 10px; font-family: var(--hk-mono); font-size: 12px; letter-spacing: .16em; color: var(--hk-teal-light); }
.hk-keys::after { content: ""; position: absolute; right: -40px; top: -40px; width: 160px; height: 160px; background: radial-gradient(circle, rgba(143,208,199,.35) 1.5px, transparent 1.6px) 0 0/12px 12px; opacity: .6; pointer-events: none; }
.hk-keys ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.hk-keys li { position: relative; padding-left: 26px; font-size: 18px !important; font-weight: 700; line-height: 1.4 !important; color: #fff; }
.hk-keys li::before { content: ""; position: absolute; left: 0; top: .55em; width: 12px; height: 2px; background: var(--hk-teal); }
.hk-box { margin: 26px 0; padding: 18px 20px 16px 22px; border-radius: 14px; border: 1px solid var(--hk-line); border-left: 4px solid var(--hk-teal); background: var(--hk-kod); }
.hk-box p { margin: 0 0 8px; }
.hk-box p:last-child { margin-bottom: 0; }
.hk-box__t { font-family: var(--hk-mono); font-size: 13px !important; letter-spacing: .12em; text-transform: uppercase; color: var(--hk-teal-deep); margin-bottom: 8px !important; }
.hk-box__t::before { content: "◆  "; }
.hk-box--warn { border-left-color: var(--hk-coral); background: #FDF3F1; }
.hk-box--warn .hk-box__t { color: #B4442F; }
.hk-box--warn .hk-box__t::before { content: "!  "; }
.hk-box--rule { border-left-color: var(--hk-navy); background: #fff; }
.hk-box--rule .hk-box__t { color: var(--hk-navy); }
.hk-box--lead { border-left-color: var(--hk-navy); background: var(--hk-para); }
.hk-box--lead .hk-box__t { color: var(--hk-navy); }
.hk-box--lead .hk-box__t::before { content: "→  "; }
.hk-box--case .hk-box__t::before { content: "▸  "; }
.hk-box--check .hk-box__t::before { content: "?  "; }
.hk-reveal, .hk-acc details { margin-top: 10px; border: 1px solid var(--hk-line-2); border-radius: 12px; background: #fff; }
.hk-reveal summary, .hk-acc summary { cursor: pointer; list-style: none; padding: 12px 44px 12px 16px; position: relative; font-weight: 700; }
.hk-reveal summary::-webkit-details-marker, .hk-acc summary::-webkit-details-marker { display: none; }
.hk-reveal summary::after, .hk-acc summary::after { content: "+"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-family: var(--hk-mono); font-size: 20px; color: var(--hk-teal-deep); transition: transform .2s; }
.hk-reveal[open] summary::after, .hk-acc details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.hk-reveal > p, .hk-acc details > p { padding: 0 16px; }
.hk-reveal > p:last-child, .hk-acc details > p:last-child { padding-bottom: 14px; }
.hk-reveal summary { font-family: var(--hk-mono); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--hk-teal-deep); }
.hk-acc { display: grid; gap: 10px; margin: 18px 0 8px; }
.hk-acc details { margin: 0; }
.hk-acc details[open] { border-color: var(--hk-teal); box-shadow: 0 0 0 3px rgba(86,160,153,.15); }
.hk-hint { font-family: var(--hk-mono); font-size: 13px !important; letter-spacing: .06em; color: var(--hk-muted); margin-top: 22px; }
.hk-table { margin: 24px 0; overflow-x: auto; border: 1px solid var(--hk-line); border-radius: 14px; }
.hk-table table { width: 100%; border-collapse: collapse; margin: 0; font-size: 16px; }
.hk-table th { background: var(--hk-navy); color: #fff; text-align: left; font-weight: 700; padding: 12px 14px; font-size: 14px; }
.hk-table td { padding: 12px 14px; border-top: 1px solid var(--hk-line); vertical-align: top; }
.hk-table tr:nth-child(even) td { background: var(--hk-kod); }
.hk-video-goal { font-size: 18px !important; }
.hk-video-soon { margin: 14px 0 24px; padding: 14px 18px; border-radius: 12px; background: var(--hk-navy-2); color: #fff; font-family: var(--hk-mono); font-size: 14px; letter-spacing: .02em; }
.hk-script { list-style: none; margin: 0; padding: 0 0 0 18px; border-left: 2px solid var(--hk-line-2); }
.hk-script li { position: relative; margin: 0 0 22px; padding-left: 18px; }
.hk-script li::before { content: ""; position: absolute; left: -26px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid var(--hk-teal); }
.hk-time { display: inline-block; font-family: var(--hk-mono); font-size: 12px; letter-spacing: .08em; color: var(--hk-teal-deep); background: var(--hk-para); padding: 3px 8px; border-radius: 6px; margin-right: 10px; }
.hk-cap { font-weight: 700; font-size: 15px; }
.hk-script p { margin: 8px 0 0; }
.hk-lead { font-size: 20px !important; font-weight: 500; }
.hk-meta { list-style: none; padding: 0; margin: 18px 0 26px; display: grid; gap: 6px; }
.hk-meta li { font-size: 15px !important; color: var(--hk-muted); }
.hk-meta strong { color: var(--hk-navy); font-family: var(--hk-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; margin-right: 6px; }
