/* =========================================================
   ATRIUMMALL PUBLIC DESIGN SYSTEM
   ========================================================= */

:root{
    --public-primary:#3fa57a;
    --public-primary-rgb:63, 165, 122;

    --public-primary-dark:#2f8f68;
    --public-primary-dark-rgb:47, 143, 104;

    --public-primary-deep:#247754;

    --public-primary-light:#49b48a;
    --public-primary-light-rgb:73, 180, 138;

    --public-brand-text:#215646;
    --public-brand-muted:#6f8b81;

    --public-text:#212529;
    --public-text-soft:#495057;
    --public-muted:#6c757d;

    --public-white:#ffffff;
    --public-surface:#ffffff;
    --public-surface-soft:#f7faf8;
    --public-surface-muted:#f9fbfa;

    --public-border:#e7eeea;
    --public-border-soft:#eef2f0;

    --public-control-soft:#eef2f5;
    --public-control-hover:#e3e8ec;

    --public-radius-sm:12px;
    --public-radius-md:16px;
    --public-radius-lg:22px;
    --public-radius-xl:24px;
    --public-radius-2xl:30px;
    --public-radius-pill:999px;

    --public-shadow-sm:0 8px 25px rgba(0,0,0,.05);
    --public-shadow-md:0 14px 40px rgba(24,65,51,.07);
    --public-shadow-lg:0 20px 50px rgba(24,65,51,.10);
    --public-shadow-xl:0 30px 80px rgba(24,65,51,.10);

    --public-transition-fast:.2s ease;
    --public-transition:.3s ease;

    --public-font-fa:"Vazirmatn", sans-serif;
    --public-font-latin:"Inter", Arial, sans-serif;
}

.public-app{
    min-height:100vh;

    color:var(--public-text);
    background:var(--public-white);
}

.public-main{
    min-width:0;
}

/* =========================================================
   FONTS / GLOBAL
   ========================================================= */

@font-face{
    font-family:"Vazirmatn";
    src:url("/static/fonts/Vazirmatn[wght].woff2") format("woff2");
    font-weight:100 900;
    font-display:swap;
}

html{
    scroll-behavior:smooth;
}

body{
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;

    font-family:var(--public-font-latin);
}

html[dir="rtl"] body{
    font-family:var(--public-font-fa);
}


/* =========================================================
   MAIN HERO
   ========================================================= */

.hero-section{
    min-height:90vh;

    padding:120px 0 70px;

    display:flex;
    align-items:center;

    background:var(--public-surface-soft);

    overflow-x:hidden;
}

.hero-section .container{
    position:relative;
    z-index:2;
}


.hero-title{
    margin:0;

    color:var(--public-text);

    font-size:52px;
    font-weight:900;

    letter-spacing:-2px;

    line-height:1.1;
}


.hero-subtitle{
    width:100%;
    max-width:600px;

    color:var(--public-muted);

    font-size:28px;

    line-height:1.6;
}


.hero-description{
    width:100%;
    max-width:620px;

    color:var(--public-muted);

    font-size:19px;

    line-height:2;
}


.hero-brand-en{
    display:inline-block;

    margin:10px 0 20px;

    color:var(--public-primary);

    font-family:"Montserrat", Arial, sans-serif;
    font-size:20px;
    font-weight:700;

    letter-spacing:4px;

    direction:ltr;
    unicode-bidi:embed;

    text-transform:uppercase;

    opacity:.9;
}


.hero-image-wrap{
    animation:heroFloat 5s ease-in-out infinite;
}


@keyframes heroFloat{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-10px);
    }

    100%{
        transform:translateY(0);
    }

}


.hero-image{
    display:block;

    width:100%;
    max-width:700px;

    border-radius:24px;

    box-shadow:
        0 25px 60px
        rgba(0,0,0,.12);

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        filter .35s ease;

    will-change:transform;

    backface-visibility:hidden;
}


.hero-image:hover{
    transform:scale(1.03);

    filter:brightness(1.03);

    box-shadow:
        0 35px 80px
        rgba(0,0,0,.18);
}


.hero-section .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-width:190px;
    min-height:56px;

    padding:.9rem 1.8rem;

    border-radius:12px;

    font-weight:600;

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        background-color .3s ease,
        color .3s ease;
}


.hero-section .btn-success:hover,
.hero-section .btn-outline-success:hover{
    transform:translateY(-3px);

    box-shadow:
        0 10px 25px
        rgba(0,0,0,.12);
}


.hero-section .badge{
    border-radius:30px;

    font-size:.9rem;
    font-weight:600;

    white-space:nowrap;
}


.hero-section .d-flex{
    gap:1rem;

    flex-wrap:wrap;
}


/* =========================================================
   HERO RTL
   ========================================================= */

html[dir="rtl"] .hero-section .col-lg-6:first-child{
    direction:rtl;

    text-align:right;
}


html[dir="rtl"] .hero-section .badge{
    margin-left:0;
    margin-right:0;
}


html[dir="rtl"] .hero-subtitle,
html[dir="rtl"] .hero-description{
    width:100%;

    margin-right:0;
}


html[dir="rtl"] .hero-section .d-flex{
    justify-content:flex-start !important;
}


/* =========================================================
   HERO RESPONSIVE
   ========================================================= */

@media (min-width:992px){

    .hero-brand-en{
        letter-spacing:8px;
    }

}


@media (max-width:992px){

    .hero-title{
        font-size:52px;
    }


    .hero-subtitle{
        font-size:22px;
    }


    .hero-description{
        font-size:17px;
    }

}


@media (max-width:768px){

    .hero-image{
        max-width:100%;

        margin-top:40px;
    }

}


@media (max-width:576px){

    .hero-title{
        font-size:42px;
    }


    .hero-section .btn{
        min-width:100%;
    }


    .hero-brand-en{
        font-size:18px;

        letter-spacing:3px;
    }

}


/* =========================================================
   GENERIC STAT CARD
   ========================================================= */

.stat-card{
    padding:35px;

    border-radius:20px;

    background:var(--public-surface);

    box-shadow:var(--public-shadow-sm);

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}


.stat-card:hover{
    transform:translateY(-8px);

    box-shadow:
        0 18px 45px
        rgba(0,0,0,.12);
}


.stat-card h2{
    margin-bottom:8px;
}


.stat-card p{
    margin:0;
}


/* =========================================================
   FEATURE CARD
   ========================================================= */

.feature-card{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:space-between;

    gap:20px;

    height:100%;

    padding:40px;

    overflow:hidden;

    border:1px solid transparent;
    border-radius:24px;

    background:var(--public-surface);

    color:inherit;

    text-align:center;
    text-decoration:none;

    cursor:pointer;

    box-shadow:
        0 8px 25px
        rgba(0,0,0,.05);

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        border-color .35s ease;
}


.feature-card:hover{
    border-color:
        rgba(var(--public-primary-rgb),.25);

    color:inherit;

    text-decoration:none;

    transform:translateY(-6px);

    box-shadow:
        0 25px 55px
        rgba(0,0,0,.12);
}


.feature-icon{
    position:relative;

    display:flex;
    align-items:center;
    justify-content:center;

    flex-shrink:0;

    width:90px;
    height:90px;

    margin:auto;
    margin-bottom:25px;

    overflow:hidden;

    border-radius:50%;

    background:#eaf8f1;

    color:var(--public-primary);

    font-size:42px;

    transform-origin:center;

    backface-visibility:hidden;

    user-select:none;

    transition:
        background .35s ease,
        color .35s ease,
        transform .35s ease,
        box-shadow .35s ease;
}


.feature-icon i{
    line-height:1;
}


.feature-card:hover .feature-icon{
    background:var(--public-primary);

    color:var(--public-white);

    transform:
        rotate(8deg)
        scale(1.1);

    box-shadow:
        0 12px 30px
        rgba(var(--public-primary-rgb),.35);
}


.feature-card h4{
    min-height:60px;

    margin-bottom:15px;

    display:flex;
    align-items:center;
    justify-content:center;

    font-weight:700;
}


.feature-card p{
    flex:1;

    margin-bottom:0;

    color:var(--public-muted);

    line-height:1.8;
}


/* =========================================================
   PUBLIC HEADER
   ========================================================= */

.am-header{
    position:fixed;

    top:20px;
    left:20px;
    right:20px;

    height:88px;

    z-index:9999;

    border:1px solid
        rgba(255,255,255,.6);

    border-radius:22px;

    background:
        rgba(255,255,255,.90);

    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);

    box-shadow:
        0 15px 40px
        rgba(0,0,0,.08);
}


/* =========================================================
   HEADER CONTAINER
   ========================================================= */

.am-container{
    display:flex;
    align-items:center;
    justify-content:space-between;

    height:100%;

    padding:0 32px;
}


/* =========================================================
   HEADER BRAND
   ========================================================= */

.am-brand{
    display:flex;
    align-items:center;

    gap:14px;

    flex-shrink:0;

    text-decoration:none;
}


.am-brand img{
    width:56px;
    height:56px;

    transition:
        transform .35s ease;
}


.am-brand:hover img{
    transform:
        rotate(-5deg)
        scale(1.08);
}


.am-brand span{
    color:var(--public-brand-text);

    font-family:var(--public-font-fa);

    font-size:2rem;
    font-weight:900;
}


.am-brand .am-brand__title{
    display:flex;
    align-items:baseline;

    gap:9px;

    white-space:nowrap;
}


.am-brand__title strong{
    font-size:inherit;
    font-weight:900;

    line-height:1;
}


.am-brand .am-brand__location{
    color:var(--public-brand-muted);

    font-size:.78rem;
    font-weight:800;

    line-height:1;
}


/* =========================================================
   DESKTOP NAVIGATION
   ========================================================= */

.am-menu{
    display:flex;
    align-items:center;

    gap:42px;
}


.am-menu a{
    position:relative;

    display:inline-flex;
    align-items:center;

    height:60px;

    color:#2f3a3d;

    font-size:17px;
    font-weight:700;

    text-decoration:none;

    transition:
        color .3s ease;
}


.am-menu a:hover,
.am-menu a.active{
    color:var(--public-primary-dark);
}


.am-menu a.active::after{
    content:"";

    position:absolute;

    left:8px;
    right:8px;
    bottom:6px;

    height:3px;

    border-radius:50px;

    background:var(--public-primary-dark);

    animation:
        menuActive .35s ease;
}


@keyframes menuActive{

    from{
        transform:scaleX(0);

        opacity:0;
    }

    to{
        transform:scaleX(1);

        opacity:1;
    }

}


/* =========================================================
   DESKTOP ACTIONS
   ========================================================= */

.am-actions{
    display:flex;
    align-items:center;

    gap:12px;

    direction:ltr;

    flex-shrink:0;
}


.am-btn{
    display:flex;
    align-items:center;
    justify-content:center;

    gap:8px;

    min-width:100px;
    height:48px;

    padding:0 24px;

    border-radius:14px;

    font-size:15px;
    font-weight:700;

    text-decoration:none;
}


.am-btn i{
    font-size:16px;

    line-height:1;
}


.am-btn-success{
    background:var(--public-primary-dark);

    color:var(--public-white);
}


.am-btn-success:hover{
    background:var(--public-primary-deep);

    color:var(--public-white);
}


.am-btn-light{
    background:var(--public-control-soft);

    color:#444;
}


.am-btn-light:hover{
    background:var(--public-control-hover);

    color:#222;
}


/* =========================================================
   MOBILE TOGGLE
   ========================================================= */

.am-mobile-controls{
    display:none;
    align-items:center;

    gap:10px;

    flex-shrink:0;
}


.am-pwa-install{
    display:none;
    align-items:center;
    justify-content:center;

    width:48px;
    height:48px;

    padding:0;

    border:
        1px solid
        rgba(var(--public-primary-dark-rgb), .18);
    border-radius:14px;

    background:#eef8f3;

    color:var(--public-primary-dark);

    box-shadow:
        0 8px 22px
        rgba(var(--public-primary-dark-rgb), .10);

    cursor:pointer;

    transition:
        transform var(--public-transition-fast),
        background var(--public-transition-fast),
        box-shadow var(--public-transition-fast);
}


.am-pwa-install[hidden]{
    display:none !important;
}


.am-pwa-install i{
    font-size:20px;

    line-height:1;
}


.am-pwa-install:hover{
    transform:translateY(-1px);

    background:#e4f4ec;

    box-shadow:
        0 11px 26px
        rgba(var(--public-primary-dark-rgb), .14);
}


.am-pwa-install:focus-visible,
.am-mobile-toggle:focus-visible{
    outline:
        3px solid
        rgba(var(--public-primary-rgb), .28);
    outline-offset:3px;
}

.am-mobile-toggle{
    display:none;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    gap:5px;

    width:48px;
    height:48px;

    padding:0;

    border:0;
    border-radius:14px;

    background:var(--public-primary-dark);

    cursor:pointer;
}


.am-mobile-toggle span{
    display:block;

    width:22px;
    height:2px;

    border-radius:10px;

    background:var(--public-surface);
}


/* =========================================================
   MOBILE MENU
   ========================================================= */

.am-mobile-menu{
    display:none;
}


/* =========================================================
   HEADER RTL
   ========================================================= */

html[dir="rtl"] .am-container{
    direction:rtl;
}


html[dir="rtl"] .am-menu{
    direction:rtl;
}


html[dir="rtl"] .am-brand{
    flex-direction:row;
}


html[dir="rtl"] .am-actions{
    direction:ltr;
}


/* =========================================================
   HEADER TABLET / MOBILE
   ========================================================= */

@media (max-width:992px){

    .am-header{
        top:12px;
        left:12px;
        right:12px;

        overflow:visible;
    }


    .am-container{
        display:flex;
        align-items:center;
        justify-content:space-between;

        padding:0 18px;

        overflow:visible;
    }


    .am-brand{
        margin:0;
    }


    .am-brand span{
        font-size:1.6rem;
    }


    .am-menu,
    .am-actions{
        display:none !important;
    }


    .am-mobile-toggle{
        display:flex;

        flex-shrink:0;
    }


    .am-mobile-controls{
        display:flex;
    }


    .am-pwa-install:not([hidden]){
        display:inline-flex;
    }


    .am-mobile-menu{
        position:absolute;

        top:95px;
        left:18px;
        right:18px;

        display:none;

        overflow:hidden;

        border-radius:18px;

        background:var(--public-surface);

        box-shadow:
            0 20px 45px
            rgba(0,0,0,.15);
    }


    .am-mobile-menu.show{
        display:block;

        max-height:
            calc(100vh - 130px);

        overflow-y:auto;

        -webkit-overflow-scrolling:touch;

        scrollbar-width:thin;

        scrollbar-color:
            var(--public-primary)
            transparent;
    }


    .am-mobile-menu::-webkit-scrollbar{
        width:6px;
    }


    .am-mobile-menu::-webkit-scrollbar-track{
        background:transparent;
    }


    .am-mobile-menu::-webkit-scrollbar-thumb{
        border-radius:20px;

        background:var(--public-primary);
    }


    .am-mobile-menu > a{
        display:flex;
        align-items:center;
        justify-content:center;

        height:56px;

        padding:0 16px;

        border-bottom:
            1px solid #f2f2f2;

        color:#333;

        font-weight:700;

        text-decoration:none;
    }


    .am-mobile-menu > a:hover{
        background:var(--public-surface-soft);

        color:var(--public-primary-dark);
    }


    .am-mobile-menu > a.active{
        background:#f0f8f4;

        color:var(--public-primary-dark);
    }


    .mobile-actions{
        display:grid;

        grid-template-columns:
            1fr 1fr;

        gap:8px;

        padding:10px 14px 14px;
    }


    .mobile-actions .mobile-btn{
        display:flex;
        align-items:center;
        justify-content:center;

        gap:8px;

        height:42px;

        padding:0 10px;

        border-radius:10px;

        background:var(--public-control-soft);

        color:#333;

        font-size:13px;
        font-weight:700;

        text-decoration:none;

        transition:
            background .25s ease,
            color .25s ease;
    }


    .mobile-actions .mobile-btn:hover{
        background:#e4eee9;

        color:var(--public-primary-dark);
    }

}


@media (max-width:576px){

    .am-brand .am-brand__title{
        gap:6px;
    }


    .am-brand .am-brand__location{
        font-size:.65rem;
    }

}


@media (min-width:993px) and (max-width:1350px){

    .am-container{
        padding-inline:20px;
    }


    .am-menu{
        gap:20px;
    }


    .am-menu a{
        font-size:15px;
    }


    .am-brand span{
        font-size:1.55rem;
    }


    .am-btn{
        min-width:86px;

        padding-inline:15px;
    }

}


/* =========================================================
   PUBLIC PAGE SECTIONS
   ========================================================= */

.public-section{
    position:relative;

    padding:80px 0;
}


.public-section--white{
    background:var(--public-surface);
}


.public-section--soft{
    background:var(--public-surface-soft);
}


.public-section-head{
    width:100%;
    max-width:780px;

    margin:0 auto 48px;

    text-align:center;
}


.section-title{
    margin:0 0 14px;
    padding:0;

    color:var(--public-text);

    font-size:
        clamp(30px, 3vw, 40px);

    font-weight:900;

    line-height:1.35;
}


.section-subtitle{
    max-width:680px;

    margin:0 auto;

    color:var(--public-muted);

    font-size:18px;

    line-height:1.9;
}


.technologies-section{
    padding-top:0;
}


@media (max-width:991.98px){

    .public-section{
        padding:65px 0;
    }


    .public-section-head{
        margin-bottom:38px;
    }

}


@media (max-width:575.98px){

    .public-section{
        padding:52px 0;
    }


    .public-section-head{
        margin-bottom:32px;
    }


    .section-title{
        font-size:28px;
    }


    .section-subtitle{
        font-size:16px;
    }

}


/* =========================================================
   PREMIUM FOOTER
   ========================================================= */

.am-footer{
    position:relative;

    margin-top:120px;

    padding:0 0 38px;

    overflow:hidden;

    color:var(--public-white);

    background:
        radial-gradient(
            circle at 20% 20%,
            rgba(var(--public-primary-light-rgb),.25),
            transparent 35%
        ),
        radial-gradient(
            circle at 80% 0%,
            rgba(var(--public-primary-dark-rgb),.25),
            transparent 35%
        ),
        linear-gradient(
            180deg,
            #17342c,
            #12231f
        );
}


/* =========================================================
   FOOTER WAVE
   ========================================================= */

.footer-wave{
    width:100%;

    line-height:0;
}


.footer-wave svg{
    display:block;

    width:100%;
    height:90px;
}


/* =========================================================
   FOOTER BRAND
   ========================================================= */

.footer-brand{
    display:flex;
    align-items:center;

    gap:18px;

    margin-bottom:24px;
}


.footer-brand img{
    display:block;

    width:76px;
    height:76px;

    object-fit:contain;

    flex-shrink:0;
}


.footer-brand h3{
    margin:0 0 4px;

    color:var(--public-white);

    font-size:30px;
    font-weight:900;

    line-height:1.2;
}


.footer-brand span{
    display:block;

    color:#98b8ac;

    font-size:14px;
    font-weight:500;

    direction:ltr;
}


.footer-text{
    max-width:420px;

    margin:0;

    color:#bdd0c8;

    font-size:15px;

    line-height:2;
}


/* =========================================================
   FOOTER TITLES
   ========================================================= */

.am-footer h5{
    margin-bottom:22px;

    color:var(--public-white);

    font-size:19px;
    font-weight:800;
}


/* =========================================================
   FOOTER LISTS
   ========================================================= */

.am-footer ul{
    margin:0;
    padding:0;

    list-style:none;
}


.am-footer li{
    margin-bottom:14px;
}


/* =========================================================
   FOOTER LINKS
   ========================================================= */

.am-footer ul a{
    position:relative;

    display:inline-block;

    color:#c7d5cf;

    text-decoration:none;

    transition:
        color .25s ease,
        transform .25s ease;
}


.am-footer ul a::after{
    content:"";

    position:absolute;

    right:0;
    bottom:-4px;

    width:0;
    height:2px;

    border-radius:20px;

    background:var(--public-primary-light);

    transition:
        width .3s ease;
}


.am-footer ul a:hover{
    color:var(--public-white);
}


.am-footer ul a:hover::after{
    width:100%;
}


/* =========================================================
   FOOTER CONTACT
   ========================================================= */

.footer-contact li{
    display:flex;
    align-items:center;

    gap:12px;

    color:#c7d5cf;
}


.footer-contact i{
    width:22px;

    color:var(--public-primary-light);

    font-size:18px;

    text-align:center;

    flex-shrink:0;
}


.footer-contact span,
.footer-contact a{
    color:#c7d5cf;
}


.footer-contact a:hover{
    color:var(--public-white);
}


/* =========================================================
   FOOTER SOCIAL
   ========================================================= */

.footer-social{
    display:flex;
    align-items:center;

    gap:12px;

    margin-top:28px;
}


.footer-social a{
    display:grid;

    place-items:center;

    width:46px;
    height:46px;

    flex:0 0 46px;

    padding:0;

    border:1px solid
        rgba(255,255,255,.10);

    border-radius:50%;

    background:
        rgba(255,255,255,.08);

    color:#b7c9c2;

    font-size:19px;

    line-height:1;

    text-decoration:none;

    cursor:pointer;

    transition:
        transform .28s ease,
        background .28s ease,
        border-color .28s ease,
        color .28s ease,
        box-shadow .28s ease;
}


.footer-social a i{
    display:grid;

    place-items:center;

    width:20px;
    height:20px;

    margin:0;
    padding:0;

    font-size:19px;

    line-height:1;

    pointer-events:none;
}


.footer-social a i::before{
    display:block;

    margin:0;
    padding:0;

    line-height:1;

    vertical-align:0 !important;

    transform:translateY(.5px);
}


.footer-social a::after{
    display:none !important;
}


.footer-social a.is-placeholder{
    opacity:1;

    color:#b7c9c2;
}


.footer-social a:hover,
.footer-social a.is-placeholder:hover{
    transform:translateY(-5px);

    border-color:var(--public-primary-light);

    background:var(--public-primary-dark);

    color:var(--public-white);

    box-shadow:
        0 12px 28px
        rgba(var(--public-primary-dark-rgb),.32);
}


.footer-social a[aria-label="Instagram"]:hover{
    border-color:#d94686;

    background:#d94686;

    color:var(--public-white);

    box-shadow:
        0 12px 28px
        rgba(217,70,134,.30);
}


.footer-social a[aria-label="Telegram"]:hover{
    border-color:#229ED9;

    background:#229ED9;

    color:var(--public-white);

    box-shadow:
        0 12px 28px
        rgba(34,158,217,.30);
}


.footer-social a[aria-label="LinkedIn"]:hover{
    border-color:#0A66C2;

    background:#0A66C2;

    color:var(--public-white);

    box-shadow:
        0 12px 28px
        rgba(10,102,194,.30);
}


.footer-social a[aria-label="GitHub"]:hover{
    border-color:var(--public-white);

    background:var(--public-surface);

    color:#172b24;

    box-shadow:
        0 12px 28px
        rgba(255,255,255,.18);
}


/* =========================================================
   FOOTER SEPARATOR
   ========================================================= */

.am-footer hr{
    margin:52px 0 28px;

    border:0;

    border-top:
        1px solid
        rgba(255,255,255,.10);

    opacity:1;
}


/* =========================================================
   FOOTER BOTTOM
   ========================================================= */

.footer-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:15px;

    color:#9db3ab;

    font-size:14px;
}


.footer-bottom p{
    margin:0;
}


.footer-bottom span{
    direction:ltr;

    text-align:left;
}


/* =========================================================
   BACK TO TOP
   ========================================================= */

#backToTop{
    position:fixed;

    right:28px;
    bottom:28px;

    display:flex;
    align-items:center;
    justify-content:center;

    width:52px;
    height:52px;

    padding:0;

    border:0;
    border-radius:50%;

    background:var(--public-primary-dark);

    color:var(--public-white);

    font-size:20px;

    cursor:pointer;

    box-shadow:
        0 12px 30px
        rgba(0,0,0,.20);

    z-index:9998;

    opacity:0;
    visibility:hidden;

    transform:
        translateY(15px)
        scale(.9);

    transition:
        opacity .3s ease,
        visibility .3s ease,
        transform .3s ease,
        background .3s ease;
}


#backToTop.show{
    opacity:1;
    visibility:visible;

    transform:
        translateY(0)
        scale(1);
}


#backToTop:hover{
    background:var(--public-primary-light);

    transform:
        translateY(-4px)
        scale(1.03);
}


#backToTop:focus-visible{
    outline:
        3px solid
        rgba(var(--public-primary-light-rgb),.35);

    outline-offset:4px;
}


/* =========================================================
   FOOTER RESPONSIVE
   ========================================================= */

@media (max-width:991.98px){

    .am-footer{
        margin-top:90px;
    }


    .footer-wave svg{
        height:70px;
    }


    .footer-brand img{
        width:68px;
        height:68px;
    }


    .footer-brand h3{
        font-size:26px;
    }


    .footer-text{
        max-width:none;
    }


    .footer-bottom{
        flex-direction:column;

        align-items:center;
        justify-content:center;

        text-align:center;
    }


    .footer-bottom span{
        text-align:center;
    }

}


@media (max-width:575.98px){

    .am-footer{
        margin-top:70px;

        padding-bottom:28px;
    }


    .footer-wave svg{
        height:52px;
    }


    .footer-brand{
        gap:13px;
    }


    .footer-brand img{
        width:60px;
        height:60px;
    }


    .footer-brand h3{
        font-size:23px;
    }


    .footer-brand span{
        font-size:12px;
    }


    .footer-social{
        gap:10px;
    }


    .footer-social a{
        width:42px;
        height:42px;

        flex:0 0 42px;

        font-size:18px;
    }


    .footer-social a i{
        width:19px;
        height:19px;

        font-size:18px;
    }


    .am-footer hr{
        margin:38px 0 24px;
    }


    #backToTop{
        right:18px;
        bottom:18px;

        width:46px;
        height:46px;

        font-size:18px;
    }

}


/* =========================================================
   INNER PUBLIC HERO
   ========================================================= */

.hero-inner{
    position:relative;

    min-height:auto;

    padding:168px 0 88px;

    overflow:hidden;

    background:
        radial-gradient(
            circle at 15% 20%,
            rgba(var(--public-primary-rgb),.08),
            transparent 32%
        ),
        radial-gradient(
            circle at 85% 35%,
            rgba(var(--public-primary-dark-rgb),.06),
            transparent 30%
        ),
        var(--public-surface-soft);
}


.hero-inner .container{
    position:relative;

    z-index:2;
}


.hero-inner-title{
    max-width:680px;

    margin-bottom:0;

    font-size:
        clamp(42px, 5vw, 58px);

    line-height:1.25;

    letter-spacing:-1.5px;
}


.hero-inner .hero-brand-en{
    margin:12px 0 18px;
}


.hero-inner .hero-subtitle{
    max-width:610px;

    margin-bottom:0;

    font-size:25px;

    line-height:1.7;
}


.hero-inner .hero-description{
    max-width:640px;

    margin-bottom:14px;

    font-size:18px;

    line-height:2;
}


.hero-inner .hero-description:last-child{
    margin-bottom:0;
}


/* =========================================================
   INNER HERO BADGE
   ========================================================= */

.hero-badge{
    display:inline-flex;
    align-items:center;

    gap:.6rem;

    margin-bottom:20px !important;

    padding:.72rem 1.25rem !important;

    border:0;
    border-radius:999px;

    background:
        linear-gradient(
            135deg,
            var(--public-primary-light),
            var(--public-primary-dark)
        );

    color:var(--public-white);

    font-size:.92rem;
    font-weight:700;

    letter-spacing:.2px;

    box-shadow:
        0 10px 28px
        rgba(var(--public-primary-rgb),.24);

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}


.hero-badge::before{
    content:"";

    display:block;

    width:8px;
    height:8px;

    border-radius:50%;

    background:var(--public-surface);

    flex-shrink:0;
}


.hero-badge:hover{
    transform:translateY(-2px);

    box-shadow:
        0 15px 35px
        rgba(var(--public-primary-rgb),.32);
}


/* =========================================================
   INNER HERO IMAGE
   ========================================================= */

.hero-inner .hero-image-wrap{
    display:flex;
    align-items:center;
    justify-content:center;
}


.hero-inner .hero-image{
    width:100%;
    max-width:620px;

    margin:0 auto;

    border-radius:26px;

    box-shadow:
        0 26px 65px
        rgba(26,64,52,.12);
}


/* =========================================================
   INNER HERO RESPONSIVE
   ========================================================= */

@media (max-width:991.98px){

    .hero-inner{
        padding:145px 0 70px;
    }


    .hero-inner-title{
        max-width:none;

        font-size:44px;
    }


    .hero-inner .hero-subtitle{
        max-width:none;

        font-size:22px;
    }


    .hero-inner .hero-description{
        max-width:none;

        font-size:17px;
    }


    .hero-inner .hero-image{
        max-width:560px;
    }

}


@media (max-width:575.98px){

    .hero-inner{
        padding:130px 0 55px;
    }


    .hero-inner-title{
        font-size:36px;

        letter-spacing:-1px;
    }


    .hero-inner .hero-subtitle{
        font-size:19px;

        line-height:1.8;
    }


    .hero-inner .hero-description{
        font-size:16px;

        line-height:1.9;
    }


    .hero-badge{
        white-space:normal;

        text-align:center;

        font-size:.82rem;
    }


    .hero-inner .hero-image-wrap{
        margin-top:32px !important;
    }

}


/* =========================================================
   PRICING
   ========================================================= */

.pricing-section{
    background:var(--public-surface);
}


.pricing-card{
    position:relative;

    display:flex;
    flex-direction:column;

    height:100%;

    padding:38px;

    overflow:hidden;

    border:1px solid var(--public-border);
    border-radius:24px;

    background:var(--public-surface);

    box-shadow:
        0 12px 35px
        rgba(0,0,0,.055);

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;
}


.pricing-card:hover{
    transform:translateY(-8px);

    border-color:
        rgba(var(--public-primary-rgb),.25);

    box-shadow:
        0 26px 60px
        rgba(0,0,0,.10);
}


/* =========================================================
   FEATURED PLAN
   ========================================================= */

.pricing-featured{
    border:2px solid var(--public-primary);

    background:
        linear-gradient(
            180deg,
            #fff,
            #f5fcf9
        );

    transform:translateY(-10px);

    box-shadow:
        0 20px 50px
        rgba(var(--public-primary-dark-rgb),.12);
}


.pricing-featured:hover{
    transform:translateY(-16px);
}


.pricing-badge{
    position:absolute;

    top:18px;

    inset-inline-end:18px;

    padding:6px 14px;

    border-radius:50px;

    background:var(--public-primary);

    color:var(--public-white);

    font-size:.8rem;
    font-weight:700;
}


/* =========================================================
   PRICING HEADER
   ========================================================= */

.pricing-header{
    padding-top:8px;
}


.pricing-header h3{
    margin:0 0 8px;

    color:var(--public-text);

    font-size:32px;
    font-weight:900;
}


.pricing-header p{
    margin:0;

    color:var(--public-muted);

    line-height:1.7;
}


/* =========================================================
   PRICE
   ========================================================= */

.pricing-price{
    margin:30px 0;
}


.price{
    display:block;

    color:var(--public-primary-dark);

    font-size:
        clamp(36px, 4vw, 48px);

    font-weight:900;

    line-height:1.3;
}


.pricing-price small{
    display:block;

    margin-top:5px;

    color:var(--public-muted);
}


/* =========================================================
   PRICING FEATURES
   ========================================================= */

.pricing-list{
    flex:1;

    margin:0 0 30px;

    padding:0;

    list-style:none;
}


.pricing-list li{
    display:flex;
    align-items:center;

    gap:11px;

    padding:12px 0;

    border-bottom:
        1px solid var(--public-border-soft);

    color:#495057;

    line-height:1.6;
}


.pricing-list li:last-child{
    border-bottom:0;
}


.pricing-list i{
    color:var(--public-primary);

    flex-shrink:0;
}


.pricing-card > .btn{
    display:flex;
    align-items:center;
    justify-content:center;

    min-height:48px;

    margin-top:auto;

    border-radius:12px;

    font-weight:700;
}


/* =========================================================
   COMPARISON TABLE
   ========================================================= */

.comparison-section{
    overflow:hidden;
}


.comparison-table{
    margin:0;

    overflow:hidden;

    border:1px solid var(--public-border);
    border-radius:18px;

    background:var(--public-surface);

    box-shadow:
        0 10px 35px
        rgba(0,0,0,.05);
}


.comparison-table th{
    padding:18px;

    border-color:
        rgba(255,255,255,.12);

    background:var(--public-primary-dark);

    color:var(--public-white);

    text-align:center;

    font-weight:800;
}


.comparison-table td{
    padding:18px;

    border-color:var(--public-border);

    text-align:center;

    vertical-align:middle;
}


.comparison-table tbody tr{
    transition:
        background .2s ease;
}


.comparison-table tbody tr:hover{
    background:var(--public-surface-soft);
}


/* =========================================================
   FAQ
   ========================================================= */

.faq-section .accordion{
    max-width:900px;

    margin:0 auto;
}


.faq-section .accordion-item{
    margin-bottom:14px;

    overflow:hidden;

    border:1px solid var(--public-border);
    border-radius:16px;

    background:var(--public-surface);

    box-shadow:
        0 8px 22px
        rgba(0,0,0,.045);
}


.faq-section .accordion-button{
    padding:20px 22px;

    background:var(--public-surface);

    color:#27312e;

    font-weight:700;

    box-shadow:none;
}


.faq-section .accordion-button:not(.collapsed){
    background:var(--public-primary);

    color:var(--public-white);

    box-shadow:none;
}


.faq-section .accordion-button:focus{
    border-color:transparent;

    box-shadow:none;
}


.faq-section .accordion-body{
    padding:22px;

    color:#5f6c67;

    line-height:2;
}


/* =========================================================
   PUBLIC CTA
   ========================================================= */

.pricing-cta{
    padding:85px 0;
}


.cta-box{
    position:relative;

    overflow:hidden;

    padding:68px 40px;

    border-radius:30px;

    background:
        linear-gradient(
            135deg,
            var(--public-primary),
            var(--public-primary-dark)
        );

    color:var(--public-white);

    text-align:center;

    box-shadow:
        0 28px 70px
        rgba(var(--public-primary-rgb),.26);
}


.cta-box::before{
    content:"";

    position:absolute;

    top:-120px;

    inset-inline-start:-80px;

    width:240px;
    height:240px;

    border-radius:50%;

    background:
        rgba(255,255,255,.07);
}


.cta-box::after{
    content:"";

    position:absolute;

    bottom:-100px;

    inset-inline-end:-50px;

    width:180px;
    height:180px;

    border-radius:50%;

    background:
        rgba(255,255,255,.06);
}


.cta-box > *{
    position:relative;

    z-index:1;
}


.cta-box h2{
    margin:0 0 16px;

    font-size:
        clamp(32px, 4vw, 46px);

    font-weight:900;
}


.cta-box p{
    max-width:680px;

    margin:0 auto;

    font-size:19px;

    line-height:1.8;

    opacity:.92;
}


.cta-box .btn{
    min-width:190px;

    margin-top:12px;

    border-radius:12px;

    font-weight:700;
}


/* =========================================================
   PUBLIC INNER CARDS
   ========================================================= */

.public-section .feature-card{
    cursor:default;
}


.public-section .stat-card{
    height:100%;
}

/* =========================================================
   CONTACT INFO CARDS
   ========================================================= */

.contact-info-section{
    padding-top:72px;
    padding-bottom:72px;
}


.contact-info-grid{
    display:grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:24px;
}


/* =========================================================
   CONTACT INFO CARD
   ========================================================= */

.contact-info-card{
    position:relative;

    display:flex;
    align-items:center;

    gap:20px;

    min-width:0;
    min-height:132px;

    padding:26px 28px;

    overflow:hidden;

    border:
        1px solid
        var(--public-border);

    border-radius:22px;

    background:var(--public-surface);

    box-shadow:
        0 10px 32px
        rgba(24,65,51,.055);

    transition:
        transform .3s ease,
        border-color .3s ease,
        box-shadow .3s ease,
        background .3s ease;
}


/*
 * Decorative glow
 */

.contact-info-card::before{
    content:"";

    position:absolute;

    top:-55px;

    inset-inline-end:-55px;

    width:120px;
    height:120px;

    border-radius:50%;

    background:
        rgba(var(--public-primary-rgb),.065);

    pointer-events:none;

    transition:
        transform .35s ease,
        background .35s ease;
}


.contact-info-card:hover{
    transform:translateY(-5px);

    border-color:
        rgba(var(--public-primary-rgb),.30);

    background:var(--public-surface);

    box-shadow:
        0 20px 48px
        rgba(24,65,51,.10);
}


.contact-info-card:hover::before{
    transform:scale(1.25);

    background:
        rgba(var(--public-primary-rgb),.10);
}


/* =========================================================
   CONTACT INFO ICON
   ========================================================= */

.contact-info-icon{
    position:relative;

    z-index:1;

    display:grid;
    place-items:center;

    width:64px;
    height:64px;

    flex:0 0 64px;

    border-radius:18px;

    background:#edf8f3;

    color:var(--public-primary);

    font-size:27px;

    box-shadow:
        inset
        0 0 0 1px
        rgba(var(--public-primary-rgb),.08);

    transition:
        transform .3s ease,
        background .3s ease,
        color .3s ease,
        box-shadow .3s ease;
}


.contact-info-icon i{
    display:grid;
    place-items:center;

    width:30px;
    height:30px;

    margin:0;

    line-height:1;
}


.contact-info-icon i::before{
    display:block;

    margin:0;

    line-height:1;

    vertical-align:0 !important;
}


.contact-info-card:hover .contact-info-icon{
    transform:
        rotate(-4deg)
        scale(1.06);

    background:var(--public-primary);

    color:var(--public-white);

    box-shadow:
        0 10px 25px
        rgba(var(--public-primary-rgb),.28);
}


/* =========================================================
   CONTACT INFO CONTENT
   ========================================================= */

.contact-info-content{
    position:relative;

    z-index:1;

    min-width:0;

    flex:1;
}


.contact-info-label{
    display:block;

    margin-bottom:7px;

    color:#71827b;

    font-size:13px;
    font-weight:700;
}


.contact-info-value{
    min-width:0;

    color:#26352f;

    font-size:16px;
    font-weight:800;

    line-height:1.8;

    overflow-wrap:anywhere;
}


.contact-info-value a{
    color:#26352f;

    text-decoration:none;

    transition:
        color .25s ease;
}


.contact-info-value a:hover{
    color:var(--public-primary-dark);
}


/* =========================================================
   CONTACT INFO RTL / LTR
   ========================================================= */

html[dir="rtl"] .contact-info-card{
    text-align:right;
}


.contact-info-value a[dir="ltr"]{
    display:inline-block;

    direction:ltr;

    unicode-bidi:embed;
}


/* =========================================================
   CONTACT INFO RESPONSIVE
   ========================================================= */

@media (max-width:991.98px){

    .contact-info-section{
        padding-top:60px;
        padding-bottom:60px;
    }


    .contact-info-grid{
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    .contact-info-card:last-child{
        grid-column:1 / -1;
    }

}


@media (max-width:575.98px){

    .contact-info-section{
        padding-top:48px;
        padding-bottom:48px;
    }


    .contact-info-grid{
        grid-template-columns:1fr;

        gap:16px;
    }


    .contact-info-card,
    .contact-info-card:last-child{
        grid-column:auto;
    }


    .contact-info-card{
        min-height:112px;

        gap:16px;

        padding:20px;

        border-radius:18px;
    }


    .contact-info-icon{
        width:56px;
        height:56px;

        flex-basis:56px;

        border-radius:16px;

        font-size:24px;
    }


    .contact-info-label{
        font-size:12px;
    }


    .contact-info-value{
        font-size:15px;
    }

}

/* =========================================================
   CONTACT LAYOUT
   ========================================================= */

.contact-main-row{
    --bs-gutter-x:28px;
    --bs-gutter-y:28px;

    align-items:stretch;
}


.contact-main-row > [class*="col-"]{
    display:flex;
}


.contact-panel{
    position:relative;

    display:flex;
    flex-direction:column;

    width:100%;
    height:100%;
    min-width:0;

    padding:38px;

    overflow:hidden;

    border:1px solid var(--public-border);
    border-radius:24px;

    background:var(--public-surface);

    box-shadow:
        0 14px 40px
        rgba(24,65,51,.07);

    transition:
        border-color .25s ease,
        box-shadow .25s ease;
}


/*
 * contact-panel معمولاً همزمان stat-card هم هست.
 * این rule مانع بالا پریدن فرم یا نقشه در hover می‌شود.
 */

.contact-panel:hover{
    transform:none;

    box-shadow:
        0 14px 40px
        rgba(24,65,51,.07);
}


.contact-panel--form{
    border-top:
        3px solid
        rgba(var(--public-primary-rgb),.75);
}


.contact-panel--map{
    border-top:
        3px solid
        rgba(var(--public-primary-rgb),.35);
}


/* =========================================================
   CONTACT PANEL TITLE
   ========================================================= */

.contact-panel-title{
    position:relative;

    flex-shrink:0;

    margin:0 0 32px;

    padding-bottom:18px;

    color:#202725;

    font-size:30px;
    font-weight:900;

    line-height:1.4;

    text-align:center;
}


.contact-panel-title::after{
    content:"";

    position:absolute;

    left:50%;
    bottom:0;

    width:44px;
    height:3px;

    border-radius:50px;

    background:var(--public-primary);

    transform:
        translateX(-50%);
}


/* =========================================================
   CONTACT FORM
   ========================================================= */

.contact-form{
    display:flex;
    flex-direction:column;

    flex:1;

    width:100%;
    min-height:0;

    margin:0;
    padding:0;
}


.contact-field{
    position:relative;

    margin-bottom:22px;
}


.contact-field:last-of-type{
    margin-bottom:0;
}


.contact-label{
    display:flex;
    align-items:center;

    gap:8px;

    margin-bottom:9px;

    color:#30463e;

    font-size:14px;
    font-weight:800;
}


.contact-label i{
    color:var(--public-primary);

    font-size:16px;
}


/* =========================================================
   CONTACT INPUTS
   ========================================================= */

.contact-input{
    width:100%;

    min-height:52px;

    padding:0 17px;

    border:
        1px solid
        #dce7e2 !important;

    border-radius:
        13px !important;

    outline:0;

    background:
        var(--public-surface-muted) !important;

    color:
        #24342e !important;

    font-family:var(--public-font-fa);

    font-size:15px;

    box-shadow:none !important;

    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease;
}


.contact-input::placeholder{
    color:#9aa9a3;

    opacity:1;
}


.contact-input:hover{
    border-color:
        #bdd6cb !important;

    background:
        #fff !important;
}


.contact-input:focus{
    border-color:
        var(--public-primary) !important;

    background:
        #fff !important;

    box-shadow:
        0 0 0 4px
        rgba(var(--public-primary-rgb),.10)
        !important;
}


/* =========================================================
   CONTACT TEXTAREA
   ========================================================= */

.contact-textarea{
    min-height:175px;

    padding:15px 17px;

    line-height:1.9;

    resize:vertical;
}


/* =========================================================
   CHROME AUTOFILL
   ========================================================= */

.contact-input:-webkit-autofill,
.contact-input:-webkit-autofill:hover,
.contact-input:-webkit-autofill:focus,
.contact-input:-webkit-autofill:active{
    -webkit-text-fill-color:
        #24342e !important;

    -webkit-box-shadow:
        0 0 0 1000px
        var(--public-surface-muted)
        inset !important;

    box-shadow:
        0 0 0 1000px
        var(--public-surface-muted)
        inset !important;

    transition:
        background-color
        9999s
        ease-out
        0s;
}


/* =========================================================
   CONTACT ERRORS
   ========================================================= */

.contact-error{
    display:flex;
    align-items:center;

    gap:6px;

    margin-top:7px;

    color:#c84c4c;

    font-size:13px;
    font-weight:600;
}


.contact-error i{
    flex-shrink:0;
}


/* =========================================================
   CONTACT ALERTS
   ========================================================= */

.contact-alert{
    display:flex;
    align-items:flex-start;

    gap:10px;

    margin-bottom:25px;

    padding:15px 17px;

    border-radius:13px;

    font-size:14px;
    font-weight:600;

    line-height:1.8;
}


.contact-alert i{
    margin-top:3px;

    flex-shrink:0;
}


.contact-alert--success{
    border:
        1px solid
        #cde9dd;

    background:#edf9f4;

    color:#237451;
}


.contact-alert--error{
    border:
        1px solid
        #f1cece;

    background:#fff2f2;

    color:#b23d3d;
}


/* =========================================================
   CONTACT SUBMIT
   ========================================================= */

.contact-form-actions{
    display:flex;
    align-items:center;
    justify-content:flex-start;

    margin-top:auto;

    padding-top:28px;
}


.contact-submit{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:10px;

    min-width:190px;
    height:52px;

    padding:0 28px;

    border:0;
    border-radius:13px;

    background:
        linear-gradient(
            135deg,
            var(--public-primary-light),
            var(--public-primary-dark)
        );

    color:var(--public-white);

    font-family:var(--public-font-fa);

    font-size:15px;
    font-weight:800;

    cursor:pointer;

    box-shadow:
        0 12px 25px
        rgba(var(--public-primary-dark-rgb),.22);

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}


.contact-submit i{
    font-size:18px;
}


.contact-submit:hover{
    transform:
        translateY(-2px);

    color:var(--public-white);

    box-shadow:
        0 16px 32px
        rgba(var(--public-primary-dark-rgb),.30);
}


.contact-submit:active{
    transform:translateY(0);
}


.contact-submit:focus-visible{
    outline:
        3px solid
        rgba(var(--public-primary-rgb),.25);

    outline-offset:4px;
}


/* =========================================================
   CONTACT MAP
   ========================================================= */

.contact-map{
    position:relative;

    flex:1;

    width:100%;
    min-height:440px;

    overflow:hidden;

    border-radius:18px;

    background:#edf3f0;
}


.contact-map iframe{
    position:absolute;

    inset:0;

    display:block;

    width:100%;
    height:100%;

    border:0;

    border-radius:inherit;
}


/* =========================================================
   CONTACT LINKS
   ========================================================= */

.contact-panel a{
    color:var(--public-primary-dark);

    text-decoration:none;

    transition:
        color .2s ease;
}


.contact-panel a:hover{
    color:var(--public-primary-deep);
}


/* =========================================================
   CONTACT RESPONSIVE
   ========================================================= */

@media (max-width:991.98px){

    .contact-main-row{
        --bs-gutter-y:24px;
    }


    .contact-main-row > [class*="col-"]{
        display:block;
    }


    .contact-panel{
        height:auto;

        padding:32px;
    }


    .contact-panel-title{
        margin-bottom:28px;

        font-size:28px;
    }


    .contact-form-actions{
        margin-top:0;
    }


    .contact-map{
        min-height:400px;
    }

}


@media (max-width:575.98px){

    .contact-panel{
        padding:28px 20px;

        border-radius:20px;
    }


    .contact-panel-title{
        margin-bottom:25px;

        padding-bottom:15px;

        font-size:25px;
    }


    .contact-field{
        margin-bottom:20px;
    }


    .contact-input{
        min-height:50px;
    }


    .contact-textarea{
        min-height:155px;
    }


    .contact-form-actions{
        padding-top:24px;
    }


    .contact-submit{
        width:100%;

        min-width:0;
    }


    .contact-map{
        min-height:340px;

        border-radius:15px;
    }

}


/* =========================================================
   PRICING RESPONSIVE
   ========================================================= */

@media (max-width:991.98px){

    .pricing-featured{
        transform:none;
    }


    .pricing-featured:hover{
        transform:translateY(-8px);
    }


    .pricing-card{
        padding:32px;
    }


    .pricing-cta{
        padding:65px 0;
    }


    .cta-box{
        padding:50px 28px;
    }

}


@media (max-width:575.98px){

    .pricing-card{
        padding:30px 24px;
    }


    .pricing-header h3{
        font-size:28px;
    }


    .pricing-price{
        margin:25px 0;
    }


    .price{
        font-size:36px;
    }


    .comparison-table{
        min-width:680px;
    }


    .pricing-cta{
        padding:50px 0;
    }


    .cta-box{
        padding:42px 20px;

        border-radius:24px;
    }


    .cta-box p{
        font-size:17px;
    }


    .cta-box .btn{
        width:100%;

        min-width:0;

        margin-inline:0 !important;
    }

}

/* =========================================================
   COMING SOON
   ========================================================= */

.coming-soon-page{
    position:relative;

    min-height:100vh;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:
        155px
        20px
        80px;

    overflow:hidden;

    background:
        radial-gradient(
            circle at 20% 20%,
            rgba(var(--public-primary-rgb),.12),
            transparent 32%
        ),
        radial-gradient(
            circle at 80% 75%,
            rgba(var(--public-primary-dark-rgb),.08),
            transparent 30%
        ),
        var(--public-surface-soft);
}


.coming-soon-card{
    position:relative;

    width:100%;
    max-width:760px;

    margin:0 auto;

    padding:
        65px
        55px;

    overflow:hidden;

    border:
        1px solid
        rgba(var(--public-primary-rgb),.15);

    border-radius:32px;

    background:
        rgba(255,255,255,.92);

    text-align:center;

    box-shadow:
        0 30px 80px
        rgba(24,65,51,.10);

    backdrop-filter:
        blur(16px);

    -webkit-backdrop-filter:
        blur(16px);
}


.coming-soon-card::before{
    content:"";

    position:absolute;

    top:-100px;
    right:-100px;

    width:230px;
    height:230px;

    border-radius:50%;

    background:
        rgba(var(--public-primary-rgb),.07);

    pointer-events:none;
}


.coming-soon-card::after{
    content:"";

    position:absolute;

    bottom:-120px;
    left:-100px;

    width:260px;
    height:260px;

    border-radius:50%;

    background:
        rgba(var(--public-primary-rgb),.05);

    pointer-events:none;
}


.coming-soon-icon{
    position:relative;

    z-index:1;

    display:grid;
    place-items:center;

    width:92px;
    height:92px;

    margin:
        0
        auto
        25px;

    border-radius:26px;

    background:
        linear-gradient(
            135deg,
            var(--public-primary-light),
            var(--public-primary-dark)
        );

    color:var(--public-white);

    font-size:42px;

    box-shadow:
        0 18px 38px
        rgba(var(--public-primary-dark-rgb),.25);
}


.coming-soon-icon i{
    line-height:1;
}


.coming-soon-badge{
    position:relative;

    z-index:1;

    display:inline-block;

    margin-bottom:18px;

    color:var(--public-primary);

    font-family:
        "Montserrat",
        Arial,
        sans-serif;

    font-size:15px;
    font-weight:800;

    letter-spacing:5px;

    direction:ltr;

    text-transform:uppercase;
}


.coming-soon-card h1{
    position:relative;

    z-index:1;

    margin:
        0
        0
        6px;

    color:#1f2d28;

    font-family:
        "Inter",
        Arial,
        sans-serif;

    font-size:
        clamp(38px, 6vw, 60px);

    font-weight:900;

    line-height:1.15;

    direction:ltr;
}


.coming-soon-card h2{
    position:relative;

    z-index:1;

    margin:
        0
        0
        25px;

    color:var(--public-primary);

    font-family:
        "Inter",
        Arial,
        sans-serif;

    font-size:
        clamp(25px, 4vw, 36px);

    font-weight:800;

    direction:ltr;
}


.coming-soon-card > p{
    position:relative;

    z-index:1;

    max-width:570px;

    margin:
        0
        auto;

    color:#6d7c76;

    font-size:16px;

    line-height:2;

    direction:ltr;
}


.coming-soon-divider{
    position:relative;

    z-index:1;

    width:70px;
    height:3px;

    margin:
        30px
        auto;

    border-radius:50px;

    background:var(--public-primary);
}


.coming-soon-card .coming-soon-fa{
    direction:rtl;

    font-family:
        "Vazirmatn",
        sans-serif;

    line-height:2;
}


.coming-soon-back{
    position:relative;

    z-index:1;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:9px;

    min-width:210px;
    height:52px;

    margin-top:32px;

    padding:
        0
        25px;

    border-radius:13px;

    background:var(--public-primary-dark);

    color:var(--public-white);

    font-weight:800;

    text-decoration:none;

    box-shadow:
        0 12px 26px
        rgba(var(--public-primary-dark-rgb),.22);

    transition:
        transform .25s ease,
        background .25s ease,
        box-shadow .25s ease;
}


.coming-soon-back:hover{
    transform:
        translateY(-3px);

    background:var(--public-primary-deep);

    color:var(--public-white);

    box-shadow:
        0 16px 34px
        rgba(var(--public-primary-dark-rgb),.30);
}


@media (max-width:575.98px){

    .coming-soon-page{
        padding:
            130px
            14px
            55px;
    }


    .coming-soon-card{
        padding:
            45px
            22px;

        border-radius:24px;
    }


    .coming-soon-icon{
        width:76px;
        height:76px;

        border-radius:21px;

        font-size:34px;
    }


    .coming-soon-badge{
        font-size:12px;

        letter-spacing:3px;
    }


    .coming-soon-back{
        width:100%;

        min-width:0;
    }

}


/* =========================================================
   REQUESTS NAVIGATION DROPDOWN
   ========================================================= */

.am-menu-dropdown {
    position: relative;

    display: flex;
    align-items: center;

    height: 60px;
}


.am-menu-dropdown__toggle {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    height: 60px;

    padding: 0;

    border: 0;

    background: transparent;

    color: #2f3a3d;

    font-family: inherit;
    font-size: 17px;
    font-weight: 700;

    cursor: pointer;

    transition:
        color .3s ease;
}


.am-menu-dropdown__toggle > i {
    font-size: 12px;

    transition:
        transform .25s ease;
}


.am-menu-dropdown__toggle:hover,
.am-menu-dropdown__toggle.active,
.am-menu-dropdown.is-open
    .am-menu-dropdown__toggle {
    color: var(--public-primary-dark);
}


.am-menu-dropdown__toggle.active::after {
    content: "";

    position: absolute;

    left: 8px;
    right: 8px;
    bottom: 6px;

    height: 3px;

    border-radius: 50px;

    background: var(--public-primary-dark);

    animation:
        menuActive .35s ease;
}


.am-menu-dropdown__panel {
    position: absolute;

    top: calc(100% - 2px);
    right: 50%;

    z-index: 30;

    width: max-content;
    min-width: 300px;

    padding: 8px;

    border:
        1px solid rgba(30, 78, 59, .10);

    border-radius: 18px;

    background:
        rgba(255, 255, 255, .98);

    box-shadow:
        0 22px 55px
        rgba(15, 46, 35, .16);

    opacity: 0;
    visibility: hidden;

    pointer-events: none;

    transform:
        translate(50%, 10px);

    transition:
        opacity .2s ease,
        visibility .2s ease,
        transform .2s ease;
}


.am-menu-dropdown.is-open
    .am-menu-dropdown__panel,
.am-menu-dropdown:hover
    .am-menu-dropdown__panel,
.am-menu-dropdown:focus-within
    .am-menu-dropdown__panel {
    opacity: 1;
    visibility: visible;

    pointer-events: auto;

    transform:
        translate(50%, 0);
}


.am-menu-dropdown.is-open
    .am-menu-dropdown__toggle > i,
.am-menu-dropdown:hover
    .am-menu-dropdown__toggle > i,
.am-menu-dropdown:focus-within
    .am-menu-dropdown__toggle > i {
    transform:
        rotate(180deg);
}


.am-menu-dropdown__panel > a {
    display: flex;
    align-items: center;

    gap: 12px;

    width: 100%;
    height: auto;
    min-height: 62px;

    padding: 10px 12px;

    border-radius: 13px;

    color: #2f3a3d;

    text-align: start;
    white-space: nowrap;

    transition:
        background .2s ease,
        color .2s ease;
}


.am-menu-dropdown__panel > a:hover {
    background: var(--public-surface-soft);

    color: var(--public-primary-dark);
}


.am-menu-dropdown__panel > a.active {
    background: #f0f8f4;

    color: var(--public-primary-dark);
}


.am-menu-dropdown__panel > a.active::after {
    display: none;
}


.am-menu-dropdown__panel > a > span:last-child {
    display: flex;
    flex-direction: column;

    gap: 3px;
}


.am-menu-dropdown__panel strong {
    font-size: 14px;
    font-weight: 800;
}


.am-menu-dropdown__panel small {
    color: var(--public-muted);

    font-size: 11px;
    font-weight: 600;
}


.am-menu-dropdown__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    flex: 0 0 40px;

    border-radius: 12px;

    background: #edf7f2;

    color: var(--public-primary-dark);

    font-size: 18px;
}


/* =========================================================
   MOBILE REQUESTS SUBMENU
   ========================================================= */

@media (max-width: 992px) {

    .am-mobile-submenu {
        border-bottom:
            1px solid #f2f2f2;
    }


    .am-mobile-submenu__toggle {
        display: flex;
        align-items: center;
        justify-content: center;

        gap: 8px;

        width: 100%;
        height: 56px;

        padding: 0 16px;

        border: 0;

        background: var(--public-surface);

        color: #333;

        font-family: inherit;
        font-weight: 700;

        cursor: pointer;

        transition:
            background .2s ease,
            color .2s ease;
    }


    .am-mobile-submenu__toggle > i {
        font-size: 12px;

        transition:
            transform .25s ease;
    }


    .am-mobile-submenu__toggle:hover {
        background: var(--public-surface-soft);

        color: var(--public-primary-dark);
    }


    .am-mobile-submenu__toggle.active {
        background: #f0f8f4;

        color: var(--public-primary-dark);
    }


    .am-mobile-submenu__panel {
        display: grid;

        max-height: 0;

        overflow: hidden;

        opacity: 0;

        background: #fbfdfc;

        transition:
            max-height .3s ease,
            opacity .2s ease;
    }


    .am-mobile-submenu.is-open
        .am-mobile-submenu__panel {
        max-height: 150px;

        opacity: 1;
    }


    .am-mobile-submenu.is-open
        .am-mobile-submenu__toggle > i {
        transform:
            rotate(180deg);
    }


    .am-mobile-submenu__panel > a {
        display: flex;
        align-items: center;
        justify-content: flex-start;

        gap: 10px;

        min-height: 54px;

        padding: 0 30px;

        border-top:
            1px solid rgba(0, 0, 0, .04);

        color: #43504c;

        font-size: 14px;
        font-weight: 700;

        text-decoration: none;

        transition:
            background .2s ease,
            color .2s ease;
    }


    .am-mobile-submenu__panel > a:hover {
        background: #f0f8f4;

        color: var(--public-primary-dark);
    }


    .am-mobile-submenu__panel > a.active {
        background: #eaf6ef;

        color: var(--public-primary-dark);

        font-weight: 800;
    }


    .am-mobile-submenu__panel > a > i {
        width: 22px;

        text-align: center;

        font-size: 17px;
    }

}


/* =========================================================
   COMPACT DESKTOP HEADER
   ========================================================= */

@media (min-width: 993px) and (max-width: 1350px) {

    .am-menu-dropdown__toggle {
        font-size: 15px;
    }

}


/* =========================================================
   PWA INSTALL DIALOG
   ========================================================= */

body.pwa-dialog-open{
    overflow:hidden;
}


.am-pwa-dialog{
    position:fixed;
    z-index:11000;
    inset:0;

    display:flex;
    align-items:flex-end;
    justify-content:center;

    padding:20px;
}


.am-pwa-dialog[hidden]{
    display:none !important;
}


.am-pwa-dialog__backdrop{
    position:absolute;
    inset:0;

    width:100%;
    height:100%;

    padding:0;

    border:0;

    background:rgba(16, 36, 29, .58);

    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);

    cursor:pointer;
}


.am-pwa-dialog__panel{
    position:relative;
    z-index:1;

    width:min(100%, 460px);

    padding:32px 28px 28px;

    border:
        1px solid
        rgba(var(--public-primary-dark-rgb), .12);
    border-radius:28px;

    background:var(--public-surface);

    color:var(--public-text);

    text-align:center;

    box-shadow:
        0 28px 70px
        rgba(16, 36, 29, .24);

    animation:
        pwa-dialog-enter
        .26s ease-out;
}


.am-pwa-dialog__close{
    position:absolute;
    top:16px;
    left:16px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    width:44px;
    height:44px;

    padding:0;

    border:1px solid var(--public-border);
    border-radius:14px;

    background:var(--public-surface-soft);

    color:var(--public-text-soft);

    cursor:pointer;
}


.am-pwa-dialog__close:hover{
    background:#eef5f1;

    color:var(--public-primary-deep);
}


.am-pwa-dialog__close:focus-visible,
.am-pwa-dialog__panel:focus-visible{
    outline:
        3px solid
        rgba(var(--public-primary-rgb), .28);
    outline-offset:3px;
}


.am-pwa-dialog__icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    width:72px;
    height:72px;

    margin-bottom:18px;

    border-radius:22px;

    background:#e8f6ee;

    color:var(--public-primary-dark);
}


.am-pwa-dialog__icon i{
    font-size:34px;

    line-height:1;
}


.am-pwa-dialog h2{
    margin:0 0 10px;

    color:var(--public-brand-text);

    font-size:24px;
    font-weight:900;
}


.am-pwa-dialog p{
    margin:0 auto 22px;

    max-width:340px;

    color:var(--public-muted);

    font-size:15px;
    line-height:1.9;
}


.am-pwa-dialog__steps{
    display:grid;

    gap:10px;

    margin:0;
    padding:0;

    list-style:none;
    counter-reset:pwa-step;

    text-align:right;
}


.am-pwa-dialog__steps li{
    position:relative;

    min-height:48px;

    padding:12px 54px 12px 14px;

    border:1px solid var(--public-border-soft);
    border-radius:15px;

    background:var(--public-surface-soft);

    color:var(--public-text-soft);

    font-size:14px;
    line-height:1.7;

    counter-increment:pwa-step;
}


.am-pwa-dialog__steps li::before{
    position:absolute;
    top:10px;
    right:12px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    width:30px;
    height:30px;

    border-radius:10px;

    background:var(--public-primary-dark);

    color:var(--public-white);

    font-size:13px;
    font-weight:900;

    content:counter(pwa-step);
}


.am-pwa-dialog__steps strong{
    color:var(--public-brand-text);

    font-weight:900;
}


@keyframes pwa-dialog-enter{
    from{
        transform:translateY(26px);

        opacity:0;
    }

    to{
        transform:translateY(0);

        opacity:1;
    }
}


@media (min-width:768px){

    .am-pwa-dialog{
        align-items:center;
    }

}


@media (max-width:480px){

    .am-container{
        padding-inline:12px;
    }


    .am-brand{
        gap:8px;
    }


    .am-brand img{
        width:48px;
        height:48px;
    }


    .am-brand span{
        font-size:1.35rem;
    }


    .am-brand .am-brand__location{
        display:none;
    }


    .am-mobile-controls{
        gap:8px;
    }


    .am-pwa-install,
    .am-mobile-toggle{
        width:44px;
        height:44px;
    }

    .am-pwa-dialog{
        padding:12px;
    }


    .am-pwa-dialog__panel{
        padding:28px 18px 20px;

        border-radius:24px;
    }


    .am-pwa-dialog h2{
        padding-inline:36px;

        font-size:21px;
    }

}


@media (prefers-reduced-motion:reduce){

    .am-pwa-dialog__panel{
        animation:none;
    }


    .am-pwa-install{
        transition:none;
    }

}
