:root {
    --ace-accent: #16a34a;
    --ace-accent-dark: #11813b;
    --ace-text: #10201a;
    --ace-muted: #5f6f69;
    --ace-soft: #f3faf6;
    --ace-border: #dce8e2;
    --ace-white: #ffffff;
    --ace-shadow: 0 22px 60px rgba(15, 23, 42, 0.10);
    --ace-radius: 24px;
    --ace-radius-sm: 14px;
    --ace-container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ace-text);
    background: #ffffff;
    font-family: Vazirmatn, Tahoma, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.8;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
a:hover { color: var(--ace-accent); }
img { max-width: 100%; height: auto; display: block; }
button, input, textarea, select { font: inherit; }

.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    width: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    word-wrap: normal !important;
}
.screen-reader-text:focus {
    background: var(--ace-white);
    clip: auto !important;
    clip-path: none;
    color: var(--ace-text);
    display: block;
    font-size: 14px;
    height: auto;
    left: 8px;
    padding: 12px 16px;
    top: 8px;
    width: auto;
    z-index: 100000;
    border-radius: 10px;
    box-shadow: var(--ace-shadow);
}

.ace-container {
    width: min(var(--ace-container), calc(100% - 40px));
    margin-inline: auto;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 999;
    background: rgba(255, 255, 255, 0.86);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(220, 232, 226, 0.85);
}
.admin-bar .site-header { top: 32px; }
.header-inner {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.site-branding { display: flex; flex-direction: column; gap: 2px; }
.site-title {
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -0.03em;
    color: var(--ace-text);
}
.site-description {
    margin: 0;
    color: var(--ace-muted);
    font-size: 13px;
}
.custom-logo-link img { max-height: 56px; width: auto; }

.main-navigation ul {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.main-navigation a {
    display: inline-flex;
    padding: 8px 14px;
    border-radius: 999px;
    color: #2f423a;
    font-weight: 600;
    font-size: 14px;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
    background: var(--ace-soft);
    color: var(--ace-accent);
}
.menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    border: 1px solid var(--ace-border);
    background: var(--ace-white);
    border-radius: 14px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
}
.menu-toggle span:not(.screen-reader-text) {
    width: 20px;
    height: 2px;
    background: var(--ace-text);
    border-radius: 3px;
}

.hero-section {
    position: relative;
    overflow: hidden;
    padding: 96px 0 76px;
    background:
        radial-gradient(circle at 15% 20%, rgba(22, 163, 74, 0.15), transparent 28%),
        radial-gradient(circle at 85% 5%, rgba(20, 184, 166, 0.12), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #f4fbf7 100%);
}
.hero-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(135deg, rgba(22,163,74,.08) 25%, transparent 25%),
        linear-gradient(225deg, rgba(22,163,74,.07) 25%, transparent 25%);
    background-size: 72px 72px;
    opacity: .25;
    pointer-events: none;
}
.hero-grid {
    position: relative;
    display: grid;
    grid-template-columns: 1.04fr .96fr;
    align-items: center;
    gap: 56px;
}
.section-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 13px;
    border: 1px solid rgba(22, 163, 74, .22);
    background: rgba(22, 163, 74, .08);
    color: var(--ace-accent);
    border-radius: 999px;
    font-weight: 800;
    font-size: 13px;
}
.hero-content h1 {
    margin: 18px 0 18px;
    font-size: clamp(38px, 6vw, 66px);
    line-height: 1.16;
    letter-spacing: -0.055em;
    max-width: 760px;
}
.hero-content p {
    margin: 0;
    max-width: 650px;
    color: var(--ace-muted);
    font-size: 18px;
}
.hero-actions {
    display: flex;
    gap: 14px;
    margin-top: 32px;
    flex-wrap: wrap;
}
.ace-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 22px;
    border-radius: 999px;
    background: var(--ace-accent);
    color: var(--ace-white);
    border: 1px solid var(--ace-accent);
    font-weight: 800;
    box-shadow: 0 12px 28px rgba(22, 163, 74, .22);
}
.ace-button:hover { color: var(--ace-white); transform: translateY(-2px); background: var(--ace-accent-dark); border-color: var(--ace-accent-dark); }
.ace-button-outline { background: var(--ace-white); color: var(--ace-text); box-shadow: none; border-color: var(--ace-border); }
.ace-button-outline:hover { background: var(--ace-soft); color: var(--ace-accent); border-color: rgba(22, 163, 74, .35); }
.ace-button-light { background: var(--ace-white); color: var(--ace-accent); border-color: var(--ace-white); box-shadow: none; }
.ace-button-light:hover { color: var(--ace-accent); background: #f7fffa; }
.hero-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 38px;
}
.hero-stats div {
    padding: 18px;
    background: rgba(255,255,255,.76);
    border: 1px solid rgba(220,232,226,.85);
    border-radius: 18px;
    box-shadow: 0 14px 34px rgba(15,23,42,.05);
}
.hero-stats strong { display: block; font-size: 26px; line-height: 1; color: var(--ace-text); }
.hero-stats span { display: block; margin-top: 8px; color: var(--ace-muted); font-size: 13px; }
.hero-card {
    position: relative;
    min-height: 470px;
    padding: 28px;
    border-radius: 34px;
    background: linear-gradient(160deg, rgba(255,255,255,.96), rgba(241,250,245,.9));
    border: 1px solid rgba(220, 232, 226, 0.96);
    box-shadow: var(--ace-shadow);
    overflow: hidden;
}
.hero-card::after {
    content: "";
    position: absolute;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: rgba(22, 163, 74, .14);
    left: -80px;
    bottom: -90px;
}
.hero-card-top { display: flex; gap: 8px; }
.hero-card-top span { width: 12px; height: 12px; border-radius: 50%; background: var(--ace-border); }
.hero-card-top span:first-child { background: var(--ace-accent); }
.hero-chart {
    height: 220px;
    display: flex;
    align-items: end;
    justify-content: center;
    gap: 18px;
    margin-top: 50px;
    padding: 28px 22px 0;
    border-radius: 24px;
    background: rgba(255,255,255,.7);
    border: 1px solid rgba(220,232,226,.7);
}
.hero-chart div {
    width: 42px;
    min-height: 42px;
    border-radius: 16px 16px 4px 4px;
    background: linear-gradient(180deg, var(--ace-accent), #a7f3d0);
}
.hero-card-row {
    height: 58px;
    margin-top: 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 18px;
    border-radius: 18px;
    background: var(--ace-white);
    border: 1px solid var(--ace-border);
}
.hero-card-row span { width: 52%; height: 12px; border-radius: 999px; background: #e4eee8; }
.hero-card-row strong { width: 20%; height: 12px; border-radius: 999px; background: rgba(22, 163, 74, .22); }
.hero-floating-badge {
    position: absolute;
    right: 28px;
    bottom: 34px;
    z-index: 1;
    display: inline-flex;
    padding: 12px 16px;
    border-radius: 999px;
    background: var(--ace-text);
    color: #fff;
    font-weight: 800;
    box-shadow: 0 18px 40px rgba(15,23,42,.2);
}

.section-block { padding: 86px 0; }
.section-heading { text-align: center; max-width: 720px; margin: 0 auto 40px; }
.section-heading.compact { margin-bottom: 34px; }
.section-heading h2, .about-content h2, .cta-card h2 {
    margin: 16px 0 12px;
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.25;
    letter-spacing: -0.04em;
}
.section-heading p, .about-content p, .cta-card p { color: var(--ace-muted); margin: 0; }

.service-grid, .process-grid, .post-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}
.service-card, .process-item, .post-card, .widget, .empty-state, .single-article, .comments-area {
    background: var(--ace-white);
    border: 1px solid var(--ace-border);
    border-radius: var(--ace-radius);
    box-shadow: 0 16px 42px rgba(15,23,42,.06);
}
.service-card {
    padding: 28px;
    position: relative;
    overflow: hidden;
}
.service-card::after {
    content: "";
    position: absolute;
    width: 130px;
    height: 130px;
    border-radius: 50%;
    background: rgba(22, 163, 74, .08);
    top: -52px;
    left: -48px;
}
.service-icon {
    width: 54px;
    height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: var(--ace-soft);
    color: var(--ace-accent);
    font-size: 24px;
    font-weight: 900;
}
.service-card h3, .process-item h3, .post-card h3, .entry-title { margin: 18px 0 10px; line-height: 1.35; }
.service-card p, .process-item p, .post-card p, .entry-summary { color: var(--ace-muted); margin: 0; }

.about-section { background: #fbfefc; }
.about-grid {
    display: grid;
    grid-template-columns: .92fr 1.08fr;
    align-items: center;
    gap: 56px;
}
.about-media { position: relative; min-height: 420px; }
.about-card-large {
    position: absolute;
    inset: 0 38px 48px 0;
    border-radius: 34px;
    background:
        linear-gradient(135deg, rgba(22,163,74,.2), rgba(20,184,166,.06)),
        repeating-linear-gradient(45deg, rgba(255,255,255,.42) 0 8px, transparent 8px 18px);
    border: 1px solid rgba(22, 163, 74, .18);
    box-shadow: var(--ace-shadow);
}
.about-card-small {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 260px;
    padding: 26px;
    border-radius: 28px;
    background: var(--ace-text);
    color: var(--ace-white);
    font-weight: 900;
    font-size: 22px;
    box-shadow: var(--ace-shadow);
}
.check-list { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 12px; }
.check-list li { position: relative; padding-inline-start: 32px; color: #31423a; font-weight: 700; }
.check-list li::before {
    content: "✓";
    position: absolute;
    inset-inline-start: 0;
    top: 2px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ace-soft);
    color: var(--ace-accent);
    font-size: 13px;
    font-weight: 900;
}
.process-item { padding: 26px; }
.process-item span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    background: var(--ace-text);
    color: #fff;
    font-weight: 900;
}

.blog-section { background: linear-gradient(180deg, #fff 0%, #f7fcf9 100%); }
.post-card { overflow: hidden; }
.post-thumbnail img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.post-card-content { padding: 24px; }
.entry-meta { color: var(--ace-muted); font-size: 13px; font-weight: 700; }
.read-more { display: inline-flex; margin-top: 18px; font-weight: 800; color: var(--ace-accent); }
.placeholder-card { padding: 24px; }

.cta-section { padding: 48px 0 96px; }
.cta-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 42px;
    border-radius: 34px;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.18), transparent 28%),
        linear-gradient(135deg, var(--ace-accent), #0f766e);
    color: #fff;
    box-shadow: 0 24px 70px rgba(22, 163, 74, .24);
}
.cta-card .section-eyebrow { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.2); color: #fff; }
.cta-card p { color: rgba(255,255,255,.82); }

.content-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 30px;
    padding: 64px 0;
}
.page-main { padding: 54px 0; }
.ace-page { max-width: 980px; }
.page-header-block, .archive-header, .single-header { margin-bottom: 28px; }
.entry-title, .archive-title { font-size: clamp(28px, 4vw, 44px); line-height: 1.25; letter-spacing: -0.04em; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content a { color: var(--ace-accent); text-decoration: underline; text-underline-offset: 4px; }
.entry-content img { border-radius: 18px; }
.single-article { padding: 34px; }
.single-featured-image { margin: 24px 0; overflow: hidden; border-radius: 24px; }
.widget-area { display: grid; gap: 18px; align-content: start; }
.widget { padding: 22px; }
.widget-title { margin: 0 0 14px; font-size: 20px; }
.widget ul { margin: 0; padding-inline-start: 20px; }

.elementor-full-width-page { width: 100%; overflow: hidden; }
.elementor-full-width-page .entry-content { width: 100%; }
.ace-blank-canvas .site-main { padding: 0; }
.blank-canvas-page { width: 100%; min-height: 100vh; }

.pagination, .nav-links { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 30px; }
.page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--ace-border);
    border-radius: 12px;
    background: #fff;
    font-weight: 800;
}
.page-numbers.current { background: var(--ace-accent); color: #fff; border-color: var(--ace-accent); }
.error-404-page { padding: 90px 0; }
.error-card { max-width: 640px; margin: 0 auto; text-align: center; padding: 48px; background: var(--ace-soft); border-radius: 34px; }
.error-code { display: block; font-size: 80px; font-weight: 900; color: var(--ace-accent); line-height: 1; }
.empty-state { padding: 34px; }

.site-footer { background: #0f1f19; color: #dce8e2; }
.footer-top { padding: 54px 0; }
.footer-widgets-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.footer-widget { color: #cbd8d2; }
.footer-widget-title { color: #fff; margin: 0 0 14px; }
.footer-brand strong { display: block; color: #fff; font-size: 24px; margin-bottom: 8px; }
.footer-brand p { color: #b6c6bf; margin: 0; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.08); }
.footer-bottom-inner { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.footer-bottom p { margin: 0; color: #b6c6bf; font-size: 14px; }
.footer-menu { display: flex; gap: 14px; margin: 0; padding: 0; list-style: none; font-size: 14px; }
.footer-menu a { color: #cbd8d2; }
.footer-menu a:hover { color: #fff; }

@media (max-width: 960px) {
    .menu-toggle { display: inline-flex; }
    .main-navigation {
        display: none;
        position: absolute;
        top: 76px;
        left: 20px;
        right: 20px;
        background: var(--ace-white);
        border: 1px solid var(--ace-border);
        border-radius: 20px;
        box-shadow: var(--ace-shadow);
        padding: 14px;
    }
    .main-navigation.is-open { display: block; }
    .main-navigation ul { flex-direction: column; align-items: stretch; }
    .main-navigation a { width: 100%; justify-content: center; }
    .hero-grid, .about-grid, .content-layout { grid-template-columns: 1fr; }
    .hero-section { padding-top: 64px; }
    .hero-card { min-height: 380px; }
    .service-grid, .process-grid, .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-widgets-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .ace-container { width: min(100% - 28px, var(--ace-container)); }
    .admin-bar .site-header { top: 0; }
    .hero-section { padding: 48px 0 54px; }
    .hero-content h1 { font-size: 34px; }
    .hero-stats, .service-grid, .process-grid, .post-grid, .footer-widgets-grid { grid-template-columns: 1fr; }
    .hero-card { padding: 20px; min-height: 340px; }
    .hero-chart { gap: 10px; height: 170px; }
    .hero-chart div { width: 34px; }
    .section-block { padding: 58px 0; }
    .about-media { min-height: 320px; }
    .about-card-small { width: 220px; font-size: 18px; }
    .cta-card { flex-direction: column; align-items: flex-start; padding: 28px; }
    .footer-bottom-inner { flex-direction: column; justify-content: center; padding: 18px 0; text-align: center; }
}

.search-form {
    display: flex;
    gap: 10px;
    align-items: stretch;
}
.search-form label { flex: 1; }
.search-field,
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
textarea,
select {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--ace-border);
    border-radius: 14px;
    padding: 10px 14px;
    background: #fff;
    color: var(--ace-text);
    outline: none;
}
.search-field:focus,
input:focus,
textarea:focus,
select:focus {
    border-color: var(--ace-accent);
    box-shadow: 0 0 0 4px rgba(22, 163, 74, .10);
}
.search-submit,
button[type="submit"],
input[type="submit"] {
    border: 1px solid var(--ace-accent);
    background: var(--ace-accent);
    color: #fff;
    border-radius: 14px;
    padding: 10px 18px;
    font-weight: 800;
    cursor: pointer;
}
.comments-area {
    margin-top: 34px;
    padding: 30px;
}
.comment-list {
    margin: 0 0 28px;
    padding-inline-start: 24px;
}
.comment-body {
    margin-bottom: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--ace-border);
}

/* Starter corporate inner pages */
.elementor-compatible-page {
    width: 100%;
    overflow: hidden;
}
.starter-page {
    overflow: hidden;
}
.starter-hero {
    position: relative;
    padding: 92px 0 78px;
    background:
        radial-gradient(circle at 12% 18%, rgba(22, 163, 74, .14), transparent 30%),
        radial-gradient(circle at 82% 0%, rgba(20, 184, 166, .12), transparent 32%),
        linear-gradient(180deg, #ffffff 0%, #f4fbf7 100%);
}
.starter-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(135deg, rgba(22,163,74,.08) 25%, transparent 25%), linear-gradient(225deg, rgba(22,163,74,.06) 25%, transparent 25%);
    background-size: 76px 76px;
    opacity: .25;
    pointer-events: none;
}
.starter-hero > .ace-container {
    position: relative;
}
.centered-hero {
    text-align: center;
}
.narrow-container {
    max-width: 850px;
}
.starter-hero h1 {
    margin: 18px 0 16px;
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1.18;
    letter-spacing: -0.055em;
}
.starter-hero p {
    margin: 0 auto;
    max-width: 760px;
    color: var(--ace-muted);
    font-size: 18px;
}
.starter-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
    gap: 48px;
    align-items: center;
}
.starter-hero-grid p {
    margin-inline: 0;
}
.starter-visual-card {
    min-height: 360px;
    padding: 34px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    border-radius: 34px;
    background:
        linear-gradient(135deg, rgba(22,163,74,.2), rgba(20,184,166,.06)),
        repeating-linear-gradient(45deg, rgba(255,255,255,.55) 0 8px, transparent 8px 18px),
        #f7fcf9;
    border: 1px solid rgba(22,163,74,.18);
    box-shadow: var(--ace-shadow);
}
.starter-visual-card span {
    color: var(--ace-accent);
    font-weight: 900;
}
.starter-visual-card strong {
    display: block;
    margin: 12px 0;
    font-size: 70px;
    line-height: 1;
    letter-spacing: -.06em;
}
.starter-visual-card p {
    color: var(--ace-muted);
    max-width: 320px;
}
.split-grid {
    display: grid;
    grid-template-columns: .95fr 1.05fr;
    gap: 42px;
    align-items: start;
}
.section-copy h2,
.contact-form-card h2,
.faq-side-card h2 {
    margin: 16px 0 0;
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.25;
    letter-spacing: -0.04em;
}
.rich-text-card,
.feature-card,
.contact-info-card,
.contact-form-card,
.faq-side-card,
.faq-list details,
.portfolio-card,
.metric-grid > div {
    background: var(--ace-white);
    border: 1px solid var(--ace-border);
    border-radius: var(--ace-radius);
    box-shadow: 0 16px 42px rgba(15,23,42,.06);
}
.rich-text-card {
    padding: 32px;
}
.rich-text-card p {
    margin: 0;
    color: var(--ace-muted);
}
.two-column-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.tinted-section {
    background: #fbfefc;
}
.feature-grid {
    display: grid;
    gap: 22px;
}
.feature-grid.three-columns {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.feature-card {
    position: relative;
    overflow: hidden;
    padding: 28px;
}
.feature-card::after {
    content: "";
    position: absolute;
    width: 128px;
    height: 128px;
    border-radius: 50%;
    top: -54px;
    left: -48px;
    background: rgba(22,163,74,.08);
}
.feature-icon {
    position: relative;
    z-index: 1;
    width: 54px;
    height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: var(--ace-soft);
    color: var(--ace-accent);
    font-weight: 900;
    font-size: 20px;
}
.feature-card h3 {
    position: relative;
    z-index: 1;
    margin: 18px 0 10px;
    line-height: 1.35;
}
.feature-card p {
    position: relative;
    z-index: 1;
    margin: 0;
    color: var(--ace-muted);
}
.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
.metric-grid > div {
    padding: 28px;
    text-align: center;
}
.metric-grid strong {
    display: block;
    color: var(--ace-accent);
    font-size: 44px;
    line-height: 1;
    letter-spacing: -.05em;
}
.metric-grid span {
    display: block;
    margin-top: 12px;
    color: var(--ace-muted);
    font-weight: 800;
}
.process-line-grid .process-item {
    position: relative;
}
.portfolio-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}
.portfolio-card {
    overflow: hidden;
}
.portfolio-card > div:last-child {
    padding: 24px;
}
.portfolio-card span {
    color: var(--ace-accent);
    font-size: 13px;
    font-weight: 900;
}
.portfolio-card h3 {
    margin: 8px 0 10px;
    line-height: 1.35;
}
.portfolio-card p {
    margin: 0;
    color: var(--ace-muted);
}
.portfolio-thumb {
    min-height: 190px;
    background:
        radial-gradient(circle at 75% 28%, rgba(255,255,255,.72), transparent 24%),
        linear-gradient(135deg, rgba(22,163,74,.26), rgba(20,184,166,.08)),
        repeating-linear-gradient(45deg, rgba(255,255,255,.54) 0 8px, transparent 8px 18px);
}
.portfolio-thumb.alt {
    background:
        radial-gradient(circle at 25% 28%, rgba(255,255,255,.72), transparent 24%),
        linear-gradient(135deg, rgba(15,31,25,.16), rgba(22,163,74,.16)),
        repeating-linear-gradient(-45deg, rgba(255,255,255,.52) 0 8px, transparent 8px 18px);
}
.contact-grid {
    display: grid;
    grid-template-columns: .86fr 1.14fr;
    gap: 24px;
    align-items: start;
}
.contact-info-stack {
    display: grid;
    gap: 16px;
}
.contact-info-card {
    display: flex;
    gap: 16px;
    padding: 22px;
}
.contact-info-card span {
    flex: 0 0 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: var(--ace-soft);
    color: var(--ace-accent);
    font-size: 22px;
    font-weight: 900;
}
.contact-info-card h3 {
    margin: 0 0 6px;
}
.contact-info-card p {
    margin: 0;
    color: var(--ace-muted);
}
.contact-form-card {
    padding: 32px;
}
.contact-form-card h2 {
    margin-bottom: 22px;
}
.ace-demo-form {
    display: grid;
    gap: 14px;
}
.form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.ace-demo-form textarea {
    resize: vertical;
}
.map-placeholder-section {
    padding: 0 0 92px;
}
.map-placeholder {
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
    border-radius: 34px;
    color: var(--ace-muted);
    font-weight: 800;
    text-align: center;
    border: 1px dashed rgba(22,163,74,.34);
    background:
        linear-gradient(135deg, rgba(22,163,74,.08), rgba(20,184,166,.06)),
        repeating-linear-gradient(45deg, rgba(22,163,74,.06) 0 8px, transparent 8px 20px),
        #fbfefc;
}
.faq-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 24px;
    align-items: start;
}
.faq-list {
    display: grid;
    gap: 14px;
}
.faq-list details {
    padding: 0;
    overflow: hidden;
}
.faq-list summary {
    cursor: pointer;
    padding: 22px 26px;
    font-weight: 900;
    list-style: none;
}
.faq-list summary::-webkit-details-marker {
    display: none;
}
.faq-list summary::after {
    content: "+";
    float: left;
    color: var(--ace-accent);
    font-size: 22px;
    line-height: 1;
}
.faq-list details[open] summary::after {
    content: "−";
}
.faq-list details p {
    margin: 0;
    padding: 0 26px 24px;
    color: var(--ace-muted);
}
.faq-side-card {
    padding: 30px;
    position: sticky;
    top: 106px;
}
.faq-side-card p {
    color: var(--ace-muted);
    margin: 14px 0 24px;
}

@media (max-width: 960px) {
    .starter-hero-grid,
    .split-grid,
    .contact-grid,
    .faq-layout {
        grid-template-columns: 1fr;
    }
    .feature-grid.three-columns,
    .portfolio-grid,
    .metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .faq-side-card {
        position: static;
    }
}

@media (max-width: 640px) {
    .starter-hero {
        padding: 58px 0 52px;
    }
    .starter-hero h1 {
        font-size: 34px;
    }
    .starter-visual-card {
        min-height: 280px;
        padding: 26px;
    }
    .starter-visual-card strong {
        font-size: 54px;
    }
    .feature-grid.three-columns,
    .portfolio-grid,
    .metric-grid,
    .two-column-list,
    .form-row {
        grid-template-columns: 1fr;
    }
    .rich-text-card,
    .feature-card,
    .contact-form-card,
    .faq-side-card {
        padding: 24px;
    }
}
