.acdh-hero {
    --acdh-media-width: 56%;
    --acdh-min-height: 620px;
    --acdh-content-max: 1200px;
    --acdh-gutter: 24px;
    --acdh-media-edge-space: 24px;
    --acdh-header-overlap: 0px;
    --acdh-header-safe: 0px;
    --acdh-active-header-safe: 0px;
    --acdh-horizontal-bleed-base-left: 0px;
    --acdh-horizontal-bleed-base-right: 0px;
    --acdh-horizontal-bleed-effective-left: 0px;
    --acdh-horizontal-bleed-effective-right: 0px;
    --acdh-horizontal-bleed-adjust: 0px;
    --acdh-content-pt: 50px;
    --acdh-content-pr: 40px;
    --acdh-content-pb: 50px;
    --acdh-content-pl: 40px;
    --acdh-text-direction: rtl;
    --acdh-underline-color: #ff3854;
    --acdh-underline-duration: 1.4s;
    --acdh-underline-start-delay: .2s;
    --acdh-underline-sequence-delay: .35s;
    --acdh-underline-hold: .8s;
    --acdh-underline-cycle-pause: 1.5s;
    position: relative;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-height: var(--acdh-min-height);
    overflow: hidden;
    background: #dfe8f4;
    isolation: isolate;
}

.acdh-hero[dir="rtl"] {
    --acdh-text-direction: rtl;
}

.acdh-hero[dir="ltr"] {
    --acdh-text-direction: ltr;
}

.acdh-hero *,
.acdh-hero *::before,
.acdh-hero *::after {
    box-sizing: border-box;
}

.acdh-hero.acdh-under-header {
    --acdh-active-header-safe: var(--acdh-header-safe);
    margin-top: calc(-1 * var(--acdh-header-overlap));
}

/*
 * حذف دقیق فاصله افقی ایجادشده توسط کانتینر والد Elementor.
 * JavaScript فقط فاصله پایه تا لبه viewport را محاسبه می‌کند و مقدار اصلاح دستی
 * مستقیماً در CSS ترکیب می‌شود؛ بنابراین کنترل Elementor بدون بارگذاری مجدد فوراً اثر می‌گذارد.
 */
.acdh-hero.acdh-horizontal-bleed[data-acdh-horizontal-bleed="left"] {
    --acdh-horizontal-bleed-effective-left: max(0px, calc(var(--acdh-horizontal-bleed-base-left) + var(--acdh-horizontal-bleed-adjust)));
    --acdh-horizontal-bleed-effective-right: 0px;
}

.acdh-hero.acdh-horizontal-bleed[data-acdh-horizontal-bleed="right"] {
    --acdh-horizontal-bleed-effective-left: 0px;
    --acdh-horizontal-bleed-effective-right: max(0px, calc(var(--acdh-horizontal-bleed-base-right) + var(--acdh-horizontal-bleed-adjust)));
}

.acdh-hero.acdh-horizontal-bleed[data-acdh-horizontal-bleed="both"] {
    --acdh-horizontal-bleed-effective-left: max(0px, calc(var(--acdh-horizontal-bleed-base-left) + var(--acdh-horizontal-bleed-adjust)));
    --acdh-horizontal-bleed-effective-right: max(0px, calc(var(--acdh-horizontal-bleed-base-right) + var(--acdh-horizontal-bleed-adjust)));
}

.acdh-hero.acdh-horizontal-bleed {
    width: calc(100% + var(--acdh-horizontal-bleed-effective-left) + var(--acdh-horizontal-bleed-effective-right));
    max-width: none;
    margin-left: calc(-1 * var(--acdh-horizontal-bleed-effective-left));
    margin-right: calc(-1 * var(--acdh-horizontal-bleed-effective-right));
}

/*
 * این کلاس فقط در صفحاتی افزوده می‌شود که امتداد افقی هیرو فعال است.
 * clip مانع ایجاد نوار اسکرول افقی ناشی از گردکردن پیکسلی مرورگر می‌شود،
 * بدون اینکه اسکرول عمودی یا جایگاه واقعی هیرو را تغییر دهد.
 */
html.acdh-horizontal-bleed-active,
body.acdh-horizontal-bleed-active {
    overflow-x: hidden;
}

@supports (overflow: clip) {
    html.acdh-horizontal-bleed-active,
    body.acdh-horizontal-bleed-active {
        overflow-x: clip;
    }
}

.acdh-inner {
    position: relative;
    display: grid;
    direction: ltr;
    grid-template-columns: minmax(0, var(--acdh-media-width)) minmax(0, 1fr);
    grid-template-areas: "media content";
    gap: 0;
    width: 100%;
    max-width: none;
    min-height: var(--acdh-min-height);
    margin-inline: auto;
}

.acdh-layout-boxed .acdh-inner {
    width: min(calc(100% - (2 * var(--acdh-gutter))), var(--acdh-content-max));
}

.acdh-media-right .acdh-inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, var(--acdh-media-width));
    grid-template-areas: "content media";
}

.acdh-media {
    grid-area: media;
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: var(--acdh-min-height);
    margin: 0;
    overflow: hidden;
    background: #24384f;
    z-index: 1;
    direction: var(--acdh-text-direction);
}

.acdh-media-image,
.acdh-media-image img {
    width: 100%;
    height: 100%;
}

.acdh-media-image {
    position: absolute;
    inset: 0;
}

.acdh-media-image img {
    display: block;
    max-width: none;
    object-fit: cover;
    object-position: var(--acdh-object-x, 50%) var(--acdh-object-y, 50%);
}

.acdh-media-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: #162940;
    opacity: .35;
}

.acdh-content {
    grid-area: content;
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: var(--acdh-min-height);
    padding-top: calc(var(--acdh-content-pt) + var(--acdh-active-header-safe));
    padding-right: var(--acdh-content-pr);
    padding-bottom: var(--acdh-content-pb);
    padding-left: var(--acdh-content-pl);
    overflow-wrap: anywhere;
    direction: var(--acdh-text-direction);
}

.acdh-content-inner {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.acdh-eyebrow {
    max-width: 100%;
    margin: 0 0 20px;
    color: #68717d;
    font-size: 13px;
    line-height: 1.9;
    overflow-wrap: anywhere;
}

.acdh-title {
    display: inline-flex;
    flex-direction: column;
    gap: .1em;
    width: fit-content;
    max-width: min(100%, 430px);
    margin: 0;
    color: #1f2228;
    font-size: clamp(42px, 4.4vw, 72px);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.02em;
}

.acdh-title-line {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    min-width: 0;
    max-width: 100%;
    gap: .22em;
}

.acdh-title-normal,
.acdh-highlight {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.acdh-highlight {
    --acdh-underline-offset: 5px;
    position: relative;
    display: inline-block;
    color: #ff3854;
    line-height: 1.15;
}

.acdh-highlight::before,
.acdh-highlight::after {
    content: "";
    position: absolute;
    left: 1%;
    width: 98%;
    height: 2px;
    border-radius: 999px;
    background-color: var(--acdh-underline-color);
    pointer-events: none;
    transform: rotate(var(--acdh-underline-rotate, 0deg)) scaleX(1);
    transform-origin: left center;
    will-change: transform, opacity, background-position;
}

.acdh-highlight::after {
    --acdh-underline-rotate: -2deg;
    bottom: calc(-1 * var(--acdh-underline-offset));
}

.acdh-highlight::before {
    --acdh-underline-rotate: 1deg;
    bottom: calc(-1 * var(--acdh-underline-offset) - 4px);
    width: 88%;
    left: 6%;
    opacity: .95;
}

.acdh-underline-origin-auto[dir="rtl"] .acdh-highlight::before,
.acdh-underline-origin-auto[dir="rtl"] .acdh-highlight::after,
.acdh-underline-origin-right .acdh-highlight::before,
.acdh-underline-origin-right .acdh-highlight::after {
    transform-origin: right center;
}

.acdh-underline-origin-auto[dir="ltr"] .acdh-highlight::before,
.acdh-underline-origin-auto[dir="ltr"] .acdh-highlight::after,
.acdh-underline-origin-left .acdh-highlight::before,
.acdh-underline-origin-left .acdh-highlight::after {
    transform-origin: left center;
}

.acdh-underline-animate .acdh-highlight::before,
.acdh-underline-animate .acdh-highlight::after {
    animation-duration: var(--acdh-underline-duration);
    animation-timing-function: ease-out;
    animation-fill-mode: both;
    animation-iteration-count: 1;
    animation-delay: var(--acdh-underline-word-delay, var(--acdh-underline-start-delay));
}

.acdh-underline-animate .acdh-title-line:nth-child(2) .acdh-highlight {
    --acdh-underline-word-delay: calc(var(--acdh-underline-start-delay) + var(--acdh-underline-sequence-delay));
}

.acdh-underline-animate .acdh-highlight::before {
    animation-delay: calc(var(--acdh-underline-word-delay, var(--acdh-underline-start-delay)) + .1s);
}

.acdh-underline-repeat-infinite .acdh-highlight::before,
.acdh-underline-repeat-infinite .acdh-highlight::after {
    animation-iteration-count: infinite;
}

.acdh-underline-animation-draw .acdh-highlight::before,
.acdh-underline-animation-draw .acdh-highlight::after {
    animation-name: acdh-underline-draw;
}

.acdh-underline-animation-pulse .acdh-highlight::before,
.acdh-underline-animation-pulse .acdh-highlight::after {
    animation-name: acdh-underline-pulse;
    animation-timing-function: ease-in-out;
}

.acdh-underline-animation-shimmer .acdh-highlight::before,
.acdh-underline-animation-shimmer .acdh-highlight::after {
    background-image: linear-gradient(
        90deg,
        var(--acdh-underline-color) 0%,
        var(--acdh-underline-color) 35%,
        rgba(255, 255, 255, .95) 50%,
        var(--acdh-underline-color) 65%,
        var(--acdh-underline-color) 100%
    );
    background-size: 220% 100%;
    animation-name: acdh-underline-shimmer;
    animation-timing-function: linear;
}

/*
 * در حالت رسم ترتیبی مکرر، JavaScript هر چرخه را به‌صورت کنترل‌شده اجرا می‌کند:
 * خط کلمه اول رسم می‌شود، پس از فاصله تعیین‌شده خط کلمه دوم رسم می‌شود،
 * هر دو خط مدتی باقی می‌مانند و سپس چرخه از ابتدا تکرار می‌شود.
 */
.acdh-underline-animate.acdh-underline-sequence-loop .acdh-highlight::before,
.acdh-underline-animate.acdh-underline-sequence-loop .acdh-highlight::after {
    animation-name: none;
    animation-delay: 0s;
    opacity: 0;
    transform: rotate(var(--acdh-underline-rotate, 0deg)) scaleX(0);
}

.acdh-underline-animate.acdh-underline-sequence-loop .acdh-highlight.acdh-underline-is-drawing::before,
.acdh-underline-animate.acdh-underline-sequence-loop .acdh-highlight.acdh-underline-is-drawing::after {
    animation-name: acdh-underline-draw;
    animation-duration: var(--acdh-underline-duration);
    animation-timing-function: ease-out;
    animation-fill-mode: both;
    animation-iteration-count: 1;
    animation-delay: 0s;
}

.acdh-underline-animate.acdh-underline-sequence-loop .acdh-highlight.acdh-underline-is-drawing::before {
    animation-delay: .1s;
}

@keyframes acdh-underline-draw {
    0% {
        opacity: 0;
        transform: rotate(var(--acdh-underline-rotate, 0deg)) scaleX(0);
    }
    18% {
        opacity: 1;
    }
    62%,
    100% {
        opacity: 1;
        transform: rotate(var(--acdh-underline-rotate, 0deg)) scaleX(1);
    }
}

@keyframes acdh-underline-pulse {
    0%,
    100% {
        opacity: 1;
        transform: rotate(var(--acdh-underline-rotate, 0deg)) scaleX(1);
    }
    50% {
        opacity: .72;
        transform: rotate(var(--acdh-underline-rotate, 0deg)) scaleX(1.04);
    }
}

@keyframes acdh-underline-shimmer {
    from {
        background-position: 180% 0;
    }
    to {
        background-position: -40% 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .acdh-underline-animate .acdh-highlight::before,
    .acdh-underline-animate .acdh-highlight::after {
        animation: none !important;
        opacity: 1;
        transform: rotate(var(--acdh-underline-rotate, 0deg)) scaleX(1);
    }
}

.acdh-play {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 92px;
    height: 92px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: #8c817b;
    box-shadow: 0 0 0 10px rgba(255, 255, 255, .45);
    cursor: pointer;
    transform: translate(-50%, -50%);
    transition: transform .25s ease, background-color .25s ease, color .25s ease, box-shadow .25s ease;
}

.acdh-play:disabled {
    cursor: not-allowed;
    opacity: .65;
}

.acdh-play:not(:disabled):hover,
.acdh-play:not(:disabled):focus-visible {
    transform: translate(-50%, -50%) scale(1.08);
}

.acdh-play:focus-visible {
    outline: 3px solid rgba(255, 255, 255, .95);
    outline-offset: 7px;
}

.acdh-play i {
    font-size: 34px;
}

.acdh-play svg {
    width: 34px;
    height: 34px;
    fill: currentColor;
}

.acdh-play i,
.acdh-play svg,
.acdh-play span {
    margin-inline-start: 4px;
}

.acdh-floating-button {
    position: absolute;
    top: 38px;
    left: 24px;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: calc(100% - 48px);
    padding: 10px 18px;
    border-radius: 7px;
    background: #2e6db2;
    color: #fff;
    font-size: 12px;
    line-height: 1.4;
    text-decoration: none;
    transition: transform .25s ease, background-color .25s ease, color .25s ease;
}

.acdh-floating-button:hover,
.acdh-floating-button:focus-visible {
    transform: translateY(-2px);
}

.acdh-floating-button:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

/* فقط در حالت محدود، تصویر می‌تواند تا لبه صفحه امتداد پیدا کند. در حالت تمام‌عرض هیچ حاشیه اضافی ساخته نمی‌شود. */
@media (min-width: 1025px) {
    .acdh-media-left .acdh-media,
    .acdh-media-right .acdh-media {
        width: calc(100% - var(--acdh-media-edge-space));
        max-width: none;
        margin-left: 0;
        margin-right: 0;
    }

    .acdh-media-left .acdh-media {
        margin-left: var(--acdh-media-edge-space);
    }

    .acdh-media-right .acdh-media {
        margin-right: var(--acdh-media-edge-space);
    }

    .acdh-layout-boxed.acdh-desktop-bleed .acdh-inner {
        --acdh-side-space: max(var(--acdh-gutter), calc((100vw - var(--acdh-content-max)) / 2));
    }

    .acdh-layout-boxed.acdh-desktop-bleed.acdh-media-left .acdh-media {
        width: calc(100% + var(--acdh-side-space) - var(--acdh-media-edge-space));
        max-width: none;
        margin-left: calc(-1 * var(--acdh-side-space) + var(--acdh-media-edge-space));
        margin-right: 0;
    }

    .acdh-layout-boxed.acdh-desktop-bleed.acdh-media-right .acdh-media {
        width: calc(100% + var(--acdh-side-space) - var(--acdh-media-edge-space));
        max-width: none;
        margin-left: 0;
        margin-right: calc(-1 * var(--acdh-side-space) + var(--acdh-media-edge-space));
    }
}

/* تبلت */
@media (min-width: 768px) and (max-width: 1024px) {
    .acdh-hero {
        --acdh-min-height: 540px;
        --acdh-gutter: 20px;
    }

    .acdh-tablet-row .acdh-inner {
        grid-template-columns: minmax(0, clamp(35%, var(--acdh-media-width), 65%)) minmax(0, 1fr);
        grid-template-areas: "media content";
    }

    .acdh-tablet-row .acdh-media {
        width: calc(100% - var(--acdh-media-edge-space));
        margin-left: 0;
        margin-right: 0;
    }

    .acdh-tablet-row.acdh-tablet-media-left .acdh-media {
        margin-left: var(--acdh-media-edge-space);
    }

    .acdh-tablet-row.acdh-tablet-media-right .acdh-media {
        margin-right: var(--acdh-media-edge-space);
    }

    .acdh-tablet-row.acdh-tablet-media-right .acdh-inner {
        grid-template-columns: minmax(0, 1fr) minmax(0, clamp(35%, var(--acdh-media-width), 65%));
        grid-template-areas: "content media";
    }

    .acdh-tablet-row.acdh-tablet-media-left .acdh-inner {
        grid-template-columns: minmax(0, clamp(35%, var(--acdh-media-width), 65%)) minmax(0, 1fr);
        grid-template-areas: "media content";
    }

    .acdh-tablet-stack .acdh-inner {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
        width: 100%;
    }

    .acdh-tablet-stack.acdh-stack-content-first .acdh-inner {
        grid-template-areas: "content" "media";
    }

    .acdh-tablet-stack.acdh-stack-media-first .acdh-inner {
        grid-template-areas: "media" "content";
    }

    .acdh-tablet-stack .acdh-content,
    .acdh-tablet-stack .acdh-media {
        width: 100%;
        min-height: auto;
    }

    .acdh-tablet-stack .acdh-content {
        min-height: calc(var(--acdh-min-height) * .46);
    }

    .acdh-tablet-stack .acdh-media {
        min-height: calc(var(--acdh-min-height) * .54);
    }

    .acdh-title {
        font-size: clamp(34px, 5vw, 56px);
    }
}

/* موبایل */
@media (max-width: 767px) {
    .acdh-hero {
        --acdh-min-height: 620px;
        --acdh-gutter: 16px;
    }

    .acdh-mobile-row .acdh-inner {
        grid-template-columns: minmax(0, clamp(38%, var(--acdh-media-width), 62%)) minmax(0, 1fr);
        grid-template-areas: "media content";
        width: 100%;
    }

    .acdh-mobile-row .acdh-media {
        width: calc(100% - var(--acdh-media-edge-space));
        margin-left: 0;
        margin-right: 0;
    }

    .acdh-mobile-row.acdh-mobile-media-left .acdh-media {
        margin-left: var(--acdh-media-edge-space);
    }

    .acdh-mobile-row.acdh-mobile-media-right .acdh-media {
        margin-right: var(--acdh-media-edge-space);
    }

    .acdh-layout-boxed.acdh-mobile-row .acdh-inner {
        width: calc(100% - (2 * var(--acdh-gutter)));
    }

    .acdh-mobile-row.acdh-mobile-media-right .acdh-inner {
        grid-template-columns: minmax(0, 1fr) minmax(0, clamp(38%, var(--acdh-media-width), 62%));
        grid-template-areas: "content media";
    }

    .acdh-mobile-row.acdh-mobile-media-left .acdh-inner {
        grid-template-columns: minmax(0, clamp(38%, var(--acdh-media-width), 62%)) minmax(0, 1fr);
        grid-template-areas: "media content";
    }

    .acdh-mobile-stack .acdh-inner {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
        width: 100%;
    }

    .acdh-mobile-stack.acdh-stack-content-first .acdh-inner {
        grid-template-areas: "content" "media";
    }

    .acdh-mobile-stack.acdh-stack-media-first .acdh-inner {
        grid-template-areas: "media" "content";
    }

    .acdh-mobile-stack .acdh-content,
    .acdh-mobile-stack .acdh-media {
        width: 100%;
        min-height: auto;
    }

    .acdh-mobile-stack .acdh-content {
        min-height: calc(var(--acdh-min-height) * .43);
    }

    .acdh-mobile-stack .acdh-media {
        min-height: calc(var(--acdh-min-height) * .57);
    }

    .acdh-content {
        padding-top: calc(var(--acdh-content-pt) + var(--acdh-active-header-safe));
        padding-right: var(--acdh-content-pr);
        padding-bottom: var(--acdh-content-pb);
        padding-left: var(--acdh-content-pl);
    }

    .acdh-title {
        max-width: 100%;
        font-size: clamp(32px, 10.5vw, 50px);
    }

    .acdh-eyebrow {
        font-size: 12px;
    }

    .acdh-floating-button {
        max-width: calc(100% - 32px);
    }
}

/* مودال ویدئو */
.acdh-video-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.acdh-video-modal.is-open {
    display: flex;
}

.acdh-video-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(9, 15, 24, .88);
    backdrop-filter: blur(5px);
}

.acdh-video-modal__dialog {
    position: relative;
    z-index: 2;
    width: min(100%, 960px);
    border-radius: 18px;
    background: #0b1018;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .38);
    overflow: hidden;
}

.acdh-video-modal__frame {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
}

.acdh-video-modal__frame iframe,
.acdh-video-modal__frame video {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: #000;
}

.acdh-video-modal__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: #111;
    font-size: 25px;
    line-height: 1;
    cursor: pointer;
}

body.acdh-modal-open {
    overflow: hidden;
}
