/* 2026 site-wide visual and accessibility refinement layer. */
:root {
    --primary-color: #168f86;
    --primary-dark: #0b6f68;
    --primary-light: #48c7bb;
    --text-color: #102f32;
    --text-light: #49686a;
    --text-muted: #789092;
    --bg-light: #f3faf9;
    --border-color: #dcecea;
    --shadow-sm: 0 1px 3px rgba(14, 62, 62, .06);
    --shadow: 0 10px 30px rgba(14, 62, 62, .08);
    --shadow-lg: 0 18px 50px rgba(14, 62, 62, .11);
    --shadow-xl: 0 28px 80px rgba(14, 62, 62, .14);
    --radius: 14px;
    --radius-lg: 24px;
}

html { scroll-padding-top: 88px; }

body {
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

::selection { color: #fff; background: var(--primary-color); }

:where(a, button, input, textarea, select):focus-visible {
    outline: 3px solid rgba(22, 143, 134, .28);
    outline-offset: 3px;
}

.container { width: min(100% - 40px, 1200px); padding-inline: 0; }

.header {
    background: rgba(255, 255, 255, .88);
    border-bottom: 1px solid rgba(220, 236, 234, .7);
    box-shadow: none;
}

.header.scrolled {
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 8px 30px rgba(14, 62, 62, .08);
}

.nav { height: 76px; }
.logo-img { width: 42px; height: 42px; border-radius: 12px; }
.logo h1 { letter-spacing: -.03em; }
.nav-links { gap: 6px; }
.nav-links > li > a { border-radius: 10px; padding: 10px 13px; }
.nav-links > li > a:hover { background: rgba(22, 143, 134, .07); }

.btn {
    min-height: 48px;
    padding: 13px 28px;
    border-radius: 12px;
    letter-spacing: .01em;
    box-shadow: none;
}

.btn-primary { background: linear-gradient(135deg, #168f86, #20a89d); box-shadow: 0 10px 24px rgba(22, 143, 134, .22); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(22, 143, 134, .3); }

.hero {
    min-height: 650px;
    padding: 116px 0 58px;
    background: #fafdfe;
    overflow: hidden;
    color: var(--text-color);
}

.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 1;
    background:
        linear-gradient(rgba(22,143,134,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(22,143,134,.045) 1px, transparent 1px),
        radial-gradient(circle at 78% 42%, rgba(71,207,195,.14), transparent 34%);
    background-size: 72px 72px, 72px 72px, auto;
    mask-image: linear-gradient(to bottom, #000 20%, transparent 96%);
}

.hero-bg, .hero-mascot, .scroll-indicator { display: none; }
.hero-particles { opacity: .28; }
.hero-content {
    min-height: 470px;
    display: grid;
    grid-template-columns: minmax(540px, .95fr) minmax(500px, 1.05fr);
    align-items: center;
    gap: clamp(24px, 3vw, 48px);
    text-align: left;
}
.hero-copy { position: relative; z-index: 2; }
.hero-content h2 {
    max-width: 680px;
    margin: 0 0 24px;
    color: #102f32;
    font-size: clamp(3.5rem, 4vw, 4rem);
    line-height: 1.06;
    letter-spacing: -.055em;
    text-shadow: none;
}
.hero-content h2 span { display: block; white-space: nowrap; }
.hero-subtitle {
    margin: 0 0 14px;
    color: #254b4e;
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    font-weight: 600;
}
.hero-desc { max-width: 590px; margin: 0; color: var(--text-light); font-size: 1.05rem; line-height: 1.8; }
.hero-buttons { justify-content: flex-start; margin-top: 32px; }
.hero-visual { position: relative; z-index: 1; }
.hero-visual::before {
    content: "";
    position: absolute;
    inset: 15% 8% 4%;
    border-radius: 50%;
    background: rgba(32,168,157,.13);
    filter: blur(38px);
}
.hero-visual img {
    position: relative;
    display: block;
    width: 118%;
    max-width: none;
    margin-left: -9%;
    mix-blend-mode: multiply;
    mask-image: radial-gradient(ellipse 78% 76% at 52% 55%, #000 54%, rgba(0,0,0,.9) 66%, transparent 88%);
    filter: drop-shadow(0 28px 35px rgba(11,111,104,.12));
}

.home-page .floating-wechat { display: none !important; }
.home-page .floating-wechat-reopen { display: flex; opacity: 1; visibility: visible; transform: none; }

.capability-rail { position: relative; z-index: 3; background: #fff; border-block: 1px solid var(--border-color); }
.capability-rail-inner { display: grid; grid-template-columns: repeat(6, 1fr); }
.capability-rail a { position: relative; display: grid; gap: 4px; min-height: 112px; padding: 22px 18px; text-align: center; align-content: center; }
.capability-rail a + a::before { content: ""; position: absolute; left: 0; top: 26px; bottom: 26px; width: 1px; background: var(--border-color); }
.capability-rail strong { font-size: .98rem; color: var(--text-color); }
.capability-rail span { color: var(--text-muted); font-size: .82rem; }
.capability-rail a:hover { background: linear-gradient(180deg, #fff, #f0faf8); }
.capability-rail a::after { content: "→"; margin-top: 5px; color: var(--primary-color); font-weight: 700; }

.section-header { margin-bottom: clamp(36px, 5vw, 64px); }
.section-title { letter-spacing: -.035em; line-height: 1.16; }
.section-description { max-width: 680px; margin-inline: auto; color: var(--text-light); }

:where(.service-card, .solution-card, .case-card, .advantage-card, .tech-category, .about-stat-card, .contact-card, .tool-card) {
    border: 1px solid var(--border-color);
    box-shadow: var(--shadow-sm);
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

:where(.service-card, .solution-card, .case-card, .advantage-card, .tech-category, .about-stat-card, .contact-card, .tool-card):hover {
    transform: translateY(-5px);
    border-color: rgba(22, 143, 134, .3);
    box-shadow: var(--shadow-lg);
}

.lingshu-promo, .ai-engine, .services, .solutions, .cases, .advantages, .tech-stack, .process, .about, .partners, .contact {
    padding-top: clamp(72px, 8vw, 116px);
    padding-bottom: clamp(72px, 8vw, 116px);
}

.lingshu-promo { border-top: 1px solid rgba(220, 236, 234, .72); }
.lingshu-content, .about-content, .contact-content { gap: clamp(40px, 7vw, 90px); }
.lingshu-image img, .case-image img { transition: transform .55s cubic-bezier(.2,.8,.2,1); }
.lingshu-image:hover img, .case-card:hover .case-image img { transform: scale(1.035); }

.cases-page-hero {
    padding-top: 150px;
    padding-bottom: 76px;
    background: linear-gradient(140deg, #073e3d 0%, #0d706a 54%, #17a096 100%);
}

.case-detail { padding-top: clamp(64px, 8vw, 110px); padding-bottom: clamp(64px, 8vw, 110px); }
.case-detail h2, .case-detail h3 { letter-spacing: -.025em; }
.case-cta { background: linear-gradient(135deg, #0a5a56, #128e85); }

.footer { background: #082f32; }
.footer a:hover { color: #79ddd4; }

.back-to-top, .floating-wechat-reopen { box-shadow: 0 12px 30px rgba(5, 52, 54, .22); }

@media (max-width: 900px) {
    .nav { height: 68px; }
    .nav-links {
        top: 68px;
        left: 16px;
        right: 16px;
        width: auto;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        box-shadow: var(--shadow-lg);
        overflow: hidden;
    }
    .nav-links > li > a { width: 100%; padding: 13px 18px; }
    .hero { min-height: auto; padding-top: 108px; padding-bottom: 54px; }
    .hero-content { min-height: 0; grid-template-columns: 1fr; gap: 22px; text-align: center; }
    .hero-content h2 { max-width: none; font-size: clamp(2.65rem, 10vw, 4.1rem); }
    .hero-desc { margin-inline: auto; }
    .hero-buttons { justify-content: center; }
    .hero-visual img { width: min(100%, 680px); margin: -20px auto -35px; }
    .capability-rail-inner { grid-template-columns: repeat(3, 1fr); }
    .capability-rail a:nth-child(4)::before { display: none; }
    .capability-rail a { min-height: 112px; padding: 22px 12px; }
    .cases-page-hero { padding-top: 116px; padding-bottom: 56px; }
}

@media (min-width: 901px) and (max-width: 1180px) {
    .hero-content { grid-template-columns: minmax(400px, .92fr) minmax(430px, 1.08fr); }
    .hero-content h2 { font-size: clamp(3.15rem, 5.2vw, 4rem); }
}

@media (max-width: 560px) {
    .container { width: min(100% - 28px, 1200px); }
    .logo h1 { font-size: 1.14rem; }
    .btn { width: 100%; }
    .hero-buttons { width: 100%; }
    .hero-content h2 { font-size: 2.25rem; line-height: 1.14; }
    .hero-content h2 span { white-space: normal; }
    .hero-subtitle { font-size: 1.2rem; }
    .hero-visual img { width: 112%; margin-left: -6%; }
    .capability-rail-inner { width: 100%; grid-template-columns: repeat(2, 1fr); }
    .capability-rail a:nth-child(odd)::before { display: none; }
    .capability-rail a:nth-child(4)::before { display: block; }
    .capability-rail a { min-height: 104px; padding: 18px 10px; }
    .section-title { font-size: clamp(1.8rem, 8vw, 2.35rem); }
    :where(.service-card, .solution-card, .case-card, .advantage-card, .tech-category, .about-stat-card, .contact-card, .tool-card) { border-radius: 18px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Homepage v2: extend the reference's white + teal visual system below the fold. */
.home-page .lingshu-promo,
.home-page .ai-engine,
.home-page .services,
.home-page .solutions,
.home-page .cases,
.home-page .advantages,
.home-page .tech-stack,
.home-page .process,
.home-page .about,
.home-page .partners,
.home-page .contact {
    padding-block: clamp(72px, 7vw, 104px);
}

.home-page .lingshu-promo {
    background: #fff;
    color: var(--text-color);
    border-top: 0;
}
.home-page .lingshu-promo:nth-of-type(even) { background: #f5fbfa; }
.home-page .lingshu-promo::before { opacity: .55; background: radial-gradient(circle, rgba(22,143,134,.1), transparent 68%); }
.home-page .lingshu-promo-tag,
.home-page .section-tag {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--primary-color);
    font-size: .78rem;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.home-page .lingshu-promo-text h2 { color: var(--text-color); letter-spacing: -.035em; }
.home-page .lingshu-promo-desc,
.home-page .lingshu-promo-features li { color: var(--text-light); }
.home-page .lingshu-promo-features li::before { background: #e1f5f2; color: var(--primary-color); }
.home-page .lingshu-promo-visual { min-height: 330px; border: 1px solid var(--border-color); border-radius: 20px; background: linear-gradient(145deg, #f7fcfb, #edf8f6); box-shadow: var(--shadow); overflow: hidden; }

.home-page .r2-promo {
    background: linear-gradient(135deg, #07514e 0%, #08736c 62%, #13988e 100%);
}
.home-page .r2-promo::before { opacity: 1; background: radial-gradient(circle, rgba(100,233,219,.2), transparent 65%); }
.home-page .r2-promo .lingshu-promo-tag { color: #8ce6dd; }
.home-page .r2-promo .lingshu-promo-text h2 { color: #fff; }
.home-page .r2-promo .lingshu-promo-desc,
.home-page .r2-promo .lingshu-promo-features li { color: rgba(255,255,255,.82); }
.home-page .r2-promo .lingshu-promo-features li::before { background: rgba(255,255,255,.14); color: #fff; }
.home-page .r2-promo .lingshu-promo-visual { border-color: rgba(255,255,255,.18); background: rgba(2,50,49,.24); box-shadow: none; }

.home-page .section-header { max-width: 760px; margin-inline: auto; }
.home-page .section-title { font-size: clamp(2rem, 3.4vw, 3rem); }
.home-page .services { background: #fff; }
.home-page .services-grid { gap: 18px; }
.home-page .service-card { padding: 30px; border-radius: 16px; box-shadow: none; }
.home-page .service-card::before { display: none; }
.home-page .service-card.featured { border: 1px solid rgba(22,143,134,.28); background: linear-gradient(145deg, #fff, #f2fbf9); }
.home-page .service-card.featured::after { top: 18px; right: 18px; border-radius: 6px; background: var(--primary-color); }
.home-page .service-icon { width: 54px; height: 54px; border-radius: 14px; background: #e6f6f4; }
.home-page .service-icon svg { width: 27px; height: 27px; color: var(--primary-color); }
.home-page .service-card.featured .service-icon { background: #dff4f1; }

.home-page .ai-engine { background: #f4faf9; }
.home-page .ai-engine::before { opacity: .55; }
.home-page .ai-models { gap: 14px; }
.home-page .ai-model-card { padding: 24px 12px 20px; border-radius: 14px; box-shadow: none; }
.home-page .ai-model-logo { width: 52px; height: 52px; border-radius: 13px; box-shadow: none; }
.home-page .ai-highlights { border: 1px solid var(--border-color); border-radius: 14px; box-shadow: none; }

.home-page .solutions { background: #fff; }
.home-page .solutions-grid { gap: 18px; }
.home-page .solution-card { border: 1px solid var(--border-color); border-radius: 16px; background: #fff; box-shadow: none; }
.home-page .solution-image { height: 150px; background: linear-gradient(145deg, #e9f8f6, #d7f1ed); }
.home-page .solution-icon-large { background: #fff; box-shadow: 0 10px 28px rgba(11,111,104,.1); }
.home-page .solution-icon-large svg { color: var(--primary-color); }

.home-page .cases { background: #f5fbfa; }
.home-page .cases::before, .home-page .cases::after { opacity: .35; }
.home-page .cases-grid { gap: 18px; }
.home-page .case-card { border-radius: 14px; box-shadow: none; }
.home-page .case-cover { height: 145px; }
.home-page .case-body { padding: 22px; }

.home-page .advantages { background: #fff; color: var(--text-color); }
.home-page .advantages .section-tag { color: var(--primary-color); }
.home-page .advantages .section-title { color: var(--text-color); }
.home-page .advantages .section-desc { color: var(--text-light); }
.home-page .advantages-grid { gap: 0; border-block: 1px solid var(--border-color); }
.home-page .advantage-card { min-height: 245px; padding: 34px 28px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.home-page .advantage-card + .advantage-card { border-left: 1px solid var(--border-color); }
.home-page .advantage-card:hover { background: #f3faf9; transform: none; box-shadow: none; }
.home-page .advantage-number { font-size: 2.25rem; color: var(--primary-color); -webkit-text-fill-color: currentColor; }
.home-page .advantage-card p { color: var(--text-light); }

.home-page .tech-stack { background: #f5fbfa; }
.home-page .tech-categories { gap: 14px; }
.home-page .tech-category { padding: 24px; border-radius: 14px; box-shadow: none; }
.home-page .tech-tag { background: #fff; border-radius: 7px; }

.home-page .process { background: #fff; }
.home-page .step-number { width: 48px; height: 48px; font-size: 1.05rem; box-shadow: 0 8px 22px rgba(22,143,134,.18); }
.home-page .process-line { margin-top: 23px; opacity: .45; }

.home-page .about { background: #f5fbfa; }
.home-page .about-stats-grid { gap: 14px; }
.home-page .about-stat-card { padding: 26px; border-radius: 14px; box-shadow: none; }
.home-page .partners { padding-block: 64px; background: #fff; }
.home-page .partners-logos { gap: 12px; }
.home-page .partner-logo { padding: 18px 28px; border-radius: 10px; background: #fff; }

.home-page .contact { background: #fff; padding-top: 40px; }
.home-page .contact-wrapper { padding: clamp(32px, 5vw, 64px); border-radius: 20px; background: linear-gradient(135deg, #07514e, #0b847b); }
.home-page .contact .section-tag,
.home-page .contact .section-title { color: #fff; }
.home-page .contact .section-desc { color: rgba(255,255,255,.72); }
.home-page .contact-list, .home-page .contact-qr-card { box-shadow: none; border-color: rgba(255,255,255,.18); }

@media (max-width: 900px) {
    .home-page .lingshu-promo-visual { min-height: 280px; }
    .home-page .advantages-grid { grid-template-columns: repeat(2, 1fr); }
    .home-page .advantage-card:nth-child(odd) { border-left: 0; }
    .home-page .advantage-card { border-bottom: 1px solid var(--border-color); }
}

@media (max-width: 560px) {
    .home-page .lingshu-promo,
    .home-page .ai-engine,
    .home-page .services,
    .home-page .solutions,
    .home-page .cases,
    .home-page .advantages,
    .home-page .tech-stack,
    .home-page .process,
    .home-page .about { padding-block: 64px; }
    .home-page .lingshu-promo-visual { min-height: 220px; border-radius: 14px; }
    .home-page .lingshu-promo-features { grid-template-columns: 1fr; }
    .home-page .advantages-grid { grid-template-columns: 1fr; }
    .home-page .advantage-card + .advantage-card { border-left: 0; }
    .home-page .contact { padding-top: 20px; }
    .home-page .contact-wrapper { padding: 30px 16px; border-radius: 0; }
}

/* Site-wide system: shared content pages, case studies and tools. */
:root {
    --surface: #ffffff;
    --surface-subtle: #f6fbfa;
    --surface-strong: #e8f5f3;
    --ink: #102f32;
    --ink-soft: #49686a;
    --line: #dcecea;
    --focus-ring: #087f78;
    --ease-out: cubic-bezier(.2, .8, .2, 1);
    --z-header: 1000;
    --z-overlay: 2000;
}

body { color: var(--ink); background: var(--surface); }
main, section[id] { scroll-margin-top: 92px; }
a, button { touch-action: manipulation; }
button, [role="button"], .case-card, .tool-card, .cases-index-item { cursor: pointer; }
img { max-width: 100%; }

.skip-link {
    position: fixed;
    z-index: 9999;
    top: 12px;
    left: 12px;
    padding: 11px 16px;
    border-radius: 10px;
    color: #fff;
    background: var(--primary-dark);
    box-shadow: var(--shadow);
    transform: translateY(-160%);
    transition: transform .18s ease;
}
.skip-link:focus { transform: translateY(0); }

.header { z-index: var(--z-header); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.nav-links > li > a.active,
.nav-links > li > a[aria-current="page"] { color: var(--primary-dark); background: var(--surface-strong); }
.nav-console-toggle { min-height: 44px; display: inline-flex; align-items: center; }
.nav-console-menu { border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-lg); }
.mobile-menu-toggle { width: 44px; height: 44px; border-radius: 11px; }

.cases-page-hero {
    position: relative;
    min-height: 390px;
    display: grid;
    place-items: center;
    overflow: hidden;
    isolation: isolate;
}
.cases-page-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
        radial-gradient(circle at 82% 18%, rgba(121,221,212,.24), transparent 30%);
    background-size: 64px 64px, 64px 64px, auto;
}
.cases-page-hero-content { width: min(calc(100vw - 40px), 980px); max-width: none; }
.cases-page-hero h1 {
    max-width: 900px;
    margin-inline: auto;
    font-size: clamp(2.45rem, 5vw, 4.5rem);
    line-height: 1.08;
    letter-spacing: -.045em;
    text-wrap: balance;
}
.cases-page-hero-desc { max-width: 760px; margin: 18px auto 0; line-height: 1.7; color: rgba(255,255,255,.82); }
.cases-index { margin-top: 30px; gap: 8px; }
.cases-index-item {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 10px;
    background: rgba(255,255,255,.08);
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.cases-index-item:hover,
.cases-index-item:focus-visible,
.cases-index-item.active { background: #fff; color: var(--primary-dark); border-color: #fff; transform: translateY(-2px); }

.cases-grid, .tools-grid { gap: clamp(18px, 2.5vw, 28px); }
.case-card, .tool-card { overflow: hidden; border-radius: 18px; background: var(--surface); }
.case-card:active, .tool-card:active, .btn:active { transform: translateY(0) scale(.985); }
.case-card h3, .tool-card h3 { letter-spacing: -.02em; }
.case-card p, .tool-card p { color: var(--ink-soft); line-height: 1.7; }
.case-tags, .tool-tags { gap: 7px; }
.case-tag, .tool-tag { border: 1px solid var(--line); background: var(--surface-subtle); color: var(--primary-dark); }

.case-detail { background: linear-gradient(180deg, #fff, #fbfdfd); }
.case-detail > .container { max-width: 1120px; }
.case-detail :where(p, li) { line-height: 1.78; }
.case-detail :where(.case-overview, .case-section, .detail-card, .case-content-block) { border-color: var(--line); }
.case-detail :where(h2, h3) { text-wrap: balance; color: var(--ink); }
.case-detail :where(pre, code) { overflow-wrap: anywhere; }

.tools-page { padding-block: clamp(64px, 8vw, 104px); }
.tools-page--alt { background: var(--surface-subtle); }
.tool-card { min-height: 100%; }
.tool-card-icon { background: var(--surface-strong); color: var(--primary-dark); }

.footer { border-top: 1px solid rgba(255,255,255,.08); }
.footer-main { padding-top: clamp(56px, 7vw, 82px); }
.footer a { text-underline-offset: 4px; }
.footer a:focus-visible { outline-color: #79ddd4; }

.back-to-top, .floating-wechat-reopen { width: 48px; height: 48px; }

@media (max-width: 900px) {
    .nav-links { max-height: calc(100dvh - 88px); overflow-y: auto; overscroll-behavior: contain; }
    .cases-page-hero { min-height: 350px; }
    .cases-index { display: flex; flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; padding: 3px 3px 10px; scroll-snap-type: x proximity; scrollbar-width: thin; }
    .cases-index-item { flex: 0 0 auto; scroll-snap-align: start; }
}

@media (max-width: 560px) {
    html { scroll-padding-top: 76px; }
    main, section[id] { scroll-margin-top: 76px; }
    .cases-page-hero { min-height: 330px; padding-top: 104px; padding-bottom: 44px; }
    .cases-page-hero-content { width: calc(100vw - 28px); }
    .cases-page-hero h1 { font-size: clamp(2.05rem, 10vw, 3rem); }
    .cases-page-hero-desc { font-size: 1rem; }
    .case-detail, .tools-page { padding-block: 56px; }
    .footer-main { padding-top: 50px; }
}

@media (forced-colors: active) {
    :where(a, button, input, textarea, select):focus-visible { outline: 3px solid CanvasText; }
}

/* Concept fidelity pass: mirror the approved Swiss-minimal mockup. */
@media (min-width: 901px) {
    .nav-links > li:has(> a[href*="#solutions"]),
    .nav-links > li:has(> a[href="tools.html"]),
    .nav-links > li:has(> a[href*="#advantages"]),
    .nav-links > .nav-console { display: none; }
    .nav-links > li:has(> a[href*="#contact"]),
    .nav-links > li:has(> a[href^="javascript:showContactModal"]) { margin-left: 12px; }
    .nav-links > li > a[href*="#contact"],
    .nav-links > li > a[href^="javascript:showContactModal"] {
        min-height: 44px;
        padding-inline: 20px;
        color: #fff;
        background: var(--primary-dark);
        box-shadow: 0 8px 20px rgba(11,111,104,.18);
    }
    .nav-links > li > a[href*="#contact"]:hover,
    .nav-links > li > a[href^="javascript:showContactModal"]:hover { color: #fff; background: #075f5a; transform: translateY(-1px); }
}

.home-page .hero { min-height: 720px; padding-top: 128px; }
.home-page .hero-content { min-height: 520px; grid-template-columns: minmax(520px,.95fr) minmax(520px,1.05fr); }
.home-page .hero-content h2 { font-size: clamp(3.45rem,4.2vw,4.35rem); line-height: 1.04; }
.home-page .hero-subtitle { margin-top: 28px; font-size: 1.35rem; color: var(--primary-dark); }
.home-page .hero-desc { max-width: 560px; }
.home-page .hero-visual img { width: 112%; margin-left: -6%; }
.home-page .capability-rail { box-shadow: 0 -1px 0 var(--line), 0 1px 0 var(--line); }

.home-page .services-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.home-page .service-card { min-height: 100%; }

.cases-page-hero {
    min-height: 370px;
    color: var(--ink);
    background: linear-gradient(180deg,#f8fcfb 0%,#fff 100%);
    border-bottom: 1px solid var(--line);
}
.cases-page-hero::before {
    background:
        linear-gradient(rgba(22,143,134,.04) 1px,transparent 1px),
        linear-gradient(90deg,rgba(22,143,134,.04) 1px,transparent 1px),
        radial-gradient(circle at 82% 18%,rgba(71,207,195,.12),transparent 30%);
    background-size: 64px 64px,64px 64px,auto;
}
.cases-page-hero h1 { color: var(--ink); text-shadow: none; }
.cases-page-hero-desc { color: var(--ink-soft); opacity: 1; }
.cases-page-hero .hero-badge {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--primary-dark);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .12em;
}
.cases-page-hero .cases-index-item {
    color: var(--ink-soft);
    border-color: var(--line);
    background: #fff;
}
.cases-page-hero .cases-index-item:hover,
.cases-page-hero .cases-index-item:focus-visible,
.cases-page-hero .cases-index-item.active {
    color: #fff;
    border-color: var(--primary-dark);
    background: var(--primary-dark);
}

@media (max-width: 1100px) and (min-width: 901px) {
    .home-page .services-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 900px) {
    .home-page .hero { min-height: auto; padding-top: 108px; }
    .home-page .hero-content { min-height: 0; grid-template-columns: 1fr; }
    .home-page .services-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .nav-links > li > a[href*="#contact"],
    .nav-links > li > a[href^="javascript:showContactModal"] { color: var(--primary-dark); background: var(--surface-strong); }
}

@media (max-width: 560px) {
    .home-page .hero-content h2 { font-size: 2.2rem; }
    .home-page .hero-subtitle { margin-top: 20px; font-size: 1.15rem; }
    .home-page .services-grid { grid-template-columns: 1fr; }
    .cases-page-hero { min-height: 350px; }
}

/* Premium dark-tech homepage direction. */
.home-page {
    background: #f4faf9;
}
.home-page .header {
    top: 18px;
    left: max(20px, calc((100vw - 1360px)/2));
    right: max(20px, calc((100vw - 1360px)/2));
    width: auto;
    border: 1px solid rgba(121,221,212,.2);
    border-radius: 18px;
    background: rgba(4,35,38,.78);
    box-shadow: 0 20px 70px rgba(0,15,18,.28);
    backdrop-filter: blur(22px) saturate(1.2);
}
.home-page .header.scrolled { background: rgba(4,35,38,.94); box-shadow: 0 18px 50px rgba(0,15,18,.35); }
.home-page .nav { width: 100%; max-width: 1320px; height: 78px; padding-inline: 28px; }
.home-page .logo h1 { color: #fff; }
.home-page .logo-img { background: rgba(255,255,255,.92); box-shadow: 0 0 0 1px rgba(255,255,255,.1), 0 8px 24px rgba(0,0,0,.18); }
.home-page .nav-links > li > a { color: rgba(255,255,255,.78); }
.home-page .nav-links > li > a:hover,
.home-page .nav-links > li > a.active { color: #6ff3e8; background: rgba(80,224,211,.1); }
.home-page .nav-links > li > a[href*="#contact"] { color: #7af6eb; border: 1px solid #37d8cb; background: rgba(19,145,137,.14); box-shadow: inset 0 0 24px rgba(55,216,203,.08), 0 0 24px rgba(55,216,203,.08); }

.home-page .hero {
    min-height: 820px;
    padding: 138px 0 120px;
    color: #fff;
    background:
        radial-gradient(circle at 78% 40%, rgba(0,214,201,.16), transparent 32%),
        radial-gradient(circle at 22% 90%, rgba(19,122,119,.22), transparent 30%),
        linear-gradient(135deg,#031c20 0%,#052f33 52%,#031b1e 100%);
}
.home-page .hero::before {
    opacity: .6;
    background:
        linear-gradient(rgba(86,225,215,.055) 1px,transparent 1px),
        linear-gradient(90deg,rgba(86,225,215,.055) 1px,transparent 1px),
        radial-gradient(circle at 77% 42%,rgba(0,255,234,.13),transparent 28%);
    background-size: 68px 68px,68px 68px,auto;
    mask-image: linear-gradient(to bottom,#000 10%,transparent 95%);
}
.home-page .hero::after {
    content:"";
    position:absolute;
    inset:auto -5% 0;
    height:190px;
    opacity:.34;
    background: repeating-radial-gradient(ellipse at 50% 115%,transparent 0 24px,rgba(68,224,212,.18) 25px 26px);
    transform: perspective(350px) rotateX(52deg);
    transform-origin:bottom;
}
.home-page .hero-particles { opacity: .42; }
.home-page .hero-content { min-height: 570px; grid-template-columns: minmax(560px,.95fr) minmax(560px,1.05fr); gap: 18px; }
.home-page .hero-copy { z-index: 3; }
.home-page .hero-content h2 { color: #fff; font-size: clamp(4rem,5.25vw,5.5rem); line-height: 1.04; letter-spacing: -.065em; text-shadow: 0 8px 40px rgba(0,0,0,.28); }
.home-page .hero-subtitle { color: #b8d3d2; font-size: 1.58rem; font-weight: 500; letter-spacing: .03em; }
.home-page .hero-subtitle span { color:#58e6da; }
.home-page .hero-desc { color: rgba(220,239,238,.68); font-size: 1rem; max-width: 520px; }
.home-page .hero-buttons { margin-top: 34px; }
.home-page .hero .btn { min-width: 168px; border-radius: 11px; }
.home-page .hero .btn-primary { color: #022b2d; background: linear-gradient(135deg,#6cf4e8,#14bbae); box-shadow: 0 12px 34px rgba(20,187,174,.28), inset 0 1px rgba(255,255,255,.55); }
.home-page .hero .btn-outline-dark { color: #d9f4f1; border: 1px solid rgba(96,232,221,.55); background: rgba(4,50,53,.32); }
.home-page .hero .btn-outline-dark:hover { color:#fff; background:rgba(38,172,163,.2); border-color:#64e9de; }
.home-page .hero-proof { display:flex; align-items:center; gap:12px; margin-top:58px; color:rgba(217,244,241,.7); font-size:.9rem; }
.home-page .hero-proof > span { display:inline-grid; place-items:center; width:26px; height:26px; color:#5ce5da; border:1px solid rgba(92,229,218,.5); border-radius:8px; }
.home-page .hero-proof i { width:4px; height:4px; border-radius:50%; background:#4fc9c0; }
.home-page .hero-visual { z-index: 2; transform: translate(4%,2%); }
.home-page .hero-visual::before { inset:18% 12% 8%; background:rgba(0,236,218,.16); filter:blur(54px); }
.home-page .hero-visual img {
    width:128%;
    max-width:none;
    margin-left:-14%;
    mix-blend-mode:multiply;
    mask-image:radial-gradient(ellipse 66% 70% at 54% 55%,#000 46%,rgba(0,0,0,.9) 61%,transparent 82%);
    filter:saturate(1.45) brightness(1.35) contrast(1.06) drop-shadow(0 35px 50px rgba(0,0,0,.42));
}

.home-page .capability-rail { z-index:8; width:min(calc(100% - 80px),1320px); margin:-82px auto 0; border:1px solid rgba(206,233,230,.85); border-radius:22px; background:rgba(255,255,255,.94); box-shadow:0 30px 70px rgba(4,45,47,.18); backdrop-filter:blur(18px); overflow:hidden; }
.home-page .capability-rail a { min-height:154px; padding:24px 14px 20px; }
.home-page .capability-rail a + a::before { top:26px; bottom:26px; }
.home-page .capability-rail a svg { width:38px; height:38px; margin:0 auto 8px; fill:none; stroke:var(--primary-dark); stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; transition:transform .25s var(--ease-out),color .25s ease; }
.home-page .capability-rail a::after { display:none; }
.home-page .capability-rail a:hover svg { color:#10a99e; transform:translateY(-3px) scale(1.06); }
.home-page .capability-rail strong { font-size:1rem; }
.home-page .capability-rail span { font-size:.76rem; }
.home-page .media-promo { padding-top:160px; margin-top:-72px; }

@media (max-width: 900px) {
    .home-page .header { top:10px; left:10px; right:10px; border-radius:15px; }
    .home-page .nav { height:64px; padding-inline:16px; }
    .home-page .mobile-menu-btn span { background:#d9f4f1; }
    .home-page .nav-links { top:74px; background:rgba(4,35,38,.97); border-color:rgba(121,221,212,.18); }
    .home-page .nav-links > li > a { color:rgba(255,255,255,.82); }
    .home-page .hero { min-height:auto; padding:120px 0 150px; }
    .home-page .hero-content { grid-template-columns:1fr; text-align:center; }
    .home-page .hero-content h2 { font-size:clamp(2.7rem,11vw,4.4rem); }
    .home-page .hero-desc,.home-page .hero-proof { margin-inline:auto; }
    .home-page .hero-proof { justify-content:center; margin-top:36px; }
    .home-page .hero-visual { transform:none; }
    .home-page .hero-visual img { width:min(118%,700px); margin:-20px auto -40px; }
    .home-page .capability-rail { width:min(calc(100% - 28px),700px); margin-top:-95px; }
    .home-page .capability-rail-inner { grid-template-columns:repeat(3,1fr); }
    .home-page .capability-rail a { min-height:132px; }
    .home-page .media-promo { padding-top:150px; }
}

@media (max-width: 560px) {
    .home-page .hero { padding-bottom:130px; }
    .home-page .hero-content h2 { font-size:2.65rem; }
    .home-page .hero-subtitle { font-size:1.12rem; }
    .home-page .hero-desc { font-size:.96rem; }
    .home-page .hero-proof { flex-wrap:wrap; gap:8px; font-size:.8rem; }
    .home-page .capability-rail-inner { grid-template-columns:repeat(2,1fr); }
    .home-page .capability-rail a { min-height:124px; }
    .home-page .capability-rail a svg { width:32px; height:32px; }
}
