:root {
    color-scheme: light;
    --ki-page-bg: #F3F0E8;
    --ki-page-text: #211F1D;
    --ki-cloud-bg: #F3F0E8;
    --ki-header-fg: #211F1D;
    --ki-accent: #A72B2F;
}

html[data-theme="dark"] {
    color-scheme: dark;
    --ki-page-bg: #211F1D;
    --ki-page-text: #F5F2EA;
    --ki-cloud-bg: rgba(0, 0, 0, .50);
    --ki-header-fg: #F5F2EA;
    --ki-accent: #A72B2F;
}

html,
body {
    background-color: var(--ki-page-bg);
    color: var(--ki-page-text);
}

body,
.container-header .container-nav,
.kiralyimi-nav > ul > li > a,
.kiralyimi-toggle span,
.kiralyimi-theme-toggle,
.kiralyimi-logo .st0,
.kiralyimi-logo .st1 {
    transition:
        background-color 250ms ease,
        color 250ms ease,
        fill 250ms ease,
        stroke 250ms ease;
}

.container-header {
    position: static;
    min-height: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.container-header .container-nav {
    position: fixed;
    top: 14px;
    left: 14px;
    z-index: 1000;

    width: 326px;
    height: 62px;
    min-height: 62px;
    margin: 0;
    padding: 0;
    max-width: none;

    background: var(--ki-cloud-bg);
    border-radius: 14px;

    transition:
        width 250ms ease,
        height 250ms ease;
}

.container-header .navbar-brand {
    display: none;
}

.kiralyimi-floating-header {
    position: relative;
    width: 326px;
    height: 62px;
    overflow: hidden;

    transition:
        width 250ms ease,
        height 250ms ease;
}

/* A logó láthatatlan stílusváltás nélküli főoldallink. */
a.kiralyimi-logo-wrap, a.kiralyimi-logo-wrap:is(:hover,:focus,:active,:visited) {
    color: inherit;
    text-decoration: none;
    outline-offset: 3px;
}
.kiralyimi-logo-wrap {
    position: absolute;
    left: 16px;
    top: 31px;

    width: 205px !important;
    min-width: 205px;
    max-width: 205px;
    height: auto;

    transform: translateY(-50%);
    z-index: 2;
}

.kiralyimi-logo-wrap .kiralyimi-logo {
    display: block;
    width: 205px !important;
    max-width: none !important;
    height: auto !important;
    overflow: visible;
}

.kiralyimi-nav {
    visibility: hidden;
}

.kiralyimi-nav > ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.kiralyimi-controls {
    position: absolute;
    top: 29px;
    right: 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    height: 20px;
    transform: translateY(-50%);
    z-index: 10;
}

.kiralyimi-theme-toggle {
    position: relative;
    flex: 0 0 26px;
    width: 26px;
    height: 20px;
    padding: 0;
    margin: 0;
    display: block;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--ki-header-fg) !important;
    cursor: pointer;

    transform: translateX(0px);
    transition: transform 250ms ease;
}

.kiralyimi-theme-icon {
    display: block !important;
    width: 26px !important;
    height: auto !important;
    margin: 0;
    overflow: visible !important;
}

.kiralyimi-theme-icon .theme-sun,
.kiralyimi-theme-icon .theme-moon {
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 16;
    stroke-linejoin: round;
    opacity: 1;
}

.kiralyimi-toggle {
    position: relative;
    flex: 0 0 22px;
    width: 22px;
    height: 18px;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    z-index: 3;
}

.kiralyimi-toggle span { position:absolute; left:0; width:22px; height:2px; background:#211F1D; border-radius:1px; transition:top 250ms ease, transform 250ms ease, opacity 180ms ease; }
.kiralyimi-toggle span:nth-child(1) { top:1px; }
.kiralyimi-toggle span:nth-child(2) { top:8px; }
.kiralyimi-toggle span:nth-child(3) { top:15px; }
.kiralyimi-floating-header.open .kiralyimi-toggle span:nth-child(1) { top:8px; transform:rotate(45deg); }
.kiralyimi-floating-header.open .kiralyimi-toggle span:nth-child(2) { opacity:0; }
.kiralyimi-floating-header.open .kiralyimi-toggle span:nth-child(3) { top:8px; transform:rotate(-45deg); }

.kiralyimi-floating-header.open {
    width: var(--open-width, calc(100vw - 28px));
}

.container-header .container-nav:has(.kiralyimi-floating-header.open) {
    width: var(--open-width, calc(100vw - 28px));
}

.kiralyimi-floating-header.open .kiralyimi-nav {
    visibility: visible;

    position: absolute;
    left: 300px;
    right: 70px;
    top: 21px;

    transform: translateY(-50%);
    z-index: 1;
}

.kiralyimi-floating-header.open .kiralyimi-nav > ul {
    display: flex;
    flex-direction: row;
    align-items: center;

    gap: 26px;

    margin: 0;
    padding: 0;
    list-style: none;
}

.kiralyimi-floating-header.open .kiralyimi-nav > ul > li {
    margin: 0;
    padding: 0;
}

.kiralyimi-floating-header.open .kiralyimi-nav > ul > li > a {
    position: relative;
    display: block;

    margin: 0;
    padding: 0;
    border: 0;

    background: none;

    font-family: var(--ki-font-heading);
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .05em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;

    color: var(--ki-header-fg);

    transition: opacity 180ms ease;
}

.kiralyimi-nav a,
.kiralyimi-nav a:hover,
.kiralyimi-nav a:focus,
.kiralyimi-nav a:active {
    text-decoration: none !important;
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    background: none !important;
    background-image: none !important;
}

.kiralyimi-floating-header:not(.compact)
.kiralyimi-nav > ul > li > a:hover {
    opacity: .55;
}

.kiralyimi-floating-header:not(.compact)
.kiralyimi-nav > ul > li > a::after {
    content: "";

    position: absolute;
    left: 0;

    bottom: -2px;

    width: 100%;
    height: 2px;

    background: var(--ki-accent) !important;

    transform: scaleX(0);
    transform-origin: left center;

    transition: transform 180ms ease;
}

.kiralyimi-floating-header:not(.compact)
.kiralyimi-nav > ul > li > a:hover::after {
    transform: scaleX(1);
}

.kiralyimi-line-extension {
    fill: var(--ki-accent);
}

.kiralyimi-floating-header.compact {
    width: 326px;
    height: 62px;
    overflow: hidden;
}

.container-header .container-nav:has(.kiralyimi-floating-header.compact) {
    width: 326px;
}

.kiralyimi-floating-header.compact .kiralyimi-line-extension {
    display: none;
}

.kiralyimi-floating-header.compact .kiralyimi-logo-wrap {
    top: 31px !important;
}

.kiralyimi-floating-header.compact .kiralyimi-nav {
    visibility: visible;

    position: absolute !important;

    left: 0 !important;
    right: 0 !important;
    top: 62px !important;

    margin: 0;
    padding: 10px 16px 18px;

    transform: translateY(-100%) !important;
    opacity: 0;

    pointer-events: none;

    transition:
        transform 250ms ease,
        opacity 150ms ease;
}

.kiralyimi-floating-header.compact .kiralyimi-nav > ul {
    display: flex;
    flex-direction: column;
    align-items: stretch;

    width: 100%;

    gap: 20px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.kiralyimi-floating-header.compact .kiralyimi-nav > ul > li {
    position: relative;

    display: block;
    width: 100%;

    margin: 0;
    padding: 0;

    border: 0 !important;
    box-shadow: none !important;
    background: none !important;
}

.kiralyimi-floating-header.compact .kiralyimi-nav > ul > li > a {
    position: relative;

    display: block;
    width: 100%;

    margin: 0;
    padding: 0;

    border: 0 !important;
    box-shadow: none !important;
    background: none !important;

    font-family: var(--ki-font-heading);
    font-size: 14px;
    font-weight: 400;
    line-height: 0.5;
    letter-spacing: .05em;
    text-transform: uppercase;
    text-decoration: none !important;
    white-space: nowrap;

    color: var(--ki-header-fg);

    transition: opacity 180ms ease;
}

.kiralyimi-floating-header.compact
.kiralyimi-nav > ul > li > a:hover {
    opacity: .55;
}

.kiralyimi-floating-header.compact
.kiralyimi-nav > ul > li > a::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: -5px;

    width: 100%;
    height: 2px;

    background: var(--ki-accent) !important;

    border: 0 !important;
    box-shadow: none !important;

    transform: scaleX(0);
    transform-origin: left center;

    transition: transform 180ms ease;
}

.kiralyimi-floating-header.compact
.kiralyimi-nav > ul > li > a:hover::after {
    transform: scaleX(1);
}

.kiralyimi-floating-header.compact.open {
    width: 326px;
    height: var(--compact-open-height, 110px);
}

.container-header .container-nav:has(.kiralyimi-floating-header.compact.open) {
    width: 326px;
    height: var(--compact-open-height, 110px);
}

.kiralyimi-floating-header.compact.open .kiralyimi-nav {
    transform: translateY(0) !important;
    opacity: 1;
    pointer-events: auto;
}

.kiralyimi-floating-header
.kiralyimi-nav > ul > li > a {
    opacity: .75 !important;
    transition: none !important;
}

.kiralyimi-floating-header
.kiralyimi-nav > ul > li > a:hover,
.kiralyimi-floating-header
.kiralyimi-nav > ul > li > a:focus {
    opacity: 1 !important;
}

.kiralyimi-floating-header:not(.compact)
.kiralyimi-nav > ul > li > a::after {
    bottom: -6px !important;
    height: 3px !important;
    background: var(--ki-accent) !important;
}

.kiralyimi-floating-header.compact
.kiralyimi-nav > ul > li > a::after {
    bottom: -5px !important;
    background: var(--ki-accent) !important;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li > a {
    position: relative;
    top: 1px;
}

.kiralyimi-floating-header.compact .kiralyimi-nav > ul {
    gap: 20px;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li > a {
    font-family: var(--ki-font-heading);
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .05em;

    position: relative;
    top: 1px;

    opacity: .75 !important;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:hover,
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:focus {
    opacity: 1 !important;
}

.kiralyimi-floating-header.compact .kiralyimi-nav > ul {
    gap: 20px;
}

html[data-theme="dark"] .kiralyimi-logo .st0,
html[data-theme="dark"] .kiralyimi-logo .st1 {
    fill: var(--ki-header-fg) !important;
}
html[data-theme="dark"] .kiralyimi-line-extension {
    fill: var(--ki-header-fg) !important;
}

html[data-theme="dark"] .kiralyimi-toggle span {
    background: var(--ki-header-fg) !important;
}

html[data-theme="light"] .kiralyimi-logo .st0 {
    fill: #211F1D !important;
}

html[data-theme="light"] .kiralyimi-logo .st1,
html[data-theme="light"] .kiralyimi-line-extension {
    fill: var(--ki-accent) !important;
}

.kiralyimi-theme-icon .theme-sun,
.kiralyimi-theme-icon .theme-moon {
    transition:
        opacity 180ms ease,
        stroke-width 180ms ease;
}

html[data-theme="light"] .kiralyimi-theme-icon .theme-sun {
    opacity: 1 !important;
    stroke-width: 18;
}

html[data-theme="light"] .kiralyimi-theme-icon .theme-moon {
    opacity: .42 !important;
    stroke-width: 13;
}

html[data-theme="dark"] .kiralyimi-theme-icon .theme-sun {
    opacity: .42 !important;
    stroke-width: 13;
}

html[data-theme="dark"] .kiralyimi-theme-icon .theme-moon {
    opacity: 1 !important;
    stroke-width: 18;
}

html[data-theme="dark"] body {
    background-color: var(--ki-page-bg);
    color: var(--ki-page-text);
}
html[data-theme="dark"] :is(.site-grid, main, .container-component, .sidebar-left, .sidebar-right) {
    background-color: transparent;
    color: var(--ki-page-text);
}



html[data-theme="dark"] input,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select {
    background-color: rgba(255, 255, 255, .06);
    color: var(--ki-page-text);
    border-color: rgba(245, 242, 234, .35);
}

:root {
    --ki-font-heading: "Merriweather", Georgia, serif;
    --ki-font-initial: "Marck Script", cursive;
    --ki-font-body: "Source Sans 3", sans-serif;

    --ki-body-size: 17.1px;
    --ki-body-leading: 1.3;

    --ki-h1-size: 22.5px;
    --ki-h2-size: 18.9px;
    --ki-h3-size: var(--ki-h2-size);

    --ki-button-border: #A72B2F;
}

html[data-theme="dark"] {
    --ki-button-border: #F5F2EA;
}

body {
    font-family: var(--ki-font-body);
    font-size: var(--ki-body-size);
    line-height: var(--ki-body-leading);
}

h1, h2, h3,
.ki-heading {
    font-family: var(--ki-font-heading);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: .015em;
}

h1 { font-size: var(--ki-h1-size); }
h2 { font-size: var(--ki-h2-size); }
h3 { font-size: var(--ki-h3-size); }

.ki-prose {
    max-width: 68ch;
}

blockquote,
.ki-quote {
    font-style: italic;
}

figcaption,
.ki-caption {
    font-size: .75em;
    line-height: 1.35;
}

/* KI global text-link contract: site-wide by default. Explicit controls, navigation and partner cards are exceptions. */
a:not(.ki-button):not(.kiralyimi-nav a):not([class*="ki02-"]):not(.ki-partners__card) {
    color: inherit;
    font-weight: inherit;
    text-decoration-line: underline;
    text-decoration-color: var(--ki-accent);
    text-underline-offset: .16em;
}
a:not(.ki-button):not(.kiralyimi-nav a):not([class*="ki02-"]):not(.ki-partners__card):visited { color: inherit; }
a:not(.ki-button):not(.kiralyimi-nav a):not([class*="ki02-"]):not(.ki-partners__card):is(:hover,:focus-visible,:active) { color: var(--ki-accent); }
/* A button that performs navigation without changing pages is visually a text link. */
.ki-link {
    font: inherit;
    color: inherit;
    text-decoration: underline var(--ki-accent);
    text-underline-offset: .16em;
    cursor: pointer;
}
.ki-link:is(:hover,:focus-visible,:active) { color: var(--ki-accent); }

.ki-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7.2px;
    min-height: 30.6px;
    padding: 5.4px 9px;
    border: 1px solid var(--ki-button-border);
    border-radius: 12.6px;
    background: var(--ki-cloud-bg);
    color: var(--ki-header-fg) !important;
    font-family: var(--ki-font-heading);
    font-size: 11.7px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .05em;
    text-transform: uppercase;
    text-decoration: none !important;
    opacity: 1 !important;
    cursor: pointer;
    box-shadow: none !important;
    white-space: nowrap;
    -webkit-tap-highlight-color: transparent;
}

.ki-button:hover,
.ki-button:focus,
.ki-button:active {
    color: var(--ki-header-fg) !important;
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
    opacity: 1 !important;
}

.ki-button::after { content: none; }

.ki-button > span:first-child {
    opacity: .75;
}
.ki-button:hover > span:first-child,
.ki-button:focus-visible > span:first-child {
    opacity: 1;
}

.ki-button__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 12.6px;
    width: 12.6px;
    height: 12.6px;
    font-size: 0;
    line-height: 0;
    opacity: 1 !important;
    transform: translate(0, 0);
    transition: transform 180ms ease;
}
.ki-button__arrow::before {
    content: "";
    display: block;
    width: 12.6px;
    height: 12.6px;
    background-color: #A72B2F !important;
    opacity: 1 !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 21L19 5M7 5h12v12' fill='none' stroke='black' stroke-width='3.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 21L19 5M7 5h12v12' fill='none' stroke='black' stroke-width='3.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ki-button:hover .ki-button__arrow,
.ki-button:focus-visible .ki-button__arrow {
    transform: translate(3px, -3px);
}
.ki-button:focus-visible {
    outline: 2px solid var(--ki-accent);
    outline-offset: 2.7px;
}
@media  (prefers-reduced-motion: reduce) {
    .ki-button__arrow { transition: none; }
}

p {
    margin-left: 2.5em;
}

h1.ki-title-line,
h2.ki-title-line,
h3.ki-title-line {
    position: relative;
    display: flex;
    gap: 00em;
    width: 100%;
    align-items: baseline;
    margin-left: 0;
    margin-right: 0;
    padding: 0;
    border: 0;
    background: none;
    font-family: var(--ki-font-heading);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: .015em;
    color: inherit;
}
h1.ki-title-line { font-size: var(--ki-h1-size); margin-bottom: 16px; }
h2.ki-title-line { font-size: var(--ki-h2-size); margin-bottom: 16px; }
h3.ki-title-line { font-size: var(--ki-h3-size); }

.ki-title-line > .ki-initial {
    position: relative;
    top: calc(.13em + .9px);
    display: inline-block;
    flex: 0 0 auto;
    font-family: var(--ki-font-initial);
    font-size: 1.85em;
    font-weight: 400;
    line-height: .62;
    color: inherit;
    text-transform: none;
    vertical-align: baseline;
}
.ki-title-line > .ki-title-rest {
    position: relative;
    display: block;
    flex: 1 1 auto;
    min-width: 0;
}

h1.ki-title-line > .ki-title-rest::after,
h2.ki-title-line > .ki-title-rest::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6.3px;
    height: 2.7px;
    border-radius: 999px;
    background: var(--ki-accent);
}

h3.ki-title-line > .ki-title-rest::after {
    content: none;
}

/* KI: one shared glass palette, in both themes. */
:root {
    --ki-surface-glass: rgba(151, 111, 76, .24);
    --ki-surface-blur: 15px;
    --ki-accordion-border: rgba(92, 65, 48, .52);
}
html[data-theme="dark"] {
    --ki-surface-glass: rgba(0, 0, 0, .48);
    --ki-accordion-border: rgba(245, 242, 234, .48);
}
/* Shared accordion surface: the module content inherits these values. */
details.ki-accordion,
.ki-fixed-footer__accordion details,
.ki02-gallery details.ki02-folder,
.ki-order details.ki-order__accordion,
.ki-order details.ki-order__details {
    background: var(--ki-surface-glass);
    border-color: var(--ki-accordion-border);
    color: var(--ki-page-text);
    -webkit-backdrop-filter: blur(var(--ki-surface-blur));
    backdrop-filter: blur(var(--ki-surface-blur));
}
.ki02-gallery { --ki02-surface: var(--ki-surface-glass); }

/* KI common accordion contract: same title DOM as ordinary site headings. */
.ki-accordion > summary {
    display: flex;
    align-items: center;
    gap: 12px;
    list-style: none;
    cursor: pointer;
}
.ki-accordion > summary::-webkit-details-marker { display: none; }
.ki-accordion > summary::marker { content: ""; }
.ki-accordion > summary > .ki-title-line {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    text-transform: uppercase;
}
.ki-accordion > summary > .ki-title-line > .ki-title-rest {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
}
.ki-accordion[open] > summary > .ki-title-line { font-size: var(--ki-h2-size); }
/* Closed looks like H3; open looks like H2. The line belongs to title-rest. */
.ki-accordion:not([open]) > summary > .ki-title-line > .ki-title-rest::after {
    content: none;
}
.ki-accordion[open] > summary > .ki-title-line > .ki-title-rest::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6.3px;
    height: 2.7px;
    border-radius: 999px;
    background: var(--ki-accent);
}
/* KI accordion: one visual contract; both modules use native details[open].
   The chevron rotates on the same element, not on its parent. */
details.ki-accordion > summary > .ki-accordion-chevron {
    display:block;
    flex:0 0 10px;
    width:10px;
    height:10px;
    border:0;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg);
    transform-origin:50% 50%;
    transition:transform 250ms ease;
}
details.ki-accordion[open] > summary > .ki-accordion-chevron {
    transform:rotate(225deg);
}
/* Joomla Cassiopeia outer module wrappers are not the module's cloud.
   Only wrappers containing KI-02 / KI-order are neutralized. */
:is(.moduletable,.card,.card-body,.mod-custom):has(.ki02-gallery),
:is(.moduletable,.card,.card-body,.mod-custom):has(.ki-order),
:is(.moduletable,.card,.card-body,.mod-custom):has(.ki-feature-grid) {
    background:transparent;
    background-image:none;
    border:0;
    border-radius:0;
    box-shadow:none;
}
:is(.moduletable,.card,.card-body):has(.ki02-gallery) > .card-body,
:is(.moduletable,.card,.card-body):has(.ki-order) > .card-body {
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    padding:0;
}


main h1.ki-title-line,
.container-component h1.ki-title-line,
.com-content-article h1.ki-title-line,
.page-header h1.ki-title-line {
    width: 100%;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li > a {
    top: -1px;
}

html[data-theme="light"] .container-header .container-nav {
    box-shadow:
        0 2px 10px rgba(33, 31, 29, .18),
        0 0 18px rgba(33, 31, 29, .10);
}

html[data-theme="dark"] .container-header .container-nav {
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
}

:root {
    --ki-paragraph-indent: 1.75em;
}
p {
    margin-left: var(--ki-paragraph-indent);
}

.ki-title-line + p {
    margin-top: .35em;
    margin-left: var(--ki-title-rest-offset, var(--ki-paragraph-indent));
}

.kiralyimi-floating-header:not(.compact).open .kiralyimi-nav > ul {
    flex-wrap: nowrap;
}
.kiralyimi-floating-header:not(.compact).open .kiralyimi-nav > ul > li,
.kiralyimi-floating-header:not(.compact).open .kiralyimi-nav > ul > li > a {
    flex: 0 0 auto;
    white-space: nowrap;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:hover::after {
    transform: scaleX(1) !important;
    opacity: 1 !important;
}

.kiralyimi-floating-header .kiralyimi-nav {
    z-index: 2 !important;
}
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a,
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a::after {
    position: relative;
    z-index: 3 !important;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li > a::after {
    transform: scaleX(0) !important;
    opacity: 0 !important;
}
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:hover::after {
    transform: scaleX(1) !important;
    opacity: 1 !important;
}

.kiralyimi-floating-header.compact .kiralyimi-nav > ul > li > a::after {
    bottom: -8px !important;
}

.kiralyimi-floating-header .kiralyimi-line-extension {
    position: relative;
    z-index: 0 !important;
}

.kiralyimi-floating-header .kiralyimi-nav {
    z-index: 2 !important;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li > a {
    position: relative;
    z-index: 3 !important;
}

.kiralyimi-floating-header
.kiralyimi-nav > ul > li > a::after {
    z-index: 4 !important;
}

.kiralyimi-floating-header
.kiralyimi-nav > ul > li > a::after {
    transform: scaleX(0) !important;
    opacity: 0 !important;
}

.kiralyimi-floating-header
.kiralyimi-nav > ul > li > a:hover::after {
    transform: scaleX(1) !important;
    opacity: 1 !important;
}

.kiralyimi-floating-header:not(.compact)
.kiralyimi-nav > ul > li > a::after {
    bottom: -6px !important;
    height: 3px !important;
}

.kiralyimi-floating-header.compact
.kiralyimi-nav > ul > li > a::after {
    bottom: -7px !important;
    height: 3px !important;
}

html[data-theme="light"]
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a::after {
    background: var(--ki-accent) !important;
}

html[data-theme="dark"]
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a::after {
    background: var(--ki-header-fg) !important;
}

.kiralyimi-floating-header:not(.compact)
.kiralyimi-nav > ul > li > a::before {
    content: none !important;
    display: none !important;
}

.kiralyimi-floating-header:not(.compact)
.kiralyimi-nav > ul > li > a::after {
    bottom: -6px !important;
    height: 3px !important;
}

.kiralyimi-floating-header.compact
.kiralyimi-nav > ul > li > a::after {
    bottom: -7px !important;
    height: 2px !important;
}

html[data-theme="light"]
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a::after {
    background: var(--ki-accent) !important;
}

html[data-theme="dark"]
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a::after {
    background: var(--ki-header-fg) !important;
}

.kiralyimi-nav > ul > li.current,
.kiralyimi-nav > ul > li.active,
.kiralyimi-nav > ul > li.alias-parent-active,
.kiralyimi-nav > ul > li.current > a,
.kiralyimi-nav > ul > li.active > a,
.kiralyimi-nav > ul > li.alias-parent-active > a,
.kiralyimi-nav > ul > li > a[aria-current="page"],
.kiralyimi-nav > ul > li > a[aria-current="true"] {
    text-decoration: none !important;
    text-decoration-line: none !important;
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
}

.kiralyimi-nav > ul > li.current::before,
.kiralyimi-nav > ul > li.current::after,
.kiralyimi-nav > ul > li.active::before,
.kiralyimi-nav > ul > li.active::after,
.kiralyimi-nav > ul > li.alias-parent-active::before,
.kiralyimi-nav > ul > li.alias-parent-active::after {
    content: none !important;
    display: none !important;
    border: 0 !important;
    box-shadow: none !important;
    background: none !important;
}

html[data-theme="dark"]
.kiralyimi-floating-header.compact
.kiralyimi-nav > ul > li > a::after {
    background: var(--ki-accent) !important;
}

html.ki-nav-restoring .container-header .container-nav,
html.ki-nav-restoring .kiralyimi-floating-header,
html.ki-nav-restoring .kiralyimi-floating-header .kiralyimi-nav {
    transition: none !important;
}

.kiralyimi-floating-header
.kiralyimi-nav > ul > li > a:hover,
.kiralyimi-floating-header
.kiralyimi-nav > ul > li > a:focus,
.kiralyimi-floating-header
.kiralyimi-nav > ul > li > a:focus-visible {
    text-decoration: none !important;
    text-decoration-line: none !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
}

h1,
h2 {
    text-transform: uppercase;
}

h1 .ki-initial,
h2 .ki-initial {
    text-transform: none;
}

h3 {
    text-transform: uppercase;
}

h3 .ki-initial {
    text-transform: none;
}

@media  (min-width: 761px) {

    .site-grid,
    .container-component,
    main {
        margin-top: 0;
    }

    .site-grid > :first-child,
    .container-component > :first-child,
    main > :first-child {
        margin-top: 0 !important;
    }
}

@media  (min-width: 761px) {

    .container-banner {
        position: relative;
        top: 0 !important;
        align-self: start;
        row-gap: 0 !important;
        column-gap: 0 !important;
    }

}

@media  (min-width: 761px) {

    .container-banner {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

}

html[data-theme="light"] .ki-button {
    background: rgba(0, 0, 0, .035);
    border-color: var(--ki-accent, #A72B2F) !important;
    color: var(--ki-header-fg) !important;
}

html[data-theme="light"] .ki-button .ki-button__label {
    color: inherit !important;
}

html[data-theme="light"] .ki-button .ki-button__arrow {
    background-color: var(--ki-accent, #A72B2F) !important;
}

html[data-theme="light"] .ki-button .ki-button__arrow::before,
html[data-theme="light"] .ki-button .ki-button__arrow::after {
    background-color: transparent !important;
}

html[data-theme="light"] .ki-button .ki-button__arrow {
    background: transparent !important;
    background-color: transparent !important;
}

html[data-theme="light"] .ki-button .ki-button__arrow::before {
    background: var(--ki-accent, #A72B2F) !important;
    background-color: var(--ki-accent, #A72B2F) !important;
}

html[data-theme="light"] .ki-button .ki-button__arrow::after {
    background: transparent !important;
    background-color: transparent !important;
}

.container-header {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li,
.kiralyimi-floating-header .kiralyimi-nav > ul > li:hover,
.kiralyimi-floating-header .kiralyimi-nav > ul > li:focus-within,
.kiralyimi-floating-header .kiralyimi-nav > ul > li.current,
.kiralyimi-floating-header .kiralyimi-nav > ul > li.active,
.kiralyimi-floating-header .kiralyimi-nav > ul > li.alias-parent-active {
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    background: none !important;
    background-image: none !important;
    text-decoration: none !important;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li::before,
.kiralyimi-floating-header .kiralyimi-nav > ul > li::after,
.kiralyimi-floating-header .kiralyimi-nav > ul > li:hover::before,
.kiralyimi-floating-header .kiralyimi-nav > ul > li:hover::after,
.kiralyimi-floating-header .kiralyimi-nav > ul > li:focus-within::before,
.kiralyimi-floating-header .kiralyimi-nav > ul > li:focus-within::after {
    content: none !important;
    display: none !important;
    border: 0 !important;
    box-shadow: none !important;
    background: none !important;
    background-image: none !important;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li > a,
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:hover,
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:focus,
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:focus-visible,
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:active {
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    background: none !important;
    background-image: none !important;
    text-decoration: none !important;
    text-decoration-line: none !important;
    outline-color: transparent !important;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li > a::before,
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:hover::before,
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:focus::before,
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:focus-visible::before,
.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:active::before {
    content: none !important;
    display: none !important;
    border: 0 !important;
    box-shadow: none !important;
    background: none !important;
    background-image: none !important;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li > a::after {
    content: "" !important;
    display: block !important;
    transform: scaleX(0) !important;
    opacity: 0 !important;
}

.kiralyimi-floating-header .kiralyimi-nav > ul > li > a:hover::after {
    transform: scaleX(1) !important;
    opacity: 1 !important;
}

.ki-slider{position:relative;isolation:isolate;width:100%;height:600px;min-height:600px;max-height:600px;overflow:hidden;background:#211f1d;container-type:inline-size;--ki-edge:14px;--ki-top:76px;--ki-bottom:42px;--ki-gap:12px}
.ki-slider,.ki-slider *{box-sizing:border-box}
.ki-slider .ki-slide{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;background:var(--ki-slide-image) center/cover no-repeat;transition:opacity 1.8s ease,visibility 0s linear 1.8s}
.ki-slider .ki-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity 1.8s ease,visibility 0s}
.ki-slider .ki-slide-cloud{position:absolute;z-index:3;left:clamp(20px,7vw,120px);top:clamp(112px,17vw,190px);width:max-content;max-width:calc(100% - 2*var(--ki-edge));min-width:0;padding:23.4px 23.4px 70.2px;border-radius:22px;background:var(--ki-cloud-bg);color:var(--ki-header-fg);box-shadow:0 10px 34px rgba(0,0,0,.14);backdrop-filter:blur(15px);font-family:var(--ki-font-body,'Source Sans 3',sans-serif)}
.ki-slider .ki-slide-cloud h2{font-size:var(--ki-h2-size);color:inherit}
.ki-slider .ki-slide-cloud p{margin-bottom:0;color:inherit;line-height:var(--ki-body-leading)}
/* KI shared heading/content rhythm: slider + feature cards, single source of truth. */
:is(.ki-slider .ki-slide-cloud, .ki-feature-grid .ki-feature__content) > :is(h2,h3) { margin-top: 0; margin-bottom: .68em; }
:is(.ki-slider .ki-slide-cloud, .ki-feature-grid .ki-feature__content) > :is(p, .ki-feature__body, .ki-feature__quote):is(:not(.ki-button)) { margin-top: .35em; }

.ki-slider .ki-slide-cloud > h2.ki-title-line + p{margin-left:var(--ki-title-rest-offset,var(--ki-paragraph-indent));}
.ki-slider .ki-slide-cloud > :not(.ki-button){position:relative;z-index:1}
.ki-slider .ki-slide-cloud>.ki-button{position:absolute;z-index:5;right:clamp(20px,2vw,30px);bottom:clamp(18px,1.8vw,26px);left:auto;top:auto;margin:0;transform:none;white-space:nowrap}
.ki-slider .ki-slide-cloud>.ki-button:hover,.ki-slider .ki-slide-cloud>.ki-button:focus-visible{transform:none}
.ki-slider .ki-slide--about .ki-slide-cloud{display:grid;grid-template-columns:fit-content(100%);justify-content:start}
.ki-slider .ki-slide--about .ki-slide-quote-text,.ki-slider .ki-slide--about .ki-slide-author{grid-column:1}
.ki-slider .ki-slide--about .ki-slide-cloud::before{content:'';position:absolute;z-index:0;left:-15px;top:-20px;width:62px;height:62px;aspect-ratio:1;background:url('/images/slider/idezo-99.svg') left top/contain no-repeat;pointer-events:none}
.ki-slider .ki-slide-quote-text{font-style:italic;width:fit-content;max-width:100%}
.ki-slider .ki-slide-cloud .ki-slide-author{width:fit-content;max-width:100%;margin:10.8px 0 0 auto;font-size:.75em;line-height:1.35;text-align:right}
.ki-slider .ki-slide--graphic .ki-slide-cloud{top:clamp(112px,18vw,205px)}
.ki-slider .ki-slide--graphic .ki-slide-cloud p{max-width:36ch}
.ki-slider .ki-initial{position:relative;top:calc(.13em + 1px);display:inline-block;text-transform:none;vertical-align:baseline}
.ki-slider .ki-slide-craft-title{margin:0;white-space:normal;text-align:left;color:inherit}
.ki-slider .ki-slide-craft-text{letter-spacing:.045em;text-transform:uppercase}
.ki-slider .ki-slider-dots{position:absolute;z-index:10;left:50%;bottom:20px;display:flex;align-items:center;justify-content:center;gap:11px;min-height:16px;transform:translateX(-50%)}
.ki-slider .ki-slider-dots button{display:block;width:10px;height:10px;min-width:10px;min-height:10px;margin:0;padding:0;border:1px solid #f5f2ea;border-radius:50%;background:rgba(0,0,0,.18);box-shadow:0 1px 5px rgba(0,0,0,.35);cursor:pointer}
.ki-slider .ki-slider-dots button.is-active{background:#f5f2ea}

.ki-slider .ki-slide--craft .ki-slide-cloud{left:var(--ki-cx,14px);top:var(--ki-cy,320px);width:var(--ki-cw,max-content);max-width:calc(100% - 28px);transform:none;transition:none}
.ki-slider .ki-slide--craft>.ki-slide-stamp{position:absolute;z-index:4;left:var(--ki-sx,calc(50% - 90px));top:var(--ki-sy,100px);width:var(--ki-sw,180px);height:auto;max-width:none;max-height:none;object-fit:contain;filter:drop-shadow(0 5px 14px rgba(0,0,0,.17));transition:none}
.ki-slider .ki-craft-probe{position:absolute!important;left:-99999px!important;top:0!important;visibility:hidden!important;pointer-events:none!important;transform:none!important;max-width:none!important;width:var(--ki-probe-width,max-content)!important;height:auto!important;transition:none!important}
@media(max-width:680px){.ki-slider .ki-slide--about .ki-slide-cloud,.ki-slider .ki-slide--graphic .ki-slide-cloud{left:50%;transform:translateX(-50%);max-width:calc(100% - 28px)}.ki-slider .ki-slide-cloud{padding:21.6px 19.8px 70.2px;border-radius:18px}.ki-slider .ki-slide-cloud>.ki-button{right:16.2px;bottom:16.2px}.ki-slider .ki-slider-dots{bottom:17px}}
@media(prefers-reduced-motion:reduce){.ki-slider .ki-slide{transition:none}}

:root { --ki-module-space: 4px; }
.site-grid { row-gap: var(--ki-module-space); }

.site-grid > :is(.container-banner, .container-top-a, .container-top-b,
                 .container-bottom-a, .container-bottom-b) {
  margin-block: 0;
  padding-block: 0;
}

:is(.container-top-a, .container-top-b, .container-bottom-a, .container-bottom-b) > .moduletable + .moduletable {
  margin-block-start: var(--ki-module-space);
}

:root {
  --ki-content-gutter: 24px;
  --ki-content-max: 1320px;
  --ki-feature-gap: clamp(12px, 1.4vw, 20px);
  --ki-feature-space: 6px;
  --ki-feature-bg-b: var(--ki-surface-glass);
}
.ki-feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 470px), 1fr));
  gap: var(--ki-feature-gap);
  width: min(100%, var(--ki-content-max));
  margin-inline: auto;
  padding-block: var(--ki-feature-space);
}

.ki-feature-grid > .ki-feature {
  --ki-feature-focus: 50% 50%;
  --ki-feature-bg: var(--ki-feature-bg-b);
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr);
  align-items: center;
  gap: clamp(18px, 2.4vw, 34px);
  min-width: 0;
  min-height: 270px;
  padding: clamp(22px, 2.6vw, 34px);
  border-radius: 22px;
  border: 1px solid var(--ki-accordion-border);
  background: var(--ki-feature-bg);
  color: var(--ki-page-text);
  -webkit-backdrop-filter: blur(var(--ki-surface-blur));
  backdrop-filter: blur(var(--ki-surface-blur));
  box-shadow: var(--ki-surface-glow);
  overflow: hidden;
  isolation: isolate;
}
/* Unified feature surface: only image/text order alternates. */
.ki-feature-grid > .ki-feature:nth-child(even) {
  grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr);
}
.ki-feature-grid > .ki-feature:nth-child(even) .ki-feature__media { order: 2; }
.ki-feature-grid > .ki-feature:nth-child(even) .ki-feature__content { order: 1; }
.ki-feature-grid .ki-feature__media {
  position: relative;
  min-width: 0;
  width: 100%;
  height: clamp(210px, 23vw, 320px);
  margin: 0;
}
.ki-feature-grid .ki-feature__image {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: var(--ki-feature-focus);
  -webkit-mask: var(--ki-brush-mask);
  mask: var(--ki-brush-mask);
  -webkit-mask-mode: alpha;
  mask-mode: alpha;
}
.ki-feature-grid .ki-feature__media::after {
  content: '';
  position: absolute;
  left: 0; bottom: var(--ki-vine-bottom);
  height: var(--ki-vine-height); width: auto;
  aspect-ratio: var(--ki-vine-ratio);
  background: var(--ki-vine-decoration);
  pointer-events: none;
  z-index: 2;
  filter: none;
}
.ki-feature-grid > .ki-feature:nth-child(even) .ki-feature__media::after {
  left: auto; right: 0;
  transform: scaleX(-1);
  transform-origin: center;
}
html[data-theme="dark"] .ki-feature-grid .ki-feature__media::after {
  filter: brightness(0) invert(1) drop-shadow(var(--ki-outer-glow));
}
.ki-feature-grid .ki-feature__content {
  color: var(--ki-page-text);
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-width: 0;
}
.ki-feature-grid .ki-feature__content p { margin-bottom: 0; }
.ki-feature-grid .ki-feature__content > .ki-button {
  position: static;
  align-self: flex-end;
  margin: auto 0 0;
}
.ki-feature-grid .ki-feature__content > :last-child { margin-bottom: 0; }
.ki-focus-left { --ki-feature-focus: 25% 50%; }
.ki-focus-right { --ki-feature-focus: 75% 50%; }
.ki-focus-top { --ki-feature-focus: 50% 25%; }
.ki-focus-bottom { --ki-feature-focus: 50% 75%; }

.moduletable:has(.ki-feature-grid),
.card:has(.ki-feature-grid),
.mod-custom:has(> .ki-feature-grid),
.card-body:has(.ki-feature-grid),
.moduletable:has(.ki-feature-grid) > .card,
.moduletable:has(.ki-feature-grid) > .card-body,
.card:has(.ki-feature-grid) > .card-body {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}
@media (max-width: 760px) {
  .ki-feature-grid {
    grid-template-columns: minmax(0, 1fr);
    width: calc(100vw - 2 * var(--ki-content-gutter));
    max-width: none;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin-inline: 0;
  }
  .ki-feature-grid > .ki-feature,
  .ki-feature-grid > .ki-feature:nth-child(even) {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 16.2px;
    min-height: 0;
    padding: 20px;
    border-radius: 18px;
  }
  .ki-feature-grid .ki-feature__content,
  .ki-feature-grid > .ki-feature:nth-child(even) .ki-feature__content { order: 1; }
  .ki-feature-grid .ki-feature__media,
  .ki-feature-grid > .ki-feature:nth-child(even) .ki-feature__media {
    order: 2;
    width: 100%;
    height: clamp(190px, 55vw, 300px);
    margin: 0;
  }
  .ki-feature-grid .ki-feature__content > .ki-button { margin-top: 7.2px; }
}

:root { --ki-content-top-clearance: 84px; }
.site-grid { padding-top: var(--ki-content-top-clearance); }
.site-grid:has(> .container-banner:first-child .ki-slider) { padding-top: 0; }
@media (max-width: 760px) {
  :root { --ki-content-top-clearance: 82px; }
}


/* KI: Cassiopeia's unused footer surface around the fixed footer module. */
body > footer.container-footer,
body > footer.container-footer > .grid-child {
  background: transparent !important;
  background-image: none !important;
  min-height: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
body > footer.container-footer > .grid-child {
  height: 0 !important;
  border: 0 !important;
}

/* KI — Shared brush + vine assets (feature cards and article images). */
:root {
  --ki-brush-mask: url('/images/ki-decor/ki-ecsetmaszk-alpha.png') center / 100% 100% no-repeat;
  --ki-vine-decoration: url('/images/ki-decor/nepi-inda-voros.svg') left bottom / 100% 100% no-repeat;
  --ki-vine-height: 75%;
  --ki-vine-ratio: 544.47 / 568.3;
  --ki-vine-bottom: 0px;
  /* No glow in light theme. Dark theme shares one neutral grey halo. */
  --ki-outer-glow: 0 0 0 transparent;
  --ki-surface-glow: none;
}

html[data-theme="dark"] {
  --ki-outer-glow: 0 0 7px rgba(0, 0, 0, .98);
  --ki-surface-glow: none;
}

/* Gallery featured-image vine: use the same dark-theme halo as other decorations.
   Target the actual KI-02 gallery markup, not the unrelated feature-card component. */
html[data-theme="dark"] .ki02-gallery .ki02-featured-vine {
  filter: drop-shadow(var(--ki-outer-glow));
}

/* KI article images: both existing wrapper markup and TinyMCE image classes.
   TinyMCE applies image-class choices to IMG, not to its P/FIGURE wrapper. */
:is(.com-content-article, .item-page) :is(.ki-article-image, p:has(> img.ki-article-image), figure:has(> img.ki-article-image)),
figure.ki-article-image {
  display: block;
  position: relative;
  float: left;
  clear: none;
  box-sizing: border-box;
  width: min(100%, var(--ki-article-image-width, 42%));
  max-width: 100%;
  height: auto;
  margin: 0 32px 18px 0;
  padding: 0;
  isolation: isolate;
  z-index: 0;
}
:is(.com-content-article, .item-page) :is(.ki-article-image > img, p > img.ki-article-image, figure > img.ki-article-image),
figure.ki-article-image > img {
  display: block;
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  -webkit-mask: var(--ki-brush-mask);
  mask: var(--ki-brush-mask);
  -webkit-mask-mode: alpha;
  mask-mode: alpha;
}
:is(.com-content-article, .item-page) :is(.ki-article-image:not(.ki-no-decor), p:has(> img.ki-article-image:not(.ki-no-decor)), figure:has(> img.ki-article-image:not(.ki-no-decor)))::after,
figure.ki-article-image:not(.ki-no-decor)::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: var(--ki-vine-bottom);
  height: var(--ki-vine-height);
  width: auto;
  aspect-ratio: var(--ki-vine-ratio);
  background: var(--ki-vine-decoration);
  pointer-events: none;
  z-index: 0;
  filter: none;
}
/* Decorative side independent of image float. */
:is(.com-content-article, .item-page) :is(.ki-article-image.ki-decor-right:not(.ki-no-decor), p:has(> img.ki-article-image.ki-decor-right:not(.ki-no-decor)), figure:has(> img.ki-article-image.ki-decor-right:not(.ki-no-decor)))::after,
figure.ki-article-image.ki-decor-right:not(.ki-no-decor)::after {
  left: auto;
  right: 0;
  transform: scaleX(-1);
  transform-origin: center;
}
html[data-theme="dark"] :is(.com-content-article, .item-page) :is(.ki-article-image:not(.ki-no-decor), p:has(> img.ki-article-image:not(.ki-no-decor)), figure:has(> img.ki-article-image:not(.ki-no-decor)))::after,
html[data-theme="dark"] figure.ki-article-image:not(.ki-no-decor)::after {
  filter: brightness(0) invert(1) drop-shadow(var(--ki-outer-glow));
}
/* Plain inline images retain their normal paragraph flow. */
:is(.com-content-article, .item-page) p:has(> img):not(.ki-article-image):not(:has(> img.ki-article-image)) {
  float: none;
  width: auto;
  position: static;
  margin: 0;
}
:is(.com-content-article, .item-page) p:has(> img):not(.ki-article-image):not(:has(> img.ki-article-image))::after { content: none; }
/* KI typography: continuous paragraphs, without extra vertical gaps.
   Keep the small lead-in after a styled heading. */
body p { margin-block-start: 0; margin-block-end: 0; }
body .ki-title-line + p { margin-block-start: .35em; }

/* On mobile, decorated article images use the full content width. */
@media (max-width: 640px) {
  :is(.com-content-article, .item-page) :is(.ki-article-image, p:has(> img.ki-article-image), figure:has(> img.ki-article-image)),
  figure.ki-article-image {
    float: none;
    clear: both;
    width: 100%;
    max-width: 100%;
    margin: 0 0 18px;
  }
}


/* KI — faint stationary folk vine on the page background.
   Decorative layer only; independent of article images and scrolling. */
body { isolation: isolate; }
body::before {
  content: "";
  position: fixed;
  left: 20px;
  bottom: calc(var(--ki-fixed-footer-space, 29px) + 16px);
  height: 65vh;
  height: 65dvh;
  width: calc(65vh * 10 / 7);
  width: calc(65dvh * 10 / 7);
  background: url('/images/ki-decor/nepi-inda-voros.svg') left bottom / contain no-repeat;
  opacity: .105;
  pointer-events: none;
  z-index: -1;
}
html[data-theme="dark"] body::before {
  filter: brightness(0) invert(1);
  opacity: .085;
}
@media (max-width: 640px) {
  body::before { left: 12px; bottom: calc(var(--ki-fixed-footer-space, 29px) + 12px); }
}


/* KI – közös modális felhőfelület; minden lightbox ezt az egy szabályt használja. */
:root{--ki-modal-blur:15px;--ki-modal-shade-blur:15px;--ki-modal-shade:rgba(0,0,0,.56)}
:where(.ki-fixed-footer__login,.ki-fixed-footer__privacy-dialog,#ki-consent-root .kc-panel){background:var(--ki-cloud-bg);color:var(--ki-page-text);border:1px solid var(--ki-accent);backdrop-filter:blur(var(--ki-modal-blur));-webkit-backdrop-filter:blur(var(--ki-modal-blur))}
:where(.ki-fixed-footer__login,.ki-fixed-footer__privacy-dialog)::backdrop{background:var(--ki-modal-shade);backdrop-filter:blur(var(--ki-modal-shade-blur));-webkit-backdrop-filter:blur(var(--ki-modal-shade-blur))}
#ki-consent-root .kc-shade{background:var(--ki-modal-shade);backdrop-filter:blur(var(--ki-modal-shade-blur));-webkit-backdrop-filter:blur(var(--ki-modal-shade-blur))}
.ki-article-frame{width:100%;height:min(55vh,540px);border:0;background:transparent}
.ki-fixed-footer__cookie svg{width:18px;height:18px}



/* KI Joomla feedback: theme-owned background and matching foreground.
   Include alert wrappers and Joomla custom elements, not only message text. */
html[data-theme="light"] :is(#system-message-container, .joomla-alert--wrapper, .alert-wrapper) :is(.alert, .joomla-alert, joomla-alert),
html[data-theme="light"] #system-message-container > :is(.alert, joomla-alert),
html[data-theme="dark"] :is(#system-message-container, .joomla-alert--wrapper, .alert-wrapper) :is(.alert, .joomla-alert, joomla-alert),
html[data-theme="dark"] #system-message-container > :is(.alert, joomla-alert) {
  --bs-alert-bg: var(--ki-page-bg);
  --bs-alert-color: var(--ki-page-text);
  --bs-alert-border-color: var(--ki-accordion-border);
  --alert-background-color: var(--ki-page-bg);
  --alert-color: var(--ki-page-text);
  background: var(--ki-page-bg);
  color: var(--ki-page-text);
  border-color: var(--ki-accordion-border);
}
html[data-theme="dark"] #system-message-container :is(.alert, .joomla-alert, joomla-alert) :is(p, span, div, a, strong, li, .alert-message, .alert-heading),
html[data-theme="light"] #system-message-container :is(.alert, .joomla-alert, joomla-alert) :is(p, span, div, a, strong, li, .alert-message, .alert-heading) {color:var(--ki-page-text)}
html[data-theme="dark"] #system-message-container joomla-alert::part(alert),
html[data-theme="light"] #system-message-container joomla-alert::part(alert) {background:var(--ki-page-bg);color:var(--ki-page-text)}

/* kiralyimi.hu – cikkmeta, 1.0.2: a korábbi cikkmeta blokk HELYETT */
:is(.com-content-article, .blog, .blog-featured, .item-page) :is(dl.article-info, .article-info, .article-info dd, .article-info dt, .article-info span:not([class*="icon-"]), .article-info time, .article-info a) {
  font-family: var(--ki-font-body, "Source Sans 3", sans-serif);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--ki-page-text);
}
:is(.com-content-article, .blog, .blog-featured, .item-page) .article-info { opacity: .72; }
:is(.com-content-article, .blog, .blog-featured, .item-page) .article-info :is(dd, dt) { margin-block: 0; }
:is(.com-content-article, .blog, .blog-featured, .item-page) .article-info [class*="icon-"] {
  font-size: 11px;
  line-height: 1;
  vertical-align: baseline;
}
:is(.com-content-article, .blog, .blog-featured, .item-page) .article-info [class*="icon-"]::before {
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", FontAwesome;
  font-weight: 900;
  font-size: 11px;
}
:is(.com-content-article, .blog, .blog-featured, .item-page) .article-info a:any-link {
  color: inherit;
}
/* Csak vizuális dekoráció: sem pointer-events, sem cursor, sem kattintási viselkedés nincs felülírva. */
:is(.com-content-article, .blog, .blog-featured, .item-page) .article-info a:is(:link, :visited, :hover, :focus, :active),
:is(.com-content-article, .blog, .blog-featured, .item-page) :is(.icons, .article-info, .edit-icon, .btn-toolbar) a:is(:link, :visited, :hover, :focus, :active) {
  text-decoration: none;
  text-decoration-line: none;
}
:is(.com-content-article, .blog, .blog-featured, .item-page) .article-info-term { display: none; }

/* kiralyimi.hu – célzott Joomla frontend szerkesztővezérlő javítás.
   A korábbi cikkmeta CSS UTÁN helyezendő el. */

/* A metaadatok nem foghatják el a mögöttük elhelyezkedő szerkesztőgomb kattintását.
   A metaadatok valódi linkjei továbbra is kattinthatók. */
:is(.com-content-article, .blog, .blog-featured, .item-page) :is(dl.article-info, .article-info) {
  pointer-events: none;
}
:is(.com-content-article, .blog, .blog-featured, .item-page) .article-info a {
  pointer-events: auto;
}

/* A Joomla szerkesztési eszköztára a metaadatok fölé kerül. */
:is(.com-content-article, .blog, .blog-featured, .item-page) :is(.icons, .edit-icon, .btn-toolbar, .btn-group) {
  position: relative;
  z-index: 5;
}

/* A szerkesztővezérlők vizuális dekorációja nélkül, működésük módosítása nélkül. */
:is(.com-content-article, .blog, .blog-featured, .item-page) :is(.icons, .edit-icon, .btn-toolbar) a:is(:link, :visited, :hover, :focus, :active) {
  text-decoration: none;
}

/* kiralyimi.hu – Joomla hibaoldal: a rendszerüzenetet körülvevő fehér kártya eltávolítása.
   A DOM-vizsgálat szerint: .container-component > .card > .card-body > #system-message-container.
   Csak az ilyen szerkezetű rendszerüzenet-kártyát érinti; más .card elemeket nem. */
.grid-child.container-component > .card:has(.card-body #system-message-container) {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: inherit;
}
.grid-child.container-component > .card:has(.card-body #system-message-container) > .card-body {
  background: transparent;
  color: inherit;
}

/* Joomla frontend modulszerkesztő – egységes, kizárólag a #modules-form-ra ható téma.
   A Joomla natív .form-select mezői (köztük a .form-select-color-state)
   a template.min.css background rövidített szabályából kaptak fehér hátteret.
   A select háttérszínét ezért a konkrét elemre, a Joomla állapotosztályainál
   erősebb prioritással állítjuk be; a lenyíló nyíl background-image-je megmarad. */
#modules-form {
  --ki-editor-field-bg: var(--ki-page-bg);
  --ki-editor-field-fg: var(--ki-page-text);
  --ki-editor-field-border: color-mix(in srgb, var(--ki-page-text) 35%, transparent);
  --ki-editor-field-hover: color-mix(in srgb, var(--ki-page-text) 12%, var(--ki-page-bg));
  --bs-body-bg: var(--ki-editor-field-bg);
  --bs-body-color: var(--ki-editor-field-fg);
  --bs-form-control-bg: var(--ki-editor-field-bg);
  --bs-form-control-color: var(--ki-editor-field-fg);
}
#modules-form :is(.accordion-item, .accordion-body) {
  background: transparent;
  color: var(--ki-page-text);
  border-color: var(--ki-editor-field-border);
}
#modules-form :is(input.form-control, textarea.form-control) {
  background-color: var(--ki-editor-field-bg);
  color: var(--ki-editor-field-fg);
  border-color: var(--ki-editor-field-border);
}
/* Natív Joomla/Bootstrap legördülők: a mért színek helyesek voltak,
   de a háttérkép külön rétegként továbbra is takarta a mezőt.
   Csak a modulszerkesztő selectjeinek teljes hátterét definiáljuk;
   a nyíl saját, kis SVG, nem örökli a sablon háttérképét. */
#modules-form select.form-select,
#modules-form select.form-control {
  appearance: none;
  -webkit-appearance: none;
  background-color: var(--ki-editor-field-bg) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='m3 4 5 5 5-5' fill='none' stroke='%23888888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right .75rem center !important;
  background-size: 16px 12px !important;
  padding-right: 2.5rem;
  color: var(--ki-editor-field-fg) !important;
  border-color: var(--ki-editor-field-border);
  color-scheme: normal;
}
#modules-form select.form-select option,
#modules-form select.form-control option {
  background-color: var(--ki-editor-field-bg);
  color: var(--ki-editor-field-fg);
}
/* Choices csak akkor, ha egy másik Joomla mező valóban ezt használja. */
#modules-form .choices :is(.choices__inner, .choices__list--single, .choices__input),
#modules-form .choices :is(.choices__list--dropdown, .choices__list[aria-expanded]) {
  background-color: var(--ki-editor-field-bg);
  color: var(--ki-editor-field-fg);
  border-color: var(--ki-editor-field-border);
}
#modules-form .choices :is(.choices__list--dropdown, .choices__list[aria-expanded]) .choices__item--choice:is(.is-highlighted, :hover, :focus) {
  background-color: var(--ki-editor-field-hover);
  color: var(--ki-editor-field-fg);
}
#modules-form :is(input.form-control, textarea.form-control)::placeholder {
  color: color-mix(in srgb, var(--ki-page-text) 60%, transparent);
  opacity: 1;
}
#modules-form :is(input.form-control, textarea.form-control, select.form-select, select.form-control):focus {
  background-color: var(--ki-editor-field-bg) !important;
  color: var(--ki-editor-field-fg) !important;
  border-color: var(--ki-accent) !important;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--ki-accent) 22%, transparent);
}
#modules-form :is(input.form-control, textarea.form-control):disabled { opacity: .65; }
