/**
 * Site-wide + inner-page responsive overrides
 * Loaded last so it wins over Elementor/theme CSS.
 */

:root {
    --renatex-gutter: clamp(16px, 4vw, 48px);
    --renatex-section-y: clamp(48px, 8vw, 110px);
}

html,
body {
    overflow-x: hidden;
    max-width: 100%;
}

img,
svg,
video,
iframe {
    max-width: 100%;
}

.crafto-page-layout,
.elementor {
    max-width: 100%;
    overflow-x: clip;
}

.e-con-inner,
.e-con {
    min-width: 0;
    box-sizing: border-box;
}

/* Fluid utilities (all pages) */
.pt-10 {
    padding-top: clamp(48px, 10vw, 100px) !important;
}

.font-color {
    font-size: clamp(16px, 4vw, 26px) !important;
    line-height: 1.45 !important;
}

/* Footer newsletter — room for button on narrow screens */
.elementor-837 .elementor-element-2c8a9991 .newsletter-text {
    padding: 10px 72px 10px 14px !important;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.elementor-837 .elementor-element-4a46112 > .e-con-inner {
    padding-left: var(--renatex-gutter) !important;
    padding-right: var(--renatex-gutter) !important;
    box-sizing: border-box;
}

/* ============================================================
   Tablet / iPad (768–1199)
   ============================================================ */
@media (max-width: 1199px) and (min-width: 768px) {
    body.inner-page .crafto-page-main-section {
        padding-top: 0 !important;
        padding-bottom: clamp(48px, 6vw, 72px) !important;
    }

    body.inner-page .e-con-boxed > .e-con-inner {
        padding-left: clamp(28px, 5vw, 56px) !important;
        padding-right: clamp(28px, 5vw, 56px) !important;
    }

    /* Inner page heroes (shared post-320 / banners) */
    body.inner-page [class*="elementor-"] .e-con-boxed.e-parent:first-child {
        --padding-top: clamp(100px, 14vw, 140px) !important;
        --padding-bottom: clamp(56px, 8vw, 90px) !important;
    }

    body.inner-page h1.crafto-heading,
    body.inner-page .crafto-primary-title {
        word-break: break-word;
        overflow-wrap: anywhere;
    }

    .elementor-837 .elementor-element-49616d7,
    .elementor-837 .elementor-element-cd47b03 {
        width: 100% !important;
        max-width: 100% !important;
        --container-widget-width: 100% !important;
    }
}

/* ============================================================
   Tablet portrait / hamburger range (≤991)
   ============================================================ */
@media (max-width: 991px) {
    body.inner-page .crafto-page-main-section {
        padding-top: 0 !important;
        padding-bottom: clamp(40px, 6vw, 64px) !important;
    }

    body.inner-page .site-header .header-common-wrapper.standard {
        background-color: #000 !important;
    }

    /* Contact / forms */
    body.inner-page .wpcf7-form input,
    body.inner-page .wpcf7-form textarea,
    body.inner-page .wpcf7-form select,
    body.page-kontaktieren-sie-uns input,
    body.page-kontaktieren-sie-uns textarea {
        max-width: 100%;
        box-sizing: border-box;
    }

    /* Service / about section containers */
    body.inner-page .e-con-boxed > .e-con-inner {
        padding-left: clamp(20px, 4vw, 40px) !important;
        padding-right: clamp(20px, 4vw, 40px) !important;
    }

    body.inner-page h1,
    body.inner-page h2.crafto-heading,
    body.inner-page .crafto-primary-title {
        letter-spacing: -0.03em !important;
    }
}

/* ============================================================
   Mobile (≤767)
   ============================================================ */
@media (max-width: 767px) {
    body.inner-page .crafto-page-main-section {
        padding-top: 0 !important;
        padding-bottom: 40px !important;
    }

    body.inner-page .e-con-boxed > .e-con-inner {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* Inner banners */
    body.inner-page [class*="elementor-"] .e-con-boxed.e-parent:first-child {
        --padding-top: 100px !important;
        --padding-bottom: 48px !important;
    }

    body.inner-page .elementor-button,
    body.inner-page a.elementor-button {
        max-width: 100%;
        box-sizing: border-box;
    }

    .elementor-837 .elementor-element-2c8a9991 .newsletter-text {
        padding: 12px 64px 12px 14px !important;
        font-size: 14px;
    }

    .elementor-837 .elementor-element-49616d7,
    .elementor-837 .elementor-element-cd47b03 {
        width: 100% !important;
        max-width: 100% !important;
        --container-widget-width: 100% !important;
    }

    .legal-page {
        padding: 96px 20px 64px !important;
    }
}

/* ============================================================
   Small phones (≤575)
   ============================================================ */
@media (max-width: 575px) {
    .elementor-837 .elementor-element-49616d7,
    .elementor-837 .elementor-element-cd47b03 {
        width: 100% !important;
        max-width: 100% !important;
        --container-widget-width: 100% !important;
    }

    body.inner-page .e-con-boxed > .e-con-inner {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .market-research-cta {
        padding: 40px 18px 48px !important;
    }

    .market-research-intro__stat {
        right: 10px;
        bottom: 14px;
        padding: 12px 14px;
    }
}
