/* ── Hero (drone bg + optional video overlay) ─────────────────── */
.elementor-element-hm_hero_s { position: relative !important; overflow: hidden; }
/* Hero treatment — keep footage visible but push focus to the centre block.
 * - Static image lives on a ::before pseudo so we can filter it independently of text.
 * - Slight blur softens the busy townscape, dim+desaturate reduces visual weight.
 * - Layered overlay: vertical gradient (top→bottom darker behind CTAs) + centre vignette behind headline.
 * - Hero CTAs use a frosted-glass background to keep the gold accent readable against any pixel. */
.elementor-element-hm_hero_s .elementor-background-video-container,
.elementor-element-hm_hero_s .elementor-background-video-embed,
.elementor-element-hm_hero_s video.elementor-background-video-hosted {
    filter: brightness(0.9) saturate(0.95) blur(0.8px);
}
/* Static fallback image gets slightly more dimming since it isn't animating to keep attention */
.elementor-element-hm_hero_s { background-image: none !important; }
.elementor-element-hm_hero_s::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    filter: brightness(0.8) saturate(0.85) blur(0.8px);
    /* The blur softens the edges; scale up slightly so blurred edges don't show as hard borders */
    transform: scale(1.02);
    transform-origin: center center;
    pointer-events: none;
}
/* Layered gradient overlay: stronger at the centre to anchor headline + CTAs */
.elementor-element-hm_hero_s > .elementor-background-overlay {
    background-image:
        radial-gradient(ellipse 65% 55% at center, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.15) 70%, rgba(0,0,0,0) 100%),
        linear-gradient(to bottom, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.05) 45%, rgba(0,0,0,0.35) 100%) !important;
}
/* Headline + subtitle text shadow — final readability nudge without darkening the scene */
.elementor-element-hm_hero_s .elementor-heading-title {
    text-shadow: 0 3px 18px rgba(0,0,0,0.65), 0 1px 2px rgba(0,0,0,0.4);
}
/* LUHA REALITY headline — extra letter-spacing for a more premium, branded feel.
 * !important needed because Elementor's typography settings inject inline CSS with high specificity. */
.elementor-element-hm_hero_s .elementor-element-hm_h1 .elementor-heading-title,
.elementor-element-hm_h1 .elementor-heading-title {
    letter-spacing: 0.10em !important;
}
/* KAREL ADÁMEK subtitle — bump size so it carries more weight under the brand. No tracking. */
.elementor-element-hm_hero_s .elementor-element-hm_h2 .elementor-heading-title,
.elementor-element-hm_h2 .elementor-heading-title {
    font-size: 18px !important;
    letter-spacing: 0.12em !important;
    margin-top: 14px !important;
}
@media (max-width: 480px) {
    .elementor-element-hm_h2 .elementor-heading-title { font-size: 14px !important; }
}
/* Frosted-glass treatment for the outline (right) CTA so it stays readable on any pixel */
.elementor-element-hm_hero_s .luha-btn-outline-gold {
    background: rgba(0,0,0,0.45) !important;
    border-color: rgba(255,255,255,0.85) !important;
    color: #fff !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}
.elementor-element-hm_hero_s .luha-btn-outline-gold:hover {
    background: #c5b358 !important;
    border-color: #c5b358 !important;
    color: #fff !important;
}
/* Solid gold CTA gets a complementary text shadow so its label feels equally crisp */
.elementor-element-hm_hero_s .luha-btn-gold {
    text-shadow: 0 1px 2px rgba(0,0,0,0.25);
}
.elementor-element-hm_hero_s > .elementor-container,
.elementor-element-hm_hero_s .elementor-column,
.elementor-element-hm_hero_s .elementor-widget-wrap { position: relative; z-index: 2; }
/* Video widget must escape its widget-wrap so it fills the section, not the widget container */
.elementor-element-hm_hero_video,
.elementor-element-hm_hero_video > .elementor-widget-container { position: static !important; }
.luha-hero-video {
    position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    width: 100%; height: 100%;
    object-fit: cover; z-index: 1; opacity: .55;
    pointer-events: none;
    transition: opacity 1.2s ease;
}
.luha-hero-video[data-loaded="1"] { opacity: .85; }
.elementor-element-hm_hero_s .elementor-heading-title,
.elementor-element-hm_hero_s p { color: #fff !important; }
.elementor-element-hm_hero_s .luha-btn-gold,
.elementor-element-hm_hero_s .luha-btn-outline-gold { min-width: 220px; }
/* Hero outline button: white text for legibility on dark overlay */
.elementor-element-hm_hero_s .luha-btn-outline-gold {
    color: #fff !important;
    border-color: #fff !important;
    background: rgba(0,0,0,0.25) !important;
}
.elementor-element-hm_hero_s .luha-btn-outline-gold:hover {
    background: #c5b358 !important;
    border-color: #c5b358 !important;
    color: #fff !important;
}
/* Give the primary gold hero button a stronger shadow to pop from the bg */
.elementor-element-hm_hero_s .luha-btn-gold {
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}

/* ── About redesign ───────────────────────────────────────────── */
.elementor-element-hm_about_img img {
    width: 100%; height: auto; max-width: 460px; border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.08);
}
.elementor-element-hm_about_col_img .elementor-widget-image { text-align: center; }

/* Keep the about text column at a readable line length (~65ch) on desktop */
@media (min-width: 768px) {
    .elementor-element-hm_about_col_text > .elementor-widget-wrap,
    .elementor-element-hm_about_col_text > .elementor-column-wrap {
        padding-right: 80px !important;
    }
}
.elementor-element-hm_about_text .luha-about-title {
    margin-bottom: 22px !important;
}
.elementor-element-hm_about_text .luha-about-quote {
    font-family: 'Prata', Georgia, serif; font-weight: 400;
    font-size: 18px; color: #333; margin: 10px 0 40px; line-height: 1.55;
    font-style: italic;
    border-left: 3px solid #c5b358;
    padding: 6px 36px 10px 26px;      /* tight bottom — closing quote sits just past the last word */
    position: relative;
    display: inline-block;             /* shrink to fit text, so the closing
                                          glyph lands right after the sentence
                                          instead of at the far column edge. */
    width: fit-content;
    max-width: 100%;
}
.elementor-element-hm_about_text .luha-about-quote::before,
.elementor-element-hm_about_text .luha-about-quote::after {
    content: '\201C';                 /* same glyph for both — guarantees
                                         identical metrics. Closing glyph is
                                         the same opening quote rotated 180°,
                                         a classical decorative bookend. */
    font-family: 'Prata', Georgia, serif;
    font-size: 44px;
    line-height: 1;
    color: #333;                      /* match body text, not gold */
    opacity: .4;
    position: absolute;
    font-style: normal;
    pointer-events: none;
    display: inline-block;
    width: 24px;                      /* equal hit-box so both land the same */
    height: 24px;
}
.elementor-element-hm_about_text .luha-about-quote::before {
    left: 14px; top: -12px;
}
.elementor-element-hm_about_text .luha-about-quote::after {
    right: 14px; bottom: -12px;
    transform: rotate(180deg);
}
.elementor-element-hm_about_text p {
    font-size: 15px; line-height: 1.75; color: #555; margin: 0 0 14px;
}
.elementor-element-hm_about_text .luha-about-signature {
    font-family: 'Prata', Georgia, serif; font-size: 20px;
    color: #c5b358; margin-top: 24px;
}

/* ── About stats row — unifies with About's #f7f7f7 background ─ */
.elementor-element-hm_about_stats_s {
    text-align: center;
    background: #f7f7f7 !important;
}
.elementor-element-hm_about_merged { margin-bottom: 0 !important; }
.elementor-element-hm_about_stats_s { margin-top: 0 !important; }
.luha-stat { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.luha-stat-num {
    font-family: 'Prata', Georgia, serif; font-size: 38px;
    color: #c5b358; line-height: 1;
}
.luha-stat-label {
    font-size: 13px; letter-spacing: .06em; text-transform: uppercase;
    color: #555; font-weight: 500;
}

/* ── SLUŽBY section ───────────────────────────────────────────── */
.luha-services-header { text-align: center; max-width: 720px; margin: 0 auto; }
.luha-services-header .luha-services-sub {
    font-size: 15px; line-height: 1.7; color: #666; margin: 0;
}
.luha-service-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 40px 34px;
    height: 100%;
    box-shadow: 0 4px 20px rgba(0,0,0,0.03);
    transition: box-shadow .3s ease, transform .3s ease;
    display: flex; flex-direction: column;
}
.luha-service-card:hover {
    box-shadow: 0 14px 40px rgba(0,0,0,0.08);
    transform: translateY(-4px);
}
.luha-service-icon {
    width: 56px; height: 56px;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(197, 179, 88, 0.12);
    color: #c5b358; font-size: 22px;
    border-radius: 50%;
    margin-bottom: 22px;
}
.luha-service-eyebrow {
    font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
    color: #c5b358; font-weight: 700; margin: 0 0 6px;
}
.luha-service-title {
    font-family: 'Prata', Georgia, serif !important;
    font-weight: 400 !important;
    font-size: 26px !important;
    color: #222 !important;
    margin: 0 0 14px !important;
    letter-spacing: .01em;
}
.luha-service-desc {
    font-size: 14.5px; line-height: 1.7; color: #666; margin: 0 0 18px;
}
.luha-service-points {
    list-style: none; padding: 0; margin: 0 0 26px;
}
.luha-service-points li {
    position: relative; padding: 8px 0 8px 24px;
    font-size: 14px; color: #555; line-height: 1.5;
    border-bottom: 1px solid #f3f3f3;
}
.luha-service-points li:last-child { border-bottom: 0; }
.luha-service-points li::before {
    content: '✓'; position: absolute; left: 0; top: 8px;
    color: #c5b358; font-weight: 700;
}
.luha-service-card .luha-btn-gold,
.luha-service-card .luha-btn-outline-gold { margin-top: auto; align-self: flex-start; }

/* ── Reviews badges + stars ───────────────────────────────────── */
.luha-review-badge {
    position: absolute; top: 20px; right: 20px;
    width: 34px; height: 34px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 15px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.luha-review-badge-google { background: #fff; color: #4285F4; border: 1px solid #e6e6e6; }
.luha-review-badge-seznam { background: #c8202f; color: #fff; }
.luha-testimonial-slide { position: relative; }
.luha-review-stars { display: inline-flex; gap: 3px; margin: 4px 0 12px; color: #ddd; font-size: 14px; }
.luha-review-stars .is-on { color: #f5b301; }

/* ── Contact section mobile (#hm_contact_s) ───────────────────── */
@media (max-width: 767px) {
    .elementor-element-hm_contact_s > .elementor-container,
    [data-id="hm_contact_s"] > .elementor-container { flex-wrap: wrap !important; }
    .elementor-element-hm_contact_s > .elementor-container > .elementor-column,
    [data-id="hm_contact_s"] > .elementor-container > .elementor-column,
    .elementor-element-hm_contact_s .elementor-column[data-id="cold2b999"],
    .elementor-element-hm_contact_s .elementor-column[data-id="colfe6e0a"] {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }
    .luha-contact-form-card { padding: 24px 16px !important; }
    .luha-agent-card { padding: 0 4px !important; }
    .luha-agent-details li { flex-wrap: wrap; word-break: break-word; }
    /* Unified mobile section-title size */
    .luha-section-title,
    .luha-services-header .luha-services-h2,
    .elementor-element-hm_feat_h .elementor-heading-title,
    .elementor-element-hm_test_h .elementor-heading-title,
    .elementor-element-hm_projekty_h .elementor-heading-title,
    .elementor-element-ct_form_heading .elementor-heading-title,
    .luha-contact-heading { font-size: 26px !important; }
    .luha-contact-right .luha-contact-subtitle { letter-spacing: .08em !important; }

    /* About redesign stacks on mobile */
    .elementor-element-hm_usp_s > .elementor-container { flex-wrap: wrap !important; }
    .elementor-element-hm_about_col_img,
    .elementor-element-hm_about_col_text {
        flex: 0 0 100% !important; max-width: 100% !important;
    }
    .elementor-element-hm_about_col_text > .elementor-widget-wrap { padding: 30px 20px 10px !important; }
    .elementor-element-hm_about_text .luha-about-quote { font-size: 15px; padding-left: 16px; }
    .elementor-element-hm_about_text .luha-about-quote::before { font-size: 28px; left: 12px; top: -3px; }

    /* Services stack on mobile */
    .elementor-element-hm_services_cards_s > .elementor-container { flex-wrap: wrap !important; }
    .elementor-element-hm_services_col_buy,
    .elementor-element-hm_services_col_sell {
        flex: 0 0 100% !important; max-width: 100% !important; margin-bottom: 20px;
    }
    .luha-services-header .luha-services-h2 { font-size: 26px; }
    .luha-service-card { padding: 30px 22px; }

    /* Hero CTAs stack on narrow screens */
    .luha-hero-cta-row { flex-direction: column !important; align-items: stretch !important; }
    .luha-hero-cta-row .luha-btn-gold,
    .luha-hero-cta-row .luha-btn-outline-gold { width: 100%; }

    /* About stats stack */
    .elementor-element-hm_about_stats_s > .elementor-container { flex-wrap: wrap !important; }
    .elementor-element-hm_about_stats_s > .elementor-container > .elementor-column {
        flex: 0 0 100% !important; max-width: 100% !important; margin-bottom: 16px;
    }
}

@media (max-width: 1023px) {
    /* Hide hero video on tablets/mobile regardless of JS — keeps data use low */
    .luha-hero-video { display: none !important; }
}
