/*
Theme Name: Implenity Theme
Theme URI: https://implenity.com
Author: RedEx Consulting
Author URI: https://redex.com
Description: Custom FSE Theme for Implenity Website Revamp
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.4
Requires PHP: 8.0
*/

/* --- SYSTEM: GLOBAL RESPONSIVE TOKENS --- */
/* Kadence stores desktop / tablet / mobile values only.
   These theme variables map directly to the table: mobile 375, tablet 768,
   desktop 1500. The wide 1900 tier is handled as a theme override. */
:root {
    --implenity-breakpoint-wide: 1900px;
    --implenity-breakpoint-desktop: 1500px;
    --implenity-breakpoint-tablet: 768px;
    --implenity-breakpoint-mobile: 375px;

    /* Desktop canvas: 1500 */
    --implenity-content-width: 1280px;
    --implenity-content-width-small: 640px;
    --implenity-hero-min-height: 400px;
    --implenity-border-radius: 20px;
    --implenity-gap: 40px;
    --implenity-gap-s: 30px;
    --implenity-gap-xs: 20px;
    --implenity-gap-box: 30px;
    --implenity-spacing-l: 100px;
    --implenity-spacing-m: 80px;
    --implenity-font-size-h1: 4rem; /* 64px */
    --implenity-font-size-h2: 3.0625rem; /* 49px */
    --implenity-font-size-h3: 2.5rem; /* 40px */
    --implenity-font-size-h4: 2.125rem; /* 34px */
    --implenity-font-size-h5: 1.5rem; /* 24px */
    --implenity-font-size-h6: 1.25rem; /* 20px */
    --implenity-font-size-large: 2.125rem; /* 34px */
    --implenity-font-size-default: 1.5rem; /* 24px */
    --implenity-font-size-small: 1.25rem; /* 20px */

    --global-content-edge-padding: 40px !important;
    --global-content-width: min(var(--implenity-content-width), calc(100vw - (var(--global-content-edge-padding) * 2))) !important;
    /*--global-row-gutter-sm: var(--implenity-gap-s);*/
    /*--global-row-gutter-md: var(--implenity-gap);*/
    /*--global-row-gutter-lg: var(--implenity-spacing-m);*/
    --global-kb-font-size-sm: var(--implenity-font-size-h6) !important;
    --global-kb-font-size-md: var(--implenity-font-size-h5) !important;
    --global-kb-font-size-lg: var(--implenity-font-size-h4) !important;
    --global-kb-font-size-xl: var(--implenity-font-size-h3) !important;
    --global-kb-font-size-xxl: var(--implenity-font-size-h2) !important;
    --global-kb-font-size-xxxl: var(--implenity-font-size-h1) !important;
}

/* 1900px wide-tier adjustments are disabled for now. */
/*
@media screen and (min-width: 1900px) {
    :root {
        --implenity-content-width: 1500px;
        --implenity-content-width-small: 750px;
        --implenity-hero-min-height: 500px;
        --implenity-border-radius: 20px;
        --implenity-gap: 60px;
        --implenity-gap-s: 40px;
        --implenity-gap-xs: 30px;
        --implenity-gap-box: 40px;
        --implenity-spacing-l: 200px;
        --implenity-spacing-m: 140px;
        --implenity-font-size-h1: 6.875rem;
        --implenity-font-size-h2: 5.625rem;
        --implenity-font-size-h3: 3.125rem;
        --implenity-font-size-h4: 2rem;
        --implenity-font-size-h5: 1.25rem;
        --implenity-font-size-h6: 1rem;
        --implenity-font-size-default: 1.25rem;
        --implenity-font-size-large: 1.5rem;
        --implenity-font-size-small: 1rem;

        --global-content-edge-padding: 48px !important;
    }
}
*/

/* Fluid font sizes between the desktop spec (1500px) and wide spec (1900px).
   Formula shape: start_px + delta_px * ((viewport - 1500px) / 400).
   Example: H2 = 67px + 23 * ((1811 - 1500) / 400) = 84.8825px. */
/*@media screen and (min-width: 1500px) and (max-width: 1899px) {*/
/*    :root {*/
/*        --implenity-font-size-h1: clamp(5.125rem, calc(82px + 28 * ((100vw - 1500px) / 400)), 6.875rem);*/
/*        --implenity-font-size-h2: clamp(4.1875rem, calc(67px + 23 * ((100vw - 1500px) / 400)), 5.625rem);*/
/*        --implenity-font-size-h3: clamp(2.5rem, calc(40px + 10 * ((100vw - 1500px) / 400)), 3.125rem);*/
/*        --implenity-font-size-h4: clamp(1.5rem, calc(24px + 8 * ((100vw - 1500px) / 400)), 2rem);*/
/*        --implenity-font-size-h5: clamp(1.125rem, calc(18px + 2 * ((100vw - 1500px) / 400)), 1.25rem);*/
/*        --implenity-font-size-h6: clamp(0.875rem, calc(14px + 2 * ((100vw - 1500px) / 400)), 1rem);*/
/*        --implenity-font-size-default: clamp(1.125rem, calc(18px + 2 * ((100vw - 1500px) / 400)), 1.25rem);*/
/*        --implenity-font-size-large: clamp(1.375rem, calc(22px + 2 * ((100vw - 1500px) / 400)), 1.5rem);*/
/*        --implenity-font-size-small: clamp(0.875rem, calc(14px + 2 * ((100vw - 1500px) / 400)), 1rem);*/

/*        !* Kadence semantic sizes now map as sm->H6, md->H5, lg->H4,*/
/*           xl->H3, xxl->H2, xxxl->H1 and need the same desktop->wide clamps. *!*/
/*        --global-kb-font-size-sm: clamp(0.875rem, calc(14px + 2 * ((100vw - 1500px) / 400)), 1rem) !important;*/
/*        --global-kb-font-size-md: clamp(1.125rem, calc(18px + 2 * ((100vw - 1500px) / 400)), 1.25rem) !important;*/
/*        --global-kb-font-size-lg: clamp(1.5rem, calc(24px + 8 * ((100vw - 1500px) / 400)), 2rem) !important;*/
/*        --global-kb-font-size-xl: clamp(2.5rem, calc(40px + 10 * ((100vw - 1500px) / 400)), 3.125rem) !important;*/
/*        --global-kb-font-size-xxl: clamp(4.1875rem, calc(67px + 23 * ((100vw - 1500px) / 400)), 5.625rem) !important;*/
/*        --global-kb-font-size-xxxl: clamp(5.125rem, calc(82px + 28 * ((100vw - 1500px) / 400)), 6.875rem) !important;*/

/*        !**/
/*        Static alternative for this range if you want step-based desktop sizes:*/
/*        --implenity-font-size-h1: 5.125rem;*/
/*        --implenity-font-size-h2: 4.1875rem;*/
/*        --implenity-font-size-h3: 2.5rem;*/
/*        --implenity-font-size-h4: 1.5rem;*/
/*        --implenity-font-size-h5: 1.125rem;*/
/*        --implenity-font-size-h6: 0.875rem;*/
/*        --implenity-font-size-default: 1.125rem;*/
/*        --implenity-font-size-large: 1.375rem;*/
/*        --implenity-font-size-small: 0.875rem;*/
/*        --global-kb-font-size-sm: 0.875rem !important;*/
/*        --global-kb-font-size-md: 1.125rem !important;*/
/*        --global-kb-font-size-lg: 1.5rem !important;*/
/*        --global-kb-font-size-xl: 2.5rem !important;*/
/*        --global-kb-font-size-xxl: 4.1875rem !important;*/
/*        --global-kb-font-size-xxxl: 5.125rem !important;*/
/*        *!*/
/*    }*/
/*}*/

@media screen and (max-width: 1499px) {
    :root {
        /* Tablet canvas: 768 */
        --implenity-content-width: 768px;
        --implenity-content-width-small: 700px;
        --implenity-hero-min-height: 600px;
        --implenity-border-radius: 20px;
        --implenity-gap: 40px;
        --implenity-gap-s: 30px;
        --implenity-gap-xs: 20px;
        --implenity-gap-box: 30px;
        --implenity-spacing-l: 100px;
        --implenity-spacing-m: 80px;
        --implenity-font-size-h1: 4rem; /* 64px */
        --implenity-font-size-h2: 3.0625rem; /* 49px */
        --implenity-font-size-h3: 2.5rem; /* 40px */
        --implenity-font-size-h4: 2.125rem; /* 34px */
        --implenity-font-size-h5: 1.5rem; /* 24px */
        --implenity-font-size-h6: 1.25rem; /* 20px */
        --implenity-font-size-large: 2.125rem; /* 34px */
        --implenity-font-size-default: 1.5rem; /* 24px */
        --implenity-font-size-small: 1.25rem; /* 20px */

        --global-content-edge-padding: 32px !important;
    }
}

@media screen and (max-width: 767px) {
    :root {
        /* Mobile canvas: 375 */
        --implenity-content-width: 375px;
        --implenity-content-width-small: 275px;
        --implenity-hero-min-height: 600px;
        --implenity-border-radius: 10px;
        --implenity-gap: 20px;
        --implenity-gap-s: 15px;
        --implenity-gap-xs: 10px;
        --implenity-gap-box: 20px;
        --implenity-spacing-l: 60px;
        --implenity-spacing-m: 40px;
        --implenity-font-size-h1: 2.5rem; /* 40px */
        --implenity-font-size-h2: 2.25rem; /* 36px */
        --implenity-font-size-h3: 2rem; /* 32px */
        --implenity-font-size-h4: 1.75rem; /* 28px */
        --implenity-font-size-h5: 1.5rem; /* 24px */
        --implenity-font-size-h6: 1.25rem; /* 20px */
        --implenity-font-size-large: 1.75rem; /* 28px */
        --implenity-font-size-default: 1.5rem; /* 24px */
        --implenity-font-size-small: 1.25rem; /* 20px */

        --global-content-edge-padding: 20px !important;
    }
}

/* Fluid font sizes between the mobile spec (375px) and tablet spec (768px).
   Formula shape: start_px + delta_px * ((viewport - 375px) / 393). */
/*@media screen and (min-width: 375px) and (max-width: 767px) {*/
/*    :root {*/
/*        --implenity-font-size-h1: clamp(3.125rem, calc(50px + 32 * ((100vw - 375px) / 393)), 5.125rem);*/
/*        --implenity-font-size-h2: clamp(2.5rem, calc(40px + 27 * ((100vw - 375px) / 393)), 4.1875rem);*/
/*        --implenity-font-size-h3: clamp(2rem, calc(32px + 8 * ((100vw - 375px) / 393)), 2.5rem);*/
/*        --implenity-font-size-h4: clamp(1.125rem, calc(18px + 6 * ((100vw - 375px) / 393)), 1.5rem);*/
/*        --implenity-font-size-h5: clamp(1rem, calc(16px + 2 * ((100vw - 375px) / 393)), 1.125rem);*/
/*        --implenity-font-size-default: clamp(1rem, calc(16px + 2 * ((100vw - 375px) / 393)), 1.125rem);*/
/*        --implenity-font-size-large: clamp(1.25rem, calc(20px + 2 * ((100vw - 375px) / 393)), 1.375rem);*/

/*        !* H6 does not change between the mobile and tablet specs, but keep*/
/*           the same clamp structure so every Kadence font token behaves consistently. *!*/
/*        --global-kb-font-size-sm: clamp(0.875rem, calc(14px + 0 * ((100vw - 375px) / 393)), 0.875rem) !important;*/
/*        --global-kb-font-size-md: clamp(1rem, calc(16px + 2 * ((100vw - 375px) / 393)), 1.125rem) !important;*/
/*        --global-kb-font-size-lg: clamp(1.125rem, calc(18px + 6 * ((100vw - 375px) / 393)), 1.5rem) !important;*/
/*        --global-kb-font-size-xl: clamp(2rem, calc(32px + 8 * ((100vw - 375px) / 393)), 2.5rem) !important;*/
/*        --global-kb-font-size-xxl: clamp(2.5rem, calc(40px + 27 * ((100vw - 375px) / 393)), 4.1875rem) !important;*/
/*        --global-kb-font-size-xxxl: clamp(3.125rem, calc(50px + 32 * ((100vw - 375px) / 393)), 5.125rem) !important;*/

/*        !**/
/*        Static alternative for this range if you want step-based mobile sizes:*/
/*        --implenity-font-size-h1: 3.125rem;*/
/*        --implenity-font-size-h2: 2.5rem;*/
/*        --implenity-font-size-h3: 2rem;*/
/*        --implenity-font-size-h4: 1.125rem;*/
/*        --implenity-font-size-h5: 1rem;*/
/*        --implenity-font-size-default: 1rem;*/
/*        --implenity-font-size-large: 1.25rem;*/
/*        --global-kb-font-size-sm: 0.875rem !important;*/
/*        --global-kb-font-size-md: 1rem !important;*/
/*        --global-kb-font-size-lg: 1.125rem !important;*/
/*        --global-kb-font-size-xl: 2rem !important;*/
/*        --global-kb-font-size-xxl: 2.5rem !important;*/
/*        --global-kb-font-size-xxxl: 3.125rem !important;*/
/*        *!*/
/*    }*/
/*}*/

/*@media screen and (max-width: 374px) {*/
/*    :root {*/
/*        !* Narrow mobile fallback for sub-375 widths *!*/
/*        --global-content-edge-padding: 16px !important;*/
/*        --implenity-content-width-small: 255px;*/
/*        --implenity-gap-s: 12px;*/
/*        --implenity-spacing-l: 48px;*/
/*        --implenity-spacing-m: 32px;*/
/*        --implenity-font-size-h1: 2.75rem; !* 44px *!*/
/*        --implenity-font-size-h2: 2.25rem; !* 36px *!*/
/*        --implenity-font-size-h3: 1.875rem; !* 30px *!*/
/*        --implenity-font-size-default: 0.9375rem; !* 15px *!*/
/*        --implenity-font-size-large: 1.125rem; !* 18px *!*/
/*    }*/
/*}*/

.hero-gradient-text {
    background: linear-gradient(90deg, #FFFFFF 0%, #FFFFFF 75%, #FFA58A 80%, #FFA58A 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent !important;
}

.wp-site-blocks > header + main {
    margin-block-start: 0;
    padding-top: var(--implenity-header-height, 0px);
}

:root {
    --implenity-header-height: 0px;
    --implenity-header-offset: 0px;
}

/* --- Header Sticky Implementation --- */
header {
    position: fixed;
    top: var(--implenity-header-offset);
    left: 0;
    right: 0;
    z-index: 9999;
    width: 100%;
    transition: top 0.3s ease-in-out, box-shadow 0.3s ease-in-out !important;
}

header.header-hidden {
    top: calc((var(--implenity-header-height) + var(--implenity-header-offset)) * -1);
}

header.has-shadow {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1) !important;
}

/* Ensure default header has a solid background when sticky */
header:not(.header-light) {
    background-color: var(--wp--preset--color--brand-dark, #2A2242);
}

/* Fix visual glitch on scroll for light header pages */
body:has([class*="implenity-theme__header-light"]) {
    background-color: #FFFFFF;
}

/* Adjust for WordPress Admin Bar */
.admin-bar {
    --implenity-header-offset: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar {
        --implenity-header-offset: 46px;
    }
}


/* Custom style ONLY for the special Pricing FAQ */
.faq-accordion-custom-preise .kt-accordion-panel,
.faq-accordion-custom-preise .kt-row-column-wrap {
    width: 90% !important;
    margin: 0 auto !important;
}
.faq-accordion {
  display: block;
  width: 100% !important;
  max-width: 1380px;
  margin: 0 auto;
  box-sizing: border-box;
}
.faq-accordion .kt-accordion-wrap,
.faq-accordion .kt-accordion-inner-wrap,
.faq-accordion .kt-accordion-pane,
.faq-accordion .kt-accordion-panel,
.faq-accordion .kt-accordion-panel-inner,
.faq-accordion .kt-blocks-accordion-header {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
}
.faq-accordion .kt-blocks-accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.faq-accordion .kt-blocks-accordion-title-wrap {
  flex: 1 1 auto;
  min-width: 0;
}
.faq-accordion .kt-blocks-accordion-icon-trigger {
  flex: 0 0 auto;
  margin-left: 16px;
}

/* Fix for overflowing borders/content in all FAQs */
.faq-accordion .kt-accordion-panel,
.plattform-tools-accordion .kt-accordion-panel {
    overflow: hidden !important;
}

.faq-accordion .kt-blocks-accordion-header {
    padding-left: 0 !important;
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}

.plattform-tools-accordion .kt-blocks-accordion-header {
    padding-left: 0 !important;
    padding-top: 30px !important;
    padding-bottom: 30px !important;
    line-height: normal !important;
}

.faq-accordion .kt-accordion-panel-inner,
.plattform-tools-accordion .kt-accordion-panel-inner {
    padding-left: 0 !important;
}

/* Move border to the bottom of the entire item for smooth transition */
.faq-accordion .kt-blocks-accordion-header,
.plattform-tools-accordion .kt-blocks-accordion-header {
    border-bottom: 0 !important;
}

.faq-accordion .kt-accordion-pane {
    border-bottom: 1px solid rgba(42, 34, 66, 0.2) !important;
    display: block !important;
}

.plattform-tools-accordion .kt-accordion-pane {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    display: block !important;
}

.faq-accordion-custom-preise .kt-accordion-panel {
     background: #ffffff !important;
     border-bottom-left-radius: 20px !important;
     border-bottom-right-radius: 20px !important;
     overflow: hidden !important;
     width: 100% !important;
 }

/* Structural fixes */
.faqspecialmaxwidth {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

.faqspecialmaxwidth .alignfull,
.faqspecialmaxwidth .kt-row-column-wrap {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: 0 !important;
}

.faqspecialmaxwidth .alignfull > .kt-inside-inner-col {
    padding-left: 20px !important;
    padding-right: 20px !important;
}

/* FORCED FIX FOR PRO BADGE TRUNCATION */
.specific-section-pro-preise {
    border: 3px solid blue !important; /* DEBUG BORDER */
    overflow: visible !important;
}

.specific-section-pro-preise .kt-inside-inner-col {
    overflow: visible !important;
    padding-right: 60px !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

/* Target the badge specifically */
.specific-section-pro-preise div.wp-block-group {
    overflow: visible !important;
    margin-left: 20px !important;
    flex-shrink: 0 !important;
}




/* --- Contact Forms (CF7 + Legacy WPForms) --- */

/* 1. Layout */
:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field-container,
:is(body.page-id-306 .wpcf7 form .implenity-form-grid, .implenity-modal .wpcf7 form .implenity-form-grid) {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    gap: 0 !important;
    row-gap: 18px !important;
}

:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field,
:is(body.page-id-306 .wpcf7 form .implenity-field, .implenity-modal .wpcf7 form .implenity-field) {
    margin-bottom: 18px !important;
}

/* Tighten CF7 vertical rhythm to match Figma */
:is(body.page-id-306 .wpcf7 form .implenity-form-grid, .implenity-modal .wpcf7 form .implenity-form-grid) {
    row-gap: 12px !important;
}

:is(body.page-id-306 .wpcf7 form .implenity-field, .implenity-modal .wpcf7 form .implenity-field) {
    margin-bottom: 12px !important;
}

:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field.wpforms-one-half,
:is(body.page-id-306 .wpcf7 form .implenity-half, .implenity-modal .wpcf7 form .implenity-half) {
    width: 48% !important;
    flex: 0 0 48% !important;
    clear: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field:not(.wpforms-one-half),
:is(body.page-id-306 .wpcf7 form .implenity-full, .implenity-modal .wpcf7 form .implenity-full) {
    width: 100% !important;
    flex: 0 0 100% !important;
}

/* Mobile: force single-column fields */
@media screen and (max-width: 782px) {
    :is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field.wpforms-one-half,
    :is(body.page-id-306 .wpcf7 form .implenity-half, .implenity-modal .wpcf7 form .implenity-half) {
        width: 100% !important;
        flex: 0 0 100% !important;
    }
}

/* 2. Inputs */
:is(#wpforms-form-1648, #wpforms-form-3013) input[type="text"],
:is(#wpforms-form-1648, #wpforms-form-3013) input[type="email"],
:is(#wpforms-form-1648, #wpforms-form-3013) select,
:is(#wpforms-form-1648, #wpforms-form-3013) textarea,
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) input[type="text"],
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) input[type="email"],
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) select,
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) textarea {
    width: 100% !important;
    max-width: 100% !important;
    background-color: #F0F1ED !important;
    border: none !important;
    border-radius: 10px !important;
    height: 55px !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size:var(--global-kb-font-size-md) !important;
    color: #2A2242 !important;
}

:is(#wpforms-form-1648, #wpforms-form-3013) textarea,
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) textarea {
    height: 150px !important;
    padding-top: 15px !important;
}

/* 3. Checkbox / GDPR */
:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field-checkbox ul li,
:is(body.page-id-306 .wpcf7 form .wpcf7-list-item, .implenity-modal .wpcf7 form .wpcf7-list-item) {
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;
    background: none !important;
    padding: 0 !important;
    margin-bottom: 10px !important;
    margin-left: 0 !important;
}

:is(body.page-id-306 .wpcf7 form .wpcf7-list-item label, .implenity-modal .wpcf7 form .wpcf7-list-item label) {
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;
}

:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field-checkbox fieldset {
    border: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
}

:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field-checkbox input[type='checkbox'],
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) input[type='checkbox'] {
    width: 18px !important;
    height: 18px !important;
    margin: 4px 0 0 0 !important;
    flex-shrink: 0 !important;
    flex: 0 0 auto !important;
    background-color: transparent !important;
    border: none !important;
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
}

:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field-checkbox input[type='checkbox']::before,
:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field-checkbox input[type='checkbox']::after {
    content: none !important;
}

/* 3b. Labels and select arrow parity */
:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field-label,
:is(body.page-id-306 .wpcf7 form label, .implenity-modal .wpcf7 form label) {
    font-weight: 700 !important;
    color: #2A2242 !important;
    margin-bottom: 8px !important;
    display: block !important;
}

:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) .wpcf7-form-control-wrap {
    display: block !important;
    margin-top: 6px !important;
}

:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) p {
    margin: 0 !important;
}

:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) br {
    display: none !important;
}

:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) input[type="hidden"] {
    display: none !important;
}

:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-required-label,
:is(body.page-id-306 .wpcf7 .wpcf7-not-valid-tip, .implenity-modal .wpcf7 .wpcf7-not-valid-tip) {
    color: #FFA58A !important;
}

:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field-checkbox .wpforms-field-label {
    display: none !important;
}

:is(#wpforms-form-1648, #wpforms-form-3013) .wpforms-field-checkbox label,
:is(body.page-id-306 .wpcf7 .wpcf7-list-item-label, .implenity-modal .wpcf7 .wpcf7-list-item-label) {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size:var(--global-kb-font-size-sm) !important;
    display: block !important;
    flex: 1 1 auto !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    color: #2A2242 !important;
}

:is(body.page-id-306 .wpcf7 .wpcf7-list-item-label a, .implenity-modal .wpcf7 .wpcf7-list-item-label a) {
    color: inherit !important;
    text-decoration: underline !important;
    font-weight: inherit !important;
}

:is(#wpforms-form-1648, #wpforms-form-3013) select,
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) select {
    appearance: none !important;
    background-image: url('data:image/svg+xml,%3Csvg width=\'24\' height=\'24\' viewBox=\'0 0 24 24\' fill=\'none\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath d=\'M6 9L12 15L18 9\' stroke=\'%232A2242\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-linejoin=\'round\'/%3E%3C/svg%3E') !important;
    background-repeat: no-repeat !important;
    background-position: right 20px center !important;
}

/* 4. Submit button */
.wpforms-container.wpforms-render-modern .wpforms-form button[type=submit].wpforms-submit,
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) input[type=submit],
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) button[type=submit] {
    --wpforms-button-size-height: auto !important;
    --wpforms-button-size-padding-h: 60px !important;
    --wpforms-button-size-padding-v: 15px !important;
    display: inline-block !important;
    padding: 15px 60px !important;
    height: auto !important;
    min-height: 58px !important;
    min-width: 210px !important;
    border-radius: 50px !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    line-height: 1.4 !important;
    border: none !important;
    cursor: pointer !important;
    background-color: #FFA58A !important;
    color: #2A2242 !important;
    box-shadow: none !important;
    transition: none !important;
}

.wpforms-container.wpforms-render-modern .wpforms-form button[type=submit].wpforms-submit:hover,
.wpforms-container.wpforms-render-modern .wpforms-form button[type=submit].wpforms-submit:focus,
.wpforms-container.wpforms-render-modern .wpforms-form button[type=submit].wpforms-submit:active,
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) input[type=submit]:hover,
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) input[type=submit]:focus,
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) input[type=submit]:active,
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) button[type=submit]:hover,
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) button[type=submit]:focus,
:is(body.page-id-306 .wpcf7 form, .implenity-modal .wpcf7 form) button[type=submit]:active {
    background-color: #FFA58A !important;
    color: #2A2242 !important;
    box-shadow: none !important;
    transform: none !important;
}

/* --- PRICING TOGGLE - FIGMA EXACT SPECS --- */

body.page-id-303 .kt-tabs-wrap {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
    isolation: isolate !important;
}

body.page-id-303 .kt-tabs-title-list {
    background: #F0F1ED !important;
    border-radius: 72px !important;
    height: 55px !important;
    width: 296px !important;
    padding: 5px !important;
    display: inline-flex !important;
    align-items: center !important;
    border: none !important;
    list-style: none !important;
    margin: 0 auto !important;
    position: relative !important;
    overflow: visible !important;
}

/* Le curseur orange glissant */
body.page-id-303 .kt-tabs-title-list::before {
    content: "" !important;
    position: absolute !important;
    background: #FFA58A !important;
    border-radius: 72px !important;
    height: 55px !important;
    width: 153px !important;
    top: 50% !important;
    left: -5px !important;
    z-index: 0 !important;
    transform: translateX(var(--toggle-x, 0px)) translateY(-50%) !important;
    transition: transform .25s cubic-bezier(.4,0,.2,1) !important;
}

/* Les onglets (Texte) */
body.page-id-303 .kt-title-item {
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    position: relative !important;
    z-index: 2 !important;
}

body.page-id-303 .kt-tab-title {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size:var(--global-kb-font-size-lg) !important;
    font-weight: 600 !important;
    color: #2A2242 !important;
    width: 143px !important; 
    height: 45px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    text-decoration: none !important;
    border: none !important;
    box-shadow: none !important;
}

body.page-id-303 .kt-tab-title-active .kt-tab-title {
    color: #000000 !important;
}

/* Le badge violet '25% sparen' - Positionné DERRIERE le gris */
  body.page-id-303 .kt-tabs-title-list::after {
    content: "25% sparen" !important;
    background: #6945D7 !important;
    color: #FFFFFF !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size:var(--global-kb-font-size-md) !important;
    font-weight: 700 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 38px !important;
    padding: 0 20px 0 40px !important;
    /*line-height: 38px !important;*/
    border-radius: 0px 20px 20px 0px !important;
    position: absolute !important;
    left: 100% !important;
    top: 50% !important;
    transform: translate(-25px, -50%) !important;
    z-index: -1 !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}

/* Nettoyage des bordures Kadence par défaut */
body.page-id-303 .kt-tabs-title-list .kt-title-item,
body.page-id-303 .kt-tabs-title-list .kt-tab-title {
    border-bottom: 0 !important;
}

/* --- Mobile Adjustment for Pricing Toggle (Badge on Top) --- */
@media (max-width: 768px) {
    /* Create space for the badge above */
    body.page-id-303 .kt-tabs-title-list {
        margin-top: 40px !important;
    }

    /* Move badge to top center - STUCK to the grey pill */
  body.page-id-303 .kt-tabs-title-list::after {
        left: 50% !important;
        top: 0 !important; /* Start at top edge of track */
        transform: translate(-50%, -100%) !important; /* Move UP by its own height to touch */
        border-radius: 20px !important; /* Full rounded pill shape restored */
        padding: 0 16px 0 22px !important;
        height: 32px !important;
        /*line-height: 32px !important;*/
        font-size:var(--global-kb-font-size-sm) !important;
    }
}

/* --- Force Navigation Burger below desktop width --- */
@media (max-width: 1499px) {
    /* Cache le menu standard (texte) 
       On cible le conteneur principal qui n'est PAS le conteneur responsive ouvert */
    .wp-block-navigation__container:not(.wp-block-navigation__responsive-container-content) {
        display: none !important;
    }

    /* Affiche le bouton burger */
    .wp-block-navigation__responsive-container-open {
        display: flex !important;
    }

    /* Cache le menu ouvert par défaut */
    .wp-block-navigation__responsive-container {
        display: none; 
    }
    
    /* Affiche le panneau quand il est ouvert */
    .wp-block-navigation__responsive-container.is-menu-open {
        display: block !important;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 100000;
        background: var(--wp--preset--color--brand-dark, #2A2242);
    }
    
    /* Affiche le contenu du menu DANS le panneau (important sinon vide) */
    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
        display: flex !important;
        flex-direction: column;
        align-items: center;
        padding-top: 100px;
    }

    .wp-block-navigation__responsive-container.is-menu-open .implenity-responsive-cta {
        margin-top: 32px;
    }

    .wp-block-navigation__responsive-container.is-menu-open .implenity-responsive-cta.wp-block-kadence-advancedbtn {
        display: flex;
        justify-content: center;
    }

    .wp-block-navigation__responsive-container.is-menu-open .implenity-responsive-cta .wp-block-button__link {
        min-width: 210px;
        text-align: center;
    }

    .wp-block-navigation__responsive-container.is-menu-open .implenity-responsive-cta .kt-button {
        min-width: 210px;
        justify-content: center;
    }
}

/* --- Header: switch to mobile/tablet layout below desktop width --- */
@media (max-width: 1499px) {
  /* Cache la colonne du bouton */
  .wp-block-kadence-column.tablet-hidden-col,
  .tablet-hidden-col {
    display: none !important;
    width: 0 !important;
    flex: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Force la ligne à se comporter en flex normal (pas de grille 3 colonnes) */
  .wp-block-kadence-rowlayout.header-row-responsive > .kt-row-column-wrap {
    display: flex !important;
    justify-content: space-between !important;
    grid-template-columns: none !important; /* Casse la grille CSS */
    width: 100% !important;
  }

  /* Force les colonnes restantes à prendre leur place naturelle */
  .wp-block-kadence-rowlayout.header-row-responsive > .kt-row-column-wrap > .wp-block-kadence-column {
    width: auto !important;
    flex: 0 1 auto !important;
    max-width: none !important;
  }

  .implenity-mobile-header-actions > .kt-inside-inner-col {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 16px;
  }

  .implenity-mobile-header-cta {
    margin: 0 !important;
  }

  .implenity-mobile-header-cta .kt-button,
  .implenity-mobile-header-cta .wp-block-button__link {
    /*min-height: 44px;*/
    padding: 10px 22px !important;
    white-space: nowrap;
  }
}

@media (min-width: 600px) and (max-width: 1499px) {
  header .wp-block-kadence-rowlayout:has(.wp-block-kadence-advancedbtn):has(.wp-block-navigation) > .kt-row-column-wrap {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px;
  }

  header .wp-block-kadence-rowlayout:has(.wp-block-kadence-advancedbtn):has(.wp-block-navigation) > .kt-row-column-wrap > .wp-block-kadence-column:nth-child(1) {
    flex: 1 1 auto !important;
  }

  header .wp-block-kadence-rowlayout:last-of-type > .kt-row-column-wrap > .wp-block-kadence-column:last-child {
    width: auto !important;
    flex: 0 0 auto !important;
  }

  header .wp-block-kadence-rowlayout:last-of-type > .kt-row-column-wrap > .wp-block-kadence-column:last-child > .kt-inside-inner-col {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 40px;
    flex-direction: row;
  }

  header .wp-block-kadence-rowlayout:has(.wp-block-kadence-advancedbtn):has(.wp-block-navigation) .wp-block-kadence-advancedbtn,
  header .wp-block-kadence-rowlayout:has(.wp-block-kadence-advancedbtn):has(.wp-block-navigation) .wp-block-buttons {
    margin: 0 !important;
  }

  header .implenity-tablet-header-cta {
    display: inline-flex;
    align-items: center;
    margin-right: 12px;
  }

  .implenity-responsive-cta .kb-button {
    white-space: nowrap;
  }

  header .implenity-tablet-header-cta .kt-button,
  header .implenity-tablet-header-cta .wp-block-button__link {
    /*min-height: 44px;*/
    padding: 10px 22px !important;
    white-space: nowrap;
  }
}

/* --- CUSTOM VIDEO STYLES --- */
.video-rounded video,
video.video-rounded {
    border-radius: 20px !important;
    overflow: hidden !important;
}

/* --- Equal Height Columns --- */
/* Apply to the column that has class "equal-height-cols" */
.equal-height-cols > .kt-inside-inner-col {
    display: flex !important;
    flex-wrap: wrap !important; /* Allow wrapping even if Kadence sets nowrap */
    align-items: stretch !important; /* Override Kadence align-items:center */
    gap: 30px;
}

.equal-height-cols > .kt-inside-inner-col > .wp-block-kadence-column {
    display: flex !important;
    height: auto;
}

.equal-height-cols > .kt-inside-inner-col > .wp-block-kadence-column > .kt-inside-inner-col {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    align-self: stretch;
}

/* Also support cases where the class is on a Kadence row layout wrapper */
.equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap {
    align-items: stretch !important;
    align-content: stretch !important;
    grid-auto-rows: 1fr;
}

.equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap > .wp-block-kadence-column {
    display: flex !important;
    align-self: stretch !important;
    height: 100% !important;
}

.equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    align-self: stretch;
}

/* Desktop: keep equal heights when columns are side-by-side */
@media (min-width: 1025px) {
    .equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap > .wp-block-kadence-column {
        height: 100% !important;
        align-self: stretch !important;
    }

    .equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col {
        height: 100% !important;
        align-self: stretch !important;
    }

    /* If the class is on a column, stretch the whole row on desktop */
    .kb-row-layout-wrap:has(> .kt-row-column-wrap > .wp-block-kadence-column.equal-height-cols)
    > .kt-row-column-wrap {
        align-items: stretch !important;
    }

    .kb-row-layout-wrap:has(> .kt-row-column-wrap > .wp-block-kadence-column.equal-height-cols)
    > .kt-row-column-wrap > .wp-block-kadence-column {
        display: flex !important;
        height: 100% !important;
        align-self: stretch !important;
    }

    .kb-row-layout-wrap:has(> .kt-row-column-wrap > .wp-block-kadence-column.equal-height-cols)
    > .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col {
        display: flex !important;
        flex-direction: column !important;
        height: 100% !important;
        align-self: stretch !important;
    }
}

.equal-height-row .kt-row-column-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

.equal-height-row .wp-block-kadence-column {
    display: flex;
    height: 100%;
}

.equal-height-row .wp-block-kadence-column > .kt-inside-inner-col {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Stacked layouts: allow full width and natural height (tablet/mobile only) */
@media (max-width: 1024px) {
    .equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap.kt-tab-layout-row > .wp-block-kadence-column,
    .equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap.kt-has-1-columns > .wp-block-kadence-column {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
        height: auto !important;
        align-self: auto !important;
    }

    .equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap.kt-tab-layout-row > .wp-block-kadence-column > .kt-inside-inner-col,
    .equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap.kt-has-1-columns > .wp-block-kadence-column > .kt-inside-inner-col {
        height: auto !important;
        align-self: auto !important;
    }

    .equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap.kt-tab-layout-row,
    .equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap.kt-has-1-columns {
        align-items: flex-start !important;
        align-content: flex-start !important;
        grid-auto-rows: auto !important;
    }
}

@media (max-width: 782px) {
    .equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap.kt-mobile-layout-row > .wp-block-kadence-column {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
        height: auto !important;
        align-self: auto !important;
    }

    .equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap.kt-mobile-layout-row > .wp-block-kadence-column > .kt-inside-inner-col {
        height: auto !important;
        align-self: auto !important;
    }

    .equal-height-cols.kb-row-layout-wrap > .kt-row-column-wrap.kt-mobile-layout-row {
        align-items: flex-start !important;
        align-content: flex-start !important;
        grid-auto-rows: auto !important;
    }
}

/* --- Navigation submenu: drop lower + rounded corners (desktop only) --- */
@media (min-width: 1500px) {
    .wp-block-navigation .has-child .wp-block-navigation__submenu-container {
        top: calc(100% + 50px);
        border: 0;
        border-radius: 20px;
        box-shadow: 0 6px 28px rgba(0, 0, 0, 0.08);
        padding: 20px;
        min-width: 540px;
        gap: 0.4em;
        transform: translateY(-10px);
        transition: transform 0.65s cubic-bezier(0.2, 0.8, 0.25, 1),
            opacity 0.65s cubic-bezier(0.2, 0.8, 0.25, 1);
    }
    .wp-block-navigation .has-child .wp-block-navigation__submenu-container::before {
        content: "";
        position: absolute;
        top: -50px;
        left: 0;
        right: 0;
        height: 50px;
        background: transparent;
    }

    .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container,
    .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container,
    .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container {
        transform: translateY(0);
    }

    .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
        white-space: nowrap;
    }

    .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
        padding-top: 0.6em !important;
        padding-bottom: 0.6em !important;
    }
}

@media (max-width: 1499px) {
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item__content {
        padding-top: 0.6em !important;
        padding-bottom: 0.6em !important;
    }

    /* Ensure burger submenu behaves like mobile panel (not desktop dropdown) */
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content
    .wp-block-navigation__submenu-container {
        position: static !important;
        top: auto !important;
        left: auto !important;
        transform: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        padding: 0 !important;
        min-width: 0 !important;
        background: transparent !important;
    }

    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content
    .wp-block-navigation__submenu-container::before {
        display: none !important;
        content: none !important;
    }
}

/* --- Kadence Video Popup: stable overrides (no auto-generated IDs) --- */
.wp-block-kadence-videopopup .kadence-video-overlay,
.wp-block-kadence-videopopup .kt-video-svg-icon {
    display: none !important;
}

/* Ensure the intrinsic wrapper defines the positioning context */
.wp-block-kadence-videopopup .kadence-video-intrinsic {
    position: relative;
    overflow: hidden;
}

/* Subtle hover zoom on the video poster image */
.wp-block-kadence-videopopup .kadence-video-poster {
    transition: transform 200ms ease;
    transform: scale(1);
    width: 100% !important;
    height: 100% !important;
    left: 0;
    top: 0;
    transform-origin: center center;
    display: block;
    object-fit: cover;
}

.wp-block-kadence-videopopup:hover .kadence-video-poster {
    transform: scale(1.03);
}

/* Make the video popup use full available width */
.wp-block-kadence-videopopup,
.wp-block-kadence-videopopup .kadence-video-popup-wrap,
.wp-block-kadence-videopopup .kadence-video-intrinsic {
    width: 100% !important;
    max-width: none !important;
}

/* If the parent Kadence column is a flex container, force full width */
.wp-block-kadence-column > .kt-inside-inner-col > .wp-block-kadence-videopopup {
    display: block;
    flex: 1 1 100%;
    min-width: 100%;
    align-self: stretch;
}

/* --- Helper: prevent negative margins from creating a horizontal scrollbar --- */
.no-horizontal-overflow {
    overflow-x: hidden !important;
}

@media (max-width: 1024px) {
  .no-horizontal-overflow-mobile {
    overflow-x: hidden !important;
  }
}

/* --- Sticky Split (demo-style sticky siblings) --- */
/* Support both the planned class names and your existing sticky-* classes. */
.sticky-split,
.product-sticky-stage,
.sticky-split .kb-row-layout-wrap,
.product-sticky-stage .kb-row-layout-wrap,
.sticky-split .kt-row-column-wrap,
.product-sticky-stage .kt-row-column-wrap,
.sticky-split .kt-inside-inner-col,
.product-sticky-stage .kt-inside-inner-col {
  overflow: visible !important;
  transform: none !important;
}

.sticky-split .kt-row-column-wrap {
  align-items: stretch;
}

.sticky-split .sticky-left,
.product-sticky-stage .sticky-media-col {
  position: relative;
}

.product-sticky-stage .sticky-stage-row,
.product-sticky-stage .sticky-stage-row > .kt-row-column-wrap,
.product-sticky-stage .sticky-media-col > .kt-inside-inner-col {
  margin-top: 0 !important;
}

.sticky-split .sticky-left .sticky-item {
  position: -webkit-sticky;
  position: sticky;
  top: clamp(110px, 12vh, 180px); /* header offset */
  min-height: clamp(320px, 50vh, 560px);
  height: auto;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  z-index: 1;
}

.sticky-split .sticky-left .sticky-item img {
  max-width: 100%;
  height: auto;
  display: block;
  margin-top: 0 !important;
}

.sticky-split .sticky-right .sticky-text,
.product-sticky-stage .sticky-panels-col .sticky-panel {
  min-height: clamp(320px, 50vh, 560px);
  display: flex;
  align-items: flex-start;
  padding-top: 0;
}

.product-sticky-stage .sticky-panels-col .sticky-panel > .kt-inside-inner-col {
  margin: 0 !important;
  padding: 0 !important;
}

.product-sticky-stage .sticky-panels-col .sticky-panel h2,
.product-sticky-stage .sticky-panels-col .sticky-panel p {
  margin-block: 0 16px;
}

/* Ensure the Kadence 2-col row stretches when using existing classes. */
.product-sticky-stage .sticky-stage-row > .kt-row-column-wrap {
  align-items: stretch;
}

@media (max-width: 1024px) {
  .sticky-split .sticky-left .sticky-item {
    position: relative;
    top: auto;
    height: auto;
  }

  .sticky-split .sticky-right .sticky-text,
  .product-sticky-stage .sticky-panels-col .sticky-panel {
    min-height: auto;
    display: block;
  }
}

@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.fade-in-up,
.fade-in-up100,
.fade-in-up200,
.fade-in-up300 {
  opacity: 0;
  transform: translateY(16px);
}

.fade-in-up.is-in-view {
  animation: fade-in-up 400ms ease-out both;
}

.fade-in-up100.is-in-view {
  animation: fade-in-up 400ms ease-out both;
  animation-delay: 100ms;
}

.fade-in-up200.is-in-view {
  animation: fade-in-up 400ms ease-out both;
  animation-delay: 200ms;
}

.fade-in-up300.is-in-view {
  animation: fade-in-up 400ms ease-out both;
  animation-delay: 300ms;
}

/* Section slider: show 3 on desktop, 1.5 on tablet, 1 + peek on mobile. */
.section-slider .kt-row-column-wrap {
  display: flex;
  gap: 24px;
  overflow: visible;
  flex-wrap: nowrap;
}

@media (max-width: 1024px) {
  .section-slider .kt-row-column-wrap {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;
  }

  .section-slider .kt-row-column-wrap > .wp-block-kadence-column {
    flex: 0 0 66.666%;
    max-width: 66.666%;
    width: 66.666%;
    scroll-snap-align: start;
  }
}

@media (max-width: 640px) {
  .section-slider .kt-row-column-wrap > .wp-block-kadence-column {
    flex: 0 0 85%;
    max-width: 85%;
    width: 85%;
  }
}

.section-slider .kt-row-column-wrap::-webkit-scrollbar {
  height: 0;
}

.section-slider .kt-row-column-wrap {
  scrollbar-width: none;
}

.section-slider .wp-block-kadence-image {
  width: 100%;
  margin: 0;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

.section-slider .wp-block-kadence-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.01);
  transform-origin: center;
}

/* Vertical alignment for 'grey box' groups in specific sections - DIRECT CHILDREN ONLY */
.section-with-tag-row-elements > .kt-inside-inner-col > .wp-block-group {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 8px !important; /* Consistent spacing */
    min-height: 32px !important;
}

/* Reset margins on direct children to ensure perfect centering */
.section-with-tag-row-elements > .kt-inside-inner-col > .wp-block-group > figure,
.section-with-tag-row-elements > .kt-inside-inner-col > .wp-block-group > p,
.section-with-tag-row-elements > .kt-inside-inner-col > .wp-block-group > .wp-block-image {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important; /* Helps with precise vertical alignment */
}

.section-with-tag-row-elements > .kt-inside-inner-col > .wp-block-group > figure > img,
.section-with-tag-row-elements > .kt-inside-inner-col > .wp-block-group > .wp-block-image > img {
    margin: 0 !important;
    display: block !important;
}

.mandatenbrief-side-video {
    border-radius: 50px !important; /* 50 - 30 border = 20px inner rounding */
    border: 30px solid #6945D7 !important;
    overflow: hidden !important;
    margin-right: -400px !important;
    display: block !important;
    box-shadow: 0 0 60px rgba(0, 0, 0, 0.25); /* All-around prominent drop shadow */
}

.mandatenbrief-side-video video {
    border-radius: 20px;
    overflow: hidden !important;
}

/* Specific handler: Allow the section to show everything */
.mandatenbrief-overflow-handler {
    overflow: visible !important;
    position: relative;
    z-index: 10; /* Ensure it sits above other elements if needed */
}

/* Force ALL nested Kadence structures in this row to show overflow */
.mandatenbrief-side-video-row,
.mandatenbrief-side-video-row * {
    overflow: visible !important;
}

/* ... except the video itself which should keep its rounded corners */
.mandatenbrief-side-video-row .mandatenbrief-side-video {
    overflow: hidden !important;
}

/* Prevent horizontal scrollbar from the negative right margin "peek" video. */
/* Clip at the PAGE level so the video can still overflow its section container. */
html:has(body.page-id-292),
body.page-id-292 {
    overflow-x: clip !important;
}

@supports not (overflow: clip) {
  html:has(body.page-id-292),
  body.page-id-292 {
      overflow-x: hidden !important;
  }
}

/* Ensure the video section itself does not clip the "peek". */
body.page-id-292 .kb-row-layout-id292_fdbfef-c5,
body.page-id-292 .kb-row-layout-id292_fdbfef-c5 > .kt-row-column-wrap,
body.page-id-292 .mandatenbrief-overflow-handler {
    overflow-x: visible !important;
}

/* Contact page sticky header hard-fix (rollback-safe). */
body.page-id-306 header.wp-block-template-part {
    position: fixed !important;
    top: var(--implenity-header-offset) !important;
    z-index: 9999 !important;
}

body.page-id-306 header.wp-block-template-part.header-hidden {
    top: calc((var(--implenity-header-height) + var(--implenity-header-offset)) * -1) !important;
}

@media (max-width: 1024px) {
    .mandatenbrief-side-video {
        margin-right: -800px !important;
    }
}

@media (max-width: 640px) {
    .mandatenbrief-side-video {
        margin-right: -300px !important;
        border: 10px solid #6945D7 !important;
        border-radius: 30px !important; /* 30 - 10 border = 20px inner rounding */
    }
}

/* BEGIN fix-preise-pro-badge-overflow-2026-02-18
   Scoped to Preise page (ID 303), easy rollback by removing this block. */
body.page-id-303 .no-horizontal-overflow,
body.page-id-303 .no-horizontal-overflow > .kt-inside-inner-col {
    overflow-x: visible !important;
}

body.page-id-303 .specific-section-pro-preise .kadence-columnuWiJcGriGAsUDwPduxiuo,
body.page-id-303 .specific-section-pro-preise .kadence-columnuWiJcGriGAsUDwPduxiuo > .kt-inside-inner-col,
body.page-id-303 .specific-section-pro-preise .kadence-columnma48u9DImXXYef088yd5M,
body.page-id-303 .specific-section-pro-preise .kadence-columnma48u9DImXXYef088yd5M > .kt-inside-inner-col,
body.page-id-303 .specific-section-pro-preise .kt-inside-inner-col:has(> [data-kb-block="kb-adv-headingevonyLYRPv5dsKNh6LFlY"] + .wp-block-group.has-background) {
    overflow: visible !important;
}

/* Left column labels in Preise table: center first column cell in every Kadence row. */
body.page-id-303 .preise-feature-table .kb-row-layout-wrap > .kt-row-column-wrap {
    align-items: stretch !important;
}

body.page-id-303 .preise-feature-table .kb-row-layout-wrap > .kt-row-column-wrap > .wp-block-kadence-column:first-child {
    align-self: stretch !important;
    display: flex !important;
}

body.page-id-303 .preise-feature-table .kb-row-layout-wrap > .kt-row-column-wrap > .wp-block-kadence-column:first-child > .kt-inside-inner-col {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    width: 100% !important;
    height: 100% !important;
}

body.page-id-303 .preise-feature-table .kb-row-layout-wrap > .kt-row-column-wrap > .wp-block-kadence-column:first-child .wp-block-kadence-image,
body.page-id-303 .preise-feature-table .kb-row-layout-wrap > .kt-row-column-wrap > .wp-block-kadence-column:first-child .wp-block-kadence-advancedheading {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

body.page-id-303 .preise-feature-table .kb-row-layout-wrap > .kt-row-column-wrap > .wp-block-kadence-column:first-child .wp-block-kadence-image {
    display: flex !important;
    align-items: center !important;
    line-height: 0 !important;
}

/* Einzelprodukte cards: normalize title-row alignment (with or without PRO badge). */
body.page-id-303 .cardsandreiequalheight .kb-section-dir-horizontal > .kt-inside-inner-col:has(> .wp-block-kadence-advancedheading):not(:has(> h2.wp-block-kadence-advancedheading)):not(:has(> .wp-block-group.has-background)) {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    min-height: 36px !important;
}

body.page-id-303 .cardsandreiequalheight .kb-section-dir-horizontal > .kt-inside-inner-col:has(> .wp-block-kadence-advancedheading):not(:has(> h2.wp-block-kadence-advancedheading)):not(:has(> .wp-block-group.has-background)) > .wp-block-group.has-background {
    margin-left: 0 !important;
}

/* Preise PRO title-row: stable selector (no Kadence unique classes). */
body.page-id-303 .cardsandreiequalheight .kb-section-dir-horizontal > .kt-inside-inner-col:has(> .wp-block-kadence-advancedheading + .wp-block-group.has-background) {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    padding-right: 82px !important;
    min-height: 36px !important;
}

body.page-id-303 .cardsandreiequalheight .kb-section-dir-horizontal > .kt-inside-inner-col:has(> .wp-block-kadence-advancedheading + .wp-block-group.has-background) > .wp-block-kadence-advancedheading {
    margin: 0 !important;
    display: block !important;
    transform: translateY(-2px) !important;
}

body.page-id-303 .cardsandreiequalheight .kb-section-dir-horizontal > .kt-inside-inner-col:has(> .wp-block-kadence-advancedheading + .wp-block-group.has-background) > .wp-block-group.has-background {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
}

body.page-id-303 .specific-section-pro-preise .kadence-columnma48u9DImXXYef088yd5M > .kt-inside-inner-col {
    position: relative !important;
    display: block !important;
    justify-content: initial !important;
    align-items: initial !important;
    padding-right: 108px !important; /* dedicated lane for PRO badge */
    box-sizing: border-box !important;
}

body.page-id-303 .specific-section-pro-preise .kadence-columnma48u9DImXXYef088yd5M .kt-adv-headingevonyLYRPv5dsKNh6LFlY,
body.page-id-303 .specific-section-pro-preise [data-kb-block="kb-adv-headingevonyLYRPv5dsKNh6LFlY"] {
    display: block !important;
    min-width: 0 !important;
    max-width: none !important;
    padding-right: 0 !important;
    margin: 0 !important;
}

body.page-id-303 .specific-section-pro-preise .kadence-columnma48u9DImXXYef088yd5M > .kt-inside-inner-col > .wp-block-group.has-background {
    position: absolute !important;
    right: 60px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 3 !important;
}

body.page-id-303 .specific-section-pro-preise .kt-inside-inner-col:has(> [data-kb-block="kb-adv-headingevonyLYRPv5dsKNh6LFlY"] + .wp-block-group.has-background) {
    position: relative !important;
    display: block !important;
    justify-content: initial !important;
    align-items: initial !important;
    padding-right: 108px !important;
    box-sizing: border-box !important;
}

body.page-id-303 .specific-section-pro-preise .kt-inside-inner-col:has(> [data-kb-block="kb-adv-headingevonyLYRPv5dsKNh6LFlY"] + .wp-block-group.has-background) > .wp-block-group.has-background {
    position: absolute !important;
    right: 60px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 3 !important;
}

@media (max-width: 1024px) and (min-width: 768px) {
    body.page-id-303 .specific-section-pro-preise .kadence-columnma48u9DImXXYef088yd5M > .kt-inside-inner-col > .wp-block-group.has-background,
    body.page-id-303 .specific-section-pro-preise .kt-inside-inner-col:has(> [data-kb-block="kb-adv-headingevonyLYRPv5dsKNh6LFlY"] + .wp-block-group.has-background) > .wp-block-group.has-background {
        right: 54px !important;
    }
}

@media (max-width: 767px) {
    body.page-id-303 .specific-section-pro-preise .kadence-columnma48u9DImXXYef088yd5M > .kt-inside-inner-col,
    body.page-id-303 .specific-section-pro-preise .kt-inside-inner-col:has(> [data-kb-block="kb-adv-headingevonyLYRPv5dsKNh6LFlY"] + .wp-block-group.has-background) {
        padding-right: 96px !important;
    }

    body.page-id-303 .specific-section-pro-preise .kadence-columnma48u9DImXXYef088yd5M > .kt-inside-inner-col > .wp-block-group.has-background,
    body.page-id-303 .specific-section-pro-preise .kt-inside-inner-col:has(> [data-kb-block="kb-adv-headingevonyLYRPv5dsKNh6LFlY"] + .wp-block-group.has-background) > .wp-block-group.has-background {
        right: 48px !important;
    }
}
/* END fix-preise-pro-badge-overflow-2026-02-18 */

.icon-or-text-circle-section {
    display: block !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 84px !important;
    min-height: 84px !important;
    min-block-size: 84px !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    body .icon-or-text-circle-section,
    body .icon-or-text-circle-section > * {
        min-height: 84px !important;
        height: 84px !important;
        min-block-size: 84px !important;
        block-size: 84px !important;
    }
}

@media (max-width: 767px) {
    body .icon-or-text-circle-section,
    body .icon-or-text-circle-section > * {
        min-width: 84px !important;
        min-height: 84px !important;
        width: 84px !important;
        inline-size: 84px !important;
        height: 84px !important;
        min-block-size: 84px !important;
        max-width: 84px !important;
        max-height: 84px !important;
        min-inline-size: 84px !important;
        max-inline-size: 84px !important;
        flex: 0 0 84px !important;
        flex-basis: 84px !important;
        align-self: flex-start !important;
        box-sizing: border-box !important;
    }
}

/* BEGIN fix-product-pricing-equal-height-local-2026-03-09
   Rollback: remove this whole block if it causes regressions. */
body.page-id-292 .pricing-row > .kt-row-column-wrap,
body.page-id-293 .pricing-row > .kt-row-column-wrap,
body.page-id-294 .pricing-row > .kt-row-column-wrap,
body.page-id-295 .pricing-row > .kt-row-column-wrap {
    align-items: stretch !important;
}

body.page-id-292 .pricing-row > .kt-row-column-wrap > .wp-block-kadence-column,
body.page-id-293 .pricing-row > .kt-row-column-wrap > .wp-block-kadence-column,
body.page-id-294 .pricing-row > .kt-row-column-wrap > .wp-block-kadence-column,
body.page-id-295 .pricing-row > .kt-row-column-wrap > .wp-block-kadence-column {
    height: 100% !important;
    display: flex !important;
}

body.page-id-292 .pricing-row .price-card,
body.page-id-293 .pricing-row .price-card,
body.page-id-294 .pricing-row .price-card,
body.page-id-295 .pricing-row .price-card {
    height: 100% !important;
}

body.page-id-292 .pricing-row .price-card > .kt-inside-inner-col,
body.page-id-293 .pricing-row .price-card > .kt-inside-inner-col,
body.page-id-294 .pricing-row .price-card > .kt-inside-inner-col,
body.page-id-295 .pricing-row .price-card > .kt-inside-inner-col {
    height: 100% !important;
}
/* END fix-product-pricing-equal-height-local-2026-03-09 */

/* Desktop-only: adjust padding only (no margin changes). */
@media (min-width: 1025px) {
    .content-section-above-sticky-scroll > div,
    .content-section-above-sticky-scroll-video > div {
        padding-left: clamp(60px, calc((100vw - 1390px) / 2), 180px) !important;
    }
}

/* START: 3 Equal Heights for Sticky Panels 2026-03-15 */
@media (min-width: 1025px) {
    .sticky-panels-col > .kt-inside-inner-col {
        display: flex !important;
        flex-direction: column !important;
        height: 100% !important;
    }

    .sticky-panels-col > .kt-inside-inner-col > .sticky-panel {
        flex: 1 1 33.33% !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
    }
}
/* END: Equal Heights */

/* Restored from Custom CSS/JS after verifying selectors in theme/db content. */

.cta-bg {
    position: relative !important;
    overflow: visible !important;
    background: linear-gradient(
            180deg,
            #4E3A8E 0%,
            #3F2C7A 35%,
            #30215F 70%,
            #2A2742 100%
    ) !important;
}

/* vignette large, sans tache centrale */
.cta-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;

    background: radial-gradient(
            circle at 50% -40%,           /* centre très haut, hors-champ */
            rgba(0,0,0,0.05) 0%,          /* léger, pas visible ponctuellement */
            rgba(0,0,0,0.12) 40%,         /* transition douce */
            rgba(0,0,0,0.28) 75%,         /* assombrit proprement */
            rgba(0,0,0,0.38) 100%         /* bas sombre comme Figma */
    );

    mix-blend-mode: multiply;
    opacity: 1;
}

/* grain inchangé */
.cta-bg::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;

    background:
            url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'>\
<filter id='n'>\
<feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='5'/>\
<feColorMatrix type='saturate' values='0'/>\
</filter>\
<rect width='100%' height='100%' filter='url(%23n)'/>\
</svg>") repeat;

    mix-blend-mode: overlay;
    opacity: 1;
}

/* contenu */
.cta-bg > .kt-inside-inner-col {
    position: relative;
    z-index: 3;
}
.kb-fixed-icon {
    flex-shrink: 0 !important;
    min-width: 60px !important;
    width: 60px !important;
}

.faqspecialmaxwidth {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

.faqspecialmaxwidth .alignfull,
.faqspecialmaxwidth .kt-row-column-wrap {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: 0 !important;
}

.faqspecialmaxwidth .alignfull > .kt-inside-inner-col {
    padding-left: 20px !important;
    padding-right: 20px !important;
}

.kt-tabs-wrap .wp-block-kadence-tab {
    padding: 0;
}

.text-gradient {
    background: linear-gradient(
            135deg,
            #9D81F5 0%,
            #C68FEF 45%,
            #FFA58A 100%
    );
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

/* Figma-style dotted underline that matches text width */
.figma-dotline {
    display: inline-block;
    padding-bottom: 6px;
    background-image: radial-gradient(
            circle,
            currentColor 1.4px,
            transparent 1.6px
    );
    background-size: 6px 4px;
    background-repeat: repeat-x;
    background-position: 0 100%;
}

.menu-item-disabled {
    pointer-events: none;
}

.main-menu-category-title {
    color: var(--wp--preset--color--brand-purple);
}
.circle {
    width: 5rem;
    height: 5rem;
}

@media (max-width: 767px) {
    body {
        overflow-x: hidden;
        overflow-wrap: anywhere;
        hyphens: auto;
    }
}