html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
body { line-height: 1; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
table { border-collapse: collapse; border-spacing: 0; }

:root {
    --font-body: "Inter", sans-serif;
    --font-display: "Space Grotesk", sans-serif;
    --color-bg-gradient: linear-gradient(160deg, #181C21 0%, #232A31 34%, #2E302F 68%, #4A423A 100%);
    --color-bg-menu: linear-gradient(165deg, #1A1F24 0%, #292D31 52%, #3A352F 100%);
    --color-header-bg: rgba(24, 27, 31, 0.84);
    --color-text: #F5F1EA;
    --color-text-secondary: #D9D0C4;
    --color-text-muted: #AEA293;
    --color-text-subtle: #85786B;
    --color-primary: #E3A07E;
    --color-primary-hover: #F0B091;
    --color-primary-strong: #D38A65;
    --color-primary-deep: #A65A3C;
    --color-primary-soft: #F8E0D6;
    --color-cta: #F6C343;
    --color-cta-hover: #F8D778;
    --color-cta-strong: #E0A61B;
    --color-cta-text: #1D2530;
    --color-success: #8CC97F;
    --color-warning: #E0B85D;
    --color-error: #E56556;
    --color-live: #E3A07E;
    --color-surface: rgba(248, 239, 229, 0.06);
    --color-surface-hover: rgba(248, 239, 229, 0.1);
    --color-surface-strong: rgba(248, 239, 229, 0.14);
    --color-border: rgba(232, 217, 201, 0.12);
    --color-border-strong: rgba(232, 217, 201, 0.22);
    --color-form-surface: linear-gradient(145deg, rgba(38, 42, 47, 0.82), rgba(29, 33, 38, 0.8));
    --color-field-bg: #1A242D;
    --color-field-bg-focus: #212E38;
    --color-field-border: #596A73;
    --color-field-border-focus: #A9BBB9;
    --color-placeholder: #90867A;
    --color-form-divider: rgba(232, 217, 201, 0.10);
    --shadow-soft: 0 14px 32px rgba(0, 0, 0, 0.24);
    --shadow-card: 0 20px 48px rgba(0, 0, 0, 0.3);
    --shadow-primary: 0 16px 36px rgba(211, 138, 101, 0.22);
    --shadow-cta: 0 18px 40px rgba(246, 195, 67, 0.34);
    --radius-card: 12px;
    --radius-control: 10px;
    --radius-small: 6px;
    --rgb-primary: 227, 160, 126;
    --rgb-primary-strong: 211, 138, 101;
    --rgb-primary-deep: 166, 90, 60;
    --rgb-cta: 246, 195, 67;
    --rgb-success: 140, 201, 127;
    --rgb-error: 229, 101, 86;
    --rgb-live: 227, 160, 126;
    --link-color: var(--color-primary);
    --link-underline-color: rgba(var(--rgb-primary), 0.55);
}


.fa-solid, .fa-regular, .fa-brands {
    opacity: 1;
    filter: saturate(1.45) contrast(1.12) brightness(1.06) drop-shadow(0 2px 8px rgba(0, 0, 0, 0.18));
}

.fa-badge-check { color: var(--color-success); text-shadow: 0 0 18px rgba(var(--rgb-success), 0.3); }
.fa-shield-check { color: #6495ED; text-shadow: 0 0 22px rgba(100, 149, 237, 0.4); }
.fa-check { color: var(--color-success); text-shadow: 0 0 18px rgba(var(--rgb-success), 0.3); }
.fa-star { color: var(--color-cta); text-shadow: 0 0 20px rgba(var(--rgb-cta), 0.34); }

#cta {margin-top:-80px; position: absolute; visibility: hidden;}

a {
    color: var(--link-color);
    text-decoration: none;
    transition: color 0.2s ease;
    border-bottom: 1px solid var(--link-underline-color);
}

a:hover {
    color: var(--color-primary-hover);
    transition: color 0.2s ease;
    border-bottom-color: var(--color-primary-hover);
}

.button {
    display: inline-block;
    background: linear-gradient(135deg, var(--color-cta) 0%, var(--color-cta-strong) 100%);
    color: var(--color-cta-text);
    box-shadow: var(--shadow-cta);
    padding: 0.6rem 1.2rem;
    border-radius: 10px;
    text-decoration: none;
    border: 1px solid rgba(var(--rgb-cta), 0.72);
    font-size: 1rem;
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: 0.01em;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
}

.button:hover, .button:active {
    transition: all 0.2s ease;
    color: var(--color-cta-text);
    background: linear-gradient(135deg, var(--color-cta-hover) 0%, #FBE6A6 100%);
    border: 1px solid rgba(var(--rgb-cta), 0.88);
    box-shadow: 0 22px 44px rgba(var(--rgb-cta), 0.4);
}

.button.outline {
    background: transparent;
    color: var(--color-cta);
    border: 2px solid var(--color-cta);
    box-shadow: none;
}

.button.outline:hover, .button.outline:active {
    background: linear-gradient(135deg, var(--color-cta) 0%, var(--color-cta-strong) 100%);
    color: var(--color-cta-text);
    border: 2px solid var(--color-cta);
}

.button.secondary {
    background: linear-gradient(135deg, rgba(var(--rgb-primary), 0.24) 0%, rgba(var(--rgb-primary-strong), 0.28) 100%);
    color: var(--color-primary-soft);
    border: 2px solid rgba(var(--rgb-primary), 0.62);
    box-shadow: 0 10px 24px rgba(var(--rgb-primary), 0.24);
}

.button.secondary:hover, .button.secondary:active {
    background: linear-gradient(135deg, rgba(var(--rgb-primary), 0.34) 0%, rgba(var(--rgb-primary-strong), 0.4) 100%);
    color: var(--color-text);
    border: 2px solid rgba(var(--rgb-primary), 0.76);
    box-shadow: var(--shadow-primary);
}

.conquer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;

    @media (max-width: 768px) {
        grid-template-columns: 1fr;
        gap:0;

        .youtube:first-of-type {
            margin-bottom: 1rem;
        }
    }
}

.youtube {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%;
}

.youtube.M1 {
    padding-bottom: 65%;
}

.statcounter {display:none;}

.youtube iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 10px;
}

body {
    background: var(--color-bg-gradient);
    min-height: 100vh;
    color: var(--color-text);
    font-family: var(--font-body);
    line-height: 1.8;
    font-size: 1.1rem;
    padding: 20px;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    line-height: 1.45;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.34);
    letter-spacing: -0.03em;
}

h1, h2, h3, h4, h5, h6, p {
    margin-top: 2rem;
}

strong {
    font-weight: bold;
}

header, main, nav, footer, .main-content {
    max-width: 1024px;
    width: 100%;
    margin: auto;
    box-sizing: border-box;
}

.site-header {
    width: calc(100% + 40px);
    background: var(--color-header-bg);
    backdrop-filter: blur(10px);
    position: sticky;
    top: 0;
    z-index: 1000;
    margin: -20px -20px 20px;
    padding: 0 20px;
    max-width: none;
    box-sizing: border-box;
}

.header-nav {
    max-width: 1024px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0;
    box-sizing: border-box;
}

.header-brand a {
    margin-top: 8px;
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-weight: bold;
    color: var(--color-text);
    border: none;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    line-height: 1.0;
}

.header-brand a:hover {
    color: var(--color-primary-hover);
}

.brand-subtitle {
    font-size: 0.85rem;
    font-weight: normal;
    color: var(--color-text-muted);
}

.header-menu {
    display: flex;
    gap: 0.2rem;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size:1.0rem;
}

.header-menu li a {
    font-family: var(--font-display);
    font-weight: 500;
    letter-spacing: -0.01em;
    padding: 0.2rem 0.6rem;
    border: none;
    color: var(--color-text-secondary);
    border-radius: 6px;
    transition: all 0.2s ease;
    display: block;
}

.header-menu li a:hover {
    color: var(--color-text);
    background: rgba(var(--rgb-primary), 0.13);
}

.header-menu li a.active {
    color: var(--color-text);
    background: rgba(var(--rgb-primary), 0.22);
}

.hamburger {
    display: none;
    flex-direction: column;
    justify-content: space-around;
    width: 30px;
    height: 24px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1001;
}

.hamburger-line {
    display: block;
    width: 100%;
    height: 3px;
    background: var(--color-text);
    border-radius: 3px;
    transition: all 0.3s ease;
    transform-origin: center;
}

.hamburger.is-active .hamburger-line:nth-child(1) {
    transform: translateY(10.5px) rotate(45deg);
}

.hamburger.is-active .hamburger-line:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}

.hamburger.is-active .hamburger-line:nth-child(3) {
    transform: translateY(-10.5px) rotate(-45deg);
}

/* Responzivní menu */
@media screen and (max-width: 768px) {
    .hamburger {
        display: flex;
    }

    .brand-subtitle {
        display: none;
    }

    .header-menu {
        position: fixed;
        top: 0;
        right: 0;
        height: 100vh;
        width: 280px;
        flex-direction: column;
        background: var(--color-bg-menu);
        padding: 80px 20px 20px;
        gap: 0.5rem;
        transform: translateX(100%);
        transition: transform 0.3s ease;
        box-shadow: -5px 0 20px rgba(0, 0, 0, 0.3);
        overflow-y: auto;
    }

    .header-menu.is-open {
        transform: translateX(0);
    }

    .header-menu li a {
        padding: 0.8rem 1rem;
        font-size: 1.1rem;
    }
}

/* Overlay pro mobilní menu */
.menu-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 999;
}

.menu-overlay.is-visible {
    display: block;
}

section {
    padding-bottom: 3rem;
}

section h1 {
    font-size: 2rem;
}

section h2 {
    font-size: 1.4rem;
    padding-bottom: 0.5rem;
}

section ul li i {margin-left:2px; margin-right:0.3rem;}

section.hero {
    
    padding-top: 0.5rem;
    padding-bottom: 1rem;
    

    div {
        max-width: 500px;
        margin-bottom: 2rem;

        @media (max-width: 768px) {
            margin-bottom: 0;
            max-width: none;
        }
    }

    h1 small {
        display: block;
        font-size: 1.2rem;
    }

    p.explanation {
        color: var(--color-text-secondary);
        font-size: 0.9rem;
        line-height: 1.7;
    }
}

section.hero.video {
    display:grid;
    grid-template-columns: 10fr 8fr;

    div:nth-of-type(2) {margin-top: 2rem;}

    @media (max-width: 1000px) {
        grid-template-columns: 1fr;
    }
}

section.events ul li span
{
    color: var(--color-text-secondary);
    margin-left:10px;

    @media screen and (max-width: 520px) {
        margin-left: 1.7rem;
        display: block;
    }
}

section.me {

    background-image: url("./img/copilot-certified.png");
    background-repeat: no-repeat;
    background-size: 30%;
    background-position: 100% 50px;

    @media (max-width: 950px) {
        background-image: none;
    }

    p {
        margin-top:0;
    }

    div {
        max-width: 650px;
    }

    div div.photo {
        display: grid;
        grid-template-columns: auto 1fr;
        align-items: flex-start;
        gap: 1.5rem;
        margin-top: 3rem;

        @media only screen and (max-width: 520px) {
            grid-template-columns: 1fr;
        }
    }

    div div.photo img {
        width: 140px;
        height: 140px;
        object-fit: cover;
        border-radius: 50%;
        margin-right: 10px;

        @media only screen and (max-width: 520px) {
            display: none;
        }
    }

    div div.photo div span {
        display: block;
        margin-top: 1rem;
        font-weight: bold;
    }

    div div.photo div span a {
        margin-right: 1rem;
    }
}

section.reference
{
    max-width:768px;

    div {

        margin-bottom:2rem;

        p {
            margin-top:0;
        }

        span {
            color: var(--color-cta);
            font-size:0.8rem;

            i:nth-child(5) { margin-right:10px; }
        }
    }

}

section.partners {
    img {
        height: 30px;
        margin-right:1rem;
        display: inline-block;
        vertical-align: top;
        opacity: 0.4;
        transition: opacity 0.3s ease;
        
        @media (max-width: 768px) {
            margin-bottom: 15px;
        }
    }

    img:hover {
        opacity: 1;
        transition: opacity 0.3s ease;
    }
}

section.features {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 2rem;

    h3 {margin:0; font-size:1.2rem;}
    h3 span {
        background: rgba(var(--rgb-primary), 0.16);
        width:40px;
        height:40px;
        display:inline-block;
        text-align:center;
        line-height:40px;
        border-radius:40px;
        font-weight:bold;
        margin-right: 0.6rem;
    }
    p {margin-top:1rem; font-size:0.95rem;}

    div, a.feature-tile {
        background: var(--color-surface);
        padding: 1rem;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-control);
        box-shadow: var(--shadow-soft);
    }

    @media (max-width: 800px) {
        grid-template-columns: 1fr;
    }
}

section.contact {

    max-width: 600px;

    div.photo {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 1.5rem;
        margin-top: 3rem;
        align-items: flex-start;

        @media only screen and (max-width: 520px) {
            grid-template-columns: 1fr;
        }
    }

    div.photo img {
        width: 140px;
        height: 140px;
        object-fit: cover;
        border-radius: 50%;
        margin-right: 10px;

        @media only screen and (max-width: 520px) {
            width:100px;
            height:100px;
        }
    }

    div.photo h3 {
        margin-top:0;
        font-size:1.8rem;
        font-weight:bold;
    }

    div.photo p {
        margin-top:1rem;
        margin-bottom: 1rem;
    }

    div.photo p a {
        display: inline-block;
        clear: both;
        font-size:1.5rem;
        font-weight: bold;
        margin-bottom: 0.1rem;
        color: var(--color-primary);
        border:0;
        line-height: 1.5;

        @media only screen and (max-width: 520px) {
            font-size:1.2rem;
        }
    }

    div.photo p a:hover {
        color: var(--color-primary-hover);
    }

}

section.freetext {
    max-width: 768px;

    @media (max-width: 768px) {
        max-width: 100%;
    }

    h1 {margin-bottom: 1rem;}
    h2,h3 {margin:1rem 0 0.5rem 0; padding:0}
    h3 {font-weight: bold; font-size:1.2rem;}
    p {margin: 0 0 2rem 0;}
    ul {
        margin-left:2rem;
        margin-bottom:2rem;

        @media (max-width: 520px) {
            margin-left:0;
        }
    }

    .gallery {
        display: grid;
        gap: 10px;
        grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
        margin-bottom: 2rem;

        img { width:100%; border-radius: 10px; }
    }
}

section.form {
    background: var(--color-form-surface);
    padding: 2rem 1.5rem;
    border: 1px solid rgba(var(--rgb-primary), 0.16);
    border-radius: var(--radius-control);
    box-shadow: 2px 3px 15px rgba(0, 0, 0, 0.14);
    display: grid;
    grid-template-columns: 3fr 2fr;
    margin-top:3rem;
    margin-bottom: 6rem;
    
    @media (max-width: 768px) {
        margin:0 -20px;
        border-radius: 0;
    }
    
    
    @media (max-width: 950px) {
        grid-template-columns: 1fr;
    }


    form div {
        display: inline-block;
        position: relative;
        margin-right: 1rem;

        .validation-message {
            font-size: 11px;
            position: absolute;
            right: 0;
            color: var(--color-error);
            top: 20px;
        }

        .validation-message+label+input,
        .validation-message+label+textarea
        { border: rgba(var(--rgb-error), 0.7) 1px solid;}
    }

    form label {
        display: block;
        font-size:0.9rem;
        padding: 0 0 2px 5px;
        margin-top:1rem;
        color: var(--color-text-secondary);
    }

    form label.required::after
    {
        content: " *";
        color: var(--color-error);
    }

    form input, form textarea, form select {
        display: block;
        background: var(--color-field-bg);
        color: var(--color-text);
        border: var(--color-field-border) 1px solid;
        padding:15px 15px;
        border-radius: 10px;
        width:100%;
        box-sizing: border-box;
        font-family: var(--font-body);
        font-size: var(--rz-body-font-size, inherit);
        transition: border 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
    }

    form input::placeholder, form textarea::placeholder {
        color: var(--color-placeholder);
        opacity: 1;
    }

    form input[type=checkbox] {
        display: inline;
        width: auto;
        margin-right: 0rem;
        padding:0;
    }

    form input[type=checkbox]+label {
        display: inline;
        margin-top:0;
    }

    form input:focus, form textarea:focus, form select:focus {
        border: var(--color-field-border-focus) 1px solid;
        background: var(--color-field-bg-focus);
        box-shadow: 0 0 0 3px rgba(var(--rgb-primary), 0.12);
        outline:none;
    }

    form button {
        padding: 0.8rem 1.5rem;
        border-radius: 10px;
        cursor: pointer;
        margin-top: 1rem;
    }

    form h2 {
        margin-top: 0;
    }

    div.info {
        padding-left: 1.5rem;
        border-left: var(--color-form-divider) 3px solid;

        i {margin-right: 0.3rem;}

        @media (max-width: 950px) {
            margin-top:2rem;
        }

        .day {
            margin: 0 0 1rem 0;
            font-weight: bold;
        }

        .price {
            margin-left:2rem;
            color: var(--color-cta);
            font-size:2rem;
            line-height: 0.9;

            span {
                font-size:1rem;
                color: var(--color-text-muted);
                padding:0;
                margin:0;
            }

            .pay {
                margin-left: -15px;
                margin-top: 20px;
                max-width: 100%;
            }
        }
    }
}

footer {
    margin-top:3rem;
    font-size: 0.9rem;

    text-align: center;

    a {
        opacity: 0.3;
        margin-right: 1rem;
        color: var(--color-text);
        border:0;
    }

    a:hover {
        color: var(--color-primary-hover);
    }

    span {
        color: var(--color-text-subtle);
    }

    img {
        margin-top: 10px;
        width:300px;
    }

    .footer-donation {
        display: inline-block;
        margin-top: 0.5rem;
        color: var(--color-text-muted);
        font-size: 0.85rem;

        i {
            color: #e25555;
            opacity: 0.6;
        }

        a {
            opacity: 0.6;
            color: var(--color-text-muted);
        }

        a:hover {
            opacity: 1;
            color: var(--color-text);
        }
    }
}

@media only screen and (max-width: 520px) {
    body {
        font-size:0.9rem;
    }

    h1 {font-size:1.2rem !important;}
    h2,h3  {font-size:1.1rem !important;}

    .button {
        font-size: 0.9rem;
        padding: 0.5rem 1rem;
    }

    header{
        padding-bottom: 1rem;
    }

    section {
        padding-bottom: 1rem;
    }
}