:root {
    --primary: #17479e;
    --primary-dark: #102c5c;

    --white: #ffffff;

    --cyan: #56c5d0;
    --orange: #faa61a;

    --text: #6b788c;
    --text-light: #8b97a8;
}


/* =========================================================
   RESET
========================================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


html,
body {
    width: 100%;
    min-height: 100%;
}


html {
    scroll-behavior: smooth;
}


body {
    direction: rtl;

    font-family:
        "Vazirmatn",
        Tahoma,
        Arial,
        sans-serif;

    background: #ffffff;

    color: var(--primary-dark);

    overflow-x: hidden;
}


button {
    font-family: inherit;
}


/* =========================================================
   HOME PAGE
========================================================= */

.home-page {
    width: 100%;
    min-height: 100%;
}


/* =========================================================
   HERO SECTION
========================================================= */

.hero-section {
    position: relative;

    width: 100%;
    min-height: 560px;

    display: grid;

    grid-template-columns:
        minmax(440px, 1fr)
        minmax(440px, 1fr);

    align-items: center;

    gap: 24px;

    padding:
        48px
        6%;

    overflow: hidden;

    background: #ffffff;
}


/* هاله خیلی ظریف سمت راست */

.hero-section::after {
    content: "";

    position: absolute;

    width: 380px;
    height: 380px;

    right: -180px;
    top: -180px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(86, 197, 208, 0.045),
            transparent 70%
        );

    pointer-events: none;
}


/* حذف خط تزئینی پایین */

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


/* =========================================================
   HERO TEXT
========================================================= */

.hero-text {
    position: relative;

    z-index: 3;

    width: 100%;
    max-width: 560px;

    justify-self: start;

    text-align: right;

    padding-right: 10px;
}


/* =========================================================
   LABEL
========================================================= */

.hero-label {
    display: inline-flex;

    align-items: center;

    margin-bottom: 14px;

    padding:
        4px
        10px;

    color: var(--primary);

    background:
        rgba(23, 71, 158, 0.04);

    border-right:
        2px solid var(--cyan);

    border-radius: 3px;

    font-size: 11px;
    font-weight: 700;

    line-height: 1.8;
}


/* =========================================================
   TITLE
========================================================= */

.hero-title {
    margin-bottom: 13px;

    color: var(--primary-dark);

    font-size: clamp(31px, 2.8vw, 40px);

    font-weight: 500;

    line-height: 1.42;

    letter-spacing: -0.6px;
}


.hero-title span {
    display: block;
}


.hero-title strong {
    display: block;

    margin-top: 1px;

    color: var(--primary);

    font-weight: 800;
}


/* =========================================================
   DESCRIPTION
========================================================= */

.hero-description {
    width: 100%;
    max-width: 500px;

    color: var(--text);

    font-size: 12.8px;
    font-weight: 400;

    line-height: 2;
}


/* =========================================================
   COMPANY SLOGAN
========================================================= */

.company-slogan {
    position: relative;

    width: fit-content;

    margin-top: 23px;

    padding-right: 14px;

    text-align: right;
}


.company-slogan::before {
    content: "";

    position: absolute;

    top: 2px;
    right: 0;

    width: 2px;
    height: 43px;

    border-radius: 20px;

    background:
        linear-gradient(
            to bottom,
            var(--cyan) 0%,
            var(--cyan) 76%,
            var(--orange) 76%,
            var(--orange) 100%
        );
}


.company-slogan h2 {
    color: var(--primary);

    font-size: 21px;
    font-weight: 800;

    line-height: 1.35;
}


/* =========================================================
   ENGLISH SLOGAN
========================================================= */

.english-slogan {
    direction: ltr;

    display: flex;

    align-items: center;

    gap: 8px;

    margin-top: 4px;
}


.english-slogan span {
    color: #65738a;

    font-size: 9px;
    font-weight: 500;

    letter-spacing: 3.2px;

    text-transform: uppercase;
}


.english-slogan i {
    position: relative;

    display: block;

    width: 48px;
    height: 1px;

    background:
        rgba(23, 71, 158, 0.45);
}


.english-slogan i::after {
    content: "";

    position: absolute;

    right: 0;
    top: 0;

    width: 15px;
    height: 1px;

    background: var(--orange);
}


/* =========================================================
   BUTTON
========================================================= */

.hero-button {
    margin-top: 20px;

    min-width: 145px;
    min-height: 42px;

    padding:
        10px
        16px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 11px;

    border:
        1px solid var(--primary);

    border-radius: 4px;

    background: var(--primary);

    color: #ffffff;

    font-size: 11.5px;
    font-weight: 700;

    cursor: pointer;

    box-shadow:
        0 7px 17px
        rgba(23, 71, 158, 0.11);

    transition:
        background 0.25s ease,
        transform 0.25s ease,
        box-shadow 0.25s ease;
}


.hero-button:hover {
    background: var(--primary-dark);

    transform: translateY(-2px);

    box-shadow:
        0 11px 22px
        rgba(23, 71, 158, 0.16);
}


.button-text {
    color: #ffffff;
}


.button-arrow {
    color: var(--cyan);

    font-size: 16px;

    line-height: 1;
}


/* =========================================================
   IMAGE AREA
========================================================= */

.hero-image {
    position: relative;

    z-index: 2;

    width: 100%;
    min-height: 460px;

    display: flex;

    align-items: center;
    justify-content: center;

    justify-self: center;

    transform: translateX(-18px);
}


/* =========================================================
   IMAGE FRAME
========================================================= */

.image-frame {
    position: relative;

    width: 500px;
    height: 500px;

    display: flex;

    align-items: center;
    justify-content: center;

    overflow: visible;

    background: transparent;

    border: none;

    box-shadow: none;
}


/* سایه نرم زیر محصول */

.image-frame::after {
    content: "";

    position: absolute;

    left: 50%;
    bottom: 58px;

    width: 76%;
    height: 75px;

    transform: translateX(-50%);

    border-radius: 50%;

    background:
        radial-gradient(
            ellipse,
            rgba(16, 44, 92, 0.10) 0%,
            rgba(16, 44, 92, 0.035) 46%,
            transparent 72%
        );

    filter: blur(16px);

    pointer-events: none;
}


/* =========================================================
   IMAGE
========================================================= */

.image-frame img {
    position: relative;

    z-index: 2;

    display: block;

    width: 150%;
    max-width: none;

    height: auto;

    object-fit: contain;

    object-position: center;

    transform: scale(1.02);

    filter:
        drop-shadow(
            0 14px 14px
            rgba(16, 44, 92, 0.09)
        );

    transition:
        transform 0.35s ease,
        filter 0.35s ease;
}


.image-frame:hover img {
    transform:
        scale(1.04)
        translateY(-3px);

    filter:
        drop-shadow(
            0 18px 18px
            rgba(16, 44, 92, 0.12)
        );
}


/* =========================================================
   REMOVE DOTS
========================================================= */

.hero-dots {
    display: none !important;
}


.hero-dots .dot {
    display: none !important;
}


.dot-cyan,
.dot-orange {
    display: none !important;
}


/* =========================================================
   REMOVE IMAGE LINE
========================================================= */

.image-line {
    display: none !important;
}


/* =========================================================
   LAPTOP
========================================================= */

@media (max-width: 1200px) {

    .hero-section {
        grid-template-columns:
            minmax(360px, 0.95fr)
            minmax(400px, 1.05fr);

        gap: 20px;

        padding:
            44px
            5%;
    }


    .hero-title {
        font-size: 34px;
    }


    .hero-image {
        transform: translateX(-10px);
    }


    .image-frame {
        width: 450px;
        height: 450px;
    }


    .image-frame img {
        width: 148%;
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .hero-section {
        min-height: auto;

        grid-template-columns:
            1fr
            1fr;

        gap: 14px;

        padding:
            40px
            4%;
    }


    .hero-title {
        font-size: 28px;
    }


    .hero-description {
        font-size: 12px;

        line-height: 1.95;
    }


    .company-slogan {
        margin-top: 20px;
    }


    .company-slogan h2 {
        font-size: 19px;
    }


    .hero-image {
        min-height: 360px;

        transform: none;
    }


    .image-frame {
        width: 350px;
        height: 350px;
    }


    .image-frame img {
        width: 145%;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

    .hero-section {
        min-height: auto;

        display: flex;

        flex-direction: column;

        align-items: stretch;

        gap: 30px;

        padding:
            38px
            22px
            48px;
    }


    .hero-section::after {
        width: 300px;
        height: 300px;

        right: -145px;
        top: -100px;
    }


    .hero-text {
        order: 1;

        max-width: none;

        padding-right: 0;

        text-align: right;
    }


    .hero-label {
        margin-bottom: 13px;

        font-size: 10.5px;
    }


    .hero-title {
        margin-bottom: 13px;

        font-size: 27px;

        line-height: 1.5;
    }


    .hero-description {
        max-width: 100%;

        font-size: 12.5px;

        line-height: 2;
    }


    .company-slogan {
        margin-top: 21px;
    }


    .company-slogan h2 {
        font-size: 20px;
    }


    .english-slogan span {
        font-size: 8.5px;

        letter-spacing: 3px;
    }


    .hero-button {
        margin-top: 18px;

        min-width: 140px;
        min-height: 41px;

        font-size: 11.5px;
    }


    .hero-image {
        order: 2;

        min-height: 350px;

        transform: none;
    }


    .image-frame {
        width: 340px;
        height: 340px;
    }


    .image-frame img {
        width: 145%;
    }


    .image-frame:hover img {
        transform: scale(1.02);
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 420px) {

    .hero-section {
        gap: 24px;

        padding:
            32px
            17px
            42px;
    }


    .hero-title {
        font-size: 24px;
    }


    .hero-description {
        font-size: 12px;
    }


    .company-slogan h2 {
        font-size: 18px;
    }


    .hero-button {
        min-width: 132px;
        min-height: 39px;

        padding:
            9px
            14px;

        font-size: 11px;
    }


    .hero-image {
        min-height: 295px;
    }


    .image-frame {
        width: 285px;
        height: 285px;
    }


    .image-frame img {
        width: 142%;
    }

}