/* ===== reset + page ===== */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    width: 100%;
    overflow-x: clip;
    scroll-behavior: smooth;
}

body {
    width: 100%;
    margin: 0;
    overflow-x: clip;
    font-family: "El Messiri", sans-serif;
    font-size: var(--ebmnt1-fs-body);
    font-weight: 400;
    line-height: 1.7;
    background-color: var(--ebmnt1-color-page-bg);
    color: var(--ebmnt1-color-body-text);
}

h1,
h2,
h3,
h4,
p,
ul,
figure {
    margin: 0;
    padding: 0;
}

h1,
h2,
h3,
h4 {
    font-weight: 700;
    line-height: 1.35;
    color: var(--ebmnt1-color-heading-text);
}

ul {
    list-style: none;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
    max-width: 100%;
}

button {
    font-family: inherit;
    cursor: pointer;
}

::selection {
    background-color: var(--ebmnt1-color-selection-bg);
    color: var(--ebmnt1-color-selection-text);
}

::-webkit-scrollbar {
    width: 7px;
    background-color: var(--ebmnt1-color-scrollbar-track);
}

::-webkit-scrollbar-track {
    background-color: var(--ebmnt1-color-scrollbar-track);
}

::-webkit-scrollbar-thumb {
    background-color: var(--ebmnt1-color-scrollbar-thumb);
}

/* ===== main ===== */
.ebmnt1-main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--ebmnt1-gap-main-sections);
}

/* ===== section structure : master > inner ===== */
.ebmnt1-section-master {
    width: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
}

.ebmnt1-section-master--filled::before,
.ebmnt1-section-master--filled::after {
    content: "";
    display: block;
    flex-shrink: 0;
    height: var(--ebmnt1-space-section-fill);
}

.ebmnt1-section-master--light {
    background-color: var(--ebmnt1-color-section-light-bg);
}

.ebmnt1-section-master--dark {
    background-color: var(--ebmnt1-color-section-dark-bg);
}

.ebmnt1-section-inner {
    width: calc(100% - 2em);
    max-width: var(--ebmnt1-max-width-container);
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--ebmnt1-gap-section-inner);
    text-align: center;
    position: relative;
}

/* ===== section head ===== */
.ebmnt1-section-head {
    width: 100%;
    max-width: 40rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.9em;
    text-align: center;
}

.ebmnt1-section-head--start {
    align-items: flex-start;
    text-align: start;
    max-width: none;
}

.ebmnt1-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    font-size: var(--ebmnt1-fs-small);
    font-weight: 500;
    line-height: 1.6;
    padding: 0.25em 1.4em;
    border-radius: 1.5rem;
    background-color: var(--ebmnt1-color-badge-bg);
    color: var(--ebmnt1-color-badge-text);
}

.ebmnt1-badge::before {
    content: "";
    width: 0.4em;
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--ebmnt1-color-badge-dot);
}

.ebmnt1-section-master--light .ebmnt1-badge {
    background-color: var(--ebmnt1-color-badge-on-light-bg);
    color: var(--ebmnt1-color-badge-on-light-text);
}

.ebmnt1-section-master--light .ebmnt1-badge::before {
    background-color: var(--ebmnt1-color-badge-on-light-dot);
}

.ebmnt1-title {
    font-size: var(--ebmnt1-fs-h2);
    line-height: 1.35;
}

.ebmnt1-title__accent {
    color: var(--ebmnt1-color-title-accent-word);
}

.ebmnt1-lead {
    font-size: var(--ebmnt1-fs-body);
    line-height: 1.7;
}

.ebmnt1-section-master--dark .ebmnt1-title {
    color: var(--ebmnt1-color-title-on-dark);
}

.ebmnt1-section-master--dark .ebmnt1-lead {
    color: var(--ebmnt1-color-lead-on-dark);
}

/* ===== buttons ===== */
.ebmnt1-btn {
    display: inline-flex;
    align-items: stretch;
    font-size: var(--ebmnt1-fs-body);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.ebmnt1-btn__label {
    position: relative;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    overflow: hidden;
    padding: 1.0625em 1.875em;
    border-radius: var(--ebmnt1-radius-pill);
    background-color: var(--ebmnt1-color-btn-label-bg);
    color: var(--ebmnt1-color-btn-label-text);
    transition: color var(--ebmnt1-duration-medium) var(--ebmnt1-ease-main);
}

.ebmnt1-btn__label::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    inset-inline: 50%;
    z-index: -1;
    opacity: 0;
    border-radius: var(--ebmnt1-radius-pill);
    background-color: var(--ebmnt1-color-btn-hover-fill);
    transition: all var(--ebmnt1-duration-medium) var(--ebmnt1-ease-main);
}

.ebmnt1-btn:hover .ebmnt1-btn__label::before {
    inset-inline: 0;
    opacity: 1;
}

.ebmnt1-btn__icon {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: calc(var(--ebmnt1-fs-body) * 3.125);
    border-radius: var(--ebmnt1-radius-circle);
    background-color: var(--ebmnt1-color-btn-circle-bg);
    color: var(--ebmnt1-color-btn-circle-icon);
    font-size: var(--ebmnt1-fs-icon-small);
}

.ebmnt1-btn__icon .fa-arrow-left {
    transform: rotate(45deg);
    transition: transform var(--ebmnt1-duration-fast) var(--ebmnt1-ease-main);
}

.ebmnt1-btn:hover .ebmnt1-btn__icon .fa-arrow-left {
    transform: rotate(0deg);
}

.ebmnt1-btn--highlighted .ebmnt1-btn__icon {
    background-color: var(--ebmnt1-color-btn-hl-circle-bg);
    color: var(--ebmnt1-color-btn-hl-circle-icon);
}

.ebmnt1-btn--highlighted .ebmnt1-btn__label::before {
    background-color: var(--ebmnt1-color-btn-hl-hover-fill);
}

.ebmnt1-btn--highlighted:hover .ebmnt1-btn__label {
    color: var(--ebmnt1-color-btn-hl-hover-text);
}

.ebmnt1-readmore {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    font-size: var(--ebmnt1-fs-body);
    font-weight: 500;
    color: var(--ebmnt1-color-readmore-text);
    transition: color var(--ebmnt1-duration-medium) var(--ebmnt1-ease-main);
}

.ebmnt1-readmore__icon {
    display: grid;
    place-items: center;
    width: 1.65em;
    aspect-ratio: 1;
    border-radius: var(--ebmnt1-radius-circle);
    background-color: var(--ebmnt1-color-readmore-circle-bg);
    color: var(--ebmnt1-color-readmore-circle-icon);
    font-size: var(--ebmnt1-fs-small);
    transform: translateX(3px);
    transition: all var(--ebmnt1-duration-medium) var(--ebmnt1-ease-main);
}

.ebmnt1-readmore:hover {
    color: var(--ebmnt1-color-readmore-hover-text);
}

.ebmnt1-readmore:hover .ebmnt1-readmore__icon {
    background-color: var(--ebmnt1-color-readmore-circle-hover-bg);
    transform: translateX(0);
}

/* ===== icon circle (fill grows from center on hover) ===== */
.ebmnt1-icon-circle {
    position: relative;
    isolation: isolate;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: var(--ebmnt1-circle-size, 3.75rem);
    aspect-ratio: 1;
    border-radius: var(--ebmnt1-radius-circle);
    background-color: var(--ebmnt1-circle-bg);
    color: var(--ebmnt1-circle-icon);
    font-size: var(--ebmnt1-fs-icon-medium);
    overflow: hidden;
    transition: transform var(--ebmnt1-duration-medium) var(--ebmnt1-ease-main);
}

.ebmnt1-icon-circle::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: var(--ebmnt1-radius-circle);
    background-color: var(--ebmnt1-circle-fill);
    transform: scale(0);
    transition: transform var(--ebmnt1-duration-medium) var(--ebmnt1-ease-main);
}

.ebmnt1-hover-fill:hover .ebmnt1-icon-circle::before {
    transform: scale(1);
}

/* ===== entry animations ===== */
.ebmnt1-reveal {
    opacity: 0;
    transform: translateY(1.875em);
    transition: opacity 0.8s ease, transform 0.8s ease;
    transition-delay: var(--ebmnt1-delay, 0s);
}

.ebmnt1-reveal.is-visible {
    opacity: 1;
    transform: none;
}

.ebmnt1-split-word {
    display: inline-block;
    opacity: 0;
    transform: translateX(-1.25em);
    transition: opacity 0.9s ease, transform 0.9s ease;
    transition-delay: calc(var(--ebmnt1-word-index) * 0.07s);
}

.ebmnt1-split.is-visible .ebmnt1-split-word {
    opacity: 1;
    transform: none;
}

/* ===== sliders (shared) ===== */
.ebmnt1-slider {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--ebmnt1-gap-section-inner);
}

.ebmnt1-slider__viewport {
    width: 100%;
    overflow: hidden;
    cursor: grab;
}

.ebmnt1-slider__viewport:active {
    cursor: grabbing;
}

.ebmnt1-slider__viewport .swiper-slide {
    height: auto;
    display: flex;
}

.ebmnt1-slider__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1em;
}

.ebmnt1-slider__btn {
    display: grid;
    place-items: center;
    width: 3em;
    aspect-ratio: 1;
    border: none;
    border-radius: var(--ebmnt1-radius-circle);
    background-color: var(--ebmnt1-color-slider-btn-bg);
    color: var(--ebmnt1-color-slider-btn-icon);
    font-size: var(--ebmnt1-fs-icon-small);
    transition: background-color var(--ebmnt1-duration-fast) var(--ebmnt1-ease-main);
}

.ebmnt1-slider__btn:hover {
    background-color: var(--ebmnt1-color-slider-btn-hover-bg);
}

.ebmnt1-slider__btn.swiper-button-disabled {
    background-color: var(--ebmnt1-color-slider-btn-disabled-bg);
    cursor: default;
}

.ebmnt1-slider__dots {
    display: flex;
    align-items: center;
    gap: 0.4em;
}

.ebmnt1-slider__dots .swiper-pagination-bullet {
    width: 0.625em;
    aspect-ratio: 1;
    margin: 0;
    opacity: 1;
    border-radius: 0.75em;
    background-color: var(--ebmnt1-color-slider-dot);
    transition: all var(--ebmnt1-duration-medium) var(--ebmnt1-ease-main);
}

.ebmnt1-slider__dots .swiper-pagination-bullet-active {
    width: 1.875em;
    background-color: var(--ebmnt1-color-slider-dot-active);
}

/* ===== custom cursor ===== */
.ebmnt1-cursor {
    display: none;
}

@media (hover: hover) and (pointer: fine) {
    .ebmnt1-cursor {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 150;
        display: grid;
        place-items: center;
        width: 4.5rem;
        aspect-ratio: 1;
        margin: -2.25rem 0 0 -2.25rem;
        border-radius: var(--ebmnt1-radius-circle);
        background-color: var(--ebmnt1-color-cursor-dot);
        color: var(--ebmnt1-color-cursor-text);
        font-size: var(--ebmnt1-fs-small);
        font-weight: 700;
        pointer-events: none;
        opacity: 0;
        transform: translate3d(-100px, -100px, 0) scale(0.17);
        will-change: transform;
        transition: opacity var(--ebmnt1-duration-fast), background-color var(--ebmnt1-duration-fast);
    }

    .ebmnt1-cursor.is-visible {
        opacity: 1;
    }

    .ebmnt1-cursor.is-active {
        background-color: var(--ebmnt1-color-cursor-ring-bg);
    }

    [data-ebmnt1-cursor] {
        cursor: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ebmnt1-reveal,
    .ebmnt1-split-word {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
