/* GenieHome v18 responsive stability layer */
:root { --gh-safe-inline: clamp(16px, 4vw, 32px); }

img, video, iframe { max-width: 100%; height: auto; }
.gh-container, .ghs-container, .ghc-container, .ghv-container, .ghpv-container, .ghiv-container, .ghlegal-container {
    width: min(100% - (var(--gh-safe-inline) * 2), 1240px);
    margin-inline: auto;
}

[class*="hero"] h1, [class*="hero"] h2 { overflow-wrap: anywhere; }
[class*="grid"] > * { min-width: 0; }

@media (max-width: 1024px) {
    .ghs-hero-grid, .ghc-hero-grid, .ghv-hero-grid, .ghpv-hero-grid, .ghiv-hero-grid, .ghlegal-hero-grid,
    .ghs-faq-layout, .ghc-faq-layout, .ghv-faq-layout, .ghpv-faq-layout, .ghiv-faq-layout, .ghlegal-faq-layout {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 767px) {
    body { overflow-x: hidden; }
    .gh-header-inner { min-height: 64px; }
    .gh-main-nav, .gh-header-actions .gh-add-property { display: none !important; }
    .gh-burger { display: inline-flex !important; }

    [class*="hero"] { padding-block: 48px !important; }
    [class*="hero"] h1 { font-size: clamp(28px, 8vw, 38px) !important; line-height: 1.15 !important; }
    [class*="section-heading"] h2 { font-size: clamp(24px, 7vw, 32px) !important; }

    .ghs-hero-actions, .ghc-hero-actions, .ghv-hero-actions, .ghpv-hero-actions, .ghiv-hero-actions, .ghlegal-hero-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }
    .ghs-btn, .ghc-btn, .ghv-btn, .ghpv-btn, .ghiv-btn, .ghlegal-btn { width: 100%; justify-content: center; }

    .ghs-values-grid, .ghs-services-grid, .ghc-contact-grid, .gh-blog-grid,
    .ghv-grid, .ghpv-grid, .ghiv-grid, .ghlegal-grid {
        grid-template-columns: 1fr !important;
    }

    [class*="faq-question"] { min-height: 52px; text-align: left; }

    table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
