/* Global Responsive Typography */
html {
    font-size: calc(0.625rem + 0.41666666666666663vw);
}

@media screen and (max-width: 1920px) {
    html {
        font-size: calc(0.625rem + 0.41666666666666674vw);
    }
}

@media screen and (max-width: 1440px) {
    html {
        font-size: calc(0.8126951092611863rem + 0.20811654526534862vw);
    }
}

@media screen and (max-width: 479px) {
    html {
        font-size: calc(0.7494769874476988rem + 0.8368200836820083vw);
    }
}

/* Global Utility Classes */
.inherit-color * {
    color: inherit;
}

.gradient-blur-bg {
    pointer-events: none;
}

/* Focus State Styles */
*[tabindex]:focus-visible,
input[type="file"]:focus-visible {
    outline: 0.125rem solid #4d65ff;
    outline-offset: 0.125rem;
}

/* Rich Text Element Styles */
.w-richtext> :not(div):first-child,
.w-richtext>div:first-child> :first-child {
    margin-top: 0 !important;
}

.w-richtext>:last-child,
.w-richtext ol li:last-child,
.w-richtext ul li:last-child {
    margin-bottom: 0 !important;
}

/* Interaction Control */
.pointer-events-off {
    pointer-events: none;
}

.pointer-events-on {
    pointer-events: auto;
}

/* Layout Utilities */
.div-square::after {
    content: "";
    display: block;
    padding-bottom: 100%;
}

.container-medium,
.container-small,
.container-large {
    margin-right: auto !important;
    margin-left: auto !important;
}

/* Text Truncation */
.text-style-3lines {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
}

.text-style-2lines {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
}

.truncate-width {
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Display Utilities */
.display-inlineflex {
    display: inline-flex;
}

.hide {
    display: none !important;
}

/* Responsive Visibility */
@media screen and (max-width: 1112px) {
    .footer-block {
        flex-direction: column;
    }
}

@media screen and (max-width: 991px) {
    .hide,
    .hide-tablet {
        display: none !important;
    }
}

@media screen and (max-width: 767px) {
    .hide-mobile-landscape {
        display: none !important;
    }
}

@media screen and (max-width: 479px) {
    .hide-mobile {
        display: none !important;
    }
}

/* Spacing Utilities */
.margin-0 {
    margin: 0rem !important;
}

.padding-0 {
    padding: 0rem !important;
}

.spacing-clean {
    padding: 0rem !important;
    margin: 0rem !important;
}

.margin-top {
    margin-right: 0rem !important;
    margin-bottom: 0rem !important;
    margin-left: 0rem !important;
}

.padding-top {
    padding-right: 0rem !important;
    padding-bottom: 0rem !important;
    padding-left: 0rem !important;
}

.margin-right {
    margin-top: 0rem !important;
    margin-bottom: 0rem !important;
    margin-left: 0rem !important;
}

.padding-right {
    padding-top: 0rem !important;
    padding-bottom: 0rem !important;
    padding-left: 0rem !important;
}

.margin-bottom {
    margin-top: 0rem !important;
    margin-right: 0rem !important;
    margin-left: 0rem !important;
}

.padding-bottom {
    padding-top: 0rem !important;
    padding-right: 0rem !important;
    padding-left: 0rem !important;
}

.margin-left {
    margin-top: 0rem !important;
    margin-right: 0rem !important;
    margin-bottom: 0rem !important;
}

.padding-left {
    padding-top: 0rem !important;
    padding-right: 0rem !important;
    padding-bottom: 0rem !important;
}

.margin-horizontal {
    margin-top: 0rem !important;
    margin-bottom: 0rem !important;
}

.padding-horizontal {
    padding-top: 0rem !important;
    padding-bottom: 0rem !important;
}

.margin-vertical {
    margin-right: 0rem !important;
    margin-left: 0rem !important;
}

.padding-vertical {
    padding-right: 0rem !important;
    padding-left: 0rem !important;
}

/* Scrollbar Utilities */
.no-scrollbar {
    -ms-overflow-style: none;
    overflow: -moz-scrollbars-none;
}

.no-scrollbar::-webkit-scrollbar {
    display: none;
}