:root{
    --ep-bg:#f8fafc;
    --ep-surface:#ffffff;
    --ep-surface-2:#f1f5f9;
    --ep-text:#0f172a;
    --ep-text-soft:#475569;
    --ep-primary:#0b1733;
    --ep-primary-2:#13264d;
    --ep-accent:#fbbf24;
    --ep-accent-hover:#f59e0b;
    --ep-border:rgba(15,23,42,.08);
    --ep-shadow:0 12px 30px rgba(2,8,23,.08);
    --ep-shadow-lg:0 20px 50px rgba(2,8,23,.16);
    --ep-radius:20px;
    --ep-radius-sm:14px;
    --ep-container:1320px;
    --ep-section-y:88px;
}

html{
    scroll-behavior:smooth;
}

body{
    background:var(--ep-bg);
    color:var(--ep-text);
    font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    line-height:1.6;
}

.container{
    max-width:var(--ep-container);
}

section{
    position:relative;
}

.section-padding{
    padding:var(--ep-section-y) 0;
}

.text-soft{
    color:var(--ep-text-soft)!important;
}

.site-navbar{
    background:#fff;
    border-bottom:1px solid var(--ep-border);
    backdrop-filter:saturate(160%) blur(8px);
}

.navbar{
    --bs-navbar-padding-y:1rem;
}

.navbar-brand{
    font-weight:800;
    font-size:2rem;
    color:var(--ep-text)!important;
    letter-spacing:-0.03em;
}

.navbar-nav .nav-link{
    color:#334155!important;
    font-weight:600;
    padding:.65rem .9rem!important;
    border-radius:12px;
    transition:.2s ease;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus{
    background:#f8fafc;
    color:var(--ep-text)!important;
}

.navbar-toggler{
    border:1px solid var(--ep-border);
    padding:.45rem .7rem;
}

.hero-dark{
    background:
        radial-gradient(circle at top right, rgba(251,191,36,.12), transparent 28%),
        linear-gradient(90deg, var(--ep-primary) 0%, var(--ep-primary-2) 100%);
    overflow:hidden;
}

.hero-dark .badge{
    font-size:.92rem;
    font-weight:700;
    padding:.75rem 1rem!important;
    border-radius:999px;
}

.hero-dark h1{
    font-size:clamp(2.4rem, 6vw, 5rem);
    line-height:1.04;
    letter-spacing:-.04em;
    max-width:11ch;
    margin-bottom:1.25rem!important;
}

.hero-dark .lead{
    font-size:1.3rem;
    max-width:760px;
    line-height:1.65;
}

.hero-image{
    width:100%;
    min-height:380px;
    height:100%;
    object-fit:cover;
    border-radius:26px;
    box-shadow:var(--ep-shadow-lg);
    display:block;
}

.btn{
    border-radius:16px;
    font-weight:700;
    padding:.95rem 1.35rem;
    transition:.2s ease;
}

.btn-lg{
    padding:1rem 1.45rem;
    font-size:1.08rem;
}

.btn-warning{
    background:var(--ep-accent);
    border-color:var(--ep-accent);
    color:#111827;
}

.btn-warning:hover,
.btn-warning:focus{
    background:var(--ep-accent-hover);
    border-color:var(--ep-accent-hover);
    color:#111827;
}

.btn-outline-light:hover{
    color:var(--ep-text);
}

.card{
    border:1px solid var(--ep-border)!important;
    box-shadow:var(--ep-shadow);
}

.card,
.form-control,
.form-select,
.alert{
    border-radius:var(--ep-radius-sm)!important;
}

.card-body{
    padding:1.6rem;
}

h1,h2,h3,h4,h5,h6{
    color:var(--ep-text);
    font-weight:800;
    letter-spacing:-.03em;
}

.display-6{
    letter-spacing:-.04em;
}

.bg-light{
    background:var(--ep-surface-2)!important;
}

.bg-white{
    background:var(--ep-surface)!important;
}

#sluzby .card,
#recenze .card,
#blog .card{
    height:100%;
}

#sluzby .card-body,
#recenze .card-body,
#blog .card-body{
    display:flex;
    flex-direction:column;
    gap:.65rem;
}

.inquiry-shell{
    padding:72px 0;
}

.inquiry-shell .card{
    border-radius:24px!important;
    overflow:hidden;
}

.inquiry-shell .card-body{
    padding:2rem;
}

.form-label{
    font-weight:700;
    color:#1e293b;
    margin-bottom:.45rem;
}

.form-control,
.form-select{
    min-height:54px;
    border:1px solid rgba(148,163,184,.35);
    box-shadow:none!important;
}

textarea.form-control{
    min-height:auto;
}

.form-control:focus,
.form-select:focus{
    border-color:#94a3b8;
    box-shadow:0 0 0 .2rem rgba(11,23,51,.08)!important;
}

.form-text{
    color:#64748b;
}

.site-footer{
    background:#0b1733;
    color:rgba(255,255,255,.82);
}

.site-footer h5,
.site-footer h6{
    color:#fff;
    font-weight:800;
    letter-spacing:-.02em;
}

.site-footer a{
    color:rgba(255,255,255,.82);
    text-decoration:none;
}

.site-footer a:hover{
    color:#fff;
}

.footer-bottom{
    border-top:1px solid rgba(255,255,255,.12);
    color:rgba(255,255,255,.65);
    font-size:.95rem;
}

.footer-list{
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:.65rem;
}

.footer-contact-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.75rem 1.25rem;
}

.anchor-offset{
    scroll-margin-top:100px;
}

@media (max-width: 1199.98px){
    :root{
        --ep-section-y:74px;
    }
    .hero-image{
        min-height:320px;
    }
}

@media (max-width: 991.98px){
    :root{
        --ep-section-y:62px;
    }

    .navbar-brand{
        font-size:1.7rem;
    }

    .hero-dark{
        text-align:left;
    }

    .hero-dark h1{
        max-width:none;
    }

    .hero-dark .lead{
        font-size:1.1rem;
        max-width:none;
    }

    .hero-image{
        min-height:260px;
        margin-top:.5rem;
    }

    .footer-contact-grid{
        grid-template-columns:1fr;
    }

    .section-padding{
        padding:62px 0;
    }
}

@media (max-width: 767.98px){
    .navbar{
        --bs-navbar-padding-y:.85rem;
    }

    .navbar-brand{
        font-size:1.45rem;
    }

    .hero-dark h1{
        font-size:clamp(2rem, 12vw, 3.1rem);
        line-height:1.08;
    }

    .hero-dark .lead{
        font-size:1rem;
        line-height:1.55;
    }

    .hero-dark .badge{
        font-size:.82rem;
        white-space:normal;
    }

    .hero-image{
        min-height:220px;
        border-radius:18px;
    }

    .btn,
    .btn-lg{
        width:100%;
        justify-content:center;
    }

    .card-body{
        padding:1.2rem;
    }

    .inquiry-shell .card-body{
        padding:1.25rem;
    }

    .display-6{
        font-size:2rem;
    }
}

@media (max-width: 575.98px){
    .hero-dark{
        padding-top:2.5rem!important;
        padding-bottom:2.5rem!important;
    }

    .container{
        padding-left:1rem;
        padding-right:1rem;
    }

    .hero-dark .d-flex.gap-3{
        gap:.85rem!important;
    }
}

.inquiry-dark{
    background:
        radial-gradient(circle at top right, rgba(251,191,36,.10), transparent 24%),
        linear-gradient(180deg, #0b1733 0%, #0f1f42 100%);
    color:#f8fafc;
}

.inquiry-dark h1,
.inquiry-dark h2,
.inquiry-dark h3,
.inquiry-dark .form-label{
    color:#f8fafc;
}

.inquiry-dark .text-soft,
.inquiry-dark .lead,
.inquiry-dark .form-text{
    color:rgba(255,255,255,.72)!important;
}

.inquiry-dark .card{
    background:rgba(15,23,42,.92);
    border:1px solid rgba(255,255,255,.08)!important;
    box-shadow:0 20px 50px rgba(0,0,0,.28);
}

.inquiry-dark .form-control,
.inquiry-dark .form-select{
    background:#111827;
    border:1px solid rgba(255,255,255,.10);
    color:#f8fafc;
}

.inquiry-dark .form-control::placeholder{
    color:rgba(255,255,255,.42);
}

.inquiry-dark .form-control:focus,
.inquiry-dark .form-select:focus{
    background:#111827;
    color:#fff;
    border-color:rgba(251,191,36,.55);
    box-shadow:0 0 0 .2rem rgba(251,191,36,.12)!important;
}

.inquiry-dark .form-select{
    background-color:#111827;
    color:#f8fafc;
}

.inquiry-dark .form-check-input{
    background-color:#111827;
    border-color:rgba(255,255,255,.18);
}

.inquiry-dark .form-check-input:checked{
    background-color:var(--ep-accent);
    border-color:var(--ep-accent);
}

.inquiry-dark .form-check-label{
    color:#e5e7eb;
}

.inquiry-dark .alert-success{
    background:rgba(34,197,94,.14);
    color:#dcfce7;
    border-color:rgba(34,197,94,.22);
}

.inquiry-dark .alert-danger{
    background:rgba(239,68,68,.14);
    color:#fee2e2;
    border-color:rgba(239,68,68,.22);
}

.blog-card-image{
    height:240px;
    object-fit:cover;
}

.blog-detail-image{
    max-height:520px;
    object-fit:cover;
}

.blog-content{
    font-size:1.06rem;
    line-height:1.85;
}

.blog-content h2,
.blog-content h3,
.blog-content h4{
    margin-top:2rem;
    margin-bottom:1rem;
}

.blog-content img{
    max-width:100%;
    height:auto;
    border-radius:18px;
    margin:1.25rem 0;
    box-shadow:var(--ep-shadow);
}

.blog-content blockquote{
    border-left:4px solid var(--ep-accent);
    padding-left:1rem;
    color:var(--ep-text-soft);
    font-style:italic;
}

.blog-content table{
    width:100%;
    border-collapse:collapse;
    margin:1.25rem 0;
}

.blog-content table th,
.blog-content table td{
    border:1px solid var(--ep-border);
    padding:.75rem;
}

@media (max-width: 767.98px){
    .blog-card-image{
        height:210px;
    }

    .blog-detail-image{
        max-height:260px;
    }

    .blog-content{
        font-size:1rem;
        line-height:1.7;
    }
}

.gallery-album-image{
    height:260px;
    object-fit:cover;
}

.gallery-thumb-image{
    height:260px;
    object-fit:cover;
    border-radius:1rem;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    transition:transform .2s ease, box-shadow .2s ease;
}

.gallery-thumb:hover .gallery-thumb-image{
    transform:translateY(-2px);
    box-shadow:0 16px 36px rgba(0,0,0,.14);
}

.gallery-album-card{
    box-shadow:0 10px 30px rgba(0,0,0,.06);
}

@media (max-width: 767.98px){
    .gallery-album-image{
        height:220px;
    }

    .gallery-thumb-image{
        height:180px;
    }
}

.social-links{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
}

.social-link{
    display:inline-flex;
    align-items:center;
    gap:.65rem;
    padding:.85rem 1rem;
    border-radius:999px;
    color:#fff;
    text-decoration:none;
    font-weight:700;
    line-height:1;
    transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease;
    box-shadow:0 10px 24px rgba(0,0,0,.18);
}

.social-link:hover{
    transform:translateY(-2px);
    opacity:.96;
    color:#fff;
}

.social-icon{
    width:18px;
    height:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 18px;
}

.social-icon svg{
    width:18px;
    height:18px;
    display:block;
    fill:currentColor;
}

.social-facebook{
    background:#1877f2;
}

.social-instagram{
    background:linear-gradient(135deg,#f58529 0%, #feda77 18%, #dd2a7b 48%, #8134af 74%, #515bd4 100%);
}

.social-youtube{
    background:#ff0000;
}

.social-tiktok{
    background:#111111;
    box-shadow:
        0 10px 24px rgba(0,0,0,.22),
        inset 2px 0 0 #25f4ee,
        inset -2px 0 0 #fe2c55;
}

@media (max-width: 575.98px){
    .social-link{
        width:100%;
        justify-content:center;
    }
}

.footer-gallery-card{
    display:block;
    overflow:hidden;
    border-radius:1.25rem;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.08);
    color:#fff;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.footer-gallery-card:hover{
    transform:translateY(-2px);
    color:#fff;
    border-color:rgba(255,255,255,.18);
    box-shadow:0 18px 40px rgba(0,0,0,.22);
}

.footer-gallery-image-wrap{
    aspect-ratio:16/9;
    overflow:hidden;
    background:#08142e;
}

.footer-gallery-image{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .28s ease;
}

.footer-gallery-card:hover .footer-gallery-image{
    transform:scale(1.04);
}

.footer-gallery-content{
    padding:1rem 1rem 1.05rem;
}

.footer-gallery-kicker{
    font-size:.78rem;
    font-weight:700;
    color:#ffc107;
    text-transform:uppercase;
    letter-spacing:.04em;
    margin-bottom:.35rem;
}

.footer-gallery-title{
    font-size:1.05rem;
    font-weight:800;
    line-height:1.25;
    margin-bottom:.3rem;
}

.footer-gallery-text{
    color:rgba(255,255,255,.76);
    font-size:.95rem;
    line-height:1.45;
}

.site-navbar{
    padding-top:var(--nav-padding-y, 1.2rem);
    padding-bottom:var(--nav-padding-y, 1.2rem);
    transition:background .2s ease;
}

.site-navbar .navbar-brand{
    font-size:2.1rem;
    font-weight:800;
    text-decoration:none;
}

.site-navbar .custom-nav-link{
    transition:color .18s ease, opacity .18s ease;
}

.site-navbar .custom-nav-link:hover,
.site-navbar .custom-nav-link:focus{
    color:var(--nav-link-hover-color, #0d6efd) !important;
}

.site-navbar .navbar-toggler{
    border-color:rgba(0,0,0,.15);
}

@media (max-width: 991.98px){
    .site-navbar .navbar-brand{
        font-size:1.7rem;
    }
}

.site-navbar{
    padding-top:var(--nav-padding-y, 1.2rem);
    padding-bottom:var(--nav-padding-y, 1.2rem);
    transition:background .2s ease;
}

.site-navbar .navbar-brand{
    font-size:2.1rem;
    font-weight:800;
    text-decoration:none;
}

.site-navbar .custom-nav-link{
    transition:color .18s ease, opacity .18s ease;
}

.site-navbar .custom-nav-link:hover,
.site-navbar .custom-nav-link:focus{
    color:var(--nav-link-hover-color, #0d6efd) !important;
}

.site-navbar .navbar-toggler{
    border-color:rgba(0,0,0,.15);
}

@media (max-width: 991.98px){
    .site-navbar .navbar-brand{
        font-size:1.7rem;
    }
}

/* ===== OPRAVA DYNAMICKÉHO STYLU NAVIGACE ===== */
.site-navbar{
    background: var(--nav-bg-color, #ffffff) !important;
    padding-top: var(--nav-padding-y, 1.2rem) !important;
    padding-bottom: var(--nav-padding-y, 1.2rem) !important;
    font-family: var(--nav-font-family, Inter, Arial, sans-serif) !important;
}

.site-navbar .navbar-brand{
    color: var(--nav-logo-color, #0b1b48) !important;
    font-family: var(--nav-font-family, Inter, Arial, sans-serif) !important;
    font-weight: 800 !important;
    font-size: 2.1rem !important;
    text-decoration: none !important;
    line-height: 1.1;
}

.site-navbar .navbar-brand:hover,
.site-navbar .navbar-brand:focus{
    color: var(--nav-logo-color, #0b1b48) !important;
    opacity: .92;
}

.site-navbar .custom-nav-link,
.site-navbar .nav-link{
    color: var(--nav-link-color, #1f2a44) !important;
    font-family: var(--nav-font-family, Inter, Arial, sans-serif) !important;
    font-size: var(--nav-font-size, 1rem) !important;
    font-weight: var(--nav-font-weight, 600) !important;
    transition: color .18s ease, opacity .18s ease !important;
}

.site-navbar .custom-nav-link:hover,
.site-navbar .custom-nav-link:focus,
.site-navbar .nav-link:hover,
.site-navbar .nav-link:focus,
.site-navbar .nav-link.active{
    color: var(--nav-link-hover-color, #0d6efd) !important;
    opacity: 1 !important;
}

.site-navbar .navbar-nav{
    gap: .4rem;
}

.site-navbar .navbar-toggler{
    border-color: rgba(255,255,255,.18) !important;
    box-shadow: none !important;
}

.site-navbar .navbar-toggler:focus{
    box-shadow: none !important;
}

.site-navbar .navbar-collapse{
    font-family: var(--nav-font-family, Inter, Arial, sans-serif) !important;
}

@media (max-width: 991.98px){
    .site-navbar .navbar-brand{
        font-size: 1.7rem !important;
    }

    .site-navbar .navbar-collapse{
        margin-top: 1rem;
    }

    .site-navbar .navbar-nav{
        gap: .2rem;
    }

    .site-navbar .nav-link{
        padding-left: 0;
        padding-right: 0;
    }
}

/* ===== DYNAMICKÉ HOVER / ACTIVE POZADÍ NAVIGACE ===== */
.site-navbar .navbar-nav .nav-link,
.site-navbar .navbar-nav .custom-nav-link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: .8rem 1.15rem !important;
    border-radius: var(--nav-link-radius, 18px) !important;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease !important;
}

.site-navbar .navbar-nav .nav-link:hover,
.site-navbar .navbar-nav .nav-link:focus,
.site-navbar .navbar-nav .custom-nav-link:hover,
.site-navbar .navbar-nav .custom-nav-link:focus {
    background: var(--nav-link-hover-bg-color, #ffffff) !important;
    color: var(--nav-link-hover-color, #29db3e) !important;
    text-decoration: none !important;
    box-shadow: 0 8px 20px rgba(0,0,0,.12) !important;
}

.site-navbar .navbar-nav .nav-link.active,
.site-navbar .navbar-nav .custom-nav-link.active {
    background: var(--nav-link-active-bg-color, #ffffff) !important;
    color: var(--nav-link-hover-color, #29db3e) !important;
    box-shadow: 0 8px 20px rgba(0,0,0,.12) !important;
}
