/* ========================
   九天技术 · 全站主题样式 (紧凑版)
   主色：红 #C41E24 / 金 #D4A24C / 黄 #F5C518
   辅色：深蓝 #0A1628 / 浅金 #FFF8E7
   ======================== */

:root {
    --red: #C41E24;
    --red-dark: #9B0F14;
    --red-light: #E84048;
    --gold: #D4A24C;
    --gold-dark: #B8862F;
    --yellow: #F5C518;
    --blue: #1A4B8C;
    --blue-dark: #0A1628;
    --bg-cream: #FFF8E7;
    --bg-warm: #FFFBF0;
    --text-dark: #1A1A2E;
    --text-body: #3A3A4A;
    --text-muted: #8A8A9A;
    --border-light: #EDEDED;
    --shadow-sm: 0 2px 8px rgba(0,0,0,.06);
    --shadow-md: 0 4px 16px rgba(0,0,0,.08);
    --shadow-lg: 0 8px 32px rgba(196,30,36,.10);
    --radius: 10px;
    --radius-sm: 6px;
    --max-width: 1200px;
    --header-h: 56px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
    font-family: "PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
    color: var(--text-body);
    background: #fff;
    line-height: 1.55;
    font-size: 14px;
    overflow-x: hidden;
}
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }
ul { list-style:none; }

.container { max-width:var(--max-width); margin:0 auto; padding:0 24px; }

/* ========================
   HEADER
   ======================== */
.header {
    position: fixed; top:0; left:0; right:0; z-index:1000;
    height: var(--header-h);
    background: rgba(255,255,255,.95);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border-light);
    transition: all .3s ease;
}
.header.scrolled {
    box-shadow: var(--shadow-sm);
}
.header-inner {
    max-width: var(--max-width); margin:0 auto; padding:0 24px;
    height:100%; display:flex; align-items:center; justify-content:space-between;
}
.logo { display:flex; align-items:center; gap:8px; }
.logo-icon {
    width:32px; height:32px;
    background: linear-gradient(135deg, var(--red), var(--gold));
    border-radius:6px; display:flex; align-items:center; justify-content:center;
    color:#fff; font-size:16px; font-weight:700;
    box-shadow: 0 2px 6px rgba(196,30,36,.3);
}
.logo-text { font-size:16px; font-weight:700; color:var(--text-dark); letter-spacing:1px; }
.logo-text span { color: var(--red); }
.nav { display:flex; gap:24px; }
.nav-item { position:relative; }
.nav-item > a {
    font-size:13px; font-weight:500; color:var(--text-dark);
    padding:6px 4px; cursor:pointer; transition:color .2s;
}
.nav-item > a:hover { color:var(--red); }
.nav-dropdown {
    position:absolute; top:100%; left:-16px;
    background:#fff; border:1px solid var(--border-light);
    border-radius:var(--radius-sm); box-shadow:var(--shadow-md);
    min-width:200px; padding:6px 0;
    opacity:0; visibility:hidden; transform:translateY(6px);
    transition:all .25s ease;
}
.nav-item:hover .nav-dropdown { opacity:1; visibility:visible; transform:translateY(0); }
.nav-dropdown a {
    display:block; padding:7px 18px; font-size:12px; color:var(--text-body);
    transition:all .2s;
}
.nav-dropdown a:hover { background:var(--bg-cream); color:var(--red); }
.btn-demo {
    background: linear-gradient(135deg, var(--red), var(--red-dark));
    color:#fff; padding:6px 16px; border-radius:var(--radius-sm);
    font-size:13px; font-weight:600; border:none; cursor:pointer;
    transition:all .25s; white-space:nowrap;
    box-shadow: 0 2px 6px rgba(196,30,36,.25);
}
.btn-demo:hover { transform:translateY(-1px); box-shadow: 0 4px 12px rgba(196,30,36,.35); }

.mobile-toggle { display:none; font-size:22px; background:none; border:none; cursor:pointer; color:var(--text-dark); }

/* ========================
   BUTTONS
   ======================== */
.btn { display:inline-flex; align-items:center; gap:6px; padding:9px 22px; border-radius:var(--radius-sm); font-size:14px; font-weight:600; cursor:pointer; transition:all .25s; border:none; }
.btn-primary {
    background: linear-gradient(135deg, var(--red), var(--red-dark));
    color:#fff; box-shadow: 0 3px 12px rgba(196,30,36,.25);
}
.btn-primary:hover { transform:translateY(-2px); box-shadow: 0 6px 20px rgba(196,30,36,.35); }
.btn-gold {
    background: linear-gradient(135deg, var(--gold), var(--gold-dark));
    color:#fff; box-shadow: 0 3px 12px rgba(212,162,76,.25);
}
.btn-gold:hover { transform:translateY(-2px); box-shadow: 0 6px 20px rgba(212,162,76,.35); }
.btn-outline {
    background:transparent; color:#fff; border:2px solid rgba(255,255,255,.5);
}
.btn-outline:hover { border-color:#fff; background:rgba(255,255,255,.1); }
.btn-outline-dark {
    background:transparent; color:var(--red); border:2px solid var(--red);
}
.btn-outline-dark:hover { background:var(--red); color:#fff; }

/* ========================
   SECTION TITLES
   ======================== */
.section { padding:48px 0; }
.section-eyebrow {
    display:inline-block; font-size:12px; font-weight:600; letter-spacing:2px;
    text-transform:uppercase; color:var(--gold-dark); margin-bottom:8px;
    padding:3px 12px; background:var(--bg-cream); border-radius:16px;
}
.section-title {
    font-size:28px; font-weight:700; color:var(--text-dark); margin-bottom:10px; line-height:1.3;
}
.section-title .accent { color:var(--red); }
.section-desc { font-size:14px; color:var(--text-muted); max-width:600px; margin:0 auto 28px; }
.section-header { text-align:center; margin-bottom:32px; }

/* ========================
   HERO (generic)
   ======================== */
.hero {
    position:relative; min-height:440px; display:flex; align-items:center;
    background: linear-gradient(135deg, #0A1628 0%, #1A2942 50%, #2A1810 100%);
    color:#fff; overflow:hidden; padding-top:var(--header-h);
}
.hero::before {
    content:''; position:absolute; inset:0;
    background:
        radial-gradient(circle at 20% 50%, rgba(196,30,36,.15), transparent 50%),
        radial-gradient(circle at 80% 30%, rgba(212,162,76,.12), transparent 50%);
}
.hero-particles { position:absolute; inset:0; pointer-events:none; }
.hero-inner { position:relative; z-index:2; max-width:var(--max-width); margin:0 auto; padding:40px 24px; }
.hero-tag {
    display:inline-block; padding:4px 14px; border-radius:16px;
    background:rgba(212,162,76,.2); border:1px solid rgba(212,162,76,.4);
    color:var(--gold); font-size:12px; font-weight:600; margin-bottom:14px;
}
.hero h1 { font-size:38px; font-weight:700; line-height:1.25; margin-bottom:12px; }
.hero h1 .highlight { color:var(--yellow); }
.hero-sub { font-size:15px; color:rgba(255,255,255,.75); max-width:520px; margin-bottom:22px; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }

/* ========================
   CARDS (generic)
   ======================== */
.card {
    background:#fff; border:1px solid var(--border-light);
    border-radius:var(--radius); padding:20px;
    transition:all .3s ease; position:relative; overflow:hidden;
}
.card:hover {
    box-shadow:var(--shadow-lg); transform:translateY(-3px);
    border-color:var(--gold);
}
.card-icon {
    width:44px; height:44px; border-radius:var(--radius-sm);
    display:flex; align-items:center; justify-content:center;
    font-size:22px; margin-bottom:12px;
    background:linear-gradient(135deg, var(--bg-cream), #FFF); 
    border:1px solid rgba(212,162,76,.2);
}
.card h3 { font-size:16px; font-weight:600; color:var(--text-dark); margin-bottom:6px; }
.card p { font-size:13px; color:var(--text-muted); }

/* product card variants */
.product-card-large {
    background:linear-gradient(135deg, #8B0F14, #B8862F);
    color:#fff; border:1px solid rgba(212,162,76,.3); border-radius:var(--radius);
    padding:24px; transition:all .3s; position:relative; overflow:hidden;
}
.product-card-large:hover { border-color:var(--gold); transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.product-card-large::after {
    content:''; position:absolute; top:-50%; right:-50%; width:200%; height:200%;
    background:radial-gradient(circle, rgba(196,30,36,.08), transparent 40%);
}
.product-card-large .card-tag {
    display:inline-block; padding:3px 10px; border-radius:4px;
    background:var(--red); color:#fff; font-size:11px; font-weight:600; margin-bottom:10px;
}
.product-card-large h3 { font-size:20px; color:#fff; margin-bottom:8px; position:relative; }
.product-card-large p { color:rgba(255,255,255,.65); font-size:13px; position:relative; }
.product-card-large .link-more { color:var(--gold); font-size:13px; font-weight:600; margin-top:12px; display:inline-block; position:relative; }

/* ========================
   GRIDS
   ======================== */
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.grid-asym { display:grid; grid-template-columns:1.2fr 1fr; gap:16px; }
.grid-asym-right { display:grid; grid-template-columns:1fr 1fr; gap:16px; }

/* ========================
   INDUSTRY CARDS
   ======================== */
.industry-card {
    background:#fff; border:1px solid var(--border-light); border-radius:var(--radius);
    padding:18px 14px; text-align:center; cursor:pointer; transition:all .3s; position:relative;
}
.industry-card:hover {
    box-shadow:var(--shadow-md); border-color:var(--gold);
    transform:translateY(-3px);
}
.industry-card .icon-circle {
    width:48px; height:48px; margin:0 auto 10px;
    border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:22px; background:var(--bg-cream);
    border:2px solid rgba(212,162,76,.2); transition:all .3s;
}
.industry-card:hover .icon-circle {
    background:linear-gradient(135deg, var(--red), var(--gold)); color:#fff; border-color:transparent;
}
.industry-card h4 { font-size:15px; color:var(--text-dark); margin-bottom:5px; }
.industry-card .keywords { font-size:12px; color:var(--text-muted); margin-bottom:8px; }
.industry-card .hover-detail {
    max-height:0; overflow:hidden; transition:max-height .4s ease;
    font-size:12px; color:var(--text-body);
}
.industry-card:hover .hover-detail { max-height:100px; }

/* ========================
   CTA BANNER
   ======================== */
.cta-banner {
    background: linear-gradient(135deg, var(--red-dark), var(--red));
    position:relative; overflow:hidden;
}
.cta-banner::before {
    content:''; position:absolute; inset:0;
    background:radial-gradient(circle at 30% 50%, rgba(212,162,76,.2), transparent 50%);
}
.cta-banner .section { position:relative; z-index:1; }
.cta-banner h2 { color:#fff; }
.cta-banner p { color:rgba(255,255,255,.8); }

/* ========================
   DATA METRICS
   ======================== */
.metric-box { text-align:center; padding:14px; }
.metric-number {
    font-size:34px; font-weight:700;
    background:linear-gradient(135deg, var(--red), var(--gold));
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text;
}
.metric-label { font-size:13px; color:var(--text-muted); margin-top:2px; }

/* ========================
   FOOTER
   ======================== */
.footer { background:#fff; color:#333; padding:40px 0 0; border-top:2px solid #C41E24; }
.footer-grid {
    max-width:var(--max-width); margin:0 auto; padding:0 24px;
    display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:24px; padding-bottom:28px;
}
.footer-brand .logo-text { color:#1A1A2E; }
.footer h5 { color:#C41E24; font-size:14px; margin-bottom:10px; }
.footer ul li { margin-bottom:6px; }
.footer ul li a { font-size:12px; color:#666; transition:color .2s; }
.footer ul li a:hover { color:var(--red); }
.footer-contact p { font-size:12px; margin-bottom:5px; color:#666; }
.footer-contact .icon { color:var(--gold-dark); margin-right:6px; }
.footer-bottom {
    border-top:1px solid #eee; padding:14px 24px; text-align:center;
    font-size:11px; color:#999;
}

/* ========================
   PAGE HERO (sub pages)
   ======================== */
.page-hero {
    background: linear-gradient(135deg, #8B0F14 0%, #C41E24 60%, #B8862F 100%);
    color:#fff; padding:calc(var(--header-h) + 36px) 0 36px;
    position:relative; overflow:hidden;
}
.page-hero::before {
    content:''; position:absolute; inset:0;
    background:
        radial-gradient(circle at 20% 50%, rgba(196,30,36,.15), transparent 50%),
        radial-gradient(circle at 80% 30%, rgba(212,162,76,.1), transparent 50%);
}
.page-hero .container { position:relative; z-index:1; }
.page-hero h1 { font-size:30px; font-weight:700; margin-bottom:8px; }
.page-hero .sub { font-size:14px; color:rgba(255,255,255,.7); max-width:560px; }

/* ========================
   FEATURES (alternating)
   ======================== */
.feature-row { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:center; margin-bottom:36px; }
.feature-row:last-child { margin-bottom:0; }
.feature-row.reverse { direction:rtl; }
.feature-row.reverse > * { direction:ltr; }
.feature-content h3 { font-size:20px; color:var(--text-dark); margin-bottom:10px; }
.feature-content .feature-list { margin-top:10px; }
.feature-content .feature-list li {
    padding:4px 0 4px 24px; position:relative; font-size:14px; color:var(--text-body);
}
.feature-content .feature-list li::before {
    content:'✦'; position:absolute; left:0; color:var(--gold); font-size:14px;
}
.feature-visual {
    background:linear-gradient(135deg, var(--bg-cream), #fff);
    border:1px solid var(--border-light); border-radius:var(--radius);
    height:200px; display:flex; align-items:center; justify-content:center;
    font-size:13px; color:var(--text-muted); position:relative; overflow:hidden;
}
.feature-visual svg { width:80%; height:80%; }

/* ========================
   ARCHITECTURE DIAGRAM
   ======================== */
.arch-diagram { display:flex; flex-direction:column; gap:8px; max-width:520px; margin:0 auto; }
.arch-layer {
    padding:12px 20px; border-radius:var(--radius-sm); text-align:center;
    transition:all .3s; cursor:default;
}
.arch-layer:hover { transform:scale(1.02); }
.arch-layer-1 { background:linear-gradient(135deg, var(--red), var(--red-light)); color:#fff; }
.arch-layer-2 { background:linear-gradient(135deg, var(--gold), var(--gold-dark)); color:#fff; }
.arch-layer-3 { background:linear-gradient(135deg, var(--blue), #2A6CB8); color:#fff; }
.arch-layer h4 { font-size:15px; margin-bottom:2px; }
.arch-layer p { font-size:12px; opacity:.85; }
.arch-arrow { text-align:center; color:var(--text-muted); font-size:16px; }

/* ========================
   FORM
   ======================== */
.form-group { margin-bottom:14px; }
.form-group label { display:block; font-size:13px; font-weight:500; color:var(--text-dark); margin-bottom:4px; }
.form-group label .req { color:var(--red); }
.form-control {
    width:100%; padding:10px 14px; border:1px solid var(--border-light);
    border-radius:var(--radius-sm); font-size:13px; font-family:inherit;
    transition:border-color .2s; background:#fff;
}
.form-control:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,162,76,.1); }
textarea.form-control { resize:vertical; min-height:80px; }
select.form-control { cursor:pointer; }

/* ========================
   TIMELINE
   ======================== */
.timeline { position:relative; padding-left:28px; }
.timeline::before {
    content:''; position:absolute; left:8px; top:0; bottom:0;
    width:2px; background:linear-gradient(var(--red), var(--gold), var(--blue));
}
.timeline-item { position:relative; padding-bottom:20px; }
.timeline-item::before {
    content:''; position:absolute; left:-24px; top:4px;
    width:12px; height:12px; border-radius:50%;
    background:var(--red); border:2px solid #fff; box-shadow:0 0 0 3px rgba(196,30,36,.15);
}
.timeline-item .year { font-size:15px; font-weight:700; color:var(--red); }
.timeline-item .desc { font-size:13px; color:var(--text-muted); margin-top:2px; }

/* ========================
   TABS
   ======================== */
.tabs { display:flex; gap:6px; margin-bottom:20px; flex-wrap:wrap; }
.tab {
    padding:7px 18px; border-radius:var(--radius-sm); cursor:pointer;
    font-size:13px; font-weight:500; color:var(--text-body);
    border:1px solid var(--border-light); background:#fff; transition:all .2s;
}
.tab.active, .tab:hover { background:var(--red); color:#fff; border-color:var(--red); }

/* ========================
   PAIN POINTS
   ======================== */
.pain-card {
    background:#F8F8F8; border:1px solid var(--border-light);
    border-radius:var(--radius); padding:16px; text-align:center;
}
.pain-card .icon { font-size:26px; margin-bottom:8px; opacity:.6; }
.pain-card h4 { font-size:15px; color:var(--text-dark); margin-bottom:5px; }
.pain-card p { font-size:12px; color:var(--text-muted); }

/* ========================
   PARTNERS LOGO WALL
   ======================== */
.logo-wall { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.logo-placeholder {
    aspect-ratio:3/1; background:var(--bg-warm); border:1px solid var(--border-light);
    border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center;
    font-size:12px; color:var(--text-muted); transition:all .3s;
}
.logo-placeholder:hover { border-color:var(--gold); color:var(--gold-dark); }

/* ========================
   FLOATING CONTACT
   ======================== */
.float-contact {
    position:fixed; right:20px; bottom:20px; z-index:999;
    width:48px; height:48px; border-radius:50%;
    background:linear-gradient(135deg, var(--red), var(--red-dark));
    display:flex; align-items:center; justify-content:center;
    font-size:20px; color:#fff; cursor:pointer;
    box-shadow: 0 4px 16px rgba(196,30,36,.35);
    transition:all .3s;
}
.float-contact:hover { transform:scale(1.1); }

/* ========================
   MODAL
   ======================== */
.modal-overlay {
    position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:2000;
    display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden; transition:all .3s;
}
.modal-overlay.active { opacity:1; visibility:visible; }
.modal-box {
    background:#fff; border-radius:var(--radius); padding:28px;
    max-width:440px; width:90%; max-height:90vh; overflow-y:auto;
    transform:translateY(20px); transition:transform .3s;
}
.modal-overlay.active .modal-box { transform:translateY(0); }
.modal-close {
    position:absolute; top:12px; right:12px; font-size:20px;
    background:none; border:none; cursor:pointer; color:var(--text-muted);
}

/* ========================
   RESPONSIVE
   ======================== */
@media (max-width: 968px) {
    .nav { display:none; }
    .mobile-toggle { display:block; }
    .hero h1 { font-size:28px; }
    .section { padding:36px 0; }
    .section-title { font-size:22px; }
    .grid-2, .grid-3, .grid-4, .grid-asym, .grid-asym-right { grid-template-columns:1fr; }
    .feature-row { grid-template-columns:1fr; gap:16px; }
    .footer-grid { grid-template-columns:1fr 1fr; gap:20px; }
    .logo-wall { grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 600px) {
    .footer-grid { grid-template-columns:1fr; }
    .logo-wall { grid-template-columns:repeat(2,1fr); }
    .hero h1 { font-size:24px; }
    .page-hero h1 { font-size:24px; }
}

/* ========================
   UTILITIES & ANIMATIONS
   ======================== */
.fade-in { opacity:0; transform:translateY(24px); transition:all .6s ease; }
.fade-in.visible { opacity:1; transform:translateY(0); }
.bg-cream { background:var(--bg-cream); }
.bg-dark { background:linear-gradient(135deg, #8B0F14, #B8862F); color:#fff; }
.text-center { text-align:center; }
.mt-40 { margin-top:28px; }
.mb-0 { margin-bottom:0; }

/* ===== SEO: 面包屑导航 ===== */
.breadcrumb { font-size:12px; color:var(--text-muted); padding:8px 20px 0; max-width:1200px; margin:0 auto; }
.breadcrumb a { color:var(--text-muted); text-decoration:none; transition:color .2s; }
.breadcrumb a:hover { color:var(--red); }
.breadcrumb span { margin:0 4px; color:var(--border-light); }
.breadcrumb .current { color:var(--text-body); font-weight:500; }
