/* dmhouse-seo-strategy.css — نمونهٔ «تدوین استراتژی سئو سایت».
   ⚠ فقط رنگ‌های پالت تم (سرمه‌ای، طلایی، مسی و توکن‌های theme-light/dark) — هیچ رنگ بیرونی.
   ⚠ المان‌های مشترک (دکمهٔ درخشان، دکمهٔ حاشیه‌دار، موج، مقیاس تیتر) از dmst-theme-base.css
   (کپی base.css تم) می‌آیند و اینجا بازطراحی نمی‌شوند.
   ⚠ متغیرهای اسکرول (--p پیشرفت، --c فاصله از مرکز) پیش‌فرضشان «حالت نهایی» است؛ بدون
   اسکریپت یا با کاهش حرکت همه‌چیز کامل دیده می‌شود. پرسپکتیو فقط بالای ۹۹۲ پیکسل. */

[hidden] {
    display: none !important;
}

/* ⚠ نسخهٔ تم: قاعدهٔ body نمونهٔ محلی عمداً حذف شد؛ صفحه‌های تم بدنه را از base.css و style.css
   می‌گیرند و یک قاعدهٔ body در شیوه‌نامهٔ قالب، هدر و فوتر مشترک را هم تحت تأثیر قرار می‌داد. */

/* ⚠ پایهٔ سایت box-sizing سراسری ندارد؛ بدون این، قاب‌های padding‌دار (هزارتو) روی موبایل ۴ پیکسل بیرون می‌زدند (اندازه‌گیری‌شده). */
.dmst-main *,
.dmst-main *::before,
.dmst-main *::after {
    box-sizing: border-box;
}

.dmst-main {
    --dmst-pad: clamp(56px, 7vw, 110px);
    --dmst-pad-wave: calc(clamp(50px, 8vw, 120px) + clamp(40px, 5vw, 70px));
    --dmst-gold: #f5d68f;
    --dmst-copper: #b87333;
    --dmst-amber: #e0a96a;
    --dmst-navy: #0a192f;
    --dmst-ease: cubic-bezier(.22, 1, .36, 1);
    overflow: clip;
}

.dmst-sec {
    --p: 1;
    --c: 0;
    position: relative;
    padding-block: var(--dmst-pad);
    background-color: var(--bg-primary);
    color: var(--text-primary);
}

.dmst-sec.section-meld {
    padding-block: var(--dmst-pad-wave);
}

/* ═══════════ پیوندها (فقط پیوندهای خود صفحه) ═══════════ */
.dmst-crumbs__link,
.dmst-crumbs__link:visited,
.dmst-link,
.dmst-link:visited {
    color: var(--accent-primary) !important;
    font-weight: 700;
    text-decoration: none;
}

.dmst-link {
    background-image: linear-gradient(currentColor, currentColor);
    background-size: 100% 1px;
    background-position: 0 100%;
    background-repeat: no-repeat;
}

/* ═══════════ مشترک ═══════════ */

/* ⚠ مقیاس تیتر سکشن مشترک قالب‌های کدی. */
.dmst-title {
    margin: 0 0 14px;
    font-size: clamp(22px, 2.6vw, 34px);
    line-height: 1.7;
    color: var(--text-primary);
    text-align: start;
}

.dmst-title--center,
.dmst-p--center {
    text-align: center;
}

.dmst-p {
    margin: 0 0 14px;
    font-size: 15px;
    line-height: 2.1;
    color: var(--text-secondary);
    text-align: justify;
}

.dmst-head {
    max-width: 920px;
    margin-block-end: clamp(28px, 4vw, 54px);
}

.dmst-head--center {
    margin-inline: auto;
}

.dmst-split {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    align-items: center;
    gap: clamp(28px, 5vw, 80px);
}

.dmst-split--rev > :last-child {
    order: -1;
}

.dmst-rv {
    opacity: 0;
    transform: translate3d(0, 34px, 0);
    transition: opacity .85s var(--dmst-ease), transform .85s var(--dmst-ease);
    transition-delay: calc(var(--dmst-i, 0) * 85ms);
}

.dmst-rv.is-in {
    opacity: 1;
    transform: none;
}

/* ═══════════ هیرو ═══════════ */

/* ⚠ فاصلهٔ استاندارد هیروهای کدی؛ پایین با موج، پس فرمول موج. بالای هیرو چیزی نیست: موج بالا خاموش. */
.dmst-hero.section-meld {
    padding-block: clamp(85px, 13vw, 190px) var(--dmst-pad-wave);
    overflow: hidden;
}

.dmst-hero.section-meld::before {
    display: none;
}

/* نور و شبکه فقط در نیمهٔ بالایی تا به لبهٔ پایین نرسند. */
.dmst-hero__grid {
    position: absolute;
    inset: 0 0 40%;
    background-image:
        radial-gradient(ellipse 45% 70% at 20% 0%, rgba(245, 214, 143, .12), transparent 100%),
        linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
    background-size: 100% 100%, 40px 40px, 40px 40px;
    -webkit-mask-image: linear-gradient(#000 50%, transparent);
    mask-image: linear-gradient(#000 50%, transparent);
    pointer-events: none;
}

.dmst-hero__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(28px, 5vw, 80px);
}

.dmst-crumbs {
    margin: 0 0 16px;
    font-size: 13px;
    color: var(--text-secondary);
}

.dmst-hero__title {
    margin: 0 0 18px;
    font-size: clamp(36px, 5.6vw, 80px);
    font-weight: 900;
    line-height: 1.3;
    color: #ffffff;
    text-align: start;
}

.dmst-hero__lead {
    margin: 0 0 28px;
    font-size: 15.5px;
    line-height: 2.2;
    color: var(--text-secondary);
    text-align: justify;
}

/* ⚠ ظرف دکمه‌های مغناطیسی داخل ردیف flex است تا هم‌اندازهٔ دکمه بماند (دام تمام‌عرض‌شدن ظرف). */
.dmst-hero__ctas {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
}

/* ── نقشهٔ فنی و برج ── */
.dmst-blueprint {
    position: relative;
    aspect-ratio: 1 / .95;
}

.dmst-blueprint__paper {
    position: absolute;
    inset: 4% 6%;
    border-radius: 26px;
    background-color: #0f2440;
    background-image:
        linear-gradient(rgba(245, 214, 143, .08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(245, 214, 143, .08) 1px, transparent 1px),
        linear-gradient(rgba(245, 214, 143, .04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(245, 214, 143, .04) 1px, transparent 1px);
    background-size: 60px 60px, 60px 60px, 12px 12px, 12px 12px;
    box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .95), inset 0 0 0 1px rgba(245, 214, 143, .2);
}

.dmst-blueprint__dim {
    position: absolute;
    border: 0 dashed rgba(245, 214, 143, .5);
}

.dmst-blueprint__dim--h {
    left: 24%;
    right: 24%;
    bottom: 12%;
    height: 14px;
    border-width: 0 1px 1px;
}

.dmst-blueprint__dim--v {
    top: 18%;
    bottom: 18%;
    right: 14%;
    width: 14px;
    border-width: 1px 1px 1px 0;
}

/* پنج بلوک: در یک حلقهٔ آرام، بلوک‌ها یکی‌یکی از بالا روی پی فرود می‌آیند، برج کامل مکث
   می‌کند و دوباره از نو. ⚠ حلقه‌ای است نه اسکرولی: هیرو در اولین نما باید کامل دیده شود و
   پیشرفت اسکرولِ هیرو در بارگذاری صفحه نیمه‌کاره است (برج نیمه‌ساخته و بلوک معلق دیده می‌شد). */
.dmst-tower {
    position: absolute;
    left: 50%;
    bottom: 18%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    width: 46%;
    margin-left: -23%;
}

.dmst-tower__block {
    --k: 0;
    display: block;
    height: clamp(20px, 2.6vw, 38px);
    border-radius: 10px;
    background-image: linear-gradient(160deg, rgba(245, 214, 143, .9), rgba(184, 115, 51, .9));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), 0 10px 20px -12px rgba(0, 0, 0, .9);
    animation: dmstDrop 7s var(--dmst-ease) infinite;
    animation-delay: calc(var(--k) * .45s);
}

@keyframes dmstDrop {
    0% { opacity: 0; transform: translate3d(0, -70px, 0); }
    10%, 82% { opacity: 1; transform: none; }
    92%, 100% { opacity: 0; transform: none; }
}

.dmst-tower__block--1 { --k: 0; width: 100%; }
.dmst-tower__block--2 { --k: 1; width: 88%; }
.dmst-tower__block--3 { --k: 2; width: 76%; }
.dmst-tower__block--4 { --k: 3; width: 62%; }
.dmst-tower__block--5 { --k: 4; width: 46%; background-image: linear-gradient(160deg, #fbe3a6, var(--dmst-copper)); box-shadow: 0 0 30px rgba(245, 214, 143, .5); }

.dmst-tower__base {
    display: block;
    width: 116%;
    height: 14px;
    margin-top: 2px;
    border-radius: 4px;
    background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, .25) 0 6px, rgba(255, 255, 255, .08) 6px 12px);
}

/* ── پرگار ──
   ⚠ طرح قبلی یک حلقه با دو خط بود که از بالا تاب می‌خورد و کمانش به اسکرول بسته بود (در
   هیرو نیمه‌کشیده می‌ماند). حالا پرگار کامل است و دور نوک سوزن می‌چرخد؛ کمان با همان
   زمان‌بندی کشیده می‌شود. هر دو حلقه‌ای‌اند، نه اسکرولی (قاعدهٔ هیرو). */
.dmst-compass {
    position: absolute;
    top: 8%;
    left: 12%;
    width: 30%;
    overflow: visible;
    fill: none;
    stroke: var(--dmst-gold);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dmst-compass__body {
    transform-box: view-box;
    transform-origin: 68px 172px;
    animation: dmstCompass 6s var(--dmst-ease) infinite;
}

.dmst-compass__grip {
    fill: var(--dmst-copper);
    stroke: none;
}

.dmst-compass__hinge {
    fill: #0f2440;
}

.dmst-compass__screw {
    fill: var(--dmst-gold);
    stroke: none;
}

.dmst-compass__leg {
    stroke-width: 5;
}

.dmst-compass__needle {
    stroke: #ffffff;
    stroke-width: 2;
}

.dmst-compass__pencil {
    fill: var(--dmst-copper);
    stroke: none;
}

.dmst-compass__lead {
    fill: #fbe3a6;
    stroke: none;
}

.dmst-compass__brace {
    stroke-width: 2;
    opacity: .6;
}

.dmst-compass__pin {
    fill: var(--dmst-gold);
    stroke: none;
}

.dmst-compass__arc {
    stroke: #fbe3a6;
    stroke-width: 2;
    stroke-dasharray: 1;
    animation: dmstArc 6s var(--dmst-ease) infinite;
}

@keyframes dmstCompass {
    0%, 8% { transform: rotate(0deg); }
    48%, 70% { transform: rotate(-40deg); }
    92%, 100% { transform: rotate(0deg); }
}

@keyframes dmstArc {
    0%, 8% { stroke-dashoffset: 1; opacity: 1; }
    48%, 70% { stroke-dashoffset: 0; opacity: 1; }
    88% { stroke-dashoffset: 0; opacity: 0; }
    100% { stroke-dashoffset: 1; opacity: 0; }
}

.dmst-hero__figure {
    margin: 0;
}

.dmst-hero__figure img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 26px;
}

.dmst-blueprint__flag {
    position: absolute;
    top: 14%;
    right: 20%;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-image: linear-gradient(150deg, #fbe3a6, var(--dmst-copper));
    box-shadow: 0 0 0 8px rgba(245, 214, 143, .12);
    animation: dmstPulse 2.6s ease-in-out infinite;
}

/* ⚠ هیرو در یک نمای لپ‌تاپ: عرض موکاپ از بودجهٔ ارتفاع پنجره (منهای فاصله‌های هیرو) و نسبت ابعادش. */
@media (min-width: 993px) {
    .dmst-hero__visual {
        --hero-h: calc(100vh - clamp(85px, 13vw, 190px) - var(--dmst-pad-wave) - 16px);
        --hero-h: calc(100svh - clamp(85px, 13vw, 190px) - var(--dmst-pad-wave) - 16px);
        width: min(100%, calc(var(--hero-h) / .95));
        justify-self: center;
    }
}

@media (min-width: 993px) and (max-height: 900px) {
    .dmst-hero__title {
        margin-bottom: 12px;
        font-size: clamp(34px, 4.4vw, 68px);
    }

    .dmst-hero__lead {
        margin-bottom: 20px;
        font-size: 14.5px;
        line-height: 2;
    }
}

/* ═══════════ پلن‌ها ═══════════ */

.dmst-plans__intro {
    max-width: 860px;
    margin: 0 auto clamp(30px, 4vw, 54px);
    text-align: center;
}

.dmst-plans__lead {
    margin: 0 0 12px;
    font-size: clamp(20px, 2.2vw, 28px);
    font-weight: 900;
    color: var(--text-primary);
}

.dmst-plans__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 400px));
    justify-content: center;
    align-items: center;
    gap: clamp(20px, 3vw, 40px);
}

.dmst-plan {
    --rx: 0;
    --ry: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    padding: clamp(26px, 3vw, 40px);
    overflow: hidden;
    border-radius: 30px;
    isolation: isolate;
    transition: box-shadow .4s ease, opacity .85s var(--dmst-ease), transform .85s var(--dmst-ease);
}

.dmst-plan--silver {
    background-image: linear-gradient(155deg, #ffffff 0%, #eef1f6 60%, #dfe4ec 100%);
    box-shadow: inset 0 0 0 1px #d8dde6, 0 30px 60px -40px rgba(10, 25, 47, .45);
}

.dmst-plan--gold {
    padding-block: clamp(34px, 4vw, 54px);
    background-color: var(--dmst-navy);
    background-image: radial-gradient(circle at 100% 0%, rgba(245, 214, 143, .28), transparent 50%), linear-gradient(160deg, #13305a, #081427);
    color: #ffffff;
    box-shadow: 0 0 0 1px rgba(245, 214, 143, .45), 0 40px 80px -36px rgba(10, 25, 47, .7);
}

/* برق فلزی که هر چند ثانیه از روی کارت رد می‌شود. */
.dmst-plan__sheen {
    position: absolute;
    inset-block: -20%;
    left: -40%;
    z-index: -1;
    width: 30%;
    background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, .55), transparent);
    transform: skewX(-18deg);
    animation: dmstSheen 5s ease-in-out infinite;
}

.dmst-plan--gold .dmst-plan__sheen {
    background-image: linear-gradient(90deg, transparent, rgba(245, 214, 143, .18), transparent);
    animation-delay: 1.4s;
}

.dmst-plan__medal {
    position: absolute;
    top: 22px;
    left: 22px;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background-image: conic-gradient(#ffffff, #b9c2cf, #ffffff, #9aa6b8, #ffffff);
    box-shadow: inset 0 0 0 5px rgba(255, 255, 255, .6), 0 8px 16px -8px rgba(10, 25, 47, .5);
    animation: dmstSpin 10s linear infinite;
}

.dmst-plan--gold .dmst-plan__medal {
    background-image: conic-gradient(#fbe3a6, var(--dmst-copper), #fbe3a6, #e0a96a, #fbe3a6);
    box-shadow: inset 0 0 0 5px rgba(255, 255, 255, .25), 0 0 26px rgba(245, 214, 143, .5);
}

.dmst-plan__name {
    margin: 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--dmst-navy);
}

.dmst-plan--gold .dmst-plan__name {
    color: var(--dmst-gold);
}

.dmst-plan__divider {
    display: block;
    width: 60px;
    height: 3px;
    margin: 14px 0;
    border-radius: 2px;
    background-color: #9aa6b8;
}

.dmst-plan--gold .dmst-plan__divider {
    background-image: linear-gradient(90deg, var(--dmst-gold), var(--dmst-copper));
}

.dmst-plan__price {
    margin: 0 0 6px;
    font-size: clamp(26px, 3vw, 38px);
    font-weight: 900;
    color: var(--dmst-navy);
}

.dmst-plan--gold .dmst-plan__price {
    color: #ffffff;
}

.dmst-plan__cap {
    margin: 0 0 14px;
    font-size: 14px;
    color: #5b6780;
}

.dmst-plan--gold .dmst-plan__cap {
    color: #cbd5e0;
}

.dmst-plan__list {
    display: grid;
    gap: 10px;
    margin: 0 0 26px;
    padding: 0;
    list-style: none;
}

.dmst-plan__li {
    position: relative;
    padding-inline-start: 30px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.8;
    color: var(--dmst-navy);
}

.dmst-plan--gold .dmst-plan__li {
    color: #ffffff;
}

.dmst-plan__li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: .3em;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    background-color: #9aa6b8;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 70% no-repeat, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 70% no-repeat exclude, linear-gradient(#000 0 0);
}

.dmst-plan--gold .dmst-plan__li::before {
    background-color: var(--dmst-gold);
}

/* دو بند اضافهٔ پلن طلایی با یک زمینهٔ درخشان برجسته می‌شوند. */
.dmst-plan__li--plus {
    margin-inline-start: -10px;
    padding: 4px 10px;
    padding-inline-start: 40px;
    border-radius: 10px;
    background-image: linear-gradient(90deg, rgba(245, 214, 143, .16), transparent);
}

.dmst-plan__li--plus::before {
    inset-inline-start: 10px;
    top: calc(.3em + 4px);
}

.dmst-plan__cta {
    align-self: flex-start;
    margin-top: auto;
}

.dmst-plan--gold .dmst-plan__cta {
    display: inline-flex;
}

/* ⚠ متن دکمهٔ درخشان از --text-primary سکشن خوانده می‌شود؛ سکشن روشن است (سرمه‌ای) ولی
   کارت طلایی تیره است، پس متن با زمینهٔ کارت یکی می‌شد. فقط رنگ متن داخل همین کارت. */
.dmst-plan--gold .btn-shine span {
    color: #ffffff;
}

@media (min-width: 993px) {
    .dmst-plans__row {
        perspective: 1400px;
    }

    .dmst-plan.dmst-rv.is-in,
    .dmst-plan:not(.dmst-rv) {
        transform: rotateX(calc(var(--ry) * -6deg)) rotateY(calc(var(--rx) * 8deg));
        transition: transform .2s ease-out, box-shadow .4s ease;
    }

    .dmst-plan--gold.dmst-rv.is-in,
    .dmst-plan--gold:not(.dmst-rv) {
        transform: translateY(-18px) rotateX(calc(var(--ry) * -6deg)) rotateY(calc(var(--rx) * 8deg));
    }
}

/* ═══════════ مراحل: برج ═══════════ */

.dmst-build__grid {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    align-items: start;
    gap: clamp(28px, 5vw, 80px);
}

.dmst-build__stage {
    position: sticky;
    top: 120px;
    display: grid;
    place-items: center;
}

.dmst-floors {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: min(100%, 320px);
    padding-top: 70px;
}

.dmst-floors__crane {
    position: absolute;
    top: 0;
    left: 50%;
    width: 2px;
    height: 60px;
    background-color: rgba(245, 214, 143, .5);
    transform-origin: top;
    animation: dmstSwing 4s ease-in-out infinite;
}

.dmst-floors__crane i {
    position: absolute;
    bottom: -10px;
    left: -9px;
    width: 20px;
    height: 12px;
    border: 2px solid var(--dmst-gold);
    border-top: 0;
    border-radius: 0 0 6px 6px;
}

.dmst-floor {
    --w: 100%;
    position: relative;
    display: grid;
    place-items: center;
    width: var(--w);
    height: 56px;
    border-radius: 12px;
    background-color: rgba(255, 255, 255, .04);
    box-shadow: inset 0 0 0 1px dashed rgba(245, 214, 143, .25), inset 0 0 0 1px rgba(245, 214, 143, .18);
    transition: background-color .5s ease, box-shadow .5s ease, transform .5s var(--dmst-ease);
}

.dmst-floor[data-n="5"] { --w: 60%; }
.dmst-floor[data-n="4"] { --w: 70%; }
.dmst-floor[data-n="3"] { --w: 80%; }
.dmst-floor[data-n="2"] { --w: 90%; }

.dmst-floor b {
    font-size: 22px;
    font-weight: 900;
    color: rgba(255, 255, 255, .25);
    transition: color .4s ease;
}

.dmst-floor.is-built {
    background-image: linear-gradient(160deg, rgba(245, 214, 143, .85), rgba(184, 115, 51, .85));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), 0 12px 24px -14px rgba(0, 0, 0, .9);
}

.dmst-floor.is-built b {
    color: var(--dmst-navy);
}

.dmst-floor.is-on {
    background-image: linear-gradient(160deg, #fbe3a6, var(--dmst-copper));
    box-shadow: 0 0 34px rgba(245, 214, 143, .55);
    transform: scale(1.04);
}

.dmst-floors__ground {
    display: block;
    width: 116%;
    height: 12px;
    border-radius: 4px;
    background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, .22) 0 6px, rgba(255, 255, 255, .06) 6px 12px);
}

.dmst-build__steps {
    display: flex;
    flex-direction: column;
    gap: clamp(18px, 4vh, 40px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.dmst-step {
    position: relative;
    padding: clamp(22px, 2.6vw, 34px);
    padding-inline-start: clamp(76px, 7vw, 100px);
    border-radius: 24px;
    background-color: var(--bg-secondary);
    box-shadow: inset 0 0 0 1px var(--border-color);
    opacity: .55;
    transition: opacity .45s ease, box-shadow .45s ease, background-color .45s ease;
}

.dmst-step.is-on {
    opacity: 1;
    background-color: #0e2340;
    box-shadow: inset 0 0 0 1px rgba(245, 214, 143, .45), 0 30px 60px -40px rgba(0, 0, 0, .9);
}

/* بدون اسکریپت همهٔ کارت‌ها کامل‌اند؛ کم‌رنگی فقط بعد از مسلح‌شدن. */
.dmst-build:not(.is-ready) .dmst-step {
    opacity: 1;
}

.dmst-step__num {
    position: absolute;
    inset-block-start: 22px;
    inset-inline-start: 20px;
    display: grid;
    place-items: center;
    width: clamp(40px, 4vw, 54px);
    height: clamp(40px, 4vw, 54px);
    margin: 0;
    border-radius: 14px;
    background-image: linear-gradient(150deg, #fbe3a6, var(--dmst-copper));
    font-size: 22px;
    font-weight: 900;
    color: var(--dmst-navy);
}

.dmst-step__title {
    margin: 0 0 8px;
    font-size: clamp(17px, 1.8vw, 21px);
    font-weight: 900;
    line-height: 1.8;
    color: var(--text-primary);
    text-align: start;
}

.dmst-step__text {
    margin: 0;
    font-size: 14.5px;
    line-height: 2.1;
    color: var(--text-secondary);
    text-align: justify;
}

.dmst-call {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-block-start: clamp(30px, 4vw, 56px);
    padding: clamp(20px, 2.6vw, 32px);
    border-radius: 24px;
    background-image: linear-gradient(90deg, rgba(245, 214, 143, .12), rgba(184, 115, 51, .06));
    box-shadow: inset 0 0 0 1px rgba(245, 214, 143, .3);
}

.dmst-call__text {
    margin: 0;
    font-size: clamp(16px, 1.8vw, 20px);
    font-weight: 800;
    color: #ffffff;
}

/* ═══════════ نمونه مایند مپ ═══════════ */

.dmst-mind__net {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.dmst-mind__edge {
    fill: none;
    stroke: rgba(184, 115, 51, .35);
    stroke-width: 2;
    stroke-dasharray: 1;
    stroke-dashoffset: calc(1 - var(--p));
    vector-effect: non-scaling-stroke;
}

.dmst-mind__node {
    fill: var(--dmst-gold);
    stroke: var(--dmst-copper);
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
    opacity: clamp(0, (var(--p) - .4) * 3, 1);
}

.dmst-shots {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(18px, 3vw, 40px);
    max-width: 1100px;
    margin-inline: auto;
}

.dmst-shot {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 24px;
    background-color: #ffffff;
    box-shadow: 0 0 0 6px #ffffff, 0 0 0 7px var(--border-color), 0 40px 70px -40px rgba(10, 25, 47, .55);
    transition: box-shadow .35s ease;
}

.dmst-shot img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform .8s var(--dmst-ease);
}

.dmst-shot:hover img,
.dmst-shot:focus-visible img {
    transform: scale(1.06);
}

.dmst-shot:hover,
.dmst-shot:focus-visible {
    outline: none;
    box-shadow: 0 0 0 6px #ffffff, 0 0 0 8px var(--dmst-copper), 0 40px 70px -36px rgba(10, 25, 47, .6);
}

.dmst-shot__zoom {
    position: absolute;
    bottom: 14px;
    left: 14px;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background-color: var(--dmst-navy);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f5d68f' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6'/%3E%3Cpath d='m20 20-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E");
    background-size: 22px;
    background-position: center;
    background-repeat: no-repeat;
    transition: transform .35s var(--dmst-ease);
}

.dmst-shot:hover .dmst-shot__zoom {
    transform: scale(1.12);
}

/* دو تصویر با اسکرول در جهت مخالف کمی جابه‌جا می‌شوند (فقط دسکتاپ). */
@media (min-width: 993px) {
    .dmst-shot--a { transform: translate3d(0, calc(var(--c) * 40px), 0) rotate(-1.5deg); }
    .dmst-shot--b { transform: translate3d(0, calc(var(--c) * -40px + 30px), 0) rotate(1.5deg); }
}

/* ── لایت‌باکس ── */
.dmst-lb {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: grid;
    place-items: center;
    padding: clamp(16px, 5vw, 70px);
}

.dmst-lb__backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background-color: rgba(5, 12, 24, .92);
    cursor: zoom-out;
}

.dmst-lb__stage {
    position: relative;
    z-index: 1;
    margin: 0;
    max-width: min(1200px, 100%);
    animation: dmstLbIn .35s var(--dmst-ease);
}

.dmst-lb__img {
    display: block;
    max-width: 100%;
    max-height: 82vh;
    border-radius: 16px;
    user-select: none;
    touch-action: pan-y;
}

.dmst-lb__count {
    margin-top: 14px;
    font-size: 14px;
    font-weight: 800;
    color: #ffffff;
    text-align: center;
}

.dmst-lb__btn {
    position: absolute;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    padding: 14px;
    border: 0;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, .1);
    color: #ffffff;
    cursor: pointer;
    transition: background-color .25s ease, color .25s ease;
}

.dmst-lb__btn:hover,
.dmst-lb__btn:focus-visible {
    background-color: var(--dmst-gold);
    color: var(--dmst-navy);
    outline: none;
}

.dmst-lb__btn svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dmst-lb__btn--close { top: 18px; left: 18px; }
.dmst-lb__btn--prev { top: 50%; right: 18px; margin-top: -26px; }
.dmst-lb__btn--next { top: 50%; left: 18px; margin-top: -26px; }

.dmst-lb-open,
.dmst-lb-open body {
    overflow: hidden;
}

/* ═══════════ هزینه: میله‌های تجربه و ریسک ═══════════ */

.dmst-bars {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 34px;
    width: 100%;
    max-width: 360px;
    height: 340px;
    justify-self: center;
    padding-bottom: 60px;
}

.dmst-bars__col {
    position: relative;
    width: 90px;
    height: 100%;
    overflow: hidden;
    border-radius: 18px 18px 8px 8px;
    background-color: rgba(255, 255, 255, .05);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}

.dmst-bars__fill {
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    height: 100%;
    border-radius: inherit;
    transform-origin: bottom;
}

.dmst-bars__col--xp .dmst-bars__fill {
    background-image: linear-gradient(0deg, var(--dmst-copper), #fbe3a6);
    transform: scaleY(calc(.2 + clamp(0, (var(--p) - .15) * 1.6, 1) * .75));
}

.dmst-bars__col--risk .dmst-bars__fill {
    background-image: linear-gradient(0deg, rgba(255, 255, 255, .25), rgba(255, 255, 255, .08));
    transform: scaleY(calc(.95 - clamp(0, (var(--p) - .15) * 1.6, 1) * .75));
}

.dmst-bars__icon {
    position: absolute;
    top: 14px;
    left: 50%;
    width: 30px;
    height: 30px;
    margin-left: -15px;
    background-color: #ffffff;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.dmst-bars__icon--up {
    background-color: var(--dmst-navy);
}

.dmst-bars__icon--down {
    transform: rotate(180deg);
    opacity: .6;
}

.dmst-bars__chip {
    position: absolute;
    bottom: 8px;
    width: 120px;
    height: 34px;
    border-radius: 18px;
}

.dmst-bars__chip--s {
    right: 10px;
    background-image: linear-gradient(90deg, #ffffff, #b9c2cf);
    opacity: .85;
}

.dmst-bars__chip--g {
    left: 10px;
    background-image: linear-gradient(90deg, #fbe3a6, var(--dmst-copper));
    animation: dmstPulse 2.6s ease-in-out infinite;
}

/* ═══════════ گام بعد: جاده ═══════════ */

.dmst-road__label {
    margin: 0 0 12px;
    font-size: 17px;
    font-weight: 800;
    color: var(--text-primary);
}

.dmst-road__cta {
    margin-block-start: 18px;
}

/* ⚠ کلاس موکاپ عمداً dmst-roadmap است نه dmst-road (نام خود سکشن)؛ هم‌نامی باعث شد سکشن
   ۱۹۶۵ پیکسل قد بکشد. */
.dmst-roadmap {
    position: relative;
    width: 100%;
    max-width: 380px;
    justify-self: center;
    aspect-ratio: 400 / 420;
}

.dmst-road__svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    fill: none;
}

.dmst-road__way {
    stroke: var(--dmst-navy);
    stroke-width: 34;
    stroke-linecap: round;
}

.dmst-road__dash {
    stroke: var(--dmst-gold);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 1;
    stroke-dashoffset: calc(1 - var(--p));
}

.dmst-road__stop {
    position: absolute;
    width: 22px;
    height: 22px;
    margin: -11px;
    border-radius: 50%;
    background-color: #ffffff;
    box-shadow: 0 0 0 5px var(--dmst-copper), 0 10px 20px -8px rgba(10, 25, 47, .6);
    opacity: clamp(.25, (var(--p) - var(--at)) * 6, 1);
}

.dmst-road__stop--1 { --at: .2; left: 50%; top: 97%; }
.dmst-road__stop--2 { --at: .35; left: 25%; top: 72%; }
.dmst-road__stop--3 { --at: .5; left: 67%; top: 38%; }
.dmst-road__stop--4 { --at: .65; left: 50%; top: 5%; box-shadow: 0 0 0 5px var(--dmst-gold), 0 0 26px rgba(245, 214, 143, .7); }

/* ═══════════ هزارتو ═══════════ */

.dmst-labyrinth {
    width: 100%;
    max-width: 380px;
    justify-self: center;
    padding: 20px;
    border-radius: 30px;
    background-color: #0e2340;
    box-shadow: inset 0 0 0 1px rgba(245, 214, 143, .2), 0 40px 70px -40px rgba(0, 0, 0, .9);
}

.dmst-labyrinth svg {
    display: block;
    width: 100%;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dmst-labyrinth__walls {
    stroke: rgba(255, 255, 255, .22);
    stroke-width: 6;
}

.dmst-labyrinth__route {
    stroke: var(--dmst-gold);
    stroke-width: 5;
    stroke-dasharray: 1;
    stroke-dashoffset: calc(1 - clamp(0, (var(--p) - .15) * 1.7, 1));
    filter: none;
}

.dmst-labyrinth__goal {
    fill: var(--dmst-copper);
    stroke: var(--dmst-gold);
    stroke-width: 3;
    opacity: clamp(.3, (var(--p) - .6) * 4, 1);
}

/* ═══════════ تختهٔ تاکتیک ═══════════ */

.dmst-board {
    width: 100%;
    max-width: 320px;
    justify-self: center;
    padding: 14px;
    border-radius: 28px;
    background-image: linear-gradient(160deg, #13305a, var(--dmst-navy));
    box-shadow: 0 40px 70px -40px rgba(10, 25, 47, .6);
}

.dmst-board svg {
    display: block;
    width: 100%;
    fill: none;
}

.dmst-board__line {
    stroke: rgba(255, 255, 255, .22);
    stroke-width: 2;
}

.dmst-board__pass {
    stroke: var(--dmst-gold);
    stroke-width: 3;
    stroke-dasharray: 1;
    stroke-dashoffset: calc(1 - clamp(0, (var(--p) - .15) * 1.6, 1));
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dmst-board__p {
    fill: var(--dmst-copper);
    stroke: #ffffff;
    stroke-width: 2;
}

.dmst-board__x {
    fill: rgba(255, 255, 255, .15);
    stroke: rgba(255, 255, 255, .35);
    stroke-width: 2;
}

.dmst-board__ball {
    fill: #ffffff;
    stroke: var(--dmst-gold);
    stroke-width: 3;
    opacity: clamp(0, (var(--p) - .6) * 4, 1);
}

/* ═══════════ اثر انگشت ═══════════ */

/* ⚠ آخرین سکشن: پایینش فوتر سایت است، موج پایین خاموش. */
.dmst-print.section-meld::after {
    display: none;
}

.dmst-finger {
    position: relative;
    width: 100%;
    max-width: 280px;
    justify-self: center;
    overflow: hidden;
    padding: 20px;
    border-radius: 40%;
    background-image: radial-gradient(circle, rgba(245, 214, 143, .12), transparent 70%);
}

.dmst-finger svg {
    display: block;
    width: 100%;
    fill: none;
    stroke: var(--dmst-gold);
    stroke-width: 4;
    stroke-linecap: round;
}

.dmst-finger__ridge {
    stroke-dasharray: 1;
    stroke-dashoffset: calc(1 - clamp(0, (var(--p) - .15) * 1.8, 1));
}

.dmst-finger__ridge:nth-child(2n) {
    stroke: var(--dmst-copper);
}

.dmst-finger__scan {
    position: absolute;
    inset-inline: 10%;
    top: 0;
    height: 3px;
    border-radius: 2px;
    background-color: var(--dmst-gold);
    box-shadow: 0 0 20px 4px rgba(245, 214, 143, .6);
    animation: dmstScan 3s ease-in-out infinite alternate;
}

/* ═══════════ کی‌فریم‌ها ═══════════ */

@keyframes dmstSwing { 0%, 100% { transform: rotate(-6deg); } 50% { transform: rotate(6deg); } }
@keyframes dmstPulse { 0%, 100% { box-shadow: 0 0 0 6px rgba(245, 214, 143, .14); } 50% { box-shadow: 0 0 0 14px rgba(245, 214, 143, 0); } }
@keyframes dmstSheen { 0%, 55% { left: -40%; } 100% { left: 140%; } }
@keyframes dmstSpin { to { transform: rotate(360deg); } }
@keyframes dmstScan { from { top: 8%; } to { top: 90%; } }
@keyframes dmstLbIn { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }

/* ═══════════ واکنش‌گرا ═══════════ */

@media (max-width: 992px) {
    .dmst-hero__inner,
    .dmst-split,
    .dmst-build__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .dmst-hero__visual {
        width: 100%;
        max-width: 480px;
        justify-self: center;
    }

    .dmst-split--rev > :last-child {
        order: 0;
    }

    .dmst-plans__row {
        grid-template-columns: minmax(0, 440px);
    }

    /* ساختمان روی تبلت و موبایل بالای کارت‌ها می‌ماند و چسبان است تا ساخته‌شدنش دیده شود. */
    .dmst-build__stage {
        top: 70px;
        z-index: 3;
        padding-block: 10px;
        background-color: var(--bg-primary);
    }

    .dmst-floors {
        flex-direction: row-reverse;
        align-items: flex-end;
        gap: 6px;
        width: 100%;
        padding-top: 0;
    }

    .dmst-floors__crane,
    .dmst-floors__ground {
        display: none;
    }

    .dmst-floor,
    .dmst-floor[data-n] {
        flex: 1;
        width: auto;
        height: 40px;
    }

    .dmst-floor b {
        font-size: 16px;
    }
}

@media (max-width: 600px) {
    .dmst-shots {
        grid-template-columns: minmax(0, 1fr);
    }

    .dmst-step {
        padding-inline-start: 22px;
        padding-block-start: 74px;
    }

    .dmst-bars {
        height: 260px;
    }

    .dmst-lb__btn--prev,
    .dmst-lb__btn--next {
        top: auto;
        bottom: 18px;
        margin-top: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dmst-main *,
    .dmst-main *::before,
    .dmst-main *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}
