:root {
    /* --- ALAPSZÍNEK --- */
    --dojo-red: #d32f2f;
    --dojo-black: #1a1a1a;
    --dojo-gray-bg: #f4f4f4;
    --dojo-border: #ddd;
    --dojo-white: #ffffff;

    /* --- FIBONACCI MODULÁRIS SKÁLA (STEPS) --- */
    /* Clamp számítás: 400px -> 1400px kijelzőhöz igazítva */
    
    --step-5: clamp(3.4375rem, 2.58rem + 3.4vw, 5.5625rem); /* 55px -> 89px (Főcím) */
    --step-4: clamp(2.125rem, 1.28rem + 2.1vw, 3.4375rem);  /* 34px -> 55px (Szekció) */
    --step-3: clamp(1.3125rem, 0.79rem + 1.3vw, 2.125rem); /* 21px -> 34px (Alcím) */
    --step-2: clamp(1.125rem, 1rem + 0.3vw, 1.3125rem);    /* 18px -> 21px (Kiemelt) */
    --step-1: 1rem; /* 16px fix (Body) */
	
	--joomla-alert-info-bg: #d32f2f !important;
    --joomla-alert-info-border-color: #000000 !important;
    --joomla-alert-info-text: #ffffff !important;
}
/* ==========================================================================
   VPS SELF-HOSTED FONTS (OPTIMALIZÁLT: CSAK REGULAR ÉS BOLD)
   ========================================================================== */

/* --- 1. BEBAS NEUE (CÍMSOROK ÉS MENÜ) --- */
@font-face {
    font-family: 'Bebas Neue';
    src: url('../fonts/bebas-neue-v16-latin_latin-ext-regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* --- 2. HIND MADURAI REGULAR (NORMÁL SZÖVEGTÖRZS) --- */
@font-face {
    font-family: 'Hind Madurai';
    src: url('../fonts/hind-madurai-v13-latin-regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* --- 3. HIND MADURAI BOLD (FÉLKÖVÉR KIEMELÉSEK) --- */
@font-face {
    font-family: 'Hind Madurai';
    src: url('../fonts/hind-madurai-v13-latin-700.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* --- 4. HELIX UTILITY NAVIGÁCIÓ FIX (A MENÜ HOZZÁKÖTÉSE A HELYI FONTRA) --- */
.sp-megamenu-parent > li > a, 
.sp-megamenu-parent > li > span, 
.sp-megamenu-parent .sp-dropdown li.sp-menu-item > a,
.menu.nav-pills > li > a, 
.menu.nav-pills > li > span, 
.menu.nav-pills .sp-dropdown li.sp-menu-item > a,
#offcanvas-toggler {
    font-family: 'Bebas Neue', sans-serif !important;
    text-transform: uppercase !important;
	font-size: 18px;
}

/* --- GLOBÁLIS TIPOGRÁFIAI ALAPOK --- */
h1, h2, h3, h4 {
    font-family: 'Bebas Neue', sans-serif;
    line-height: 0.95;
    text-transform: uppercase;
    margin-bottom: 0.5em;
    font-weight: normal; /* A Bebas-nál nem kell bold */
}

/* Alapértelmezett méretek a skála alapján */
h1 { font-size: var(--step-5); }
h2 { font-size: var(--step-4); }
h3 { font-size: var(--step-3); }
h4 { font-size: var(--step-2); }

p {
    font-family: 'Hind Madurai', sans-serif;
    font-size: var(--step-1);
    line-height: 1.6;
    color: var(--dojo-black);
    margin-bottom: 1.5em;
}

/* --- UNIVERZÁLIS DOJO CÍMSOR RENDSZER --- */
/* A red-kicsi / black-nagy logika automatizálása, szemantikusan */

.title-sub, .title-main { 
    display: block; 
    line-height: 0.95; 
}

/* --- H1 KONTEXTUS (Főoldali Hero / Oldalcímek) --- */
h1 .title-sub { 
    font-size: var(--step-4); 
    color: var(--dojo-red); 
    letter-spacing: -1px;
}
h1 .title-main { 
    font-size: var(--step-5); 
    color: var(--dojo-black); 
    letter-spacing: -1.5px;
}

/* --- H2 KONTEXTUS (Kártyák / Szekciók) --- */
h2 .title-sub { 
    font-size: var(--step-3); 
    color: var(--dojo-red); 
}
h2 .title-main { 
    font-size: var(--step-4); 
    color: var(--dojo-black); 
    letter-spacing: -1px;
}

/* --- H3 KONTEXTUS  --- */
h3 .title-sub { 
    font-size: var(--step-4); 
    color: var(--dojo-red); 
}
h3 .title-main { 
    font-size: var(--step-5); 
    color: var(--dojo-black); 
    letter-spacing: -1px;
}

.dojo-hr { 
    color: var(--dojo-red)!important; 
    border-color: var(--dojo-red)!important; 
	border-width:8px;
	opacity: 1;
	width: 60%;
}


/* --- ASZIMMETRIKUS HERO TÁVOLSÁGGAL (GAP) --- */

.dojo-hero {
    position: relative;
    width: 100%;
    min-height: 650px;
    display: flex;
    align-items: center;
    background: var(--dojo-black);
    overflow: hidden;
}

.dojo-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.dojo-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
	object-position: left top;
    filter: grayscale(50%) brightness(60%) contrast(120%);
}

.dojo-hero-container {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1300px;
    margin: 0 auto;
    padding: 60px 20px;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch; /* Megtartja az azonos magasságot */
    justify-content: center;
    /* TÁVOLSÁG BEÁLLÍTÁSA */
    gap: 60px; 
}

/* KÖZÖS DOBOZ ALAPOK */
.dojo-hero-content, 
.hinomaru-wrapper {
    background: rgba(255, 255, 255, 0.98);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}

/* Bal oldal: Tartalom doboz */
.dojo-hero-content {
    flex: 1 1 500px;
 /*   max-width: 650px;  */
    padding: 60px;
    border-left: 15px solid var(--dojo-red); /* Piros sáv bal oldalt */
    box-shadow: 20px 20px 0px rgba(0, 0, 0, 0.6); /* Árnyék jobb-le */
    justify-content: center;
}

/* Jobb oldal: Vizuális doboz */
.dojo-hero-visual {
    flex: 0 1 450px;
    display: flex;
}

.hinomaru-wrapper {
    width: 100%;
    padding: 40px;
    border-right: 15px solid var(--dojo-red); /* Tükrözött piros sáv jobb oldalt */
    box-shadow: -20px 20px 0px rgba(0, 0, 0, 0.6); /* Tükrözött árnyék balra-le */
    align-items: center;
    justify-content: center;
    gap: 30px;
}

.hinomaru-wrapper img {
    max-width: 300px;
    height: auto;
    filter: none !important; /* Eredeti fekete logó */
}

/* TIPOGRÁFIA ÉS GOMB */
.dojo-hero-title {
    margin: 0 0 25px 0;
    line-height: 0.85;
}

.text-red, .text-black {
    font-family: 'Bebas Neue', sans-serif;
    text-transform: uppercase;
    display: block;
    letter-spacing: -1.5px;
}

.text-red {
    font-size: clamp(2.8rem, 5vw, 4.2rem);
    color: var(--dojo-red); /* #d32f2f */
}

.text-black {
    font-size: clamp(3.2rem, 6vw, 5.2rem);
    color: var(--dojo-black); /* #1a1a1a */
}

.dojo-hero-desc {
    font-family: 'Hind Madurai', sans-serif;
    font-size: 1.2rem;
    margin-bottom: 35px;
    line-height: 1.6;
}

.dojo-btn-main {
    align-self: flex-start;
    display: inline-block;
    background: var(--dojo-black);
    color: var(--dojo-white) !important;
    padding: 18px 45px;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.6rem;
    text-decoration: none;
    transition: all 0.3s ease;
	letter-spacing: 2px;
	border: 2px solid;
	border-color: var(--dojo-black);
}
.dojo-btn-second {
    align-self: flex-start;
    display: inline-block;
    background: var(--dojo-white);
    color: var(--dojo-black) !important;
    padding: 12px 32px;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.2rem;
    text-decoration: none;
    transition: all 0.3s ease;
	letter-spacing: 2px;
	border: 2px solid;
	border-color: var(--dojo-black);
}

.dojo-btn-main:hover,
.dojo-btn-second:hover {
    background: var(--dojo-red);
    transform: translateX(10px);
	border-color: var(--dojo-red);
	color: var(--dojo-white) !important;
}

/* --- GLOBÁLIS LINK STÍLUS --- */
.dojo-link {
    color: var(--dojo-red);
    font-family: 'Bebas Neue', sans-serif;
    text-decoration: underline;
    text-underline-offset: 5px; /* Kicsit több hely a betűk alatt */
    text-decoration-thickness: 1px;
    font-size: 1.2rem;
    transition: all 0.3s ease;
    cursor: pointer;
}

.dojo-link:hover {
    color: var(--dojo-black);
    text-decoration-color: var(--dojo-black);
}

/* --- DOJO PROFIL KÁRTYÁK (HERO STÍLUSBAN) --- */

.dojo-card {
    background: var(--dojo-white);
    padding: 40px;
    margin-bottom: 40px;
}


/* --- ADATOK IGAZÍTÁSA ÉS MEGJELENÍTÉSE --- */

.dojo-table td.dojo-label {
    font-weight: bold;      /* Mezők neve legyen félkövér */
    padding-right: 40px;    /* Szellősebb távolság az érték előtt */
    width: 220px;           /* Fix szélesség az oszlopok összehangolásához */
    vertical-align: top;    /* Többsoros szövegnél is maradjon felül a felirat */
}
.dojo-section-title {
	    font-weight: bold;
}

/* A fejlécet is beljebb toljuk 40 pixellel, hogy egy vonalba kerüljön a kártyák tartalmával */
.page-header {
    padding-left: 40px;
    padding-right: 40px;
}

/* --- BRUTALISTA L-ALAKÚ SZEGÉLY (SPECIFIKUSABB SZELEKTOROKKAL) --- */

/* A szülő konténer (.dojo-profile-container) használatával növeljük az erőt */
.dojo-profile-container .page-header, 
.dojo-profile-container .dojo-card {
    /* Bal oldali piros sáv */
    border-left: 15px solid var(--dojo-red);
    
    /* Alsó fekete sáv */
    border-bottom: 5px solid var(--dojo-black);
    
    /* Vizuális igazítás és szellősség */
    padding-left: 40px;
    padding-bottom: 30px;
    margin-bottom: 60px;
    
    /* Alapértelmezett keretek nullázása */
    border-top: 0;
    border-right: 0;
    background: var(--dojo-white);
}

/* Szövegek igazítása a szülőn keresztül */
.dojo-profile-container .page-header h1, 
.dojo-profile-container .page-header p,
.dojo-profile-container .dojo-header h2 {
    margin-left: 0;
}

/* --- GOMBOK EGYSÉGESÍTÉSE A HERO STÍLUSÁVAL (SPECIFICITY JAVÍTÁSSAL) --- */

.dojo-profile-container a.btn, 
.dojo-profile-container button.btn {
    background: var(--dojo-black);
    color: var(--dojo-white);
    border-radius: 0;
    border: none;
    font-family: 'Bebas Neue', sans-serif;
    text-transform: uppercase;
    padding: 12px 30px;
    transition: 0.3s;
}

/* Hover állapot: Kyokushin vörös */
.dojo-profile-container a.btn:hover, 
.dojo-profile-container button.btn:hover {
    background: var(--dojo-red);
    color: var(--dojo-white);
}

/* --- GLOBÁLIS DOJO FORM OVERRIDE (MINDEN ŰRLAPHOZ) --- */

/* 1. Feliratok (Labels) - Karakteres Bebas Neue */
.convertforms .cf-label {
    font-family: 'Bebas Neue', sans-serif !important;
    font-size: 1.5rem !important;
    text-transform: uppercase !important;
    color: var(--dojo-black) !important;
    letter-spacing: 1px !important;
    margin-bottom: 5px !important;
    display: block !important;
}

/* Jelölőnégyzetek (Checkbox) feliratai - Maradjanak olvashatóak */
.convertforms .cf-checkbox-group .cf-label {
    font-family: 'Hind Madurai', sans-serif !important;
    font-size: 1rem !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: normal !important;
}

/* 2. Beviteli mezők - Diszkrét, vékony szegély */
.convertforms .cf-input,
.convertforms select,
.convertforms textarea {
    border: 1px solid #ccc !important;
    border-radius: 0 !important;
    padding: 12px !important;
    font-family: 'Hind Madurai', sans-serif !important;
    background-color: var(--dojo-white) !important;
    color: var(--dojo-black) !important;
    box-shadow: none !important;
    height: auto !important;
}

/* Fókusz állapot: Kyokushin vörös szegély */
.convertforms .cf-input:focus,
.convertforms select:focus,
.convertforms textarea:focus {
    border-color: var(--dojo-red) !important;
    outline: none !important;
}

/* 3. A GOMB - Fekete alap, elmozdulás nélküli hoverrel */
.convertforms .cf-btn {
    background-color: var(--dojo-black) !important;
    color: var(--dojo-white) !important;
    border-radius: 0 !important;
    border: none !important;
    font-family: 'Bebas Neue', sans-serif !important;
    font-size: 1.6rem !important;
    padding: 18px 45px !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    display: inline-block !important;
    width: auto !important;
    transition: background-color 0.2s ease !important;
}

/* Hover állapot - Csak színváltás, transform nélkül */
.convertforms .cf-btn:hover {
    background-color: var(--dojo-red) !important;
    transform: none !important; 
}

/* Kötelező csillag színe */
.convertforms .cf-required-label {
    color: var(--dojo-red) !important;
}

/* Formon belüli alcímek (pl. "Jelentkezési adatok") */
.convertforms .cf-field p strong {
    font-family: 'Bebas Neue', sans-serif !important;
    font-size: 1.8rem !important;
    text-transform: uppercase !important;
    color: var(--dojo-black) !important;
    display: block;
}

/* Sikerüzenet kártya globális stílusa */
.convertforms .dojo-card {
    border-left: 15px solid var(--dojo-red) !important;
    border-bottom: 5px solid var(--dojo-black) !important;
    background: var(--dojo-white) !important;
    padding: 40px !important;
    margin-top: 20px !important;
    border-top: none !important;
    border-right: none !important;
}

.success-footer {
    margin-top: 30px;
}

/* --- SIKERÜZENET JAVÍTÁSA (GLOBÁLIS) --- */

/* 1. A Convert Forms gyári zöld hátterének és keretének kiütése */
.convertforms.cf-success .cf-response {
    background-color: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
}

/* 2. A siker-kártya belső szövegének kényszerítése */
.convertforms .dojo-card {
    color: var(--dojo-black) !important; /* Fixen fekete szöveg, hogy látható legyen */
    text-align: left !important;
}

.convertforms .dojo-card h3 {
    color: var(--dojo-black) !important;
    font-family: 'Bebas Neue', sans-serif !important;
    font-size: 2.2rem !important;
    margin-bottom: 20px !important;
}

.convertforms .dojo-card p {
    color: #333 !important; /* Sötétszürke az olvashatóságért */
    font-family: 'Hind Madurai', sans-serif !important;
    line-height: 1.6 !important;
}

/* 3. A gomb kényszerítése gomb kinézetre (link esetén is) */
.success-actions {
    margin-top: 30px !important;
}

.success-actions a.cf-btn {
    text-decoration: none !important;
    display: inline-block !important;
}

/* --- JELENTKEZÉS GYŰJTŐOLDAL STÍLUSOK --- */

.registration-portal {
    padding: 40px 0;
    max-width: 1300px;
    margin: 0 auto;
}

.registration-portal .dojo-hero-container {
    background: none;
    padding: 0;
    align-items: stretch; /* Egyforma magasságú dobozok */
}

.registration-portal .dojo-hero-content {
	max-width: 600px; /* <--- Ez a korlát: nem engedi "lepénnyé" hízni */
    margin: 0 auto 40px auto; /* <--- Középre rendezi a kártyát */
    flex: 1 1 500px;
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
	padding: 40px !important;
	border-left-width: 8px !important;
	box-shadow: 13px 13px 0px rgba(0, 0, 0, 0.2) !important; /* Árnyék jobb-le */
}


/* A gombokat tartalmazó blokk, ami az aljára igazítja magát */
.registration-portal .registration-actions {
    margin-top: auto; 
    display: flex;
    flex-direction: column;
    gap: 15px;
    align-items: flex-start; /* EZ A KULCS: megakadályozza, hogy a gombok kinyúljanak 100%-ra desktopon */
}

/* A gombok egységes, fegyelmezett méretezése a portálon belül */
.registration-portal .dojo-btn-main {
    display: flex;
    align-items: center;
    justify-content: flex-start; /* A szöveg és a nyíl katonásan balra igazodik */
    min-width: 280px; /* Biztosítja, hogy minden gomb hajszálpontosan egyforma széles legyen */
    max-width: 100%;  /* Mobil biztonsági háló: ha a kijelző kisebb mint 280px, nem lóg ki */
    font-size: 1.2rem;
    box-sizing: border-box;
    padding: 15px 30px !important; /* Karcsúbb, fókuszáltabb padding */
}


/* --- UNIVERZÁLIS IDÉZET STÍLUS (DOJO-QUOTE) --- */
.dojo-quote-wrapper {
    margin: 25px 0;
    max-width: 700px;
}

.dojo-quote {
    font-family: 'Hind Madurai', sans-serif;
    font-size: var(--step-2); /* Fibonacci Step 2 - Olvasható és elegáns */
    font-style: italic;
    line-height: 1.5;
    color: var(--dojo-black);
    border-left: 5px solid var(--dojo-black); /* A "vörös fegyelem" vonala */
    padding-left: 20px;
    margin-top: 30px;
    margin-bottom: 10px;
}

.quote-author {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.1rem;
    color: var(--dojo-red);
    text-transform: uppercase;
    display: block;
    padding-left: 23px; /* Igazodva az idézet vonalához */
}


/* --- ETIKETT SÁV: A TISZTELET ZSILIPJE --- */
.dojo-etikett-bar {
    border-top: 1px solid var(--dojo-red);
    border-bottom: 1px solid var(--dojo-red);
    padding: var(--step-2) 0; /* Fibonacci Step 2 a szellős érzetért */
    margin: 40px 0;
    text-align: center;
}

.dojo-etikett-bar p {
    margin-bottom: 0;
    font-size: var(--step-1); /* Standard olvashatóság */
    color: var(--dojo-black);
}

/* --- DOJO ALAPOK: HÁROM OSZLOPOS INFÓ --- */
.dojo-basics {
    padding: 100px 0;
    background: transparent; /* Semmi doboz vagy háttér */
}

.basics-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: space-between;
}

.basics-item {
    flex: 1 1 300px; /* Rugalmas oszlopok, 300px alatt törnek */
    text-align: center;
    padding: 20px;
}

.basics-icon {
    font-size: var(--step-3); /* 21px-34px közötti méret */
    color: var(--dojo-black);
    margin-bottom: 15px;
    opacity: 0.8;
}

.basics-title {
    color: var(--dojo-red);
    font-family: 'Bebas Neue', sans-serif;
    font-size: var(--step-3); /* 18px-21px, határozott, de nem ordít */
    margin-bottom: 10px;
    letter-spacing: 1px;
}

.basics-text {
    font-size: var(--step-1); /* Standard 16px */
    line-height: 1.5;
}

.basics-text strong {
    display: block; /* A kulcsszavak külön sorba kerülnek az ütősebb hatásért */
    color: var(--dojo-black);
    font-size: 0.9rem;
    letter-spacing: 0.5px;
}


/* --- DOJO ROADMAP: A FOLYAMAT ÚTJA --- */
.dojo-roadmap {
    padding: 80px 0;
    position: relative;
}

.roadmap-grid {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    position: relative;
}

/* Az összekötő vízszintes vonal (A Fonal) */
.roadmap-grid::before {
    content: '';
    position: absolute;
    top: 25px; /* A körök közepéhez igazítva */
    left: 50px;
    right: 50px;
    height: 1px;
    background: #ddd;
    z-index: 0;
}

.roadmap-step {
    flex: 1;
    text-align: center;
    position: relative;
    z-index: 1;
}

/* A körök (Sorszámok) */
.step-number {
    width: 50px;
    height: 50px;
    background: var(--dojo-white);
    border: 2px solid var(--dojo-black);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px auto;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.5rem;
    color: var(--dojo-black);
    transition: all 0.3s ease;
}

.step-title {
    font-size: var(--step-3); /* 18px-21px */
    margin-bottom: 10px;
    font-family: 'Bebas Neue', sans-serif;	
}

.step-text {
    font-size: 0.95rem;
    padding: 0 10px;
}

/* A 4. pont kiemelése (A Cél) */
.roadmap-step.goal .step-number {
    background: var(--dojo-red);
    border-color: var(--dojo-red);
    color: var(--dojo-white);
    box-shadow: 0 0 15px rgba(211, 47, 47, 0.4);
}

.roadmap-step.goal .step-title {
    color: var(--dojo-red);
}

/* --- FILOZÓFIA SZEKCIÓ (FRISSÍTETT: GRID ELRENDEZÉS) --- */
.dojo-philosophy {
    padding: 50px 0; /* Nagy fehér terek a Fibonacci szellemében */
    background: var(--dojo-white);
}

.philosophy-layout {
    display: flex;
    gap: 40px; /* Távolság a vörös vonal és a szöveg között */
    max-width: 900px;
    margin: 0 auto;
}

/* A függőleges "Fegyelem-vonal" */
.discipline-line {
    width: 8px;
    background: var(--dojo-red);
    flex-shrink: 0;
}

.philosophy-content {
    flex-grow: 1;
}

.philosophy-main-title {
    margin-bottom: 60px;
}

.philosophy-grid {
    display: flex;
    flex-direction: column;
    gap: 30px; /* Távolság az egyes fogalmak (Fegyelem, Tisztelet...) között */
    margin-bottom: 50px;
}

.philosophy-item {
    display: grid;
    grid-template-columns: 180px 1fr;
    column-gap: 40px;
    align-items: start;
    /* Elválasztó vonal minden blokk után */
    border-bottom: 1px solid var(--dojo-border);
    padding-bottom: 30px;
    margin-bottom: 0; /* A gap helyett a padding szabályozza a távolságot */
}

.philosophy-item:last-child {
    border-bottom: none; /* Az utolsó elem után ne legyen dupla vonal a lead előtt */
}

/* A cím kényszerítése az első oszlopba */
.philosophy-item .basics-title {
    grid-column: 1;
    margin-bottom: 0 !important;
    padding-top: 0 !important; /* Tűpontos egy magasságba hozás a szöveggel */
    line-height: 1.2; /* Összhangban a szöveg sormagasságával */
}

/* Minden más paragrafus a második oszlopba kerül */
.philosophy-item p:not(.basics-title) {
    grid-column: 2;
    margin-bottom: 10px;
    padding-top: 0 !important; /* Felesleges belső távolságok törlése */
}

/* Egyedi kiemelés: A harmadik elem (a második kifejtő sor) félkövér */
.philosophy-item p:nth-child(3) {
    font-weight: bold;
    color: var(--dojo-black);
}

.philosophy-item p:last-child {
    margin-bottom: 0;
}

/* Az idézet jellegű lezáró szöveg */
.philosophy-lead {
    font-family: 'Hind Madurai', sans-serif;
    font-size: var(--step-2);
    border-bottom: 1px solid var(--dojo-border);
    padding-bottom: 30px;
    color: var(--dojo-black);
}

/* --- SZEGMENTÁLÁS: GYEREK / FELNŐTT --- */
.dojo-segments {
    padding: 120px 0 10px 0;
    background: var(--dojo-gray-bg); /* Enyhe szürke háttér, hogy elváljon a fehértől */
}

.segment-row {
    display: flex;
    align-items: center;
    gap: 60px;
    margin-bottom: 100px;
}

.segment-row.reverse {
    flex-direction: row-reverse;
}

/* Brutalista képkeret eltolva */
.segment-image {
    flex: 1;
    position: relative;
    border-left: 15px solid var(--dojo-red);
    border-bottom: 15px solid var(--dojo-black);
    box-shadow: 20px 20px 0px rgba(0, 0, 0, 0.1);
    line-height: 0; /* Megszünteti az img alatti extra helyet */
}

.segment-image img {
    width: 100%;
    height: auto;
    filter: grayscale(30%);
    transition: filter 0.5s ease;
}

.segment-image:hover img {
    filter: grayscale(0%);
}

.segment-content {
    flex: 1;
    max-width: 500px;
}

.segment-content .title-main {
    font-size: var(--step-4); /* Nagy, plakátszerű cím */
    margin-bottom: 10px;
}

/* --- LOGISZTIKA: ÓRAREND ÉS TÉRKÉP --- */
.dojo-logistics {
    padding: 0 0 40px 0;
    background: var(--dojo-white);
}

.logistics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start;
}

/* Órarend stílus */
.schedule-list {
    margin: 40px 0;
    border-left: 5px solid var(--dojo-red); /* Újabb vörös fegyelem-vonal */
    padding-left: 30px;
}

.schedule-item {
    display: flex;
    justify-content: space-between;
    padding: 15px 0;
    border-bottom: 1px solid var(--dojo-border);
}

.schedule-item .day {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.8rem;
    color: var(--dojo-black);
}

.schedule-item .time {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.8rem;
    color: var(--dojo-red);
}

/* Térkép konténer */
.map-placeholder {
    width: 100%;
    height: 350px;
    background: #eee;
    margin-top: 25px;
    position: relative;
    border: 2px solid var(--dojo-black);
    box-shadow: 15px 15px 0px rgba(0, 0, 0, 0.05); /* Enyhe brutalista árnyék */
    display: flex;
    align-items: center;
    justify-content: center;
}

.map-overlay {
    text-align: center;
    color: #666;
}

.map-overlay i {
    display: block;
    font-size: 3rem;
    margin-bottom: 10px;
}

/* A konténer, ami a keretet és az árnyékot adja */
.logistics-map-box .map-placeholder {
    width: 100%;
    height: auto; /* Fix 350px helyett hagyjuk, hogy a tartalom határozza meg */
    padding: 0;   /* Hogy a térkép kifeküdjön a széléig */
    overflow: hidden;
    display: block; /* Flex helyett, hogy a wrapper érvényesüljön */
}

/* A reszponzív wrapper */
.map-responsive-wrapper {
    position: relative;
    width: 100%;
    /* Modern böngészőkben (Joomla 6 célközönség) ez a legjobb */
    aspect-ratio: 16 / 9; 
}

/* Az iframe kényszerítése a szülő konténerre */
.map-responsive-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    filter: grayscale(20%) contrast(110%); /* Enyhe brutalista hangolás a stílushoz */
}

.logistics-map-box iframe {
    
    /* Egy kis kontraszt növelés */
    filter: grayscale(100%) contrast(110%); 

}

.logistics-map-box:hover iframe {
    -webkit-filter: grayscale(0%);
    filter: grayscale(0%);
}

.dojo-cta-section .container{
    border-bottom: 1px solid var(--dojo-border);
	padding-bottom: 20px;
}

/* --- VÉGSŐ CTA: A KAPU --- */
.dojo-final-cta {
    background: var(--dojo-black); /* Mélyfekete háttér */
    padding: 120px 0;
    text-align: center;
    color: var(--dojo-white);
    position: relative;
    overflow: hidden;
}

/* Hegy sziluett igazítása */
.mountain-icon {
    width: 200px;
    margin: 0 auto 40px auto;
}

/* Sosai idézet a sötét alapon */
.cta-quote {
    max-width: 800px;
    margin: 0 auto 60px auto;
}

.cta-quote p {
    font-family: 'Hind Madurai', sans-serif;
    font-size: var(--step-2); /* 18px-21px */
    font-style: italic;
    color: rgba(255, 255, 255, 0.9) !important;
    line-height: 1.6;
    margin-bottom: 15px;
}

.cta-action p {
    font-family: 'Hind Madurai', sans-serif;
    font-size: var(--step-1); /* 18px-21px */
    color: rgba(255, 255, 255, 0.9) !important;
    line-height: 1.4;
    margin-top: 15px;
}

.cta-quote .quote-author {
    color: var(--dojo-red); /* #d32f2f */
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.2rem;
    letter-spacing: 2px;
}

/* A végső felhívás */
.cta-title {
    font-size: var(--step-4); /* 34px-55px, hatalmas és fegyelmezett */
    color: var(--dojo-white);
    margin-bottom: 40px;
    letter-spacing: -1px;
}

/* Extra nagy gomb */
.dojo-btn-main.btn-large {
    padding: 25px 60px;
    font-size: 1.8rem;
    background: var(--dojo-red); /* Itt a vörös az alap, hogy vonzza a szemet */
}

.dojo-btn-main.btn-large:hover {
    background: var(--dojo-white);
    color: var(--dojo-black) !important;
    transform: scale(1.05); /* Enyhe pulzálás a kattintás előtt */
}


/* --- ETIKETT: SŰRÍTETT INFORMÁCIÓS RÁCS --- */
.etikett-grid {
    display: grid;
    grid-template-columns: 1fr 1fr; /* Két oszlop desktopon */
    column-gap: 60px;
    row-gap: 30px;
    margin-bottom: 50px;
}

/* Felülírjuk a philosophy-item aszimmetriáját */

/* --- ETIKETT OLDAL: SŰRÍTETT, KÉTOSZLOPOS ELRENDEZÉS --- */

/* 1. A layout korlátok feloldása (a beküldött kép alapján) */
.dojo-etikett-section .philosophy-layout {
    max-width: none !important; /* 900px korlát kikapcsolva */
    margin: 0 !important;       /* Középre igazítás kikapcsolva */
    width: 100%;
}

/* 2. A kétoszlopos rács definiálása */
.etikett-grid {
    display: grid;
    grid-template-columns: 1fr 1fr; /* Két egyenlő hasáb asztali nézetben */
    column-gap: 60px;               /* Szellős távolság az oszlopok között */
    row-gap: 0;                     /* A padding és a border szabályozza a függőleges közt */
    width: 100%;
}

/* 3. Az elemek stílusának sűrítése (Plakát helyett kézikönyv stílus) */
.etikett-grid .philosophy-item {
    display: block !important;     /* Kikapcsoljuk a 180px-es bal oldali rácsot */
    border-bottom: 1px solid var(--dojo-border);
    padding: 20px 0;
    margin-bottom: 0;
}

/* 4. Tipográfiai visszatekerés (Fibonacci Step 2) */
.etikett-grid .basics-title {
    font-size: var(--step-2) !important; /* 21px a 34px helyett */
    margin-bottom: 8px !important;
    color: var(--dojo-red);
    letter-spacing: 1px;
}

.etikett-grid p:not(.basics-title) {
    font-size: 0.95rem;           /* Sűrűbb, jobban olvasható folyószöveg */
    line-height: 1.4;
    margin-bottom: 8px;
    color: #444;
}

.etikett-grid p:last-child {
    margin-bottom: 0;
}

/* --- PAGODA STICKY BAR - FINAL FIX --- */
.sp-scroll-up { 
    bottom: 100px !important;
}

#dojo-sticky-bar.dojo-sticky-notification {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    background-color: #d32f2f !important;
    color: #ffffff !important;
    z-index: 999999 !important;
    padding: 12px 0 !important;
    border-top: 5px solid #000000 !important;
    margin: 0 !important;
    font-family: 'Bebas Neue', sans-serif !important;
    display: block !important;
    letter-spacing: 2px;
}

#dojo-sticky-bar .sticky-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#dojo-sticky-bar .sticky-text {
    font-size: 1.2rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #ffffff !important;
}

/* A gomb közvetlen megfogása osztály nélkül, az inline stílusok alapján */
#dojo-sticky-bar .sticky-container a {
    background: #000000 !important;
    color: #ffffff !important;
    padding: 8px 20px;
    text-decoration: none !important;
    border: 2px solid #000000;
    font-weight: bold;
    transition: 0.3s;
    display: inline-block;
}

#dojo-sticky-bar .sticky-container a:hover {
    background: #ffffff !important;
    color: #000000 !important;
}

/* MOBIL KÉNYSZERÍTÉS */
@media (max-width: 768px) {
    #dojo-sticky-bar .sticky-container {
        flex-direction: column !important;
        text-align: center !important;
        gap: 10px !important;
    }
    
    #dojo-sticky-bar .sticky-text { 
        font-size: 0.95rem !important; 
    }
    
    body { 
        padding-bottom: 110px !important; /* Helyet csinál a sávnak mobilon */
    }
}

/* JOOMLA SYSTEM MESSAGE OVERRIDE - FINOMÍTOTT BRUTALISTA */

#system-message-container {
    position: fixed !important;
    top: 20px !important; /* Elhúzzuk a legtetejétől */
    left: 20px !important;
    width: auto !important; /* Nem tölti ki a képernyőt */
    max-width: 400px !important; /* Kompakt méret */
    z-index: 1000000 !important;
    pointer-events: none;
}

#system-message-container joomla-alert {
    pointer-events: auto;
    display: block;
    margin-bottom: 10px !important;
    border: none !important;
    border-left: 10px solid #000 !important; /* Bal oldali vastag fekete sáv */
    box-shadow: 10px 10px 0px rgba(0,0,0,0.1); /* Brutalista árnyék */
    animation: alertSlideIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

#system-message-container .alert-wrapper {
    background-color: #d32f2f !important; /* Dojo Red */
    color: #ffffff !important;
    padding: 15px 45px 15px 20px !important; /* Hely az X-nek */
    min-height: auto !important;
}

#system-message-container .alert-message {
    font-family: sans-serif !important; /* Visszaállítjuk olvashatóbbra */
    font-size: 1rem !important;
    font-weight: bold !important;
    text-transform: none !important; /* ELTÖRÖLJÜK A NAGYBETŰT */
    line-height: 1.4 !important;
    text-align: left !important;
}

#system-message-container button.joomla-alert--close {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    background: #000 !important;
    color: #fff !important;
    border: none !important;
    width: 30px !important;
    height: 30px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
}

#system-message-container .alert-heading {
    display: none !important;
}

@keyframes alertSlideIn {
    from { transform: translateX(-100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}




/* --- PAGODA DOJO LOGIN FORM FINAL FIX --- */

/* 1. A kártya középre zárása és brutalista kerete */
#sp-main-body .row.justify-content-center {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: 50vh; /* Megfelelő függőleges térköz */
    margin: 0 !important;
}

#sp-main-body #com-users-login__form {
    max-width: 450px !important;
    width: 100% !important;
    padding: 40px !important;
    background: var(--dojo-white) !important;
    border: none !important;
    /* Brutalista stílus: piros bal sáv, fekete alsó szegély */
    border-left: 15px solid var(--dojo-red) !important;
    border-bottom: 5px solid var(--dojo-black) !important;
    box-shadow: 20px 20px 0px rgba(0, 0, 0, 0.1) !important;
    margin: 0 auto !important;
}

/* 2. Feliratok (Labels) tipográfiája */
#com-users-login__form label {
    font-family: 'Bebas Neue', sans-serif !important;
    font-size: 1.3rem !important;
    text-transform: uppercase !important;
    color: var(--dojo-black) !important;
    letter-spacing: 1px !important;
}

/* 3. Input mezők: éles sarkok és keret */
#com-users-login__form .form-control {
    border: 1px solid var(--dojo-border) !important;
    border-radius: 0 !important;
    padding: 12px !important;
    font-family: 'Hind Madurai', sans-serif !important;
}

#com-users-login__form .form-control:focus {
    border-color: var(--dojo-red) !important;
    box-shadow: none !important;
}

.com-users-login__options.list-group {
	margin-top: 40px!important;
}

/* 4. A Belépés gomb (OSU gomb) */
#com-users-login__form .btn-primary {
    background-color: var(--dojo-black) !important;
    color: var(--dojo-white) !important;
    border: none !important;
    border-radius: 0 !important;
    font-family: 'Bebas Neue', sans-serif !important;
    font-size: 1.8rem !important;
    padding: 15px !important;
    transition: background-color 0.2s ease !important;
}

#com-users-login__form .btn-primary:hover {
    background-color: var(--dojo-red) !important;
}

/* 5. Alsó linkek (reset/remind) javítása */
.com-users-login__options .list-group-item {
    background: none !important;
    border: none !important;
    color: var(--dojo-red) !important;
    font-family: 'Hind Madurai', sans-serif !important;
    text-decoration: underline !important;
    text-underline-offset: 4px !important;
    padding: 5px 0 !important;
}

.com-users-login__options .list-group-item:hover {
    color: var(--dojo-black) !important;
}



/* --- EGYSÉGES MOBIL OPTIMALIZÁLÁS (795PX ALATT) --- */
@media (max-width: 795px) {
    
    /* 1. Alap elrendezés és Hero blokkok */
    .dojo-hero-container {
        flex-direction: column;
        align-items: center;
        gap: 40px;
		padding: 60px 30px;
    }

    .dojo-hero-content, 
    .hinomaru-wrapper {
        max-width: 100%;
        width: 100%;
        padding: 40px 25px;
    }

    .hinomaru-wrapper {
        border-right: none;
        border-left: 10px solid var(--dojo-red);
        box-shadow: 15px 15px 0px rgba(0, 0, 0, 0.5);
    }

    /* 2. Jelentkezési kártyák karcsúsítása */
    .registration-portal .dojo-hero-content {
        flex: none;
        width: 100%;
        max-width: 600px;
        padding: 30px 20px !important;
        border-left-width: 5px !important;
        box-shadow: 5px 5px 0px rgba(0, 0, 0, 0.7) !important;
    }

    .dojo-hero-desc {
        font-size: var(--step-1) !important;
        margin-bottom: 25px;
    }

    /* 3. Dojo Alapok (Tagdíj, Időpontok) igazítása */
    .basics-grid {
        flex-direction: column;
        gap: 20px;
    }

    .basics-item {
        padding: 10px;
    }

    /* 4. A FOLYAMAT: Precíz oszlopos igazítás (Grid) */
    .roadmap-grid {
        flex-direction: column;
        gap: 40px;
    }

    .roadmap-grid::before {
        width: 1px;
        height: 85%;
        top: 20px;
        left: 25px; /* A körök közepéhez igazítva */
        right: auto;
    }

    .roadmap-step {
        display: grid !important;
        /* Oszlopok: 50px (Szám) | 130px (Cím) | maradék hely (Szöveg) */
        grid-template-columns: 50px 130px 1fr; 
        column-gap: 15px;
        align-items: flex-start;
        text-align: left;
    }

    .step-number {
        margin: 0 !important;
        grid-column: 1;
        flex-shrink: 0;
        z-index: 2;
    }

    .step-title {
        grid-column: 2;
        margin-bottom: 0 !important;
        padding-top: 12px; /* A sorszám közepéhez igazítva */
    }

    .step-text {
        grid-column: 3;
        padding-left: 0 !important;
        margin-bottom: 0 !important;
        padding-top: 12px; /* A címmel egy vonalba hozva */
    }
	
	.philosophy-layout {
        gap: 20px;
    }

    .discipline-line {
        width: 5px; /* Karcsúbb vonal mobilon */
    }

    .philosophy-item {
        display: block; /* Kikapcsoljuk a rácsot, mobilon minden egymás alá kerül */
    }

    .philosophy-item .basics-title {
        margin-bottom: 15px !important;
    }
	
	.segment-row, .segment-row.reverse {
        flex-direction: column;
        gap: 30px;
        margin-bottom: 60px;
    }
    
    .segment-image {
        border-left-width: 10px;
        border-bottom-width: 10px;
    }
	
	.logistics-grid {
        grid-template-columns: 1fr;
        gap: 60px;
    }
    .etikett-grid {
        grid-template-columns: 1fr;
    }
    
    .dojo-etikett-section .philosophy-layout {
        gap: 20px;
    }
	.map-responsive-wrapper {
        aspect-ratio: 4 / 3; /* Mobilon magasabb ablakot adunk, hogy jobban kezelhető legyen */
    }
	
	#system-message-container {
        /* Kényszerítsük ki, hogy minden felett legyen */
        position: fixed !important;
        top: 20px !important; 
        left: 10px !important;
        right: 10px !important;
        width: calc(100% - 20px) !important;
        z-index: 9999999 !important;
    }

    #system-message-container joomla-alert {
        margin-bottom: 10px !important;
    }

    /* A belső div-et is célozzuk meg, amit a Joomla generál */
    #system-message-container .alert {
        background-color: var(--dojo-red) !important;
        color: #fff !important;
        border-left: 10px solid #000 !important;
    }

	.dojo-hr { 
		width: 50%;
	}

}