/* Public typography: licensed IranSansX files are absent, so bundled OFL Vazirmatn is used first. */
:root {
    --public-font: "Vazirmatn","iransansxv","iransansx",Tahoma,"Segoe UI",Arial,sans-serif
}

html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%
}

body:not(.admin-body) {
    font-family: var(--public-font);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.9;
    letter-spacing: 0
}

    body:not(.admin-body) :where(button,input,textarea,select,option,.navbar,.btn,.form-control,.form-select,.badge,.badge-soft,.modal,.card,.dropdown-menu,.tooltip,.popover,.table,.pagination,.alert) {
        font-family: var(--public-font)
    }

    body:not(.admin-body) :where(p,li,dd,blockquote) {
        line-height: 1.95
    }

    body:not(.admin-body) :where(h1,h2,h3,h4,h5,h6) {
        font-weight: 700;
        letter-spacing: -.018em;
        text-wrap: balance
    }

    body:not(.admin-body) :where(strong,b) {
        font-weight: 700
    }

    body:not(.admin-body) :where(button,input,textarea,select,.btn,.form-control,.form-select) {
        font-size: .96rem;
        line-height: 1.65
    }

    body:not(.admin-body) :where(.btn,button) {
        font-weight: 600;
        letter-spacing: 0
    }

    body:not(.admin-body) :where(label,legend) {
        font-weight: 600
    }

.navbar-brand {
    font-size: 1.04rem;
    font-weight: 700;
    letter-spacing: -.01em
}

.nav-link {
    font-size: .96rem;
    font-weight: 500;
    line-height: 1.6
}

.nav-search input {
    font-size: .92rem
}

.hero h1, .page-hero h1 {
    font-size: clamp(2.2rem,5vw,4.45rem);
    font-weight: 700;
    line-height: 1.38;
    letter-spacing: -.025em
}

.hero p, .page-hero p {
    font-size: 1.08rem;
    line-height: 2
}

.section-head h2, .cta-box h2 {
    font-size: clamp(1.75rem,3.2vw,2.65rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: -.02em
}

.section-head p {
    line-height: 1.9
}

.eyebrow, .badge-soft {
    font-weight: 600;
    letter-spacing: 0
}

.eyebrow {
    font-size: .84rem
}

.badge-soft {
    font-size: .8rem;
    line-height: 1.7
}

.breadcrumbs {
    font-size: .84rem;
    line-height: 1.7
}

.product-card h3, .content-card h2 {
    font-size: 1.22rem;
    font-weight: 700;
    line-height: 1.65;
    letter-spacing: -.012em
}

.product-card p, .content-card p, .quote-card blockquote {
    font-size: .98rem;
    line-height: 1.95
}

.card-footer {
    font-size: .93rem
}

    .card-footer strong {
        font-weight: 700;
        font-variant-numeric: tabular-nums
    }

.learning-panel h3, .faq-group h2, .info-box h2 {
    font-weight: 700;
    line-height: 1.6
}

.faq-group summary {
    font-weight: 600;
    line-height: 1.85
}

.requirement strong {
    font-weight: 600;
    line-height: 1.7
}

.requirement small {
    font-size: .84rem;
    line-height: 1.75
}

.price {
    font-size: 1.95rem;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: -.015em;
    font-variant-numeric: tabular-nums
}

    .price small {
        font-size: .76rem;
        font-weight: 500;
        letter-spacing: 0
    }

.prose {
    font-size: 1.025rem;
    line-height: 2.08
}

    .prose p {
        line-height: 2.08;
        margin: .85rem 0
    }

    .prose :where(h2,h3,h4) {
        line-height: 1.65;
        margin-block: 2rem .8rem
    }

.article-body {
    max-width: 75ch
}

.form-control, .form-select {
    font-weight: 400;
    line-height: 1.7
}

    .form-control::placeholder {
        font-weight: 400;
        color: #858078
    }

.search-results a {
    line-height: 1.75
}

.empty-state {
    line-height: 1.9
}

.site-footer {
    font-size: .92rem;
    line-height: 1.9
}

    .site-footer h2 {
        font-size: 1rem;
        font-weight: 700;
        line-height: 1.6
    }

.footer-brand {
    font-size: 1.15rem;
    font-weight: 700
}

.site-footer a {
    font-weight: 400
}

.copyright {
    font-size: .86rem
}

[dir="ltr"], .price {
    font-variant-numeric: tabular-nums
}

.product-card {
    padding: 0;
    overflow: hidden;
    min-height: 440px
}

.product-card-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.3rem
}

.product-card-image {
    display: block;
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    background: #fff3d3;
    border-bottom: 1px solid var(--border)
}

.product-detail-image {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    border-radius: 24px;
    box-shadow: var(--shadow);
    background: #fff3d3
}

.admin-image-preview {
    display: block;
    width: min(100%,420px);
    aspect-ratio: 4/3;
    object-fit: cover;
    border: 1px solid var(--border);
    border-radius: 16px;
    margin: .5rem 0
}

.image-help {
    color: var(--text-secondary);
    font-size: .9rem
}

.upload-validation {
    color: #a11;
    font-size: .9rem
}

@media(max-width:640px) {
    html {
        font-size: 15px
    }

    .hero h1, .page-hero h1 {
        font-size: clamp(2rem,10vw,3rem);
        line-height: 1.42
    }

    .hero p, .page-hero p {
        font-size: 1.02rem
    }

    .section-head h2, .cta-box h2 {
        line-height: 1.55
    }

    .product-card {
        min-height: 410px
    }

    .prose {
        font-size: 1rem;
        line-height: 2
    }

        .prose p {
            line-height: 2
        }
}
/* Restrained public hierarchy and responsive homepage artwork. */
.hero h1 {
    font-size: clamp(2.15rem,4vw,3.35rem);
    line-height: 1.42;
    letter-spacing: -.022em
}

.page-hero h1 {
    font-size: clamp(1.9rem,3.3vw,2.7rem);
    line-height: 1.48;
    letter-spacing: -.02em
}

/* Shared compact page rhythm: eyebrow labels are no longer part of the visible hierarchy. */
.eyebrow{display:none!important;margin:0!important;padding:0!important}
.page-hero{padding-top:1.4rem!important;padding-bottom:1.4rem!important}
.page-hero h1{font-size:1.08rem!important;line-height:1.65!important;margin:.2rem 0!important;font-weight:800!important;letter-spacing:0!important}
.page-hero p{font-size:.94rem!important;line-height:1.85!important;margin:.35rem 0 0!important}
.breadcrumbs{margin-bottom:.55rem!important}
.section{padding-top:2.75rem!important;padding-bottom:2.75rem!important}
.section-head{margin-bottom:1.25rem!important}.section-head h2{font-size:clamp(1.15rem,2vw,1.45rem)!important}
.training-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.training-card{overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.training-media{aspect-ratio:16/9;background:#171717;display:grid;place-items:center}.training-media iframe,.training-media video{display:block;width:100%;height:100%;border:0;object-fit:contain}.training-video-link{color:#fff;text-decoration:underline;padding:1rem;text-align:center}.training-copy{padding:1.2rem}.training-copy h2{font-size:1.05rem;font-weight:800;line-height:1.7}.training-copy p{color:var(--text-secondary);white-space:pre-line;overflow-wrap:anywhere;margin-bottom:0}
@media(max-width:760px){.page-hero{padding-top:1rem!important;padding-bottom:1rem!important}.section{padding-top:2rem!important;padding-bottom:2rem!important}.training-grid{grid-template-columns:1fr}}

/* About page */
.about-container{max-width:850px}.about-intro{padding:1.35rem 0 2.35rem;background:linear-gradient(135deg,#fff8e5,#fff)}.about-intro .breadcrumbs{margin-bottom:1.05rem!important}.about-intro h1{max-width:720px;margin:0 0 .8rem;font-size:clamp(1.3rem,2.3vw,1.75rem);font-weight:800;line-height:1.65;letter-spacing:-.015em}.about-lead{max-width:76ch;margin:0;color:var(--text-secondary);font-size:1rem;line-height:2.05}.about-content{padding:0 0 3.25rem}.about-approach,.about-focus,.about-note{padding:2.6rem 0}.about-approach{background:#fff}.about-section-heading{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.about-section-heading span{height:1px;flex:1;background:var(--border)}.about-content h2{margin:0 0 .8rem;font-size:1.08rem;font-weight:800;line-height:1.75}.about-section-heading h2{margin:0;flex:0 1 auto}.about-approach p,.about-note p{max-width:76ch;margin:0;color:#45413b;font-size:.98rem;line-height:2.1}.about-focus{border-block:1px solid var(--border);background:#fffcf5}.about-focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.about-focus-grid article{padding:1.15rem;background:#fff;border:1px solid var(--border);border-radius:16px}.about-focus-grid h3{margin:0 0 .4rem;font-size:.98rem;font-weight:800;line-height:1.7}.about-focus-grid p{margin:0;color:var(--text-secondary);font-size:.91rem;line-height:1.95}.about-note{padding-bottom:.5rem}.about-positioning{padding:2.1rem 0 0}.about-positioning blockquote{position:relative;margin:0;padding:1.35rem 1.5rem;background:#171717;color:#f8f4eb;border-radius:18px;font-size:1.03rem;font-weight:600;line-height:2;text-align:right}.about-positioning blockquote::before{content:"";position:absolute;inset-block:1rem;right:0;width:4px;border-radius:4px;background:var(--primary)}
@media(max-width:760px){.about-intro{padding:1rem 0 1.7rem}.about-intro h1{font-size:1.15rem;line-height:1.75}.about-lead{font-size:.95rem;line-height:2}.about-content{padding-bottom:2.25rem}.about-approach,.about-focus,.about-note{padding:1.8rem 0}.about-focus-grid{grid-template-columns:1fr;gap:.75rem}.about-focus-grid article{padding:1rem}.about-section-heading{align-items:flex-start}.about-section-heading span{display:none}.about-positioning{padding-top:1.5rem}.about-positioning blockquote{padding:1.15rem 1.2rem;font-size:.96rem;line-height:2}}

/* Managed public FAQ */
.faq-list-section{padding-top:1.5rem!important}.faq-group{margin-bottom:1.8rem}.faq-group:last-child{margin-bottom:0}.faq-group h2{margin:0 0 .65rem;font-size:1rem;font-weight:800;line-height:1.7}.faq-group details{margin:.55rem 0;padding:.9rem 1rem}.faq-group summary{line-height:1.9;overflow-wrap:anywhere}.faq-group details>div{margin-top:.75rem;padding-top:.65rem}.faq-group details p{margin:0;font-size:.95rem;line-height:2;white-space:pre-line;overflow-wrap:anywhere}
@media(max-width:640px){.faq-list-section{padding-top:1rem!important}.faq-group{margin-bottom:1.35rem}.faq-group details{padding:.8rem .85rem}.faq-group h2{font-size:.96rem}}

.hero p, .page-hero p {
    font-size: 1.02rem;
    line-height: 1.95
}

.section-head h2, .cta-box h2 {
    font-size: clamp(1.55rem,2.5vw,2.15rem);
    line-height: 1.55;
    letter-spacing: -.018em
}

.section-head p {
    font-size: .97rem
}

.product-card h3, .content-card h2 {
    font-size: 1.12rem;
    line-height: 1.68;
    letter-spacing: -.01em
}

.product-card p, .content-card p, .quote-card blockquote {
    font-size: .95rem
}

.card-footer {
    font-size: .9rem
}

.price {
    font-size: 1.7rem;
    line-height: 1.5;
    letter-spacing: -.012em
}

.home-hero-image {
    position: relative;
    display: block;
    width: 100%;
    max-width: 620px;
    height: auto;
    box-shadow: none !important;
    /* aspect-ratio: 3/2;
    object-fit: contain;
    border-radius: 24px !important;
    box-shadow: 0 20px 55px rgba(0,0,0,.18) !important*/
}

@media(max-width:991px) {
    .home-hero-image {
        max-width: 560px;
        margin-inline: auto
    }

    .hero-visual {
        display: block
    }
}

@media(max-width:640px) {
    .hero h1 {
        font-size: clamp(1.85rem,8.5vw,2.35rem);
        line-height: 1.48
    }

    .page-hero h1 {
        font-size: clamp(1.7rem,7.5vw,2.1rem);
        line-height: 1.5
    }

    .hero p, .page-hero p {
        font-size: .98rem
    }

    .section-head h2, .cta-box h2 {
        font-size: clamp(1.4rem,6vw,1.75rem);
        line-height: 1.58
    }

    .home-hero-image {
        max-width: 100%;
        border-radius: 18px !important
    }
}
