:root {
    --fs-1:                 clamp(1.75rem, 1.5rem + 1.25vw, 2.5rem);
    --fs-2:                 clamp(1.5rem, 1.333rem + 0.833vw, 2rem);
    --fs-3:                 clamp(1.25rem, 1.167rem + 0.417vw, 1.5rem);
    --fs-4:                 clamp(1.125rem, 1.083rem + 0.208vw, 1.25rem);

    --med-rt-header-height: 0px;
}

.e-con[id] {
    scroll-margin-top: var(--med-rt-header-height, 0px);
}

p, h1, h2, h3, h4, h5, h6 {
    overflow-wrap: break-word;
}

p {
    text-wrap: pretty;
}

p:last-child {
    margin-bottom: 0;
}

h1, h2, h3, h4, h5, h6, .elementor-heading-title {
    text-wrap: balance;
    hyphens:   auto;
}

ul, ol {
    padding-inline-start: 1.125em;
}

.med-rt-scroll-top {
    position:         fixed;
    z-index:          99;
    right:            16px;
    bottom:           16px;
    display:          inline-grid;
    width:            48px;
    height:           48px;
    transition:       opacity .3s ease-in-out;
    border-radius:    9999px;
    background-color: var(--e-global-color-primary);
    place-items:      center;

    &:before {
        display:          inline-block;
        width:            1.5rem;
        height:           1.5rem;
        content:          '';
        background-color: #ffffff;
        mask-size:        contain;
        mask-repeat:      no-repeat;
        mask-image:       url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 640 640\'%3E%3C!--!Font Awesome Free v7.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--%3E%3Cpath d=\'M342.6 73.4C330.1 60.9 309.8 60.9 297.3 73.4L137.3 233.4C124.8 245.9 124.8 266.2 137.3 278.7C149.8 291.2 170.1 291.2 182.6 278.7L288 173.3L288 544C288 561.7 302.3 576 320 576C337.7 576 352 561.7 352 544L352 173.3L457.4 278.7C469.9 291.2 490.2 291.2 502.7 278.7C515.2 266.2 515.2 245.9 502.7 233.4L342.7 73.4z\'/%3E%3C/svg%3E');
    }
}

.med-rt-scroll-top:not(.med-rt-scroll-top--visible) {
    pointer-events: none;
    opacity:        0;
}

.e-con.elementor-sticky--active {
    --z-index: 999;
}

.elementor-flip-box__layer {
    transition: none !important;
}

body.flipbox-ready .elementor-flip-box__layer {
    transition: all 0.6s ease-in-out !important;
}

.elementor-blockquote .elementor-blockquote__content {
    font-style: italic;
    quotes:     '„' '“';
}

.elementor-blockquote .elementor-blockquote__content:before {
    content: open-quote;
}

.elementor-blockquote .elementor-blockquote__content:after {
    content: close-quote;
}

.elementor-widget-icon-box {
    position: relative;
}

.elementor-icon-box-title > a:before {
    position: absolute;
    width:    100%;
    height:   100%;
    content:  '';
    inset:    0;
}

@media (hover: hover) {
    .grow:hover {
        transform:  scale(1.05);
        box-shadow: 0 1px 0 rgba(17, 17, 26, 0.05), 0 0 8px rgba(17, 17, 26, 0.1);
    }
}

.med-rt-speakers .elementor-flip-box .elementor-icon-wrapper {
    display: none;
}

.med-rt-speakers .elementor-flip-box {
    height: auto;

    @media (min-width: 1024px) {
        aspect-ratio: 1/1;
    }
}

@media (max-width: 1023px) {
    .med-rt-speakers .elementor-flip-box .elementor-flip-box__back {
        aspect-ratio: 1/1;
    }

    .med-rt-speakers .elementor-flip-box,
    .med-rt-speakers .elementor-widget-flip-box {
        height: 100%;
    }

    .med-rt-speakers .elementor-flip-box {
        display:        flex;
        flex-direction: column-reverse;
    }

    .med-rt-speakers .elementor-flip-box__layer {
        position: static;
    }

    .med-rt-speakers .elementor-flip-box--effect-flip .elementor-flip-box__layer {
        backface-visibility: visible;
    }

    .med-rt-speakers .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back {
        transform: none;
    }

    .med-rt-speakers .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front {
        transform: none;
    }
}

.med-rt-products .woocommerce ul.products li.product {

    .price,
    .button,
    a img {
        display: none;
    }

}

.med-rt-products.elementor-products-grid {

    /* --med-rt-products-title is injected on :root from functions.php (current year). */

    ul.products.elementor-grid {
        align-items: end;
    }

    ul.products.elementor-grid:before {
        font-size:        2rem;
        font-weight:      700;
        display:          grid;
        padding:          1rem;
        content:          var(--med-rt-products-title, 'Vorträge 2026');
        text-align:       center;
        color:            #ffffff;
        background-color: var(--e-global-color-accent);
        aspect-ratio:     1/1;
        place-items:      center;

        @media (min-width: 768px) {
            grid-column: 1 / span 2;
        }
    }

}

.med-rt-products.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link {
    display:          grid;
    padding:          1rem;
    transition:       .3s ease-in-out;
    text-align:       center;
    background-color: #ffffff;
    aspect-ratio:     1/1;
    place-items:      center;

    &:hover {
        transform:  scale(1.05);
        box-shadow: 0 1px 0 rgba(17, 17, 26, 0.05), 0 0 8px rgba(17, 17, 26, 0.1);
    }
}

.med-rt-woocommerce-ordering {
    display:         flex;
    justify-content: flex-end;
}

.med-rt-woocommerce-orderby {
    font-size:                  1rem;
    line-height:                1.5rem;
    padding:                    .5rem 2.5rem .5rem .75rem;
    border-width:               1px;
    border-color:               #6b7280;
    border-radius:              0;
    background-color:           #ffffff;
    background-image:           url('data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'none\' viewBox=\'0 0 20 20\'%3e%3cpath stroke=\'%236b7280\' stroke-linecap=\'round\' stroke-linejoin=\'round\' stroke-width=\'1.5\' d=\'M6 8l4 4 4-4\'/%3e%3c/svg%3e');
    background-repeat:          no-repeat;
    background-position:        right .5rem center;
    background-size:            1.5em 1.5em;
    -webkit-print-color-adjust: exact;
    print-color-adjust:         exact;
    -webkit-appearance:         none;
    -moz-appearance:            none;
    appearance:                 none;
}

.woocommerce .woocommerce-breadcrumb {
    margin-top: 2rem;
}

.woocommerce div.product .product_title {
    font-size: var(--fs-3);
}

.woocommerce-page .page-content {
    padding-block: 96px;
}

.woocommerce span.onsale {
    background-color: var(--e-global-color-accent);
}

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) ul.products li.product .price,
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product p.price, .woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product span.price {
    color: var(--e-global-color-primary);
}

.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt {
    background-color: var(--e-global-color-primary);
}

.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:hover, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:hover, :where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:hover {
    background-color: var(--e-global-color-secondary);
}
