/* Global content-element spacing.
   Normal: 200px desktop / 150px tablet / 75px mobile.
   The rule only targets direct article children so content inside compound
   elements does not receive the outer page gap. */
body.b2sme-theme main .mod_article > * {
    margin-bottom: 200px !important;
}

body.b2sme-theme main .mod_article > .b2sme-spacing--half {
    margin-bottom: 100px !important;
}

body.b2sme-theme main .mod_article > .b2sme-spacing--none {
    margin-bottom: 0 !important;
}

@media (max-width: 64rem) {
    body.b2sme-theme main .mod_article > * { margin-bottom: 150px !important; }
    body.b2sme-theme main .mod_article > .b2sme-spacing--half { margin-bottom: 75px !important; }
    body.b2sme-theme main .mod_article > .b2sme-spacing--none { margin-bottom: 0 !important; }
}

@media (max-width: 48rem) {
    body.b2sme-theme main .mod_article > * { margin-bottom: 75px !important; }
    body.b2sme-theme main .mod_article > .b2sme-spacing--half { margin-bottom: 37.5px !important; }
    body.b2sme-theme main .mod_article > .b2sme-spacing--none { margin-bottom: 0 !important; }
}

body.b2sme-theme h1,
body.b2sme-theme h2,
body.b2sme-theme h3,
body.b2sme-theme h4,
body.b2sme-theme h5,
body.b2sme-theme h6,
body.b2sme-theme p,
body.b2sme-theme li { max-width: 80%; }

body.b2sme-theme .handorgel__header,
body.b2sme-theme .ce_accordion .toggler {
    margin-top: 0;
    margin-bottom: 0;
    max-width: 100%;
    position: relative;
    padding-right: 3rem;
}

body.b2sme-theme .handorgel__header::after,
body.b2sme-theme .ce_accordion .toggler::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 1rem;
    width: .7rem;
    height: .7rem;
    border-right: .14rem solid currentColor;
    border-bottom: .14rem solid currentColor;
    pointer-events: none;
    transform: translateY(-65%) rotate(45deg);
    transform-origin: center;
    transition: transform .24s ease;
}

body.b2sme-theme .handorgel__header--open::after,
body.b2sme-theme .handorgel__header:has([aria-expanded="true"])::after,
body.b2sme-theme .handorgel__header[aria-expanded="true"]::after,
body.b2sme-theme .ce_accordion .toggler.active::after,
body.b2sme-theme .ce_accordion .toggler.ui-state-active::after,
body.b2sme-theme .ce_accordion .toggler[aria-expanded="true"]::after {
    transform: translateY(-35%) rotate(225deg);
}

/* FAQ uses the same chevron language instead of +/- glyphs. */
body.b2sme-theme .b2sme-faq__item summary::after {
    content: "" !important;
    width: .7rem;
    height: .7rem;
    border-right: .14rem solid currentColor;
    border-bottom: .14rem solid currentColor;
    transform: translateY(-65%) rotate(45deg);
    transform-origin: center;
    transition: transform .24s ease;
}
body.b2sme-theme .b2sme-faq__item[open] summary::after {
    content: "" !important;
    transform: translateY(-35%) rotate(225deg);
}

body.b2sme-theme .b2sme-teaser--image-left :is(h1, h2, h3, h4, h5, h6, p, li, span),
body.b2sme-theme .b2sme-teaser--image-right :is(h1, h2, h3, h4, h5, h6, p, li, span),
body.b2sme-theme .b2sme-teaser--text-text .b2sme-teaser__text-columns :is(h1, h2, h3, h4, h5, h6, p, li, span) { max-width: 100%; }

body.b2sme-theme .b2sme-hero--cover { padding-block: 0; }

body.b2sme-theme .b2sme-teaser--image-left,
body.b2sme-theme .b2sme-teaser--image-right,
body.b2sme-theme .b2sme-teaser--text-text .b2sme-teaser__text-columns,
body.b2sme-theme .b2sme-teaser--full-width .b2sme-teaser__inner { gap: clamp(1rem, 2vw, 2rem); }

body.b2sme-theme .b2sme-teaser--image-left,
body.b2sme-theme .b2sme-teaser--image-right,
body.b2sme-theme .b2sme-teaser--full-width .b2sme-teaser__inner { align-items: start; }

body.b2sme-theme .b2sme-teaser__text--secondary { margin-top: clamp(1.25rem, 2.5vw, 2rem); }

body.b2sme-theme a.b2sme-button,
body.b2sme-theme a.b2sme-button:hover,
body.b2sme-theme a.b2sme-button:focus-visible { color: #fff; }
body.b2sme-theme .b2sme-teaser .b2sme-button { margin-top: 1.5rem; }

/* Normalize editorial image formats. Reset min-size constraints so intrinsic image
   dimensions cannot stretch grid items beyond the intended aspect ratio. */
body.b2sme-theme :is(.b2sme-hero__media, .b2sme-teaser__media, .b2sme-team-card__media, .b2sme-statement__media, .b2sme-product-card__media) {
    min-width: 0;
    min-height: 0;
}
body.b2sme-theme :is(.b2sme-hero__media, .b2sme-teaser__media, .b2sme-team-card__media, .b2sme-statement__media, .b2sme-product-card__media) :is(figure, picture) {
    display: block;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
}

body.b2sme-theme .b2sme-hero--split .b2sme-hero__media,
body.b2sme-theme .b2sme-hero--centered .b2sme-hero__media,
body.b2sme-theme .b2sme-teaser--image-left .b2sme-teaser__media,
body.b2sme-theme .b2sme-teaser--image-right .b2sme-teaser__media,
body.b2sme-theme .b2sme-teaser--full-width .b2sme-teaser__media {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--b2sme-radius);
}

body.b2sme-theme .b2sme-teaser--card .b2sme-teaser__media {
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

body.b2sme-theme .b2sme-team-card__media { aspect-ratio: 4 / 5; overflow: hidden; }
body.b2sme-theme .b2sme-statement__media { aspect-ratio: 1 / 1; overflow: hidden; border-radius: var(--b2sme-radius); }
body.b2sme-theme .b2sme-product-card__media { aspect-ratio: 4 / 3; overflow: hidden; }

body.b2sme-theme :is(
    .b2sme-hero--split .b2sme-hero__media,
    .b2sme-hero--centered .b2sme-hero__media,
    .b2sme-teaser__media,
    .b2sme-team-card__media,
    .b2sme-statement__media,
    .b2sme-product-card__media
) img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    object-fit: cover;
    object-position: center center;
}

body.b2sme-theme .b2sme-hero--cover .b2sme-hero__media { aspect-ratio: auto; overflow: visible; border-radius: 0; }

body.b2sme-theme .b2sme-before-after__compare { aspect-ratio: 16 / 9; overflow: hidden; }
body.b2sme-theme .b2sme-before-after__image,
body.b2sme-theme .b2sme-before-after__image :is(figure, picture),
body.b2sme-theme .b2sme-before-after__image img { width: 100%; height: 100%; }
body.b2sme-theme .b2sme-before-after__image img { display: block; object-fit: cover; }

body.b2sme-theme :is(.ce_gallery, .content-gallery) figure { aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--b2sme-radius); }
body.b2sme-theme :is(.ce_gallery, .content-gallery) figure :is(a, picture) { display: block; width: 100%; height: 100%; }
body.b2sme-theme :is(.ce_gallery, .content-gallery) figure img { display: block; width: 100%; height: 100%; object-fit: cover; }

body.b2sme-theme .b2sme-configurator-success {
    position: fixed; z-index: 950; right: clamp(.75rem, 2vw, 1.5rem); bottom: clamp(.75rem, 2vw, 1.5rem);
    width: min(calc(100vw - 1.5rem), 30rem); margin: 0; padding: clamp(1.5rem, 3vw, 2rem);
    border: 1px solid rgb(255 255 255 / .08); border-radius: var(--b2sme-radius); background: var(--b2sme-secondary); color: #fff;
    box-shadow: 0 1.25rem 3rem rgb(10 15 26 / .24); opacity: 0; transform: translateY(.75rem) scale(.985);
    transition: opacity .28s ease, transform .38s var(--b2sme-ease-out, cubic-bezier(.22,1,.36,1));
}
body.b2sme-theme form.b2sme-configurator-success { max-height: min(44rem, calc(100dvh - 1.5rem)); overflow-y: auto; }
body.b2sme-theme .b2sme-configurator-success.is-visible,
body.b2sme-theme form.b2sme-configurator-success { opacity: 1; transform: none; }
body.b2sme-theme .b2sme-configurator-success h1,
body.b2sme-theme .b2sme-configurator-success h2,
body.b2sme-theme .b2sme-configurator-success h3,
body.b2sme-theme .b2sme-configurator-success p,
body.b2sme-theme .b2sme-configurator-success div { color: #fff; }
body.b2sme-theme .b2sme-configurator-success h1,
body.b2sme-theme .b2sme-configurator-success h2,
body.b2sme-theme .b2sme-configurator-success h3 { max-width: none; margin-bottom: 1rem; font-size: clamp(1.6rem, 3vw, 2.15rem); line-height: 1.08; letter-spacing: -.025em; }
body.b2sme-theme .b2sme-configurator-success > :first-child,
body.b2sme-theme .b2sme-configurator-success > :first-child > :first-child { margin-top: 0; }
body.b2sme-theme .b2sme-configurator-success > :last-child,
body.b2sme-theme .b2sme-configurator-success > :first-child > :last-child { margin-bottom: 0; }

@media (max-width: 48rem) {
    body.b2sme-theme h1,
    body.b2sme-theme h2,
    body.b2sme-theme h3,
    body.b2sme-theme h4,
    body.b2sme-theme h5,
    body.b2sme-theme h6,
    body.b2sme-theme p,
    body.b2sme-theme li { max-width: 100%; }
    body.b2sme-theme .b2sme-configurator-success { inset: auto .5rem .5rem; width: auto; }
}
