@font-face {
    font-family: 'JetBrains Mono';
    src: url('font/jbm-400-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'JetBrains Mono';
    src: url('font/jbm-400-latinext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+1E00-1E9F, U+2020;
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'JetBrains Mono';
    src: url('font/jbm-500-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
    font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'JetBrains Mono';
    src: url('font/jbm-500-latinext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+1E00-1E9F, U+2020;
    font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'JetBrains Mono';
    src: url('font/jbm-700-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
    font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'JetBrains Mono';
    src: url('font/jbm-700-latinext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+1E00-1E9F, U+2020;
    font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Fira Code';
    src: url('font/fira-400-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Fira Code';
    src: url('font/fira-400-latinext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+1E00-1E9F, U+2020;
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Fira Code';
    src: url('font/fira-600-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
    font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Fira Code';
    src: url('font/fira-600-latinext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+1E00-1E9F, U+2020;
    font-weight: 600; font-style: normal; font-display: swap;
}

:root {
    --bg: #282a36;
    --bg-alt: #21222c;
    --bg-panel: #343746;
    --bg-panel-2: #3d4056;
    --fg: #f8f8f2;
    --comment: #8891b3;
    --line: #44475a;
    --c-yellow: #FCDF08;
    --c-green: #50fa7b;
    --c-cyan: #8be9fd;
    --c-pink: #ff79c6;
    --c-purple: #bd93f9;
    --c-orange: #ffb86c;
    --c-red: #ff5555;
    --font-mono: 'JetBrains Mono', 'Consolas', monospace;
    --font-cta: 'Fira Code', 'Consolas', monospace;
    --radius: 3px;
}

html, body {
    background: var(--bg) !important;
    background-image: none !important;
    cursor: none;
}
* {
    font-family: var(--font-mono) !important;
}
body, p, .main-content p, .bemut_szoveg, .szolgdiv_elem_szoveg, .contact-info-card, .info-row {
    color: var(--fg) !important;
}
h1, h2, h3 { text-shadow: none !important; }
h1, h2, .cim, .cim2, .szolgcim, .nehabozz { color: var(--c-yellow) !important; }
h3 { color: var(--c-orange) !important; }
.yb { color: var(--c-green) !important; }
a { color: var(--c-cyan) !important; }
.vonal { background-image: linear-gradient(to right, transparent, var(--c-purple), transparent) !important; }

[class*="cookie" i], [id*="cookie" i], [class*="consent" i], [id*="consent" i] {
    font-family: initial !important;
}
[class*="cookie" i] h1, [class*="cookie" i] h2, [class*="cookie" i] h3,
[id*="cookie" i] h1, [id*="cookie" i] h2, [id*="cookie" i] h3,
[class*="consent" i] h1, [class*="consent" i] h2, [class*="consent" i] h3,
[id*="consent" i] h1, [id*="consent" i] h2, [id*="consent" i] h3 {
    color: #1a1a1a !important;
    text-shadow: none !important;
}
[class*="cookie" i] p, [id*="cookie" i] p, [class*="consent" i] p, [id*="consent" i] p {
    color: #333 !important;
}

@media (pointer: coarse) {
    html, body { cursor: auto; }
}
@media (hover: hover) and (pointer: fine) {
    * { cursor: none !important; }

    [class*="cookie" i], [class*="cookie" i] *,
    [id*="cookie" i], [id*="cookie" i] *,
    [class*="consent" i], [class*="consent" i] *,
    [id*="consent" i], [id*="consent" i] * {
        cursor: auto !important;
    }
    [class*="cookie" i] button, [class*="cookie" i] a,
    [id*="cookie" i] button, [id*="cookie" i] a,
    [class*="consent" i] button, [class*="consent" i] a,
    [id*="consent" i] button, [id*="consent" i] a {
        cursor: pointer !important;
    }
}

#ddCursor {
    position: fixed;
    top: 0; left: 0;
    width: 11px; height: 22px;
    background: var(--c-yellow);
    box-shadow: 0 0 10px rgba(252,223,8,.8), 0 0 2px rgba(0,0,0,.6);
    pointer-events: none;
    z-index: 2147483647;
    transform: translate(-2px, -2px);
    animation: dd-cursor-blink 1s steps(2) infinite;
    display: none;
}
@media (hover: hover) and (pointer: fine) {
    #ddCursor { display: block; }
}
@keyframes dd-cursor-blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    #ddCursor { animation: none; }
}

.main-header {
    background: var(--bg-alt) !important;
    box-shadow: 0 1px 0 var(--line) !important;
    border-bottom: 1px solid var(--line);
}
.menu-list {
    gap: 0 !important;
    align-items: stretch;
    height: 48px;
}
.menu-list > li { display: flex; align-items: stretch; }
.menu-list a {
    background: var(--bg-alt) !important;
    color: var(--comment) !important;
    border: none !important;
    border-right: 1px solid var(--line) !important;
    border-top: 2px solid transparent !important;
    border-radius: 0 !important;
    font-size: 14px !important;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 16px !important;
}
.menu-list a::before {
    content: '●';
    font-size: 8px;
    color: var(--c-purple);
}
.menu-list a:hover {
    background: var(--bg-panel) !important;
    color: var(--fg) !important;
    border-top: 2px solid var(--c-cyan) !important;
    box-shadow: none !important;
}
.menu-list .contact-menu-btn {
    background: var(--c-yellow) !important;
    color: var(--bg) !important;
    font-weight: 700 !important;
}
.menu-list .contact-menu-btn::before { content: '>'; color: var(--bg); }
.dropdown-content {
    background: var(--bg-panel) !important;
    border: 1px solid var(--line) !important;
    border-radius: var(--radius) !important;
}
.dropdown-content a {
    border-right: none !important;
    border-top: 2px solid transparent !important;
}
.dropdown-content a:hover {
    border-top: 2px solid transparent !important;
    background: var(--bg-panel-2) !important;
}
.hamburger_list { background: var(--bg-panel) !important; border: 1px solid var(--line); }

.szolgcim h2::before,
.cim2::before {
    content: '> ';
    color: var(--c-green);
}
.bemut_hello h2::before { content: '// '; color: var(--comment); }
.nehabozz::before { content: '> '; color: var(--c-cyan); }

.hero { background-color: var(--bg) !important; }
.h1-62, .h1-48 { color: var(--c-yellow) !important; }
.h1-62::before { content: '> '; color: var(--c-green); }
.h1-62::after {
    content: '_';
    animation: dd-cursor-blink 1s steps(2) infinite;
    color: var(--c-yellow);
}

.szolgdiv_elem, .negyes_kartya, .rolam_kartya, .case-study-box,
.google-review-card, .blog-post-card, .projekt, .kerdes,
.contact-info-card, .contact-right-col {
    background: var(--bg-panel) !important;
    border: 1px solid var(--line) !important;
    border-radius: var(--radius) !important;
    box-shadow: 0 4px 0 var(--bg-alt), 0 4px 18px rgba(0,0,0,.5) !important;
}
.szolgdiv_elem:hover, .negyes_kartya:hover, .rolam_kartya:hover {
    box-shadow: 0 0 0 1px var(--c-cyan), 0 0 20px rgba(139,233,253,.25), 0 4px 0 var(--bg-alt) !important;
    transform: none !important;
}
.google-review-card:hover {
    box-shadow: 0 0 0 1px var(--c-pink), 0 0 20px rgba(255,121,198,.25), 0 4px 0 var(--bg-alt) !important;
}
.dd-winbar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    margin: -24px -24px 20px -24px;
    background: var(--bg-alt);
    border-bottom: 1px solid var(--line);
    border-radius: var(--radius) var(--radius) 0 0;
    font-size: 12px;
    color: var(--comment);
}
.dd-winbar .dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.dd-winbar .dot.r { background: var(--c-red); }
.dd-winbar .dot.y { background: var(--c-orange); }
.dd-winbar .dot.g { background: var(--c-green); }
.dd-winbar .fname { margin-left: 8px; }

.main-content { width: 90% !important; }
.szolgdiv {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    align-items: stretch !important;
}

@media (max-width: 640px) {
    .szolgdiv {
        display: flex !important;
        flex-direction: column !important;
    }
}

.szolgdiv_elem {
    flex-basis: auto !important;
    max-width: none !important;
    display: grid !important;
    grid-template-rows: auto auto auto 1fr auto;
    text-align: left !important;
}
.szolgdiv_elem_cim {
    height: auto !important;
    flex-grow: 0 !important;
    text-align: center;
}
.szolgdiv_elem_szoveg { margin-bottom: 20px !important; }
.szolgdiv_elem_gomb { align-self: end; }

.google-reviews-grid { justify-content: center !important; margin-bottom: 40px !important; }

.tech-slider-container { mask-image: none !important; -webkit-mask-image: none !important; height: auto !important; }
.tech-slider-track {
    animation: none !important;
    width: 85% !important;
    max-width: 1100px;
    margin: 0 auto !important;
    display: flex !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
}
.tech-slide {
    flex: 1 1 150px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-panel);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .5px;
    overflow: hidden;
    white-space: nowrap;
}
.tech-slide:nth-child(5n+1) { color: var(--c-cyan); }
.tech-slide:nth-child(5n+2) { color: var(--c-green); }
.tech-slide:nth-child(5n+3) { color: var(--c-pink); }
.tech-slide:nth-child(5n+4) { color: var(--c-purple); }
.tech-slide:nth-child(5n+5) { color: var(--c-orange); }
.dd-typecursor {
    margin-left: 2px;
    animation: dd-cursor-blink 1s steps(2) infinite;
}
@media (prefers-reduced-motion: reduce) {
    .dd-typecursor { animation: none; }
}

.btn, .open-footer-modal-btn, .case-study-cta {
    font-family: var(--font-cta) !important;
    font-weight: 600 !important;
    background: transparent !important;
    color: var(--c-green) !important;
    border: 1px solid var(--c-green) !important;
    border-radius: var(--radius) !important;
    box-shadow: none !important;
    letter-spacing: .5px;
    transition: background .2s, color .2s, box-shadow .2s !important;
    display: inline-block !important;
}
.btn::before, .open-footer-modal-btn::before, .case-study-cta::before { content: '[ '; opacity: .6; }
.btn::after, .open-footer-modal-btn::after, .case-study-cta::after { content: ' ]'; opacity: .6; }
.btn:hover, .open-footer-modal-btn:hover, .case-study-cta:hover {
    background: var(--c-green) !important;
    color: var(--bg) !important;
    box-shadow: 0 0 18px rgba(80,250,123,.45) !important;
}

.info-row { text-align: center; }
.info-row span { display: inline-block; }

input[type="text"], input[type="email"], input[type="tel"], textarea, select {
    background: var(--bg-alt) !important;
    color: var(--fg) !important;
    border: 1px solid var(--line) !important;
    border-radius: var(--radius) !important;
    box-shadow: none !important;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus,
textarea:focus, select:focus {
    outline: none !important;
    border-color: var(--c-cyan) !important;
    box-shadow: 0 0 0 2px rgba(139,233,253,.25) !important;
}
input::placeholder, textarea::placeholder { color: var(--comment) !important; opacity: 1; }
select option { background: var(--bg-panel); color: var(--fg); }

.process-list li::before {
    content: '>' !important;
    color: var(--c-green);
    font-size: 20px;
    line-height: 1;
}

.szolgdiv_elem_kep img,
.gr-avatar img,
.tech-slide img,
.bemut_kep img {
    filter: grayscale(.35) saturate(1.4) contrast(1.05) sepia(.15) hue-rotate(210deg) !important;
}
.gr-avatar img { image-rendering: pixelated; }

body::after { display: none !important; }
#ddMatrix {
    position: fixed;
    inset: 0;
    z-index: 5;
    pointer-events: none;
    opacity: 0;
    transition: opacity .6s ease;
}
#ddMatrix.on { opacity: .5; }
@media (max-width: 900px), (prefers-reduced-motion: reduce) {
    #ddMatrix { display: none; }
}

#ddyboot { background: var(--bg-alt) !important; }
#ddyboot::before { display: none; }
.ddyboot__crt { color: var(--c-green) !important; text-shadow: none !important; }
.ddyboot__log .cy { color: var(--c-cyan) !important; text-shadow: none !important; }
.ddyboot__log .mg { color: var(--c-pink) !important; text-shadow: none !important; }
.ddyboot__row {
    display: flex;
    align-items: baseline;
    gap: 8px;
    width: 100%;
}
.ddyboot__row .label,
.ddyboot__row .value { white-space: nowrap; flex: 0 0 auto; }
.ddyboot__row .dots {
    flex: 1 1 auto;
    min-width: 10px;
    border-bottom: 3px dotted currentColor;
    opacity: .45;
    margin-bottom: 5px;
}
.ddyboot__bar { border-color: var(--c-green) !important; background: rgba(80,250,123,.08) !important; }
.ddyboot__barfill { background: linear-gradient(90deg, var(--c-pink), var(--c-purple), var(--c-cyan)) !important; }
.ddyboot__press { color: var(--c-yellow) !important; }
.ddyboot__duckwrap { bottom: -70px; height: 72px; }
.ddyboot__duck-img {
    position: absolute;
    left: 0; bottom: 0;
    width: 64px; height: 64px;
    image-rendering: pixelated;
    transition-property: left;
    transition-timing-function: linear;
    animation: dd-duck-bob .3s ease-in-out infinite alternate;
}
@keyframes dd-duck-bob { from { transform: translateY(0); } to { transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) {
    .ddyboot__duck-img { animation: none; }
}

.dd-reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.dd-reveal.dd-in { opacity: 1; transform: none; }

@media (max-width: 640px) {
    .hero { padding: 0 20px; box-sizing: border-box; }

    .hero::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(33,34,44,.6), rgba(33,34,44,.88) 55%, var(--bg) 100%);
        z-index: 0;
    }
    .hero > * { position: relative; z-index: 1; }

    .hamburger_elemek_active {
        position: fixed !important;
        inset: 64px 0 0 0 !important;
        background: rgba(33, 34, 44, .97) !important;
        backdrop-filter: blur(4px);
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
    }
    .hamburger_list {
        position: static !important;
        box-sizing: border-box !important;
        width: calc(100% - 32px) !important;
        max-width: 360px;
        gap: 10px !important;
        padding-top: 16px !important;
        padding-bottom: 16px !important;
        margin: 16px auto 32px !important;
        right: auto !important;
    }
    .hamburger_list li { line-height: 1.3; }
}
