body {

    /* Typography */
    --fs-body:          clamp(1rem, 0.9167rem + 0.1736vw, 1.125rem);
    --fs-1:             clamp(2rem, 1.5385rem + 2.0513vw, 4rem);
    --fs-2:             clamp(1.75rem, 1.4615rem + 1.2821vw, 3rem);
    --fs-3:             clamp(1.5rem, 1.3846rem + 0.5128vw, 2rem);
    --fs-4:             clamp(1.25rem, 1.1923rem + 0.2564vw, 1.5rem);
    --fs-5:             clamp(1.125rem, 1.0962rem + 0.1282vw, 1.25rem);
    --fs-6:             clamp(1rem, 0.9712rem + 0.1282vw, 1.125rem);

    /* Colors */
    --primary:          var(--e-global-color-primary);
    --secondary:        var(--e-global-color-secondary);
    --text:             var(--e-global-color-text);
    --accent:           var(--e-global-color-accent);
    --border:           #d4d4d4;

    /* Gradients */
    --primary-gradient: radial-gradient(100.53% 141.42% at 0% 0%, #e2010f 50%, #900c14 100%);

    /* Border */
    --radius:           1.5rem;

    /* Box Shadow */
    --box-shadow:       0 1px 3px 0 rgba(0, 0, 0, 0.30), 0 1px 3px -1px rgba(50, 50, 93, 0.25);

}

/*@media (max-width: 767px) {*/
/*    body {*/
/*        --fs-body: 1rem;*/
/*    }*/
/*}*/

/* Generic */
p {
    text-wrap: pretty;
}

p:last-child {
    margin-bottom: 0;
}

h1, h2, h3, h4, h5, h6 {
    line-height: 1.25;
    text-wrap:   balance;
}

.elementor-heading-title,
.elementor-widget-heading {
    line-height: 1.25;
    text-wrap:   balance;
}

a {
    color: var(--primary);
}

a:hover,
a:focus {
    color: var(--text);
}

ul, ol {
    margin-block: 1em;
}

.page-content > .elementor > .e-con {
    --spacing-scale:       1.0;
    --padding-block-start: calc(var(--spacing-scale) * var(--padding-top));
    --padding-block-end:   calc(var(--spacing-scale) * var(--padding-bottom));
}

@media (max-width: 991px) {
    .page-content > .elementor > .e-con {
        --spacing-scale: 0.7;
    }
}

@media (max-width: 767px) {
    .page-content > .elementor > .e-con {
        --spacing-scale: 0.5;
    }
}

/* Headings */
.elementor-widget-heading.gradient .elementor-heading-title {
    background:              var(--primary-gradient, radial-gradient(100.53% 141.42% at 0% 0%, #e2010f 50%, #900c14 100%));
    -webkit-background-clip: text;
    background-clip:         text;
    -webkit-text-fill-color: transparent;
}

/* Header */
.elementor-location-header .elementor-sticky--active.elementor-sticky--effects .header-nav {
    border-bottom-color: var(--border);
}

/* Box Shadow */
.box-shadow {
    box-shadow: var(--box-shadow);
}

/* Icon */
.elementor-icon {
    display: flex;
}

.elementor-icon path {
    fill: currentColor;
}

/* Buttons */
.elementor-button-icon svg {
    width: 1.333333em;
    fill:  currentColor;
}

@supports (width: round(1.333333em, 4px)) {
    .elementor-button-icon svg {
        width: round(1.333333em, 4px);
    }
}

a.e-con.button {
    color: var(--text);
}

a.e-con.button .elementor-widget-icon {
    position: relative;
}

a.e-con.button .elementor-icon:before {
    position:         absolute;
    width:            100%;
    height:           100%;
    content:          '';
    transition:       transform .25s ease-in-out;
    transform:        scale(0);
    border-radius:    12px;
    background-color: var(--primary);
    inset:            0;
}

a.e-con.button:hover .elementor-icon:before {
    transform: scale(1);
}

/* Cards Slider */
.elementor-widget-image-carousel.cards img {
    border-radius:   var(--radius);
    box-shadow:      var(--box-shadow);
    aspect-ratio:    1/1;
    object-fit:      cover;
    object-position: center center;
}

body:not(.elementor-editor-active) .elementor-widget-image-carousel.cards .elementor-swiper-button {
    padding:          8px;
    transform:        none;
    color:            var(--text);
    border-radius:    50%;
    background-color: #ffffff;
}

body:not(.elementor-editor-active) .elementor-widget-image-carousel.cards .elementor-swiper-button svg {
    width:  1.5rem;
    height: 1.5rem;
    fill:   currentColor;
}

body:not(.elementor-editor-active) .elementor-widget-image-carousel.cards .elementor-swiper-button-next {
    top:    auto;
    right:  20px;
    bottom: 20px;
    left:   auto;
}

body:not(.elementor-editor-active) .elementor-widget-image-carousel.cards .elementor-swiper-button-prev {
    top:    auto;
    right:  76px;
    bottom: 20px;
    left:   auto;
}

.cards.elementor-widget-image-carousel {
    overflow: visible;
}

/**
 * Custom Image Carousel
 */
.elementor-widget-image-carousel.custom {
    overflow:                                  hidden;
    border-radius:                             var(--radius);

    --swiper-pagination-color:                 #ffffff;
    --swiper-pagination-bullet-inactive-color: rgba(255 255 255 / .75);
    --swiper-pagination-bullet-size:           6px;
    --swiper-pagination-bullet-horizontal-gap: 4px;
}

.elementor-widget-image-carousel.custom img {
    vertical-align: middle;
}

body:not(.elementor-editor-active) .elementor-widget-image-carousel.custom .elementor-swiper-button {
    display:          none;
    padding:          8px;
    transform:        none;
    color:            var(--text);
    border-radius:    50%;
    background-color: #ffffff;
}

body:not(.elementor-editor-active) .elementor-widget-image-carousel.custom .elementor-swiper-button svg {
    width:  1.5rem;
    height: 1.5rem;
    fill:   currentColor;
}

body:not(.elementor-editor-active) .elementor-widget-image-carousel.custom .elementor-swiper-button-next {
    top:    auto;
    right:  20px;
    bottom: 20px;
    left:   auto;
}

body:not(.elementor-editor-active) .elementor-widget-image-carousel.custom .elementor-swiper-button-prev {
    top:    auto;
    right:  76px;
    bottom: 20px;
    left:   auto;
}

body:not(.elementor-editor-active) .elementor-widget-image-carousel.custom .swiper .swiper-pagination {
    bottom:           8px;
    left:             50%;
    display:          flex;
    width:            auto;
    height:           auto;
    padding:          4px;
    transform:        translateX(-50%);
    border-radius:    9999px;
    background-color: rgba(0 0 0 / 75%);
}

@media (min-width: 768px) {
    body:not(.elementor-editor-active) .elementor-widget-image-carousel.custom .elementor-swiper-button {
        display: inline-flex;
    }

    body:not(.elementor-editor-active) .elementor-widget-image-carousel.custom .swiper .swiper-pagination {
        display: none;
    }

    body:not(.elementor-editor-active) .elementor-widget-image-carousel.custom .swiper {
        padding-bottom: 0;
    }
}

/**
 * Social Media
 */
.social-media.elementor-widget-icon-list .elementor-icon-list-icon svg {
    margin: 0;
}

.social-media.elementor-widget-icon-list a {
    padding:          10px;
    border-radius:    50%;
    background-color: #a1a1a1;
}

.social-media.elementor-widget-icon-list .elementor-icon-list-text {
    display: none;
}

.social-media.elementor-widget-icon-list a:before {
    position:         absolute;
    display:          block;
    width:            100%;
    height:           100%;
    content:          '';
    transition:       transform .3s ease-in-out;
    transform:        scale(0);
    border-radius:    50%;
    background-color: #ffffff;
    inset:            0;
}

.social-media.elementor-widget-icon-list a:hover:before {
    transform: scale(1);
}

/**
 * Prose
 */
.prose h6 {
    font-size: 1.125rem;
}

.prose h5 {
    font-size: 1.266rem;
}

.prose h4 {
    font-size: 1.424rem;
}

.prose h3 {
    font-size: 1.602rem;
}

.prose h2 {
    font-size: 1.802rem;
}

.prose h1 {
    font-size: 2.027rem;
}

/**
 * Box Shadow
 */
.box-shadow {
    box-shadow: var(--box-shadow);
}