
/* ===== CSS BLOCK 1 ===== */

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

  :root {
    --navy: #061533;
    --navy-2: #0A1F44;
    --charcoal: #1f1f1f;
    --orange: #FF5E00;
    --orange-dark: #cc4a00;
    --white: #ffffff;
    --off-white: #f5f5f7;
    --light-gray: #e8e8ed;
    --mid-gray: #6b6b70;
    --text-secondary: #51515a;
    --transition: cubic-bezier(0.4, 0, 0.2, 1);
  }

  html { scroll-behavior: smooth; font-size: 16px; }

  body {
    font-family: 'Inter', sans-serif;
    background: var(--white);
    color: var(--charcoal);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
  }

  img, svg, video, iframe { max-width: 100%; height: auto; }
  svg { display: block; }

  /* 闁冲厜鍋撻柍鍏夊亾 NAV 闁冲厜鍋撻柍鍏夊亾 */
  nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
    height: 52px;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 2rem;
    background: rgba(10, 31, 68, 0.88);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    transition: background 0.3s var(--transition);
  }
  nav.light {
    background: rgba(255,255,255,0.88);
    box-shadow: 0 1px 0 rgba(0,0,0,0.1);
  }
  nav.light .nav-logo { color: var(--navy); }
  nav.light .nav-links a { color: var(--charcoal); }
  nav.light .nav-links a:hover { color: var(--orange); }
  nav.light .nav-hamburger span { background: var(--navy); }

  .nav-logo {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 1.25rem;
    color: var(--white);
    letter-spacing: -0.02em;
    text-decoration: none;
    transition: color 0.3s;
  }
  .nav-logo span { color: var(--orange); }

  .nav-links {
    display: flex; align-items: center; gap: 2rem;
    list-style: none;
  }
  .nav-links a {
    color: rgba(255,255,255,1);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 500;
    font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
    transition: color 0.2s;
    letter-spacing: 0.01em;
  }
  .nav-links a:hover { color: var(--white); }

  .nav-cta {
    background: var(--orange) !important;
    color: var(--white) !important;
    padding: 0.45rem 1.1rem;
    border-radius: 980px;
    font-weight: 500 !important;
    font-size: 0.8rem !important;
    transition: background 0.2s, transform 0.1s !important;
  }
  .nav-cta:hover { background: var(--orange-dark) !important; transform: scale(1.03); }

  /* 闁冲厜鍋撻柍鍏夊亾 HERO 闁冲厜鍋撻柍鍏夊亾 */
  #hero {
    position: relative;
    height: 100vh; min-height: 700px;
    display: flex; flex-direction: column;
    align-items: flex-start; justify-content: center;
    text-align: left;
    overflow: hidden;
    background: linear-gradient(135deg, #0A1F44 0%, #0d2b5e 45%, #061229 100%);
  }

  .hero-bg {
    position: absolute; inset: 0;
    background: radial-gradient(ellipse 120% 80% at 50% 20%, #0e2e6b 0%, #0A1F44 60%, #060f22 100%);
  }

  .hero-grid {
    position: absolute; inset: 0;
    background-image: linear-gradient(rgba(255,94,0,0.06) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(255,94,0,0.06) 1px, transparent 1px);
    background-size: 60px 60px;
    animation: gridDrift 20s linear infinite;
  }
  @keyframes gridDrift { from { transform: translateY(0); } to { transform: translateY(60px); } }

  .hero-glow {
    position: absolute;
    width: 600px; height: 600px;
    background: radial-gradient(circle, rgba(255,94,0,0.15) 0%, transparent 70%);
    top: 50%; left: 50%;
    transform: translate(-50%, -60%);
    animation: pulse 4s ease-in-out infinite;
  }
  @keyframes pulse {
    0%, 100% { transform: translate(-50%, -60%) scale(1); opacity: 0.8; }
    50% { transform: translate(-50%, -60%) scale(1.15); opacity: 1; }
  }

  .hero-content {
    position: relative; z-index: 2;
    max-width: 620px; padding: 0 2rem; margin-left: max(2rem, calc((100vw - 1180px) / 2));
  }

  .hero-eyebrow {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--orange);
    border: 1px solid rgba(255,94,0,0.4);
    padding: 0.3rem 1rem;
    border-radius: 980px;
    margin-bottom: 2rem;
    opacity: 0;
    animation: fadeUp 0.8s 0.2s var(--transition) forwards;
  }

  .hero-title {
    font-family: 'Inter', sans-serif;
    font-weight: 900;
    font-size: clamp(2rem, 4.2vw, 4.8rem);
    line-height: 1.06;
    color: var(--white);
    letter-spacing: -0.03em;
    opacity: 0;
    animation: fadeUp 0.9s 0.4s var(--transition) forwards;
  }
  .hero-title .dot { color: var(--orange); }

  .hero-sub {
    margin-top: 1.5rem;
    font-size: clamp(0.98rem, 1.6vw, 1.15rem);
    color: rgba(255,255,255,0.8);
    font-weight: 400;
    max-width: 30em;
    line-height: 1.5;
    letter-spacing: 0.01em;
    opacity: 0;
    animation: fadeUp 0.9s 0.6s var(--transition) forwards;
  }

  .hero-buttons {
    margin-top: 2.5rem;
    display: flex; gap: 1rem;
    justify-content: flex-start; flex-wrap: wrap;
    opacity: 0;
    animation: fadeUp 0.9s 0.8s var(--transition) forwards;
  }

  .btn-primary {
    background: var(--orange);
    color: var(--white);
    border: none;
    padding: 0.85rem 2rem;
    border-radius: 980px;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s, transform 0.1s, box-shadow 0.2s;
    display: inline-block;
  }
  .btn-primary:hover { background: var(--orange-dark); transform: scale(1.03); box-shadow: 0 8px 30px rgba(255,94,0,0.35); }

  .btn-secondary {
    background: transparent;
    color: var(--white);
    border: 1px solid rgba(255,255,255,0.35);
    padding: 0.85rem 2rem;
    border-radius: 980px;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    font-weight: 400;
    cursor: pointer;
    text-decoration: none;
    transition: border-color 0.2s, background 0.2s, transform 0.1s;
    display: inline-block;
  }
  .btn-secondary:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.07); transform: scale(1.03); }

  .hero-scroll {
    position: absolute; bottom: 2.5rem; left: 50%; transform: translateX(-50%);
    display: flex; flex-direction: column; align-items: center; gap: 0.5rem;
    color: rgba(255,255,255,0.55);
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    animation: bounce 2s ease-in-out infinite;
  }
  .hero-scroll::after {
    content: '';
    width: 1px; height: 40px;
    background: linear-gradient(to bottom, rgba(255,255,255,0.3), transparent);
  }
  @keyframes bounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(6px); }
  }

  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* ── STATS BAR ── */
  .stats-bar {
    background: var(--navy);
    padding: 3rem 2rem;
    display: flex; justify-content: center;
  }
  .stats-inner {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 2rem;
    max-width: 900px; width: 100%;
    text-align: center;
  }
  .stat-item {
    border-right: 1px solid rgba(255,255,255,0.1);
    padding: 0 1rem;
  }
  .stat-item:last-child { border-right: none; }
  .stat-num {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 2.5rem;
    color: var(--white);
    letter-spacing: -0.03em;
    line-height: 1;
  }
  .stat-num span { color: var(--orange); }
  .stat-label {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.62);
    margin-top: 0.4rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  /* ── SECTION BASE ── */
  section { padding: 7rem 2rem; }

  .section-label {
    display: block;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--orange);
    margin-bottom: 1rem;
  }
  .section-title {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: clamp(2rem, 5vw, 3.5rem);
    color: var(--navy);
    letter-spacing: -0.03em;
    line-height: 1.1;
  }
  .section-body {
    font-size: 1.05rem;
    line-height: 1.75;
    color: var(--text-secondary);
    max-width: 580px;
  }

  /* ── BRAND SECTION ── */
  #brand {
    background: var(--off-white);
    text-align: left;
    padding: 6rem 2rem;
    min-height: 560px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  #brand::before {
    content: "";
    position: absolute;
    top: 50%;
    left: max(2rem, calc((100vw - 1100px) / 2));
    width: min(43vw, 520px);
    aspect-ratio: 16 / 10;
    transform: translateY(-50%);
    border-radius: 18px;
    background: url('images/original/0.jpg') center / cover no-repeat;
    box-shadow: 0 24px 70px rgba(10,31,68,0.16);
  }
  #brand > * {
    position: relative;
    z-index: 2;
    max-width: 560px;
    margin-left: calc(50% + 1.5rem);
  }
  #brand .section-body {
    max-width: 560px;
    margin: 1.5rem 0 0 calc(50% + 1.5rem);
    font-size: 1.15rem;
    color: #444;
  }
  #brand > div { justify-content: flex-start !important; }
  @media (max-width: 900px) {
    #brand {
      text-align: center;
      min-height: 0;
      padding: calc(4rem + 56vw) 1.25rem 4rem;
    }
    #brand::before {
      top: 3rem;
      left: 50%;
      width: min(88vw, 560px);
      transform: translateX(-50%);
    }
    #brand > * {
      margin-left: auto;
      margin-right: auto;
    }
    #brand .section-body { margin-left: auto; margin-right: auto; }
    #brand > div { justify-content: center !important; }
  }

  /* ── PILLARS ── */
  #pillars { background: var(--white); }
  .pillars-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5px;
    max-width: 1100px; margin: 4rem auto 0;
    background: var(--light-gray);
    border-radius: 18px;
    overflow: hidden;
  }
  .pillar-card {
    background: var(--white);
    padding: 2.5rem 2rem;
    transition: background 0.3s, transform 0.3s;
    cursor: default;
  }
  .pillar-card:hover { background: var(--navy); }
  .pillar-card:hover .pillar-num { color: rgba(255,94,0,0.6); }
  .pillar-card:hover .pillar-title { color: var(--white); }
  .pillar-card:hover .pillar-text { color: rgba(255,255,255,0.72); }

  .pillar-num {
    font-family: 'Inter', sans-serif;
    font-weight: 900;
    font-size: 3.5rem;
    color: var(--light-gray);
    line-height: 1;
    transition: color 0.3s;
    letter-spacing: -0.05em;
  }
  .pillar-title {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: 1.15rem;
    color: var(--navy);
    margin: 0.75rem 0 0.6rem;
    transition: color 0.3s;
  }
  .pillar-text {
    font-size: 0.9rem;
    line-height: 1.65;
    color: var(--text-secondary);
    transition: color 0.3s;
  }

  /* ── WHAT WE DO ── */
  #what-we-do {
    background: var(--navy);
    color: var(--white);
  }
  #what-we-do .section-title { color: var(--white); }
  #what-we-do .section-body { color: rgba(255,255,255,0.68); }

  .wwd-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2px;
    max-width: 1100px; margin: 4rem auto 0;
    background: rgba(255,255,255,0.08);
    border-radius: 18px; overflow: hidden;
  }
  .wwd-card {
    background: rgba(255,255,255,0.04);
    padding: 2.5rem 2rem;
    position: relative;
    overflow: hidden;
    transition: background 0.3s;
  }
  .wwd-card::before {
    content: '';
    position: absolute; top: 0; left: 0; right: 0; height: 2px;
    background: var(--orange);
    transform: scaleX(0);
    transition: transform 0.4s var(--transition);
    transform-origin: left;
  }
  .wwd-card:hover { background: rgba(255,255,255,0.08); }
  .wwd-card:hover::before { transform: scaleX(1); }

  .wwd-icon {
    width: 48px; height: 48px;
    background: rgba(255,94,0,0.15);
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1.25rem;
    font-size: 1.4rem;
  }
  .wwd-title {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--white);
    margin-bottom: 0.75rem;
  }
  .wwd-text { font-size: 0.88rem; line-height: 1.7; color: rgba(255,255,255,0.68); }
  .wwd-list {
    margin-top: 0.75rem; padding-left: 0;
    list-style: none;
  }
  .wwd-list li {
    font-size: 0.82rem; color: rgba(255,255,255,0.55);
    padding: 0.2rem 0;
  }
  .wwd-list li::before { content: '— '; color: var(--orange); font-weight: 600; }

  /* 闁冲厜鍋撻柍鍏夊亾 PROJECTS 闁冲厜鍋撻柍鍏夊亾 */
  #projects { background: var(--off-white); }

  .projects-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
    max-width: 1100px; margin: 4rem auto 0;
  }
  .project-card {
    background: var(--white);
    border-radius: 18px;
    overflow: hidden;
    transition: transform 0.4s var(--transition), box-shadow 0.4s;
  }
  .project-card:hover { transform: translateY(-8px); box-shadow: 0 30px 60px rgba(0,0,0,0.12); }

  .project-visual {
    height: 220px;
    position: relative; overflow: hidden;
    display: flex; align-items: flex-end;
    padding: 1.5rem;
  }
  .project-visual.v1 { background: linear-gradient(135deg, #1a3a6b 0%, #0e2244 100%); }
  .project-visual.v2 { background: linear-gradient(135deg, #2d1a00 0%, #5c3300 100%); }
  .project-visual.v3 { background: linear-gradient(135deg, #0d2b1a 0%, #1a5535 100%); }

  .project-visual svg {
    position: absolute; bottom: 0; left: 0; right: 0; opacity: 0.15;
  }

  .project-badge {
    position: absolute; top: 1rem; right: 1rem;
    background: rgba(255,94,0,0.9);
    color: var(--white);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    padding: 0.3rem 0.75rem;
    border-radius: 980px;
  }
  .project-stat {
    font-family: 'Inter', sans-serif;
    font-weight: 900;
    font-size: 3rem;
    color: var(--white);
    letter-spacing: -0.03em;
    line-height: 1;
  }
  .project-stat-label {
    font-size: 0.8rem;
    color: rgba(255,255,255,0.72);
    margin-top: 0.2rem;
  }

  .project-body { padding: 1.5rem; }
  .project-type {
    font-size: 0.7rem; font-weight: 600;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--orange); margin-bottom: 0.4rem;
  }
  .project-name {
    font-family: 'Inter', sans-serif;
    font-weight: 700; font-size: 1rem;
    color: var(--navy);
  }

  /* 闁冲厜鍋撻柍鍏夊亾 CALCULATOR 闁冲厜鍋撻柍鍏夊亾 */
  #calculator {
    background: var(--white);
    text-align: center;
  }
  .calc-wrap {
    max-width: 700px; margin: 3.5rem auto 0;
    background: var(--navy);
    border-radius: 24px;
    padding: 3rem;
    text-align: left;
  }
  .calc-label {
    font-size: 0.8rem; color: rgba(255,255,255,0.62);
    letter-spacing: 0.08em; text-transform: uppercase;
    margin-bottom: 0.5rem; display: block;
  }
  .calc-slider {
    -webkit-appearance: none;
    width: 100%; height: 4px;
    background: rgba(255,255,255,0.15);
    border-radius: 2px; outline: none; margin: 0.5rem 0 2rem;
    cursor: pointer;
  }
  .calc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 22px; height: 22px;
    border-radius: 50%;
    background: var(--orange);
    cursor: pointer;
    box-shadow: 0 0 0 4px rgba(255,94,0,0.2);
    transition: box-shadow 0.2s;
  }
  .calc-slider::-webkit-slider-thumb:hover { box-shadow: 0 0 0 8px rgba(255,94,0,0.2); }

  .calc-results {
    display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 0.5rem;
  }
  .calc-result-box {
    background: rgba(255,255,255,0.06);
    border-radius: 12px; padding: 1.25rem;
    border: 1px solid rgba(255,255,255,0.08);
  }
  .calc-result-box.highlight { border-color: rgba(255,94,0,0.4); background: rgba(255,94,0,0.08); }
  .calc-result-label { font-size: 0.72rem; color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 0.08em; }
  .calc-result-val {
    font-family: 'Inter', sans-serif;
    font-weight: 800; font-size: 2rem;
    color: var(--white); margin-top: 0.3rem;
    letter-spacing: -0.03em;
  }
  .calc-result-box.highlight .calc-result-val { color: var(--orange); }
  .calc-result-sub { font-size: 0.75rem; color: rgba(255,255,255,0.35); margin-top: 0.2rem; }

  /* ── ADVANTAGES ── */
  #advantages { background: var(--off-white); }

  .adv-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
    max-width: 1100px; margin: 3.5rem auto 0;
  }
  .adv-card {
    background: var(--white);
    border-radius: 16px; padding: 1.75rem;
    border: 1px solid transparent;
    transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s;
  }
  .adv-card:hover {
    border-color: var(--orange);
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(255,94,0,0.1);
  }
  .adv-icon {
    width: 44px; height: 44px; border-radius: 10px;
    background: rgba(255,94,0,0.08);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.3rem; margin-bottom: 1rem;
  }
  .adv-title {
    font-family: 'Inter', sans-serif;
    font-weight: 700; font-size: 0.95rem;
    color: var(--navy); margin-bottom: 0.4rem;
  }
  .adv-text { font-size: 0.85rem; line-height: 1.6; color: var(--text-secondary); }

  /* 闁冲厜鍋撻柍鍏夊亾 SOLUTIONS ── */
  #solutions {
    background: var(--white);
  }
  .solutions-tabs {
    display: flex; gap: 0;
    border-bottom: 1px solid var(--light-gray);
    max-width: 1100px; margin: 3rem auto 0;
    overflow-x: auto;
  }
  .sol-tab {
    padding: 0.75rem 1.5rem;
    font-size: 0.85rem; font-weight: 500;
    color: var(--text-secondary);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color 0.2s, border-color 0.2s;
    white-space: nowrap;
  }
  .sol-tab.active { color: var(--navy); border-bottom-color: var(--orange); }
  .sol-tab:hover { color: var(--navy); }

  .sol-panels { max-width: 1100px; margin: 0 auto; }
  .sol-panel { display: none; padding: 3rem 0; }
  .sol-panel.active {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem; align-items: center;
  }
  .sol-visual {
    aspect-ratio: 4/3;
    border-radius: 18px;
    display: flex; align-items: center; justify-content: center;
    position: relative; overflow: hidden;
  }
  .sol-visual.sv1 { background: linear-gradient(135deg, #0e2244, #1a3a6b); }
  .sol-visual.sv2 { background: linear-gradient(135deg, #1a2600, #2d4400); }
  .sol-visual.sv3 { background: linear-gradient(135deg, #2d1a00, #5c3300); }
  .sol-visual.sv4 { background: linear-gradient(135deg, #1a0d2e, #2d1a5c); }
  .sol-visual.sv5 { background: linear-gradient(135deg, #001a2d, #004466); }

  .sol-visual-icon { font-size: 5rem; opacity: 0.3; }
  .sol-tag {
    display: inline-block;
    background: rgba(255,94,0,0.1);
    color: var(--orange);
    font-size: 0.72rem; font-weight: 600;
    letter-spacing: 0.1em; text-transform: uppercase;
    padding: 0.25rem 0.75rem; border-radius: 980px;
    margin-bottom: 1rem;
  }
  .sol-title {
    font-family: 'Inter', sans-serif;
    font-weight: 800; font-size: 1.75rem;
    color: var(--navy); letter-spacing: -0.03em;
    line-height: 1.2; margin-bottom: 1rem;
  }
  .sol-desc { font-size: 0.95rem; line-height: 1.75; color: var(--text-secondary); margin-bottom: 1.5rem; }
  .sol-features { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
  .sol-features li {
    font-size: 0.88rem; color: var(--charcoal);
    display: flex; align-items: flex-start; gap: 0.5rem;
  }
  .sol-features li::before { content: '✦'; color: var(--orange); font-size: 0.6rem; margin-top: 0.3rem; flex-shrink: 0; }

  /* ── CTA BANNER ── */
  #cta-banner {
    background: var(--navy);
    text-align: center; padding: 6rem 2rem;
    position: relative; overflow: hidden;
  }
  #cta-banner::before {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(ellipse 80% 80% at 50% 120%, rgba(255,94,0,0.12) 0%, transparent 60%);
  }
  .cta-title {
    font-family: 'Inter', sans-serif;
    font-weight: 900;
    font-size: clamp(2rem, 5vw, 3.5rem);
    color: var(--white);
    letter-spacing: -0.03em;
    line-height: 1.1;
    position: relative;
    max-width: 700px; margin: 0 auto 1.5rem;
  }
  .cta-sub {
    font-size: 1.05rem; color: rgba(255,255,255,0.68);
    margin-bottom: 2.5rem; position: relative;
  }

  /* 闁冲厜鍋撻柍鍏夊亾 CONTACT 闁冲厜鍋撻柍鍏夊亾 */
  #contact { background: var(--off-white); }
  .contact-grid {
    display: grid; grid-template-columns: 1fr 1.4fr;
    gap: 4rem; max-width: 1000px; margin: 3.5rem auto 0;
    align-items: start;
  }
  .contact-info-title {
    font-family: 'Inter', sans-serif;
    font-weight: 700; font-size: 1.15rem;
    color: var(--navy); margin-bottom: 1.5rem;
  }
  .contact-row {
    display: flex; align-items: flex-start; gap: 0.75rem;
    margin-bottom: 1rem;
  }
  .contact-icon {
    width: 36px; height: 36px; flex-shrink: 0;
    background: var(--navy); border-radius: 9px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem;
  }
  .contact-detail-label { font-size: 0.72rem; color: var(--mid-gray); text-transform: uppercase; letter-spacing: 0.08em; }
  .contact-detail-val { font-size: 0.9rem; color: var(--charcoal); font-weight: 500; }

  .contact-form { background: var(--white); border-radius: 18px; padding: 2rem; }
  .form-row { margin-bottom: 1.1rem; }
  .form-row label { display: block; font-size: 0.78rem; font-weight: 500; color: var(--charcoal); margin-bottom: 0.4rem; letter-spacing: 0.02em; }
  .form-row input, .form-row select, .form-row textarea {
    width: 100%;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--light-gray);
    border-radius: 10px;
    font-family: 'Inter', sans-serif;
    font-size: 0.88rem;
    color: var(--charcoal);
    background: var(--white);
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    -webkit-appearance: none;
  }
  .form-row input:focus, .form-row select:focus, .form-row textarea:focus {
    border-color: var(--navy);
    box-shadow: 0 0 0 3px rgba(10,31,68,0.08);
  }
  .form-row textarea { resize: none; height: 90px; }
  .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .form-submit {
    width: 100%;
    background: var(--orange);
    color: var(--white); border: none;
    padding: 0.9rem;
    border-radius: 10px;
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem; font-weight: 500;
    cursor: pointer;
    margin-top: 0.5rem;
    transition: background 0.2s, transform 0.1s;
    letter-spacing: 0.01em;
  }
  .form-submit:hover { background: var(--orange-dark); transform: scale(1.01); }

  /* 闁冲厜鍋撻柍鍏夊亾 FOOTER 闁冲厜鍋撻柍鍏夊亾 */
  footer {
    background: #060f22;
    padding: 4rem 2rem 2rem;
    color: rgba(255,255,255,0.62);
  }
  .footer-grid {
    display: grid; grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 3rem; max-width: 1100px; margin: 0 auto 3rem;
  }
  .footer-brand-name {
    font-family: 'Inter', sans-serif;
    font-weight: 800; font-size: 1.5rem;
    color: var(--white); letter-spacing: -0.03em;
    margin-bottom: 1rem;
  }
  .footer-brand-name span { color: var(--orange); }
  .footer-brand-text { font-size: 0.85rem; line-height: 1.65; max-width: 260px; }
  .footer-col-title { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--white); margin-bottom: 1rem; }
  .footer-links { list-style: none; display: flex; flex-direction: column; gap: 0.6rem; }
  .footer-links a { color: rgba(255,255,255,0.6); text-decoration: none; font-size: 0.85rem; transition: color 0.2s; }
  .footer-links a:hover { color: var(--white); }
  .footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.08);
    padding-top: 1.5rem;
    display: flex; justify-content: space-between; align-items: center;
    flex-wrap: wrap; gap: 1rem;
    max-width: 1100px; margin: 0 auto;
  }
  .footer-bottom-text { font-size: 0.78rem; }
  .footer-bottom-links { display: flex; gap: 1.5rem; }
  .footer-bottom-links a { color: rgba(255,255,255,0.55); text-decoration: none; font-size: 0.78rem; transition: color 0.2s; }
  .footer-bottom-links a:hover { color: var(--white); }

  /* ── SCROLL REVEAL ── */
  .reveal {
    opacity: 0;
    transform: translateY(45px);
    transition: opacity 0.7s var(--transition), transform 0.7s var(--transition);
    will-change: opacity, transform;
  }
  .reveal.visible { opacity: 1; transform: translateY(0); }
  /* Fail-safe: if JS/observer never fires, content still becomes visible */
  html.no-reveal-js .reveal { opacity: 1 !important; transform: none !important; }
  .reveal-delay-1 { transition-delay: 0.1s; }
  .reveal-delay-2 { transition-delay: 0.2s; }
  .reveal-delay-3 { transition-delay: 0.3s; }
  .reveal-delay-4 { transition-delay: 0.4s; }

  /* 闁冲厜鍋撻柍鍏夊亾 UTILS 闁冲厜鍋撻柍鍏夊亾 */
  .text-center { text-align: center; }
  .mx-auto { margin-left: auto; margin-right: auto; }
  .max-w-content { max-width: 1100px; margin-left: auto; margin-right: auto; }
  .section-header { margin-bottom: 1rem; }

  /* ── RESPONSIVE ── */
  @media (max-width: 768px) {
    nav, #main-nav { padding: 0 1.25rem; height: 52px; }
    .nav-links, #main-nav .nav-links { display: none; }
    section { padding: 5rem 1.25rem; }
    .subhero { padding: 6rem 1.25rem 3rem; }
    .factory-section { padding: 4rem 1.25rem; }
    .team-section { padding: 4rem 1.25rem; }
    .contact-grid, .sol-panel.active { grid-template-columns: 1fr; }
    .contact-form { padding: 1.5rem; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .calc-results { grid-template-columns: 1fr; }
    .form-grid { grid-template-columns: 1fr; }
  }

  /* ── MOBILE NAV TOGGLE ── */
  .nav-hamburger {
    display: none;
    background: none; border: none; cursor: pointer;
    width: 44px; height: 44px; position: relative;
    padding: 0; margin: 0;
    -webkit-tap-highlight-color: transparent;
  }
  .nav-hamburger span {
    display: block; width: 24px; height: 2px;
    background: var(--white);
    position: absolute; left: 10px; transition: all 0.3s;
  }
  .nav-hamburger span:nth-child(1) { top: 13px; }
  .nav-hamburger span:nth-child(2) { top: 21px; }
  .nav-hamburger span:nth-child(3) { top: 29px; }
  @media (max-width: 768px) { .nav-hamburger { display: block; } }

  /* Mobile nav overlay */
  .mobile-nav-overlay {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    min-height: 100vh;
    background: #ffffff;
    z-index: 9999;
    box-shadow: 0 4px 24px rgba(0,0,0,0.15);
    overflow-y: auto;
  }
  .mobile-nav-links {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    padding: 3rem 1.5rem;
    list-style: none;
    margin: 0;
  }
  .mobile-nav-link {
    color: var(--navy);
    text-decoration: none;
    font-weight: 500;
    font-size: 1.125rem;
  }
  .mobile-nav-link:hover { color: var(--orange); }
  @media (min-width: 769px) { .mobile-nav-overlay { display: none !important; } }

  /* ── HERO VIDEO ── */
  .hero-video {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    z-index: 0;
    opacity: 1;
  }
  .hero-video-overlay {
    position: absolute; inset: 0;
    background:
      linear-gradient(100deg,
        rgba(6,15,34,0.88) 0%,
        rgba(8,22,52,0.72) 35%,
        rgba(8,22,52,0.30) 65%,
        rgba(8,22,52,0.15) 100%),
      linear-gradient(to bottom,
        rgba(6,15,34,0.45) 0%,
        rgba(6,15,34,0.10) 40%,
        rgba(6,15,34,0.55) 100%);
    z-index: 1;
  }
  #hero .hero-grid { z-index: 2; }
  #hero .hero-glow { z-index: 2; }
  .hero-content { z-index: 3; }
  .hero-scroll { z-index: 3; }


  /* ── HERO FEATURE MARKERS ── */
  .hero-grid { display: none; }
  .hero-glow { display: none; }
  .hero-features {
    display: flex; gap: 1.5rem; flex-wrap: wrap; justify-content: flex-start;
    margin-top: 2.25rem;
    opacity: 0; animation: fadeUp 0.9s 1s var(--transition) forwards;
  }
  .hero-feat {
    display: flex; align-items: center; gap: 0.5rem;
    color: rgba(255,255,255,0.9);
    font-size: 0.82rem; font-weight: 500;
    letter-spacing: 0.01em;
  }
  .hero-feat .hf-ico { font-size: 1rem; opacity: 0.9; }
  /* legacy tag styles kept harmless */
  .hero-tags { display: none; }

  /* ── TRUSTED BY ── */
  .trusted-section {
    background: var(--off-white);
    padding: 3rem 2rem;
    border-bottom: 1px solid var(--light-gray);
  }
  .trusted-eyebrow {
    text-align: center; display: block;
    font-size: 0.72rem; font-weight: 500;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--mid-gray); margin-bottom: 1.5rem;
  }
  .trusted-logos {
    display: flex; flex-wrap: wrap; gap: 0.6rem;
    justify-content: center; margin-bottom: 2rem;
  }
  .logo-pill {
    background: var(--white); border: 1px solid var(--light-gray);
    border-radius: 8px; padding: 0.5rem 1.1rem;
    font-size: 0.78rem; font-weight: 600; color: var(--charcoal);
    white-space: nowrap;
    transition: border-color 0.2s, box-shadow 0.2s;
  }
  .logo-pill:hover { border-color: var(--orange); box-shadow: 0 2px 12px rgba(255,94,0,0.12); }
  .cert-strip {
    display: flex; flex-wrap: wrap; gap: 0; justify-content: center;
    background: var(--white); border: 1px solid var(--light-gray);
    border-radius: 12px; overflow: hidden;
  }
  .cert-badge {
    display: flex; align-items: center; gap: 0.4rem;
    padding: 0.75rem 1.25rem;
    font-size: 0.78rem; font-weight: 600; color: var(--charcoal);
  }
  .cert-icon { color: var(--orange); font-size: 0.85rem; }
  .cert-sep { width: 1px; background: var(--light-gray); margin: 0.5rem 0; }

  /* ── WHAT WE BUILD ── */
  .what-we-build-section { background: var(--white); padding: 5rem 2rem; }
  .build-types-grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem; max-width: 1100px; margin: 3rem auto 0;
  }
  .build-type {
    border-radius: 16px; overflow: hidden;
    border: 1px solid var(--light-gray); background: var(--white);
    transition: transform 0.3s var(--transition), box-shadow 0.3s, border-color 0.3s;
    display: flex; flex-direction: column;
  }
  .build-type:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(0,0,0,0.1); border-color: rgba(255,94,0,0.3); }
  .bt-head { padding: 1rem 1.25rem 0; }
  .bt-tag { display: inline-block; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--navy); background: rgba(10,31,68,0.07); padding: 0.22rem 0.6rem; border-radius: 5px; }
  .bt-tag-2 { color: var(--text-secondary); background: rgba(110,110,115,0.1); }
  .bt-body { padding: 0.85rem 1.25rem 1.4rem; background: var(--white); flex: 1; }
  .bt-icon { width: 40px; height: 40px; border-radius: 10px; background: rgba(255,94,0,0.08); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; margin-bottom: 0.75rem; }
  .bt-title { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 1rem; color: var(--navy); margin-bottom: 0.3rem; }
  .bt-desc { font-size: 0.8rem; color: var(--text-secondary); line-height: 1.5; margin-bottom: 0.9rem; }
  .bt-why { font-size: 0.72rem; font-weight: 700; color: var(--orange); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.5rem; }
  .bt-points { list-style: none; padding: 0; margin: 0; }
  .bt-points li { font-size: 0.8rem; line-height: 1.5; color: var(--charcoal); padding-left: 1.1rem; position: relative; margin-bottom: 0.35rem; }
  .bt-points li::before { content: '\2713'; color: var(--orange); position: absolute; left: 0; font-weight: 700; }

  /* ── HOW IT WORKS 闁冲厜鍋撻柍鍏夊亾 */
  .how-section { background: var(--off-white); padding: 6rem 2rem; }
  .how-trustrow { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 1.5rem; }
  .how-trust { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; font-weight: 500; color: var(--navy); }
  .how-trust .ht-ico { font-size: 1rem; }
  .how-flow { max-width: 1180px; margin: 3rem auto 0; }
  .how-track { display: grid; grid-template-columns: 1fr 1fr 2fr 1fr 1fr; gap: 0.8rem; align-items: stretch; position: relative; }
  .how-track::before { content: ''; position: absolute; top: 26px; left: 4%; right: 4%; height: 2px; background: var(--light-gray); z-index: 0; }
  .how-step { position: relative; z-index: 1; background: var(--white); border: 1px solid var(--light-gray); border-radius: 14px; padding: 1.25rem 1rem; display: flex; flex-direction: column; }
  .how-num { width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 0.8rem; background: var(--white); border: 2px solid var(--navy); color: var(--navy); margin-bottom: 0.85rem; }
  .how-icon { font-size: 1.5rem; margin-bottom: 0.6rem; }
  .how-title { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 0.88rem; color: var(--navy); line-height: 1.3; margin-bottom: 0.6rem; }
  .how-points { list-style: none; padding: 0; margin: 0 0 0.85rem; flex: 1; }
  .how-points li { font-size: 0.74rem; line-height: 1.5; color: var(--text-secondary); padding-left: 0.85rem; position: relative; margin-bottom: 0.2rem; }
  .how-points li::before { content: '\2022'; color: var(--orange); position: absolute; left: 0; }
  .how-time { font-size: 0.72rem; font-weight: 600; color: var(--orange); margin-top: auto; }
  .how-parallel { background: #fff7f2; border: 1.5px solid rgba(255,94,0,0.35); padding: 0; overflow: hidden; }
  .how-parallel-banner { background: rgba(255,94,0,0.08); padding: 0.85rem 1rem; text-align: center; border-bottom: 1px solid rgba(255,94,0,0.2); }
  .hpb-eyebrow { display: block; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--orange); }
  .hpb-title { display: block; font-size: 0.92rem; font-weight: 800; color: var(--navy); line-height: 1.2; margin: 0.2rem 0; }
  .hpb-sub { display: block; font-size: 0.72rem; color: var(--text-secondary); }
  .how-parallel-pair { display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 0; }
  .how-substep { padding: 1.1rem 0.9rem; display: flex; flex-direction: column; }
  .how-substep .how-num { border-color: var(--orange); color: var(--orange); }
  .how-plus { display: flex; align-items: center; justify-content: center; font-size: 1.5rem; font-weight: 800; color: var(--orange); padding: 0 0.25rem; }
  .how-step.parallel { background: #fff7f2; border-color: rgba(255,94,0,0.4); }
  .how-step.parallel .how-num { border-color: var(--orange); color: var(--orange); }
  .how-partag { position: absolute; top: 12px; right: 12px; font-size: 0.55rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: #fff; background: var(--orange); border-radius: 5px; padding: 0.2rem 0.45rem; }
  .how-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem; background: var(--white); border: 1px solid var(--light-gray); border-radius: 14px; padding: 1.25rem 1.5rem; }
  .hs-item { display: flex; align-items: center; gap: 0.85rem; }
  .hs-ico { font-size: 1.5rem; flex-shrink: 0; }
  .hs-big { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 1.15rem; color: var(--navy); letter-spacing: -0.02em; line-height: 1.1; }
  .hs-label { font-size: 0.72rem; color: var(--text-secondary); margin-top: 0.15rem; }
  @media (max-width: 920px) {
    .how-track { grid-template-columns: 1fr 1fr; }
    .how-track::before { display: none; }
    .how-parallel { grid-column: 1 / -1; }
    .how-summary { grid-template-columns: 1fr; gap: 0.85rem; }
  }
  @media (max-width: 560px) {
    .how-track { grid-template-columns: 1fr; }
    .how-parallel-pair { grid-template-columns: 1fr; }
    .how-pair-photos { grid-template-columns: 1fr; }
    .how-pair-bodies { grid-template-columns: 1fr; }
    .how-pair-bodies .how-cbody + .how-cbody { border-left: none; border-top: 1px solid var(--light-gray); }
    .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
    .footer-bottom { flex-direction: column; align-items: flex-start; }
    .footer-bottom-links { flex-wrap: wrap; }
    .how-plus { padding: 0.25rem 0; }
  }

  /* ── FACTORY SECTION ── */
  .factory-section { background: var(--navy); padding: 6rem 2rem; }
  .factory-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 4rem; align-items: center;
  }
  /* location/serving meta */
  .factory-meta { display: flex; gap: 2rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
  .fm-item { display: flex; align-items: flex-start; gap: 0.6rem; }
  .fm-ico { font-size: 1.1rem; }
  .fm-k { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; color: rgba(255,255,255,0.55); }
  .fm-v { font-size: 0.88rem; color: rgba(255,255,255,0.85); font-weight: 500; margin-top: 0.1rem; }
  /* one hero stat + supporting */
  .factory-hero-stat {
    background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1);
    border-radius: 16px; padding: 1.5rem; margin-bottom: 1.5rem;
  }
  .fhs-num { font-family: 'Inter', sans-serif; font-weight: 900; font-size: 2.6rem; letter-spacing: -0.03em; line-height: 1; }
  .fhs-num span { font-size: 1.1rem; font-weight: 700; }
  .fhs-label { font-size: 0.8rem; color: rgba(255,255,255,0.68); margin-top: 0.4rem; }
  .fhs-support { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; gap: 1.5rem; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,0.1); padding-top: 1rem; }
  .fhs-support li { font-size: 0.82rem; color: rgba(255,255,255,0.72); }
  .fhs-support b { font-weight: 800; font-size: 1rem; margin-right: 0.2rem; }
  /* systems icon+text */
  .factory-systems-label { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--orange); font-weight: 700; margin-bottom: 0.75rem; }
  .factory-systems { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .fsys { display: flex; align-items: center; gap: 0.6rem; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 10px; padding: 0.7rem 0.9rem; color: rgba(255,255,255,0.85); font-size: 0.85rem; font-weight: 500; }
  .fsys-ico { font-size: 1.2rem; }
  /* photo placeholders */
  .factory-visual { display: flex; flex-direction: column; gap: 0.85rem; }
  .fphoto-main {
    aspect-ratio: 16/10; border-radius: 16px; overflow: hidden;
    border: 1.5px solid rgba(255,255,255,0.12);
    position: relative; display: flex; align-items: center; justify-content: center;
  }
  .fphoto-svg { position: absolute; inset: 0; width: 100%; height: 100%; }
  .fphoto-tag { position: absolute; bottom: 0.75rem; left: 0.75rem; z-index: 2; font-size: 0.68rem; color: rgba(255,255,255,0.72); letter-spacing: 0.03em; background: rgba(6,15,34,0.6); padding: 0.25rem 0.6rem; border-radius: 6px; border: 1px dashed rgba(255,255,255,0.25); }
  .fphoto-brand { position: absolute; top: 1rem; right: 1.25rem; font-weight: 800; font-size: 1.1rem; color: rgba(255,255,255,0.8); }
  .fphoto-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.85rem; }
  .fphoto-sm {
    aspect-ratio: 1/1; border-radius: 12px; overflow: hidden; position: relative;
    background:
      radial-gradient(circle at 50% 38%, rgba(255,94,0,0.12), transparent 60%),
      rgba(255,255,255,0.04);
    border: 1.5px solid rgba(255,255,255,0.12);
    display: flex; flex-direction: column; justify-content: flex-end; padding: 0.6rem;
  }
  .fphoto-sm .fsm-svg { position: absolute; top: 12%; left: 50%; transform: translateX(-50%); width: 38%; height: 38%; color: rgba(255,255,255,0.55); }
  .fphoto-sm-tag { position: absolute; top: 0.5rem; left: 0.6rem; font-size: 0.65rem; color: rgba(255,255,255,0.35); }
  .fphoto-sm-cap { font-size: 0.62rem; color: rgba(255,255,255,0.68); line-height: 1.3; }
  .fphoto-sm-cap b { display: block; color: rgba(255,255,255,0.85); font-size: 0.68rem; margin-bottom: 0.1rem; }

  /* ── MAP SECTION ── */
  .map-section { background: var(--white); padding: 6rem 2rem; }
  @media (max-width: 768px) { .map-section { padding: 4rem 1.25rem; } }
  .map-container {
    max-width: 1100px; margin: 3rem auto 0;
    background: #0a1a35; border-radius: 20px;
    overflow: hidden; position: relative;
  }
  .map-legend {
    display: flex; gap: 1.5rem; padding: 1.25rem 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    flex-wrap: wrap;
  }
  .map-leg-item {
    display: flex; align-items: center; gap: 0.5rem;
    font-size: 0.75rem; color: rgba(255,255,255,0.68);
  }
  .map-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
  .dot-completed { background: var(--orange); }
  .dot-active { background: #1a7a40; }
  .dot-coverage { background: rgba(255,94,0,0.3); border: 1px solid rgba(255,94,0,0.5); }
  .us-map-svg { display: block; width: 100%; height: auto; }
  @keyframes mapPulse { 0%, 100% { opacity: 0.6; r: 14; } 50% { opacity: 0.15; r: 18; } }
  .map-pulse { animation: mapPulse 2s ease-in-out infinite; }
  .map-project-list {
    border-top: 1px solid rgba(255,255,255,0.08);
    padding: 0 1.5rem 1.5rem;
    display: grid; grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
  }
  .mpl-item {
    padding: 0.85rem 0.5rem;
    border-right: 1px solid rgba(255,255,255,0.06);
    display: flex; flex-direction: column; gap: 0.2rem;
  }
  .mpl-item:last-child { border-right: none; }
  .mpl-item span:first-child { font-size: 0.82rem; font-weight: 600; color: var(--white); }
  .mpl-item span:last-child { font-size: 0.72rem; color: rgba(255,255,255,0.55); }
  .mpl-completed span:first-child::before { content: "● "; color: var(--orange); }
  .mpl-active span:first-child::before { content: "● "; color: #1a7a40; }

  /* ── TEAM SECTION ── */
  .team-section { background: var(--off-white); padding: 6rem 2rem; }
  .team-grid {
    display: grid; grid-template-columns: repeat(5, 1fr);
    gap: 1.25rem; max-width: 1100px; margin: 3rem auto 0;
  }
  .team-card {
    background: var(--white); border-radius: 16px;
    padding: 1.5rem; border: 1px solid var(--light-gray);
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
  }
  .team-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(0,0,0,0.1); border-color: rgba(255,94,0,0.3); }
  .team-avatar {
    width: 72px; height: 72px; border-radius: 50%;
    margin: 0 auto 1rem; overflow: hidden;
  }
  .team-name { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 0.95rem; color: var(--navy); }
  .team-role { font-size: 0.72rem; color: var(--orange); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; margin: 0.25rem 0 0.75rem; }
  .team-desc { font-size: 0.78rem; line-height: 1.6; color: var(--text-secondary); }

  /* ── RESPONSIVE ── */
  @media (max-width: 900px) {
    .build-types-grid { grid-template-columns: repeat(2, 1fr); }
    .fphoto-row { grid-template-columns: repeat(2, 1fr); }
    .factory-systems { grid-template-columns: 1fr; }
    .factory-grid { grid-template-columns: 1fr; }
    .map-project-list { grid-template-columns: 1fr; }
    .team-grid { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 600px) {
    .build-types-grid { grid-template-columns: 1fr; }
    .fphoto-row { grid-template-columns: 1fr; }
    .cert-strip { flex-direction: column; }
    .cert-sep { display: none; }
    .team-grid { grid-template-columns: 1fr; }
  }


  /* ── QUOTE CONFIGURATOR 闁冲厜鍋撻柍鍏夊亾 */
  .quote-wrap {
    max-width: 1060px; margin: 3rem auto 0;
    background: var(--navy); border-radius: 24px;
    padding: 2.5rem; text-align: left;
  }
  .quote-cols { display: grid; grid-template-columns: 1fr 300px; gap: 2rem; align-items: start; }
  .quote-main { min-width: 0; }
  /* Live estimate panel */
  .quote-estimate { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 16px; padding: 1.25rem; position: sticky; top: 70px; }
  .qe-head { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1rem; }
  .qe-ico { font-size: 1.3rem; }
  .qe-title { font-size: 0.92rem; font-weight: 700; color: #fff; }
  .qe-sub { font-size: 0.7rem; color: rgba(255,255,255,0.6); }
  .qe-box { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 11px; padding: 0.85rem; margin-bottom: 0.65rem; }
  .qe-box-primary { background: rgba(255,94,0,0.1); border-color: rgba(255,94,0,0.35); }
  .qe-k { font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.06em; color: rgba(255,255,255,0.62); }
  .qe-v { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 1.6rem; color: var(--orange); letter-spacing: -0.02em; margin-top: 0.2rem; line-height: 1.1; }
  .qe-v-sm { font-size: 1.05rem; color: #fff; }
  .qe-note { font-size: 0.68rem; color: rgba(255,255,255,0.55); margin-top: 0.2rem; }
  .qe-trust { list-style: none; padding: 0.85rem 0 0; margin: 0.5rem 0 0; border-top: 1px solid rgba(255,255,255,0.1); }
  .qe-trust li { font-size: 0.72rem; color: rgba(255,255,255,0.68); margin-bottom: 0.35rem; }
  @media (max-width: 820px) {
    .quote-cols { grid-template-columns: 1fr; }
    .quote-estimate { position: static; order: -1; }
  }
  .quote-progress {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 2.25rem;
  }
  .qp-step { display: flex; flex-direction: column; align-items: center; gap: 0.4rem; flex-shrink: 0; }
  .qp-num {
    width: 32px; height: 32px; border-radius: 50%;
    background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.62);
    display: flex; align-items: center; justify-content: center;
    font-size: 0.85rem; font-weight: 700; transition: all 0.3s;
  }
  .qp-step.active .qp-num, .qp-step.done .qp-num { background: var(--orange); color: #fff; }
  .qp-label { font-size: 0.65rem; color: rgba(255,255,255,0.55); letter-spacing: 0.04em; white-space: nowrap; }
  .qp-step.active .qp-label { color: rgba(255,255,255,0.85); }
  .qp-line { flex: 1; height: 2px; background: rgba(255,255,255,0.1); margin: 0 0.4rem; margin-bottom: 1.1rem; }

  .quote-body { min-height: 280px; }
  .quote-step { display: none; animation: qfade 0.35s ease; }
  .quote-step.active { display: block; }
  @keyframes qfade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
  .qs-title { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 1.35rem; color: #fff; margin-bottom: 1.5rem; letter-spacing: -0.01em; }

  .qs-options { display: grid; gap: 0.75rem; }
  .qs-grid-3 { grid-template-columns: repeat(3, 1fr); }
  .qs-grid-2 { grid-template-columns: repeat(2, 1fr); }
  .qs-opt {
    background: rgba(255,255,255,0.05); border: 1.5px solid rgba(255,255,255,0.12);
    border-radius: 12px; padding: 1.1rem 1rem; cursor: pointer;
    display: flex; flex-direction: column; align-items: center; gap: 0.4rem;
    transition: all 0.2s; font-family: 'Inter', sans-serif; text-align: center;
    position: relative;
  }
  .qs-opt:hover { background: rgba(255,255,255,0.09); border-color: rgba(255,94,0,0.5); }
  .qs-opt.selected { background: rgba(255,94,0,0.15); border-color: var(--orange); }
  .qs-opt-icon { font-size: 1.6rem; }
  .qs-opt-label { font-size: 0.88rem; font-weight: 600; color: #fff; }
  .qs-opt-wide { align-items: flex-start; text-align: left; }
  .qs-opt-desc { font-size: 0.75rem; color: rgba(255,255,255,0.62); line-height: 1.5; font-weight: 400; }
  .qs-opt-tag {
    position: absolute; top: 0.5rem; right: 0.5rem;
    font-size: 0.58rem; font-weight: 700; letter-spacing: 0.04em;
    background: rgba(255,94,0,0.25); color: var(--orange);
    padding: 0.12rem 0.4rem; border-radius: 4px; text-transform: uppercase;
  }

  .qs-size-wrap { padding: 1.5rem 0; }

  .qs-summary {
    background: rgba(255,255,255,0.05); border-radius: 10px;
    padding: 1rem 1.25rem; margin-bottom: 1.25rem;
    font-size: 0.85rem; color: rgba(255,255,255,0.7); line-height: 1.6;
  }
  .qs-summary b { color: #fff; font-weight: 600; }
  .qs-estimate-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin-bottom: 1.75rem; }
  .qs-est-box {
    background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px; padding: 1.1rem;
  }
  .qs-est-highlight { border-color: rgba(255,94,0,0.4); background: rgba(255,94,0,0.08); }
  .qs-est-label { font-size: 0.68rem; color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 0.06em; }
  .qs-est-val { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 1.5rem; color: #fff; margin-top: 0.3rem; letter-spacing: -0.02em; }
  .qs-est-highlight .qs-est-val { color: var(--orange); }
  .qs-est-sub { font-size: 0.7rem; color: rgba(255,255,255,0.35); margin-top: 0.2rem; }

  .qs-lead { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 1.5rem; }
  .qs-lead-title { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 1.05rem; color: #fff; margin-bottom: 0.4rem; }
  .qs-lead-sub { font-size: 0.82rem; color: rgba(255,255,255,0.62); margin-bottom: 1.25rem; }
  .qs-lead-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; margin-bottom: 1rem; }
  .qs-lead-form input {
    padding: 0.7rem 0.9rem; border: 1px solid rgba(255,255,255,0.15);
    border-radius: 9px; background: rgba(255,255,255,0.06); color: #fff;
    font-family: 'Inter', sans-serif; font-size: 0.85rem; outline: none;
    transition: border-color 0.2s;
  }
  .qs-lead-form input::placeholder { color: rgba(255,255,255,0.35); }
  .qs-lead-form input:focus { border-color: rgba(255,94,0,0.6); }
  .qs-submit {
    width: 100%; background: var(--orange); color: #fff; border: none;
    padding: 0.9rem; border-radius: 10px; font-family: 'Inter', sans-serif;
    font-size: 0.95rem; font-weight: 600; cursor: pointer; transition: background 0.2s;
  }
  .qs-submit:hover { background: var(--orange-dark); }
  .qs-success {
    margin-top: 1rem; padding: 0.9rem; border-radius: 10px;
    background: rgba(26,122,64,0.15); border: 1px solid rgba(26,122,64,0.4);
    color: #5ed696; font-size: 0.85rem; font-weight: 500; text-align: center;
  }

  .quote-nav { display: flex; justify-content: space-between; margin-top: 2rem; }
  .quote-back, .quote-next {
    padding: 0.7rem 1.5rem; border-radius: 980px; font-family: 'Inter', sans-serif;
    font-size: 0.88rem; font-weight: 600; cursor: pointer; transition: all 0.2s; border: none;
  }
  .quote-back { background: transparent; border: 1px solid rgba(255,255,255,0.25); color: rgba(255,255,255,0.7); }
  .quote-back:hover { border-color: rgba(255,255,255,0.62); color: #fff; }
  .quote-next { background: var(--orange); color: #fff; padding: 0.85rem 1.75rem; font-size: 0.92rem; box-shadow: 0 6px 20px rgba(255,94,0,0.3); }
  .quote-next:hover:not(:disabled) { background: var(--orange-dark); transform: translateY(-1px); }
  .quote-next:disabled { background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.35); cursor: not-allowed; box-shadow: none; }

  @media (max-width: 640px) {
    .quote-wrap { padding: 1.5rem; }
    .qs-grid-3, .qs-grid-2 { grid-template-columns: 1fr 1fr; }
    .qs-estimate-grid { grid-template-columns: 1fr; }
    .qs-lead-form { grid-template-columns: 1fr; }
    .qp-label { display: none; }
  }


  /* ── HONEST PLACEHOLDERS ── */
  .logo-placeholder {
    color: var(--mid-gray) !important;
    border-style: dashed !important;
    background: var(--off-white) !important;
    font-style: italic;
  }
  .cert-placeholder { color: var(--mid-gray) !important; }
  .cert-placeholder .cert-icon { color: var(--mid-gray) !important; }
  .placeholder-note {
    display: inline-block;
    background: rgba(255,94,0,0.08);
    border: 1px dashed rgba(255,94,0,0.35);
    color: var(--orange);
    font-size: 0.7rem; font-weight: 600;
    padding: 0.2rem 0.6rem; border-radius: 6px;
    letter-spacing: 0.02em;
  }


  /* ── PROJECTS (featured + process) ── */
  .proj-feature-wrap { max-width: 1100px; margin: 3rem auto 0; display: grid; grid-template-columns: 1.15fr 1fr; gap: 1.25rem; }
  .proj-featured { background: var(--white); border: 1px solid var(--light-gray); border-radius: 18px; overflow: hidden; position: relative; display: flex; flex-direction: column; }
  .proj-feat-badge { position: absolute; top: 1rem; left: 1rem; z-index: 2; background: var(--navy); color: #fff; font-size: 0.65rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.3rem 0.7rem; border-radius: 6px; }
  .proj-feat-photo { flex: 1; min-height: 240px; position: relative; overflow: hidden; border-bottom: 1px solid var(--light-gray); }
  .pfp-svg { position: absolute; inset: 0; width: 100%; height: 100%; }
  .pfp-tag { position: absolute; bottom: 0.75rem; left: 0.75rem; z-index: 2; font-size: 0.66rem; color: rgba(255,255,255,0.7); background: rgba(6,15,34,0.6); padding: 0.25rem 0.6rem; border-radius: 6px; border: 1px dashed rgba(255,255,255,0.25); }
  .proj-feat-info { padding: 1.5rem; }
  .proj-feat-name { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 1.3rem; color: var(--navy); letter-spacing: -0.02em; }
  .proj-feat-meta { font-size: 0.8rem; color: var(--text-secondary); margin: 0.4rem 0 0.85rem; }
  .proj-feat-desc { font-size: 0.88rem; line-height: 1.65; color: var(--text-secondary); margin-bottom: 1rem; }
  .proj-feat-link { font-size: 0.85rem; font-weight: 600; color: var(--orange); text-decoration: none; }
  .proj-feat-link:hover { letter-spacing: 0.03em; }
  .proj-process { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
  .proj-proc-card { background: var(--white); border: 1px solid var(--light-gray); border-radius: 14px; overflow: hidden; padding: 0; display: flex; flex-direction: column; }
  .proj-proc-tag { display: flex; align-items: center; justify-content: center; height: 90px; background: linear-gradient(135deg, #0e2a57, #0a1f44); color: rgba(255,255,255,0.62); border-bottom: 1px solid var(--light-gray); }
  .ppc-svg { width: 34px; height: 34px; }
  .proj-proc-num { font-weight: 800; font-size: 0.78rem; color: var(--orange); padding: 0.75rem 1rem 0; }
  .proj-proc-title { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 0.9rem; color: var(--navy); padding: 0.2rem 1rem 0; }
  .proj-proc-desc { font-size: 0.76rem; line-height: 1.5; color: var(--text-secondary); padding: 0.35rem 1rem 1rem; }
  .proj-metrics { max-width: 1100px; margin: 1.75rem auto 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; background: var(--white); border: 1px solid var(--light-gray); border-radius: 14px; padding: 1.5rem; }
  .proj-metric { text-align: center; }
  .pm-num { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 1.5rem; letter-spacing: -0.02em; }
  .pm-label { font-size: 0.72rem; color: var(--text-secondary); margin-top: 0.25rem; }
  @media (max-width: 900px) {
    .proj-feature-wrap { grid-template-columns: 1fr; }
    .proj-metrics { grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 520px) {
    .proj-process { grid-template-columns: 1fr; }
    .proj-metrics { grid-template-columns: 1fr; }
  }


  /* 闁冲厜鍋撻柍鍏夊亾 MERGED CONTACT (banner + form) ── */
  #contact { padding: 0 0 6rem; }
  .contact-banner {
    position: relative; overflow: hidden;
    background: linear-gradient(120deg, #0A1F44 0%, #0d2b5e 100%);
    padding: 4.5rem 2rem; margin-bottom: 3rem;
  }
  .contact-banner-overlay {
    position: absolute; inset: 0;
    background: radial-gradient(ellipse 80% 80% at 80% 50%, rgba(255,94,0,0.12) 0%, transparent 60%);
  }
  .contact-banner-inner { position: relative; max-width: 1100px; margin: 0 auto; }
  .cb-title { font-family: 'Inter', sans-serif; font-weight: 900; font-size: clamp(1.8rem,4vw,3rem); color: #fff; letter-spacing: -0.03em; line-height: 1.1; max-width: 16em; }
  .cb-sub { font-size: 1rem; color: rgba(255,255,255,0.72); margin-top: 1rem; max-width: 38em; line-height: 1.6; }
  #contact .contact-grid { max-width: 1100px; margin: 0 auto; padding: 0 2rem; }
  .contact-points { display: flex; flex-direction: column; gap: 1rem; }
  .cp-item { display: flex; align-items: flex-start; gap: 0.75rem; }
  .cp-ico { font-size: 1.2rem; width: 36px; height: 36px; flex-shrink: 0; background: rgba(255,94,0,0.08); border-radius: 9px; display: flex; align-items: center; justify-content: center; }
  .cp-item b { display: block; font-size: 0.85rem; color: var(--navy); font-weight: 700; }
  .cp-item span { font-size: 0.78rem; color: var(--text-secondary); line-height: 1.5; }
  .cf-title { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 1.05rem; color: var(--navy); margin-bottom: 1.25rem; }


  .sol-outcome { margin-top: 1.1rem; padding: 0.85rem 1rem; background: rgba(255,94,0,0.07); border-left: 3px solid var(--orange); border-radius: 0 8px 8px 0; font-size: 0.85rem; line-height: 1.55; color: var(--charcoal); }
  .sol-outcome .so-k { font-weight: 700; color: var(--orange); }


  /* ── SVG ICON SIZING (replaces emoji) ── */
  .hf-ico, .ht-ico, .fm-ico, .fsys-ico, .hs-ico, .qe-ico {
    display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
  }
  .hf-ico { width: 20px; height: 20px; color: var(--orange); }
  .ht-ico { width: 20px; height: 20px; color: var(--orange); }
  .fm-ico { width: 22px; height: 22px; color: var(--orange); }
  .fsys-ico { width: 22px; height: 22px; color: var(--orange); }
  .hs-ico { width: 26px; height: 26px; color: var(--navy); }
  .qe-ico { width: 24px; height: 24px; color: var(--orange); }
  .cp-ico { color: var(--orange); }
  .cp-ico svg { width: 20px; height: 20px; }
  .bt-icon { color: var(--orange); }
  .bt-icon svg { width: 22px; height: 22px; }
  .how-icon { width: 30px; height: 30px; color: var(--navy); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 0.6rem; }
  .how-substep .how-icon { color: var(--orange); }
  .sol-visual-icon { width: 84px; height: 84px; color: rgba(255,255,255,0.35); opacity: 1; display: inline-flex; align-items: center; justify-content: center; }
  .sol-visual .sol-visual-icon { width: 100%; height: 100%; display: block; }
  .sol-visual .sol-visual-icon img { width: 100%; height: 100%; object-fit: cover; display: block; }


  /* ── WHY (homepage section) ── */
  .why-home-section { background: var(--white); padding: 6rem 2rem; }
  .why-grid { max-width: 1100px; margin: 3rem auto 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
  .why-card { background: var(--white); border: 1px solid var(--light-gray); border-radius: 16px; padding: 1.75rem; transition: transform 0.3s var(--transition), box-shadow 0.3s, border-color 0.3s; }
  .why-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(0,0,0,0.08); border-color: rgba(255,94,0,0.3); }
  .why-ico { width: 46px; height: 46px; border-radius: 11px; background: rgba(255,94,0,0.08); color: var(--orange); display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; }
  .why-ico svg { width: 24px; height: 24px; }
  .why-title { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 1.05rem; color: var(--navy); margin-bottom: 0.5rem; }
  .why-desc { font-size: 0.88rem; line-height: 1.65; color: var(--text-secondary); }
  #why-anchor-home .why-card, #end-to-end .why-card {
    position: relative;
    overflow: hidden;
  }
  #why-anchor-home .why-card { padding-top: 9.95rem; }
  #end-to-end .why-card { padding-top: 9.95rem; }
  #why-anchor-home .why-ico, #end-to-end .why-ico { display: none; }
  #why-anchor-home .why-card::before, #end-to-end .why-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 9.4rem;
    z-index: 0;
    background-size: cover;
    background-position: center 20%;
  }
  #why-anchor-home .why-card::after, #end-to-end .why-card::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 9.4rem;
    z-index: 0;
    background: linear-gradient(180deg, rgba(10,31,68,0.06), rgba(10,31,68,0.3));
    pointer-events: none;
  }
  #why-anchor-home .why-card > *, #end-to-end .why-card > * { position: relative; z-index: 1; }
  .why-grid-3 { grid-template-columns: repeat(3, 1fr); }
  .why-grid-4 { grid-template-columns: repeat(4, 1fr); }
  @media (max-width: 900px) { .why-grid { grid-template-columns: 1fr 1fr; } .why-grid-3 { grid-template-columns: 1fr 1fr; } .why-grid-4 { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 560px) { .why-grid { grid-template-columns: 1fr; } .why-grid-3 { grid-template-columns: 1fr; } .why-grid-4 { grid-template-columns: 1fr; } }


  /* ── WALL CONFIGURATOR ── */
  .wallcfg-section { background: var(--navy); padding: 6rem 2rem; }
  .wallcfg-grid { max-width: 1100px; margin: 3rem auto 0; display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.5rem; align-items: start; }
  .wallcfg-stage { position: relative; background: linear-gradient(135deg,#11315f,#081a3a); border:1px solid rgba(255,255,255,0.1); border-radius: 18px; overflow: hidden; height: 520px; }
  .wallcfg-stage canvas { display:block; width:100%; height:100%; cursor:grab; }
  .wallcfg-stage canvas:active { cursor:grabbing; }
  .wc-loading { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.75rem; color:rgba(255,255,255,0.62); font-size:0.8rem; z-index:3; }
  .wc-spinner { width:30px;height:30px;border:3px solid rgba(255,255,255,0.15);border-top-color:var(--orange);border-radius:50%;animation:spin 0.8s linear infinite; }
  @keyframes spin{to{transform:rotate(360deg)}}
  .wc-err { display:none; position:absolute; inset:0; align-items:center; justify-content:center; text-align:center; padding:2rem; color:rgba(255,255,255,0.62); font-size:0.82rem; line-height:1.6; z-index:3; }
  .wc-err.on { display:flex; }
  .wc-label { position:absolute; pointer-events:none; z-index:5; background:rgba(6,15,34,0.92); border:1px solid rgba(255,255,255,0.15); border-radius:8px; padding:0.4rem 0.7rem; opacity:0; transition:opacity 0.15s; }
  .wc-label.on { opacity:1; }
  .wc-lab-t { font-size:0.8rem; font-weight:600; color:#fff; }
  .wc-stagebar { position:absolute; left:0; right:0; bottom:0; z-index:4; display:flex; align-items:center; justify-content:space-between; gap:0.5rem; padding:0.75rem; flex-wrap:wrap; background:linear-gradient(to top, rgba(6,15,34,0.85), transparent); }
  .wc-seg { display:flex; background:rgba(255,255,255,0.08); border-radius:980px; padding:3px; }
  .wc-seg button { font-family:inherit; font-size:0.72rem; font-weight:600; cursor:pointer; border:none; border-radius:980px; padding:0.4rem 0.75rem; color:rgba(255,255,255,0.68); background:transparent; transition:all 0.18s; }
  .wc-seg button.active { background:var(--orange); color:#fff; }
  .wc-stage-btns { display:flex; gap:0.4rem; }
  .wc-mini { font-family:inherit; font-size:0.72rem; font-weight:600; cursor:pointer; border:none; border-radius:980px; padding:0.4rem 0.8rem; color:#fff; background:rgba(255,255,255,0.1); transition:all 0.18s; }
  .wc-mini:hover { background:rgba(255,255,255,0.2); }
  .wc-hint { position:absolute; top:0.75rem; left:0.9rem; z-index:4; font-size:0.68rem; color:rgba(255,255,255,0.35); }

  .wallcfg-panel { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:18px; padding:1.5rem; display:flex; flex-direction:column; }
  .wc-panel-head { font-size:0.8rem; font-weight:700; color:#fff; margin-bottom:1rem; display:flex; justify-content:space-between; align-items:baseline; }
  .wc-panel-head span { font-size:0.62rem; font-weight:500; color:rgba(255,255,255,0.55); text-transform:uppercase; letter-spacing:0.06em; }
  .wc-layers { display:flex; flex-direction:column; gap:0.5rem; margin-bottom:1.25rem; }
  .wc-layer { display:flex; align-items:center; gap:0.7rem; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); border-radius:10px; padding:0.6rem 0.75rem; transition:opacity 0.2s; }
  .wc-layer.off { opacity:0.4; }
  .wc-layer.locked .wc-toggle { opacity:0.3; cursor:not-allowed; }
  .wc-sw { width:14px; height:14px; border-radius:4px; flex-shrink:0; }
  .wc-layer-info { flex:1; min-width:0; }
  .wc-layer-name { font-size:0.82rem; font-weight:600; color:#fff; }
  .wc-layer-sub { font-size:0.68rem; color:rgba(255,255,255,0.6); }
  .wc-layer-price { font-size:0.74rem; font-weight:600; color:rgba(255,255,255,0.7); white-space:nowrap; }
  .wc-toggle { width:38px; height:22px; border-radius:980px; background:rgba(255,255,255,0.15); position:relative; cursor:pointer; flex-shrink:0; transition:background 0.2s; border:none; padding:0; }
  .wc-toggle.on { background:var(--orange); }
  .wc-toggle::after { content:''; position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform 0.2s; }
  .wc-toggle.on::after { transform:translateX(16px); }
  .wc-summary { border-top:1px solid rgba(255,255,255,0.1); padding-top:1rem; margin-top:auto; }
  .wc-sum-row { display:flex; justify-content:space-between; align-items:baseline; font-size:0.82rem; color:rgba(255,255,255,0.72); margin-bottom:0.5rem; }
  .wc-sum-row b { color:#fff; font-weight:700; }
  .wc-sum-price { font-size:0.92rem; color:rgba(255,255,255,0.85); padding-top:0.5rem; border-top:1px dashed rgba(255,255,255,0.12); }
  .wc-sum-price b { font-size:1.3rem; color:var(--orange); font-family:'Inter',sans-serif; letter-spacing:-0.02em; }
  .wc-sum-note { font-size:0.68rem; color:rgba(255,255,255,0.35); text-align:right; }
  .wc-add { width:100%; margin-top:1.25rem; background:var(--orange); color:#fff; border:none; padding:0.85rem; border-radius:10px; font-family:'Inter',sans-serif; font-size:0.9rem; font-weight:600; cursor:pointer; transition:background 0.2s; }
  .wc-add:hover { background:var(--orange-dark); }
  .wc-added { margin-top:0.75rem; padding:0.7rem; border-radius:9px; background:rgba(26,122,64,0.15); border:1px solid rgba(26,122,64,0.4); color:#5ed696; font-size:0.8rem; text-align:center; }
  @media (max-width: 900px) {
    .wallcfg-grid { grid-template-columns: 1fr; }
    .wallcfg-stage { height: 420px; }
  }


  /* scroll offset for fixed nav when jumping to homepage sections */
  #solutions, #projects, #contact, #why-anchor, #wall-configurator { scroll-margin-top: 64px; }


  /* ── SUB-PAGE HEROES ── */
  .subhero { position: relative; padding: 8rem 2rem 4rem; text-align: center; overflow: hidden; background: linear-gradient(135deg,#0A1F44,#0d2b5e 60%,#061229); }
  .subhero-bg { position:absolute; inset:0; background: radial-gradient(ellipse 90% 70% at 50% 120%, rgba(255,94,0,0.12), transparent 60%); }
  .subhero-inner { position:relative; max-width: 720px; margin: 0 auto; }
  .subhero-eyebrow { display:inline-block; font-size:0.72rem; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; color:var(--orange); border:1px solid rgba(255,94,0,0.4); padding:0.3rem 1rem; border-radius:980px; margin-bottom:1.25rem; }
  .subhero-title { font-family:'Inter',sans-serif; font-weight:900; font-size:clamp(2rem,4.5vw,3.4rem); color:#fff; letter-spacing:-0.03em; line-height:1.1; }
  .subhero-sub { font-size:1.02rem; color:rgba(255,255,255,0.72); margin-top:1rem; line-height:1.6; }

  /* ── HOMEPAGE TEASERS ── */
  .teaser-section { padding: 4.5rem 2rem; background: var(--white); border-top: 1px solid var(--light-gray); }
  .teaser-section.teaser-dark { background: var(--navy); border-top: none; }
  .teaser-inner { display:flex; align-items:center; justify-content:flex-start; gap:2rem; }
  .teaser-text { max-width: 680px; }
  .teaser-title { font-family:'Inter',sans-serif; font-weight:800; font-size:clamp(1.5rem,3vw,2.2rem); color:var(--navy); letter-spacing:-0.02em; line-height:1.15; margin:0.5rem 0 0.75rem; }
  .teaser-desc { font-size:0.98rem; line-height:1.7; color:var(--text-secondary); margin-bottom:1.5rem; }
  .teaser-btn { display:inline-block; }

  /* page fade */
  #page-home, .sub-page { transition: opacity 0.2s ease; }


  /* ── COLD-FORMED STEEL EDUCATION (why sub-page) ── */
  .cfs-section { background: var(--white); padding: 5rem 2rem; }
  .cfs-intro { max-width: 760px; margin: 2rem 0 0; }
  .cfs-intro p { font-size: 1rem; line-height: 1.8; color: var(--charcoal); }
  .cfs-h3 { font-family:'Inter',sans-serif; font-weight:800; font-size:1.4rem; color:var(--navy); letter-spacing:-0.02em; margin: 3rem 0 1.25rem; }
  .cfs-table-wrap { overflow-x:auto; border-radius:14px; border:1px solid var(--light-gray); }
  .cfs-table { width:100%; border-collapse:collapse; min-width:520px; }
  .cfs-table th { text-align:left; font-size:0.78rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:#fff; background:var(--navy); padding:0.85rem 1rem; }
  .cfs-table td { padding:0.8rem 1rem; border-bottom:1px solid var(--light-gray); font-size:0.9rem; color:var(--charcoal); }
  .cfs-table tr:last-child td { border-bottom:none; }
  .cfs-table tbody tr:nth-child(even) { background:var(--off-white); }
  .cfs-table .cfs-good { color:#1a7a40; font-weight:600; }
  .cfs-table-3 th, .cfs-table-3 td { font-size:0.84rem; }
  .cfs-note { font-size:0.92rem; line-height:1.75; color:var(--text-secondary); margin-top:1.25rem; max-width:820px; }
  .cfs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-top:1.5rem; }
  .cfs-card { background:var(--off-white); border:1px solid var(--light-gray); border-radius:14px; padding:1.5rem; transition:transform 0.3s, box-shadow 0.3s, border-color 0.3s; }
  .cfs-card:hover { transform:translateY(-4px); box-shadow:0 14px 36px rgba(0,0,0,0.08); border-color:rgba(255,94,0,0.3); }
  .cfs-ico { width:44px; height:44px; border-radius:11px; background:rgba(255,94,0,0.08); color:var(--orange); display:flex; align-items:center; justify-content:center; margin-bottom:0.9rem; }
  .cfs-ico svg { width:24px; height:24px; }
  .cfs-card h4 { font-family:'Inter',sans-serif; font-weight:700; font-size:1rem; color:var(--navy); margin-bottom:0.5rem; }
  .cfs-card p { font-size:0.86rem; line-height:1.65; color:var(--text-secondary); }
  .cfs-tradeoff { background:#fff7f2; border:1.5px solid rgba(255,94,0,0.3); border-radius:16px; padding:1.75rem; margin-top:2rem; max-width:820px; }
  .cfs-tradeoff-tag { display:inline-block; font-size:0.65rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--orange); margin-bottom:0.6rem; }
  .cfs-tradeoff h4 { font-family:'Inter',sans-serif; font-weight:700; font-size:1.1rem; color:var(--navy); margin-bottom:0.6rem; }
  .cfs-tradeoff p { font-size:0.92rem; line-height:1.75; color:var(--charcoal); }
  @media (max-width:820px){ .cfs-grid { grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .cfs-grid { grid-template-columns:1fr; } }


  /* cost / financing / sustainability blocks */
  .cfs-cost-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1rem; }
  .cfs-cost-card { background:var(--off-white); border:1px solid var(--light-gray); border-radius:14px; padding:1.5rem; }
  .cfs-cost-hl { background:rgba(255,94,0,0.06); border-color:rgba(255,94,0,0.35); }
  .cfs-cost-label { font-size:0.72rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:var(--text-secondary); }
  .cfs-cost-val { font-family:'Inter',sans-serif; font-weight:800; font-size:1.6rem; color:var(--navy); letter-spacing:-0.02em; margin-top:0.4rem; }
  .cfs-cost-hl .cfs-cost-val { color:var(--orange); }
  .cfs-cost-val span { font-size:0.78rem; font-weight:500; color:var(--text-secondary); margin-left:0.2rem; }
  .cfs-cost-sub { font-size:0.78rem; color:var(--text-secondary); margin-top:0.3rem; }
  .cfs-disclaimer { font-size:0.74rem; color:var(--mid-gray); margin-top:0.75rem; font-style:italic; }
  .cfs-fact-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-top:1.5rem; }
  .cfs-fact { display:flex; gap:0.85rem; background:var(--white); border:1px solid var(--light-gray); border-radius:14px; padding:1.25rem; }
  .cfs-fact-ico { width:40px; height:40px; flex-shrink:0; border-radius:10px; background:rgba(10,31,68,0.06); color:var(--navy); display:flex; align-items:center; justify-content:center; }
  .cfs-fact-ico svg { width:22px; height:22px; }
  .cfs-fact h4 { font-family:'Inter',sans-serif; font-weight:700; font-size:0.92rem; color:var(--navy); margin-bottom:0.35rem; }
  .cfs-fact p { font-size:0.82rem; line-height:1.6; color:var(--text-secondary); }
  .cfs-takeaway { background:var(--navy); border-radius:16px; padding:2rem; margin-top:2.5rem; }
  .cfs-takeaway-tag { display:inline-block; font-size:0.65rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--orange); margin-bottom:0.75rem; }
  .cfs-takeaway p { font-size:0.95rem; line-height:1.8; color:rgba(255,255,255,0.8); }
  @media (max-width:820px){ .cfs-cost-grid, .cfs-fact-grid { grid-template-columns:1fr; } }


  /* ── MANUFACTURING PROCESS + BIM (solutions sub-page) ── */
  .mfg-section { background: var(--off-white); padding: 5rem 2rem; }
  .mfg-tag { display:inline-block; font-size:0.65rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--orange); margin-bottom:0.6rem; }
  .mfg-h3 { font-family:'Inter',sans-serif; font-weight:800; font-size:1.4rem; color:var(--navy); letter-spacing:-0.02em; }
  .mfg-bim { display:grid; grid-template-columns:1.2fr 1fr; gap:2.5rem; align-items:center; margin-top:2rem; }
  .mfg-bim-text p { font-size:0.95rem; line-height:1.75; color:var(--text-secondary); margin:0.75rem 0; }
  .mfg-bim-text p strong, .mfg-list b { color:var(--charcoal); font-weight:700; }
  .mfg-list { list-style:none; padding:0; margin:1rem 0; }
  .mfg-list li { font-size:0.9rem; line-height:1.6; color:var(--charcoal); padding-left:1.4rem; position:relative; margin-bottom:0.5rem; }
  .mfg-list li::before { content:'✓'; position:absolute; left:0; color:var(--orange); font-weight:700; }
  .mfg-note { background:#fff7f2; border-left:3px solid var(--orange); border-radius:0 8px 8px 0; padding:0.85rem 1rem; font-size:0.88rem !important; color:var(--charcoal) !important; }
  .mfg-bim-visual svg { width:100%; height:auto; border-radius:14px; }
  .mfg-line { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-top:2rem; }
  .mfg-stage { background:var(--white); border:1px solid var(--light-gray); border-radius:14px; padding:1.5rem; position:relative; transition:transform 0.3s, box-shadow 0.3s; }
  .mfg-stage:hover { transform:translateY(-4px); box-shadow:0 14px 36px rgba(0,0,0,0.08); }
  .mfg-stage-num { font-family:'Inter',sans-serif; font-weight:900; font-size:1.6rem; color:rgba(255,94,0,0.25); letter-spacing:-0.03em; }
  .mfg-stage-t { font-family:'Inter',sans-serif; font-weight:700; font-size:1rem; color:var(--navy); margin:0.3rem 0 0.6rem; }
  .mfg-stage p { font-size:0.85rem; line-height:1.6; color:var(--text-secondary); }
  .mfg-qa { background:var(--navy); border-radius:16px; padding:2rem; margin-top:2.5rem; }
  .mfg-qa-tag { display:inline-block; font-size:0.65rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--orange); }
  .mfg-qa .mfg-h3 { color:#fff; }
  .mfg-qa p { font-size:0.95rem; line-height:1.8; color:rgba(255,255,255,0.8); }
  .mfg-qa em { color:var(--orange); font-style:normal; font-weight:600; }
  @media (max-width:820px){ .mfg-bim { grid-template-columns:1fr; } .mfg-line { grid-template-columns:1fr; } }


  /* ── DEEP CASE STUDY (projects sub-page) ── */
  .cs-section { background: var(--white); padding: 5rem 2rem; }
  .cs-snapshot { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; margin-top:2rem; background:var(--off-white); border:1px solid var(--light-gray); border-radius:14px; padding:1.5rem; }
  .cs-snap { text-align:center; }
  .cs-snap-v { font-family:'Inter',sans-serif; font-weight:800; font-size:1.3rem; color:var(--navy); letter-spacing:-0.02em; }
  .cs-snap-l { font-size:0.7rem; color:var(--text-secondary); text-transform:uppercase; letter-spacing:0.05em; margin-top:0.3rem; }
  .cs-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-top:1.75rem; }
  .cs-card { background:var(--off-white); border:1px solid var(--light-gray); border-radius:14px; padding:1.5rem; }
  .cs-card-tag { display:inline-block; font-size:0.65rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--orange); margin-bottom:0.6rem; }
  .cs-card p { font-size:0.88rem; line-height:1.7; color:var(--text-secondary); }
  .cs-h3 { font-family:'Inter',sans-serif; font-weight:800; font-size:1.4rem; color:var(--navy); letter-spacing:-0.02em; margin:3rem 0 1rem; }
  .cs-note { font-size:0.92rem; line-height:1.75; color:var(--text-secondary); max-width:820px; }
  .cs-note strong { color:var(--charcoal); }
  .cs-timeline { margin-top:1.5rem; background:var(--off-white); border:1px solid var(--light-gray); border-radius:14px; padding:1.5rem; }
  .cs-tl-track { margin-bottom:1.25rem; }
  .cs-tl-label { font-size:0.78rem; font-weight:600; color:var(--charcoal); margin-bottom:0.4rem; }
  .cs-tl-bar { display:flex; gap:3px; height:auto; }
  .cs-tl-seg { color:#fff; font-size:0.7rem; font-weight:600; padding:0.5rem 0.6rem; border-radius:5px; display:flex; align-items:center; justify-content:center; text-align:center; line-height:1.2; }
  .cs-tl-parallel { display:flex; flex-direction:column; gap:3px; flex:5; }
  .cs-tl-parallel .cs-tl-seg { flex:1; }
  .cs-tl-axis { display:flex; justify-content:space-between; font-size:0.7rem; color:var(--mid-gray); margin-top:0.5rem; }
  .cs-savings { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-top:1.5rem; }
  .cs-save { background:var(--white); border:1px solid var(--light-gray); border-radius:14px; padding:1.5rem; transition:transform 0.3s, box-shadow 0.3s, border-color 0.3s; }
  .cs-save:hover { transform:translateY(-4px); box-shadow:0 14px 36px rgba(0,0,0,0.08); border-color:rgba(255,94,0,0.3); }
  .cs-save-ico { width:42px; height:42px; border-radius:11px; background:rgba(255,94,0,0.08); color:var(--orange); display:flex; align-items:center; justify-content:center; margin-bottom:0.85rem; }
  .cs-save-ico svg { width:22px; height:22px; }
  .cs-save h4 { font-family:'Inter',sans-serif; font-weight:700; font-size:0.98rem; color:var(--navy); margin-bottom:0.45rem; }
  .cs-save p { font-size:0.85rem; line-height:1.65; color:var(--text-secondary); }
  @media (max-width:820px){ .cs-snapshot { grid-template-columns:1fr 1fr; } .cs-cards, .cs-savings { grid-template-columns:1fr; } }


  /* ── FACTORY-TO-SITE FLOW (replaces fictional US map) ── */
  .loc-flow { display:flex; align-items:stretch; justify-content:center; gap:0.5rem; padding:2.5rem 1.5rem; flex-wrap:wrap; }
  .loc-node { flex:1; min-width:180px; max-width:240px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:14px; padding:1.5rem; text-align:center; }
  .loc-ico { width:54px; height:54px; border-radius:14px; display:flex; align-items:center; justify-content:center; margin:0 auto 0.9rem; }
  .loc-ico svg { width:28px; height:28px; }
  .loc-ico-factory { background:rgba(255,94,0,0.15); color:var(--orange); }
  .loc-ico-ship { background:rgba(63,208,224,0.15); color:#3fd0e0; }
  .loc-ico-market { background:rgba(26,122,64,0.18); color:#5ed696; }
  .loc-title { font-size:0.7rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:rgba(255,255,255,0.62); }
  .loc-place { font-family:'Inter',sans-serif; font-weight:700; font-size:1.05rem; color:#fff; margin:0.3rem 0; }
  .loc-sub { font-size:0.8rem; color:rgba(255,255,255,0.68); line-height:1.5; }
  .loc-arrow { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.3rem; color:rgba(255,255,255,0.3); min-width:80px; }
  .loc-arrow svg { width:50px; height:20px; }
  .loc-arrow span { font-size:0.65rem; color:rgba(255,255,255,0.55); }
  .loc-projects { border-top:1px solid rgba(255,255,255,0.08); padding:1.5rem; }
  .loc-proj-head { font-size:0.8rem; font-weight:700; color:#fff; margin-bottom:1rem; }
  .loc-proj-head span { font-weight:400; color:rgba(255,255,255,0.35); font-size:0.72rem; }
  @media (max-width:760px){ .loc-flow { flex-direction:column; align-items:center; } .loc-arrow { transform:rotate(90deg); min-width:0; margin:0.25rem 0; } .loc-node { max-width:100%; width:100%; } }


  /* step-3 system options with illustration backgrounds */
  .qs-opt-img { padding:0 !important; overflow:hidden; display:flex !important; flex-direction:column; align-items:stretch !important; text-align:left !important; }
  .qs-opt-visual { display:block; width:100%; height:84px; overflow:hidden; }
  .qs-opt-visual svg { width:100%; height:100%; display:block; }
  .qs-opt-body { display:flex; flex-direction:column; padding:0.85rem 1rem 1rem; gap:0.3rem; }
  .qs-opt-img .qs-opt-label { font-size:0.92rem; }
  .qs-opt-img .qs-opt-desc { font-size:0.78rem; line-height:1.5; }


  .factory-future { margin-top:1rem; padding-top:1rem; border-top:1px solid rgba(255,255,255,0.1); display:flex; gap:0.6rem; align-items:flex-start; }
  .ff-badge { flex-shrink:0; font-size:0.6rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--orange); background:rgba(255,94,0,0.12); border:1px solid rgba(255,94,0,0.35); padding:0.2rem 0.5rem; border-radius:5px; }
  .factory-future span:last-child { font-size:0.8rem; line-height:1.55; color:rgba(255,255,255,0.72); }


  /* independent roof + foundation system cards */
  .wc-systems-extra { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:1.5rem; }
  .wc-syscard { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:18px; overflow:hidden; display:flex; flex-direction:column; transition:transform 0.3s, box-shadow 0.3s, border-color 0.3s; }
  .wc-syscard:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,0.25); border-color:rgba(255,94,0,0.3); }
  .wc-syscard-visual { height:130px; }
  .wc-syscard-visual svg { width:100%; height:100%; display:block; }
  .wc-syscard-body { padding:1.5rem; }
  .wc-syscard-tag { font-size:0.62rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--orange); }
  .wc-syscard-title { font-family:'Inter',sans-serif; font-weight:700; font-size:1.15rem; color:#fff; margin:0.35rem 0 0.6rem; }
  .wc-syscard-desc { font-size:0.85rem; line-height:1.65; color:rgba(255,255,255,0.72); margin-bottom:1rem; }
  .wc-syscard-list { list-style:none; padding:0; margin:0; }
  .wc-syscard-list li { font-size:0.82rem; line-height:1.5; color:rgba(255,255,255,0.7); padding-left:1.2rem; position:relative; margin-bottom:0.4rem; }
  .wc-syscard-list li::before { content:'\2713'; position:absolute; left:0; color:var(--orange); font-weight:700; }
  @media (max-width:820px){ .wc-systems-extra { grid-template-columns:1fr; } }


  /* assembly switcher tabs (Wall / Roof / Foundation) */
  .wc-assembly-tabs { display:inline-flex; gap:0.5rem; margin-top:1.5rem; background:rgba(255,255,255,0.05); border:1px solid var(--light-gray); border-radius:980px; padding:4px; }
  .wallcfg-section .wc-assembly-tabs { background:rgba(255,255,255,0.06); border-color:rgba(255,255,255,0.12); }
  .wc-assembly-tabs button { font-family:'Inter',sans-serif; font-size:0.85rem; font-weight:600; cursor:pointer; border:none; border-radius:980px; padding:0.55rem 1.3rem; color:var(--navy); background:transparent; transition:all 0.18s; display:inline-flex; align-items:center; gap:0.4rem; }
  .wc-assembly-tabs button.active { background:var(--orange); color:#fff; }
  .wc-at-ico { font-size:0.85rem; }


  /* stats bar → single coordination line */
  .stats-support { flex-direction: column; gap: 1rem; text-align: center; }
  .stats-support-icons { display: flex; gap: 2rem; justify-content: center; }
  .ss-ico { width: 34px; height: 34px; color: var(--orange); display: inline-flex; }
  .ss-ico svg { width: 100%; height: 100%; }
  .stats-support-text { font-size: 1rem; color: rgba(255,255,255,0.75); line-height: 1.7; }
  .stats-support-text b { color: #fff; font-weight: 700; font-size: 1.08rem; }
  /* enlarge hero feature markers (Angela: too small) */
  .hero-features { gap: 1.75rem 2.25rem; margin-top: 2.5rem; }
  .hero-feat { font-size: 0.95rem; font-weight: 600; color: #fff; gap: 0.65rem; }
  .hero-feat .hf-ico { width: 26px; height: 26px; color: var(--orange); opacity: 1; }


  .bt-learn { display:inline-block; margin-top:1rem; font-size:0.85rem; font-weight:600; color:var(--orange); text-decoration:none; }
  .bt-learn:hover { letter-spacing:0.02em; }
  .build-type .bt-title { font-size:1.15rem; font-weight:700; }
  .build-type .bt-desc { font-size:0.82rem; color:var(--text-secondary); }
  .build-type .bt-points li { font-size:0.84rem; }


  /* Instant Estimate panel → white background (Angela p6) */
  .quote-estimate { background: #fff !important; border: 1px solid var(--light-gray) !important; }
  .quote-estimate .qe-title { color: var(--navy); }
  .quote-estimate .qe-sub, .quote-estimate .qe-k, .quote-estimate .qe-note { color: var(--text-secondary); }
  .quote-estimate .qe-v { color: var(--orange); }
  .quote-estimate .qe-v-sm { color: var(--navy); }
  .quote-estimate .qe-box { background: var(--off-white); border-color: var(--light-gray); }
  .quote-estimate .qe-box-primary { background: rgba(255,94,0,0.06); border-color: rgba(255,94,0,0.3); }
  .quote-estimate .qe-trust { border-top-color: var(--light-gray); }
  .quote-estimate .qe-trust li { color: var(--text-secondary); }
  .quote-estimate .qe-ico { color: var(--orange); }


  .receive-title { font-family:'Inter',sans-serif; font-weight:700; font-size:1.05rem; color:var(--navy); margin-bottom:0.85rem; }
  .receive-list { list-style:none; padding:0; margin:0; }
  .receive-list li { font-size:0.92rem; color:var(--charcoal); padding-left:1.6rem; position:relative; margin-bottom:0.6rem; }
  .receive-list li::before { content:'\2714'; position:absolute; left:0; color:var(--orange); font-weight:700; }
  .cb-eyebrow { display:inline-block; font-size:0.72rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--orange); margin-bottom:0.75rem; }

  .ph-box { aspect-ratio: 4/3; background: linear-gradient(135deg,#eef1f6,#dce3ee); border:1px solid var(--light-gray); border-radius:12px; display:flex; align-items:center; justify-content:center; color:#9fb0c8; }
  .ph-box svg { width:38px; height:38px; }
  .ph-box.ph-tall { aspect-ratio: 3/4; }
  .ptb-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1.25rem; margin-top:2.5rem; }
  .ptb-card { text-align:center; }
  .ptb-num { width:34px;height:34px;border-radius:50%;border:2px solid var(--orange);color:var(--orange);font-weight:800;font-size:0.9rem;display:flex;align-items:center;justify-content:center;margin:1rem auto 0.6rem;background:var(--white); }
  .ptb-title { font-family:'Inter',sans-serif;font-weight:700;color:var(--navy);font-size:0.95rem;margin-bottom:0.4rem; }
  .ptb-desc { font-size:0.8rem;color:var(--text-secondary);line-height:1.5;padding:0 0.4rem; }
  .fut-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2.5rem; max-width:1180px; margin-left:auto; margin-right:auto; }
  .fut-card { text-align:center; }
  .fut-cap { font-family:'Inter',sans-serif;font-weight:700;color:var(--navy);font-size:1rem;margin-top:0.9rem; }
  @media (max-width:900px){ .ptb-grid{grid-template-columns:repeat(2,1fr)} .fut-grid{grid-template-columns:1fr} }
  @media (max-width:560px){ .ptb-grid{grid-template-columns:1fr} }


/* ===== CSS BLOCK 2 ===== */

  .cfs3-leaders { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:1; overflow:visible; opacity:0; transition:opacity .5s ease; }
  .cfs3-leaders.show { opacity:1; }
  .cfs3-leaders path, .cfs3-leaders circle { transition:stroke .18s ease, fill .18s ease; }
  .cfs3-layers li { position:relative; }
  .cfs3-num { position:relative; z-index:2; }
  @media (max-width:980px){ .cfs3-leaders { display:none; } }
  

/* ===== CSS BLOCK 3 ===== */

  /* Page transitions */
  #page-main, #page-insights {
    transition: opacity 0.35s ease;
  }

  /* Filter buttons */
  .ins-filter {
    padding: 0.42rem 1.05rem;
    border-radius: 980px;
    border: 1px solid var(--light-gray);
    background: transparent;
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--text-secondary);
    cursor: pointer;
    transition: all 0.2s;
  }
  .ins-filter.active, .ins-filter:hover {
    background: var(--navy);
    color: var(--white);
    border-color: var(--navy);
  }

  /* Featured hero card */
  .ins-featured-hero {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid var(--light-gray);
    min-height: 380px;
    background: var(--white);
  }
  .ins-fh-visual {
    position: relative;
    min-height: 320px;
  }
  .ins-fh-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
      linear-gradient(180deg, rgba(10,31,68,0.18), rgba(10,31,68,0.82)),
      url('images/original/62.jpg');
    background-size: cover;
    background-position: center;
  }
  .ins-fh-visual > * { position: relative; z-index: 1; }
  .ins-fh-label {
    position: absolute; top: 1rem; right: 1rem;
    background: rgba(255,255,255,0.15);
    color: var(--white);
    font-size: 0.68rem; font-weight: 500;
    letter-spacing: 0.1em; text-transform: uppercase;
    padding: 0.25rem 0.7rem; border-radius: 980px;
    border: 1px solid rgba(255,255,255,0.3);
  }
  .ins-fh-body {
    padding: 2.5rem;
    display: flex; flex-direction: column; justify-content: center;
  }
  .ins-cat-tag {
    position: absolute; top: 1rem; left: 1rem;
    color: var(--white);
    font-size: 0.68rem; font-weight: 600;
    letter-spacing: 0.08em; text-transform: uppercase;
    padding: 0.28rem 0.7rem; border-radius: 980px;
  }
  .ins-cat-tag-inline {
    display: inline-block;
    background: rgba(255,94,0,0.1);
    color: var(--orange);
    font-size: 0.72rem; font-weight: 600;
    letter-spacing: 0.08em; text-transform: uppercase;
    padding: 0.25rem 0.75rem; border-radius: 980px;
  }

  /* Article cards */
  .ins-art-card {
    background: var(--white);
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid var(--light-gray);
    display: flex; flex-direction: column;
    transition: transform 0.3s var(--transition), box-shadow 0.3s, border-color 0.3s;
  }
  .ins-art-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 50px rgba(0,0,0,0.1);
    border-color: rgba(255,94,0,0.25);
  }
  .ins-art-card.hidden { display: none !important; }
  .ins-art-img {
    height: 150px; position: relative; overflow: hidden;
  }
  .ins-art-img::before {
    content: "";
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
  }
  .ins-art-img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10,31,68,0.05), rgba(10,31,68,0.34));
  }
  .ins-art-img .ins-cat-tag { z-index: 2; }
  .ins-art-body { padding: 1.5rem; flex: 1; display: flex; flex-direction: column; }
  .ins-art-meta { font-size: 0.72rem; color: var(--mid-gray); margin-bottom: 0.5rem; }
  .ins-art-title {
    font-family: 'Inter', sans-serif;
    font-weight: 700; font-size: 0.95rem;
    color: var(--navy); line-height: 1.4;
    margin-bottom: 0.65rem; flex: 1;
  }
  .ins-art-excerpt { font-size: 0.83rem; line-height: 1.65; color: var(--text-secondary); margin-bottom: 1rem; }
  .ins-art-link {
    font-size: 0.8rem; font-weight: 600;
    color: var(--orange); text-decoration: none;
    letter-spacing: 0.01em;
    transition: letter-spacing 0.2s;
    margin-top: auto;
  }
  .ins-art-link:hover { letter-spacing: 0.06em; }

  @media (max-width: 900px) {
    #ins-grid { grid-template-columns: repeat(2,1fr) !important; }
    .ins-featured-hero { grid-template-columns: 1fr; }
    .ins-fh-visual { min-height: 240px; }
  }
  @media (max-width: 600px) {
    #ins-grid { grid-template-columns: 1fr !important; }
  }

  /* ── HERO TAGS ── */
  .hero-grid { display: none; }
  .hero-glow { display: none; }
  .hero-tags {
    display: flex; gap: 0.6rem; flex-wrap: wrap; justify-content: center;
    margin-top: 2rem;
    opacity: 0; animation: fadeUp 0.9s 1s var(--transition) forwards;
  }
  .hero-tag {
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    color: rgba(255,255,255,0.75);
    font-size: 0.72rem; font-weight: 500;
    padding: 0.3rem 0.8rem; border-radius: 980px;
    letter-spacing: 0.04em;
  }

  /* ── TRUSTED BY ── */
  .trusted-section {
    background: var(--off-white);
    padding: 3rem 2rem;
    border-bottom: 1px solid var(--light-gray);
  }
  .trusted-eyebrow {
    text-align: center; display: block;
    font-size: 0.72rem; font-weight: 500;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--mid-gray); margin-bottom: 1.5rem;
  }
  .trusted-logos {
    display: flex; flex-wrap: wrap; gap: 0.6rem;
    justify-content: center; margin-bottom: 2rem;
  }
  .logo-pill {
    background: var(--white); border: 1px solid var(--light-gray);
    border-radius: 8px; padding: 0.5rem 1.1rem;
    font-size: 0.78rem; font-weight: 600; color: var(--charcoal);
    white-space: nowrap;
    transition: border-color 0.2s, box-shadow 0.2s;
  }
  .logo-pill:hover { border-color: var(--orange); box-shadow: 0 2px 12px rgba(255,94,0,0.12); }
  .cert-strip {
    display: flex; flex-wrap: wrap; gap: 0; justify-content: center;
    background: var(--white); border: 1px solid var(--light-gray);
    border-radius: 12px; overflow: hidden;
  }
  .cert-badge {
    display: flex; align-items: center; gap: 0.4rem;
    padding: 0.75rem 1.25rem;
    font-size: 0.78rem; font-weight: 600; color: var(--charcoal);
  }
  .cert-icon { color: var(--orange); font-size: 0.85rem; }
  .cert-sep { width: 1px; background: var(--light-gray); margin: 0.5rem 0; }

  /* ── WHAT WE BUILD ── */
  .what-we-build-section { background: var(--white); padding: 5rem 2rem; }
  .build-types-grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem; max-width: 1100px; margin: 3rem auto 0;
  }
  .build-type {
    border-radius: 16px; overflow: hidden;
    border: 1px solid var(--light-gray); background: var(--white);
    transition: transform 0.3s var(--transition), box-shadow 0.3s, border-color 0.3s;
    display: flex; flex-direction: column;
  }
  .build-type:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(0,0,0,0.1); border-color: rgba(255,94,0,0.3); }
  .bt-head { padding: 1rem 1.25rem 0; }
  .bt-tag { display: inline-block; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--navy); background: rgba(10,31,68,0.07); padding: 0.22rem 0.6rem; border-radius: 5px; }
  .bt-tag-2 { color: var(--text-secondary); background: rgba(110,110,115,0.1); }
  .bt-body { padding: 0.85rem 1.25rem 1.4rem; background: var(--white); flex: 1; }
  .bt-icon { width: 40px; height: 40px; border-radius: 10px; background: rgba(255,94,0,0.08); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; margin-bottom: 0.75rem; }
  .bt-title { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 1rem; color: var(--navy); margin-bottom: 0.3rem; }
  .bt-desc { font-size: 0.8rem; color: var(--text-secondary); line-height: 1.5; margin-bottom: 0.9rem; }
  .bt-why { font-size: 0.72rem; font-weight: 700; color: var(--orange); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.5rem; }
  .bt-points { list-style: none; padding: 0; margin: 0; }
  .bt-points li { font-size: 0.8rem; line-height: 1.5; color: var(--charcoal); padding-left: 1.1rem; position: relative; margin-bottom: 0.35rem; }
  .bt-points li::before { content: '\2713'; color: var(--orange); position: absolute; left: 0; font-weight: 700; }

  /* ── HOW IT WORKS ── */

  /* ── FACTORY SECTION ── */
  .factory-section { background: var(--navy); padding: 6rem 2rem; }
  .factory-grid {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 4rem; align-items: center;
  }
  /* location/serving meta */
  .factory-meta { display: flex; gap: 2rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
  .fm-item { display: flex; align-items: flex-start; gap: 0.6rem; }
  .fm-ico { font-size: 1.1rem; }
  .fm-k { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; color: rgba(255,255,255,0.55); }
  .fm-v { font-size: 0.88rem; color: rgba(255,255,255,0.85); font-weight: 500; margin-top: 0.1rem; }
  /* one hero stat + supporting */
  .factory-hero-stat {
    background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1);
    border-radius: 16px; padding: 1.5rem; margin-bottom: 1.5rem;
  }
  .fhs-num { font-family: 'Inter', sans-serif; font-weight: 900; font-size: 2.6rem; letter-spacing: -0.03em; line-height: 1; }
  .fhs-num span { font-size: 1.1rem; font-weight: 700; }
  .fhs-label { font-size: 0.8rem; color: rgba(255,255,255,0.68); margin-top: 0.4rem; }
  .fhs-support { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; gap: 1.5rem; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,0.1); padding-top: 1rem; }
  .fhs-support li { font-size: 0.82rem; color: rgba(255,255,255,0.72); }
  .fhs-support b { font-weight: 800; font-size: 1rem; margin-right: 0.2rem; }
  /* systems icon+text */
  .factory-systems-label { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--orange); font-weight: 700; margin-bottom: 0.75rem; }
  .factory-systems { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  .fsys { display: flex; align-items: center; gap: 0.6rem; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 10px; padding: 0.7rem 0.9rem; color: rgba(255,255,255,0.85); font-size: 0.85rem; font-weight: 500; }
  .fsys-ico { font-size: 1.2rem; }
  /* photo placeholders */
  .factory-visual { display: flex; flex-direction: column; gap: 0.85rem; }
  .fphoto-main {
    aspect-ratio: 16/10; border-radius: 16px; overflow: hidden;
    border: 1.5px solid rgba(255,255,255,0.12);
    position: relative; display: flex; align-items: center; justify-content: center;
  }
  .fphoto-svg { position: absolute; inset: 0; width: 100%; height: 100%; }
  .fphoto-tag { position: absolute; bottom: 0.75rem; left: 0.75rem; z-index: 2; font-size: 0.68rem; color: rgba(255,255,255,0.72); letter-spacing: 0.03em; background: rgba(6,15,34,0.6); padding: 0.25rem 0.6rem; border-radius: 6px; border: 1px dashed rgba(255,255,255,0.25); }
  .fphoto-brand { position: absolute; top: 1rem; right: 1.25rem; font-weight: 800; font-size: 1.1rem; color: rgba(255,255,255,0.8); }
  .fphoto-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.85rem; }
  .fphoto-sm {
    aspect-ratio: 1/1; border-radius: 12px; overflow: hidden; position: relative;
    background:
      radial-gradient(circle at 50% 38%, rgba(255,94,0,0.12), transparent 60%),
      rgba(255,255,255,0.04);
    border: 1.5px solid rgba(255,255,255,0.12);
    display: flex; flex-direction: column; justify-content: flex-end; padding: 0.6rem;
  }
  .fphoto-sm .fsm-svg { position: absolute; top: 12%; left: 50%; transform: translateX(-50%); width: 38%; height: 38%; color: rgba(255,255,255,0.55); }
  .fphoto-sm-tag { position: absolute; top: 0.5rem; left: 0.6rem; font-size: 0.65rem; color: rgba(255,255,255,0.35); }
  .fphoto-sm-cap { font-size: 0.62rem; color: rgba(255,255,255,0.68); line-height: 1.3; }
  .fphoto-sm-cap b { display: block; color: rgba(255,255,255,0.85); font-size: 0.68rem; margin-bottom: 0.1rem; }

  /* ── MAP SECTION ── */
  .map-section { background: var(--white); padding: 6rem 2rem; }
  @media (max-width: 768px) { .map-section { padding: 4rem 1.25rem; } }
  .map-container {
    max-width: 1100px; margin: 3rem auto 0;
    background: #0a1a35; border-radius: 20px;
    overflow: hidden; position: relative;
  }
  .map-legend {
    display: flex; gap: 1.5rem; padding: 1.25rem 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    flex-wrap: wrap;
  }
  .map-leg-item {
    display: flex; align-items: center; gap: 0.5rem;
    font-size: 0.75rem; color: rgba(255,255,255,0.68);
  }
  .map-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
  .dot-completed { background: var(--orange); }
  .dot-active { background: #1a7a40; }
  .dot-coverage { background: rgba(255,94,0,0.3); border: 1px solid rgba(255,94,0,0.5); }
  .us-map-svg { display: block; width: 100%; height: auto; }
  @keyframes mapPulse { 0%, 100% { opacity: 0.6; r: 14; } 50% { opacity: 0.15; r: 18; } }
  .map-pulse { animation: mapPulse 2s ease-in-out infinite; }
  .map-project-list {
    border-top: 1px solid rgba(255,255,255,0.08);
    padding: 0 1.5rem 1.5rem;
    display: grid; grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
  }
  .mpl-item {
    padding: 0.85rem 0.5rem;
    border-right: 1px solid rgba(255,255,255,0.06);
    display: flex; flex-direction: column; gap: 0.2rem;
  }
  .mpl-item:last-child { border-right: none; }
  .mpl-item span:first-child { font-size: 0.82rem; font-weight: 600; color: var(--white); }
  .mpl-item span:last-child { font-size: 0.72rem; color: rgba(255,255,255,0.55); }
  .mpl-completed span:first-child::before { content: "● "; color: var(--orange); }
  .mpl-active span:first-child::before { content: "● "; color: #1a7a40; }

  /* ── TEAM SECTION ── */
  .team-section { background: var(--off-white); padding: 6rem 2rem; }
  .team-grid {
    display: grid; grid-template-columns: repeat(5, 1fr);
    gap: 1.25rem; max-width: 1100px; margin: 3rem auto 0;
  }
  .team-card {
    background: var(--white); border-radius: 16px;
    padding: 1.5rem; border: 1px solid var(--light-gray);
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
  }
  .team-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(0,0,0,0.1); border-color: rgba(255,94,0,0.3); }
  .team-avatar {
    width: 72px; height: 72px; border-radius: 50%;
    margin: 0 auto 1rem; overflow: hidden;
  }
  .team-name { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 0.95rem; color: var(--navy); }
  .team-role { font-size: 0.72rem; color: var(--orange); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; margin: 0.25rem 0 0.75rem; }
  .team-desc { font-size: 0.78rem; line-height: 1.6; color: var(--text-secondary); }

  /* ── RESPONSIVE ── */
  @media (max-width: 900px) {
    .fphoto-row { grid-template-columns: repeat(2, 1fr); }
    .factory-systems { grid-template-columns: 1fr; }
    .build-types-grid { grid-template-columns: repeat(2, 1fr); }
    .factory-grid { grid-template-columns: 1fr; }
    .map-project-list { grid-template-columns: 1fr; }
    .team-grid { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 600px) {
    .fphoto-row { grid-template-columns: 1fr; }
    .build-types-grid { grid-template-columns: 1fr; }
    .cert-strip { flex-direction: column; }
    .cert-sep { display: none; }
    .team-grid { grid-template-columns: 1fr; }
  }


  /* ── QUOTE CONFIGURATOR 闁冲厜鍋撻柍鍏夊亾 */
  .quote-wrap {
    max-width: 1060px; margin: 3rem auto 0;
    background: var(--navy); border-radius: 24px;
    padding: 2.5rem; text-align: left;
  }
  .quote-cols { display: grid; grid-template-columns: 1fr 300px; gap: 2rem; align-items: start; }
  .quote-main { min-width: 0; }
  /* Live estimate panel */
  .quote-estimate { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 16px; padding: 1.25rem; position: sticky; top: 70px; }
  .qe-head { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1rem; }
  .qe-ico { font-size: 1.3rem; }
  .qe-title { font-size: 0.92rem; font-weight: 700; color: #fff; }
  .qe-sub { font-size: 0.7rem; color: rgba(255,255,255,0.6); }
  .qe-box { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 11px; padding: 0.85rem; margin-bottom: 0.65rem; }
  .qe-box-primary { background: rgba(255,94,0,0.1); border-color: rgba(255,94,0,0.35); }
  .qe-k { font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.06em; color: rgba(255,255,255,0.62); }
  .qe-v { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 1.6rem; color: var(--orange); letter-spacing: -0.02em; margin-top: 0.2rem; line-height: 1.1; }
  .qe-v-sm { font-size: 1.05rem; color: #fff; }
  .qe-note { font-size: 0.68rem; color: rgba(255,255,255,0.55); margin-top: 0.2rem; }
  .qe-trust { list-style: none; padding: 0.85rem 0 0; margin: 0.5rem 0 0; border-top: 1px solid rgba(255,255,255,0.1); }
  .qe-trust li { font-size: 0.72rem; color: rgba(255,255,255,0.68); margin-bottom: 0.35rem; }
  @media (max-width: 820px) {
    .quote-cols { grid-template-columns: 1fr; }
    .quote-estimate { position: static; order: -1; }
  }
  .quote-progress {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 2.25rem;
  }
  .qp-step { display: flex; flex-direction: column; align-items: center; gap: 0.4rem; flex-shrink: 0; }
  .qp-num {
    width: 32px; height: 32px; border-radius: 50%;
    background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.62);
    display: flex; align-items: center; justify-content: center;
    font-size: 0.85rem; font-weight: 700; transition: all 0.3s;
  }
  .qp-step.active .qp-num, .qp-step.done .qp-num { background: var(--orange); color: #fff; }
  .qp-label { font-size: 0.65rem; color: rgba(255,255,255,0.55); letter-spacing: 0.04em; white-space: nowrap; }
  .qp-step.active .qp-label { color: rgba(255,255,255,0.85); }
  .qp-line { flex: 1; height: 2px; background: rgba(255,255,255,0.1); margin: 0 0.4rem; margin-bottom: 1.1rem; }

  .quote-body { min-height: 280px; }
  .quote-step { display: none; animation: qfade 0.35s ease; }
  .quote-step.active { display: block; }
  @keyframes qfade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
  .qs-title { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 1.35rem; color: #fff; margin-bottom: 1.5rem; letter-spacing: -0.01em; }

  .qs-options { display: grid; gap: 0.75rem; }
  .qs-grid-3 { grid-template-columns: repeat(3, 1fr); }
  .qs-grid-2 { grid-template-columns: repeat(2, 1fr); }
  .qs-opt {
    background: rgba(255,255,255,0.05); border: 1.5px solid rgba(255,255,255,0.12);
    border-radius: 12px; padding: 1.1rem 1rem; cursor: pointer;
    display: flex; flex-direction: column; align-items: center; gap: 0.4rem;
    transition: all 0.2s; font-family: 'Inter', sans-serif; text-align: center;
    position: relative;
  }
  .qs-opt:hover { background: rgba(255,255,255,0.09); border-color: rgba(255,94,0,0.5); }
  .qs-opt.selected { background: rgba(255,94,0,0.15); border-color: var(--orange); }
  .qs-opt-icon { font-size: 1.6rem; }
  .qs-opt-label { font-size: 0.88rem; font-weight: 600; color: #fff; }
  .qs-opt-wide { align-items: flex-start; text-align: left; }
  .qs-opt-desc { font-size: 0.75rem; color: rgba(255,255,255,0.62); line-height: 1.5; font-weight: 400; }
  .qs-opt-tag {
    position: absolute; top: 0.5rem; right: 0.5rem;
    font-size: 0.58rem; font-weight: 700; letter-spacing: 0.04em;
    background: rgba(255,94,0,0.25); color: var(--orange);
    padding: 0.12rem 0.4rem; border-radius: 4px; text-transform: uppercase;
  }

  .qs-size-wrap { padding: 1.5rem 0; }

  .qs-summary {
    background: rgba(255,255,255,0.05); border-radius: 10px;
    padding: 1rem 1.25rem; margin-bottom: 1.25rem;
    font-size: 0.85rem; color: rgba(255,255,255,0.7); line-height: 1.6;
  }
  .qs-summary b { color: #fff; font-weight: 600; }
  .qs-estimate-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin-bottom: 1.75rem; }
  .qs-est-box {
    background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px; padding: 1.1rem;
  }
  .qs-est-highlight { border-color: rgba(255,94,0,0.4); background: rgba(255,94,0,0.08); }
  .qs-est-label { font-size: 0.68rem; color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 0.06em; }
  .qs-est-val { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 1.5rem; color: #fff; margin-top: 0.3rem; letter-spacing: -0.02em; }
  .qs-est-highlight .qs-est-val { color: var(--orange); }
  .qs-est-sub { font-size: 0.7rem; color: rgba(255,255,255,0.35); margin-top: 0.2rem; }

  .qs-lead { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 1.5rem; }
  .qs-lead-title { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 1.05rem; color: #fff; margin-bottom: 0.4rem; }
  .qs-lead-sub { font-size: 0.82rem; color: rgba(255,255,255,0.62); margin-bottom: 1.25rem; }
  .qs-lead-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; margin-bottom: 1rem; }
  .qs-lead-form input {
    padding: 0.7rem 0.9rem; border: 1px solid rgba(255,255,255,0.15);
    border-radius: 9px; background: rgba(255,255,255,0.06); color: #fff;
    font-family: 'Inter', sans-serif; font-size: 0.85rem; outline: none;
    transition: border-color 0.2s;
  }
  .qs-lead-form input::placeholder { color: rgba(255,255,255,0.35); }
  .qs-lead-form input:focus { border-color: rgba(255,94,0,0.6); }
  .qs-submit {
    width: 100%; background: var(--orange); color: #fff; border: none;
    padding: 0.9rem; border-radius: 10px; font-family: 'Inter', sans-serif;
    font-size: 0.95rem; font-weight: 600; cursor: pointer; transition: background 0.2s;
  }
  .qs-submit:hover { background: var(--orange-dark); }
  .qs-success {
    margin-top: 1rem; padding: 0.9rem; border-radius: 10px;
    background: rgba(26,122,64,0.15); border: 1px solid rgba(26,122,64,0.4);
    color: #5ed696; font-size: 0.85rem; font-weight: 500; text-align: center;
  }

  .quote-nav { display: flex; justify-content: space-between; margin-top: 2rem; }
  .quote-back, .quote-next {
    padding: 0.7rem 1.5rem; border-radius: 980px; font-family: 'Inter', sans-serif;
    font-size: 0.88rem; font-weight: 600; cursor: pointer; transition: all 0.2s; border: none;
  }
  .quote-back { background: transparent; border: 1px solid rgba(255,255,255,0.25); color: rgba(255,255,255,0.7); }
  .quote-back:hover { border-color: rgba(255,255,255,0.62); color: #fff; }
  .quote-next { background: var(--orange); color: #fff; padding: 0.85rem 1.75rem; font-size: 0.92rem; box-shadow: 0 6px 20px rgba(255,94,0,0.3); }
  .quote-next:hover:not(:disabled) { background: var(--orange-dark); transform: translateY(-1px); }
  .quote-next:disabled { background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.35); cursor: not-allowed; box-shadow: none; }

  @media (max-width: 640px) {
    .quote-wrap { padding: 1.5rem; }
    .qs-grid-3, .qs-grid-2 { grid-template-columns: 1fr 1fr; }
    .qs-estimate-grid { grid-template-columns: 1fr; }
    .qs-lead-form { grid-template-columns: 1fr; }
    .qp-label { display: none; }
  }


  /* ── HONEST PLACEHOLDERS ── */
  .logo-placeholder {
    color: var(--mid-gray) !important;
    border-style: dashed !important;
    background: var(--off-white) !important;
    font-style: italic;
  }
  .cert-placeholder { color: var(--mid-gray) !important; }
  .cert-placeholder .cert-icon { color: var(--mid-gray) !important; }
  .placeholder-note {
    display: inline-block;
    background: rgba(255,94,0,0.08);
    border: 1px dashed rgba(255,94,0,0.35);
    color: var(--orange);
    font-size: 0.7rem; font-weight: 600;
    padding: 0.2rem 0.6rem; border-radius: 6px;
    letter-spacing: 0.02em;
  }

  .how-step { padding: 0; overflow: hidden; }
  .how-ph { position: relative; aspect-ratio: 4/3; background: linear-gradient(135deg,#eef1f6,#dce3ee); display:flex; align-items:center; justify-content:center; color:#9fb0c8; }
  .how-ph svg { width: 40px; height: 40px; }
  .how-ph { overflow: hidden; }
  .how-step .how-num { position: absolute; top: 10px; left: 10px; margin: 0; z-index: 3; background: var(--navy); border: 2px solid #fff; color: #fff; box-shadow: 0 2px 6px rgba(0,0,0,0.25); }
  .how-step.parallel .how-num { background: var(--navy); }
  .how-step.parallel .how-ph { background: linear-gradient(135deg,#ffe9d6,#ffd6b0); color:#e08a4a; }
  .how-pribbon { position:absolute; left:0; right:0; bottom:0; height:22px; z-index:2; display:flex; align-items:center; justify-content:center; background:var(--orange); color:#fff; font-size:0.56rem; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; }
  .how-cbody { padding: 0.95rem 1rem 1.1rem; }
  .how-dur { font-size: 0.72rem; font-weight: 700; color: var(--orange); margin-bottom: 0.35rem; }
  .how-desc { font-size: 0.8rem; color: var(--text-secondary); line-height: 1.5; }

  /* Supplemental project imagery */
  .tc-photo-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    z-index: 1;
  }
  .fphoto-main::after,
  .fphoto-sm::after,
  .proj-feat-photo::after,
  .ph-box::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
      linear-gradient(180deg, rgba(6,21,51,0.06) 35%, rgba(6,21,51,0.72) 100%),
      radial-gradient(circle at 80% 15%, rgba(255,94,0,0.18), transparent 38%);
  }
  .fphoto-main,
  .fphoto-sm,
  .proj-feat-photo,
  .ph-box {
    position: relative;
    overflow: hidden;
    background: #0a1f44;
  }
  .fphoto-tag,
  .fphoto-brand,
  .fphoto-sm-tag,
  .fphoto-sm-cap,
  .fphoto-tag,
  .pfp-tag,
  .fphoto-sm-tag {
    color: rgba(255,255,255,0.84);
    background: rgba(6,21,51,0.62);
    border: 1px solid rgba(255,255,255,0.2);
    backdrop-filter: blur(10px);
  }
  .fphoto-sm-tag {
    position: absolute;
    top: 0.55rem;
    left: 0.6rem;
    border-radius: 999px;
    padding: 0.18rem 0.48rem;
    font-size: 0.58rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .fphoto-sm-cap {
    text-shadow: 0 1px 8px rgba(0,0,0,0.45);
  }
  .ph-box {
    border-color: rgba(10,31,68,0.12);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
  }

  /* Homepage reference redesign */
  #page-home > :not(.tc-home-v2) {
    display: none !important;
  }
  #main-nav {
    height: 54px;
    padding: 0 38px;
    background: rgba(4, 15, 35, 0.98);
    border-bottom: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 12px 28px rgba(3,10,22,0.18);
  }
  #main-nav.light {
    background: rgba(255,255,255,0.88);
    box-shadow: 0 1px 0 rgba(0,0,0,0.1);
  }
  #main-nav .nav-logo {
    color: #fff;
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -0.01em;
  }
  #main-nav.light .nav-logo {
    color: var(--navy);
  }
  #main-nav .nav-links {
    gap: 1.35rem;
    align-items: center;
  }
  #main-nav .nav-links a {
    color: rgba(255,255,255,0.86);
    font-size: 0.64rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
  }
  #main-nav.light .nav-links a {
    color: var(--charcoal);
  }
  #main-nav .nav-links a:hover {
    color: #fff;
  }
  #main-nav.light .nav-links a:hover {
    color: var(--orange);
  }
  #main-nav .nav-links .nav-cta {
    background: var(--orange);
    color: #fff !important;
    border-radius: 980px;
    padding: 0.68rem 1rem;
    box-shadow: none;
  }
  .tc-home-v2 {
    background: #fff;
    color: var(--navy);
    font-family: 'Inter', sans-serif;
    overflow: hidden;
  }
  .tcv2-shell {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    position: relative;
    z-index: 2;
  }
  .tcv2-section {
    padding: 66px 0;
    background: #fff;
  }
  .tcv2-soft {
    background: #f5f7fb;
  }
  .tcv2-label,
  .tcv2-kicker {
    display: inline-block;
    color: var(--orange);
    font-size: 0.74rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    margin-bottom: 24px;
    border: 1px solid rgba(255,94,0,0.45);
    border-radius: 980px;
    padding: 0.45rem 1.15rem;
  }
  .tc-home-v2 h1,
  .tc-home-v2 h2,
  .tc-home-v2 h3,
  .tc-home-v2 p {
    letter-spacing: 0;
  }
  .tc-home-v2 h1 {
    color: #fff;
    font-size: 5.1rem; line-height: 1.0;
    line-height: 0.96;
    font-weight: 900;
    margin: 0 0 18px;
  }
  .tc-home-v2 h2 {
    color: var(--navy);
    font-size: 2.45rem;
    line-height: 1.08;
    font-weight: 900;
    margin: 0;
  }
  .tc-home-v2 h3 {
    color: var(--navy);
    font-size: 1rem;
    line-height: 1.25;
    font-weight: 850;
    margin: 0;
  }
  .tc-home-v2 p {
    color: #516176;
    line-height: 1.62;
    margin: 0;
  }
  .tcv2-center {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 28px;
  }
  .tcv2-center p {
    margin-top: 10px;
  }
  .tcv2-hero {
    position: relative;
    min-height: 690px;
    padding-top: 54px;
    display: flex;
    align-items: center;
    background: #071833;
    overflow: hidden;
  }
  .tcv2-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(4,15,35,1) 0%, rgba(4,15,35,0.96) 34%, rgba(4,15,35,0.52) 62%, rgba(4,15,35,0.24) 100%);
    z-index: 1;
  }
  .tcv2-hero-media {
    position: absolute;
    inset: 54px 0 42px 38%;
    z-index: 0;
  }
  .tcv2-hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: saturate(1.02) contrast(1.02);
  }
  .tcv2-hero-copy {
    width: min(620px, 100%);
    padding: 70px 0 92px;
  }
  .tcv2-hero-copy p {
    color: rgba(255,255,255,0.84);
    max-width: 480px;
    font-size: 1.16rem;
    line-height: 1.6;
  }
  .tcv2-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
  }
  .tcv2-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border-radius: 980px;
    padding: 0 18px;
    font-size: 0.78rem;
    font-weight: 850;
    text-decoration: none;
  }
  .tcv2-btn-primary {
    background: var(--orange);
    color: #fff;
  }
  .tcv2-btn-ghost {
    background: rgba(255,255,255,0.12);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.24);
  }
  .tcv2-btn-light {
    background: #fff;
    color: var(--navy);
    border: 1px solid rgba(10,31,68,0.14);
  }
  .tcv2-hero-points {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 22px;
    margin-top: 42px;
    max-width: 780px;
  }
  .tcv2-hero-points span {
    display: flex;
    gap: 8px;
    align-items: center;
    color: rgba(255,255,255,0.9);
    font-size: 0.82rem;
    font-weight: 700;
  }
  .tcv2-hero-points b {
    display: inline-flex;
    width: 27px;
    height: 27px;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 50%;
    color: var(--orange);
    background: rgba(255,94,0,0.14);
    border: 1px solid rgba(255,94,0,0.32);
    font-size: 0.78rem;
  }
  .tcv2-hero-strip {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 8px 20px;
    background: rgba(7,24,51,0.96);
    color: rgba(255,255,255,0.88);
    font-size: 0.8rem;
    font-weight: 700;
  }
  .tcv2-system {
    display: grid;
    grid-template-columns: 1fr 0.9fr 0.9fr;
    gap: 34px;
    align-items: start;
  }
  .tcv2-system p {
    margin-top: 14px;
  }
  .tcv2-system-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 22px;
  }
  .tcv2-system-grid div {
    padding: 16px;
    background: #f6f8fb;
    border: 1px solid #e7edf5;
    border-radius: 8px;
  }
  .tcv2-system-grid b,
  .tcv2-system-grid span {
    display: block;
  }
  .tcv2-system-grid b {
    color: var(--navy);
    font-size: 0.9rem;
    margin-bottom: 6px;
  }
  .tcv2-system-grid span {
    color: #64748b;
    font-size: 0.78rem;
    line-height: 1.45;
  }
  .tcv2-system-photo {
    aspect-ratio: 1.04 / 1;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 22px 55px rgba(10,31,68,0.14);
  }
  .tcv2-system-photo img,
  .tcv2-flow img,
  .tcv2-build-grid img,
  .tcv2-timeline img,
  .tcv2-story-photos img,
  .tcv2-future-cards img,
  .tcv2-reasons img,
  .tcv2-services img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .tcv2-benefits {
    list-style: none;
    counter-reset: benefit;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 14px;
  }
  .tcv2-benefits li {
    counter-increment: benefit;
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 12px;
    align-items: start;
  }
  .tcv2-benefits li::before {
    content: counter(benefit);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--navy);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 850;
  }
  .tcv2-benefits b,
  .tcv2-benefits span {
    display: block;
  }
  .tcv2-benefits b {
    font-size: 0.86rem;
    color: var(--navy);
    margin-bottom: 3px;
  }
  .tcv2-benefits span {
    color: #66758a;
    font-size: 0.76rem;
    line-height: 1.45;
    grid-column: 2;
  }
  .tcv2-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0,1fr));
    gap: 18px;
  }
  .tcv2-flow article {
    position: relative;
    text-align: center;
  }
  .tcv2-flow article:not(:last-child)::after {
    content: "\2192";
    position: absolute;
    top: 94px;
    right: -16px;
    color: #9aa8bb;
    font-size: 1rem;
    font-weight: 900;
  }
  .tcv2-flow img {
    height: 132px;
    border-radius: 6px;
    box-shadow: 0 12px 30px rgba(10,31,68,0.1);
  }
  .tcv2-flow span,
  .tcv2-timeline span,
  .tcv2-reasons span,
  .tcv2-services span,
  .tcv2-industry span {
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--orange);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 900;
  }
  .tcv2-flow span {
    margin: -14px auto 10px;
    position: relative;
    z-index: 2;
  }
  .tcv2-flow h3 {
    margin-bottom: 6px;
    font-size: 0.88rem;
  }
  .tcv2-flow p {
    font-size: 0.76rem;
    line-height: 1.45;
  }
  .tcv2-build-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0,1fr));
    gap: 16px;
  }
  .tcv2-build-grid article,
  .tcv2-reasons article,
  .tcv2-services article {
    background: #fff;
    border: 1px solid #e7edf5;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 10px 24px rgba(10,31,68,0.06);
  }
  .tcv2-build-grid img {
    height: 148px;
  }
  .tcv2-build-grid h3,
  .tcv2-build-grid p {
    padding-left: 14px;
    padding-right: 14px;
  }
  .tcv2-build-grid h3 {
    padding-top: 12px;
    margin-bottom: 6px;
    font-size: 0.88rem;
  }
  .tcv2-build-grid p {
    padding-bottom: 14px;
    font-size: 0.74rem;
    line-height: 1.42;
  }
  .tcv2-estimator {
    max-width: 740px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 18px;
    padding: 22px;
    border-radius: 8px;
    background: #071833;
    box-shadow: 0 26px 70px rgba(10,31,68,0.22);
  }
  .tcv2-est-main {
    color: #fff;
  }
  .tcv2-est-steps {
    display: flex;
    gap: 10px;
    margin-bottom: 24px;
    color: rgba(255,255,255,0.46);
    font-size: 0.62rem;
    font-weight: 800;
  }
  .tcv2-est-steps span.active {
    color: var(--orange);
  }
  .tcv2-est-main h3 {
    color: #fff;
    margin-bottom: 16px;
  }
  .tcv2-est-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 10px;
  }
  .tcv2-est-options button {
    min-height: 54px;
    border: 1px solid rgba(255,255,255,0.1);
    background: rgba(255,255,255,0.06);
    color: #fff;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 780;
  }
  .tcv2-est-next {
    display: inline-flex;
    margin-top: 18px;
    color: rgba(255,255,255,0.44);
    text-decoration: none;
    font-size: 0.72rem;
    font-weight: 850;
  }
  .tcv2-estimator aside {
    background: #fff;
    border-radius: 8px;
    padding: 16px;
    display: grid;
    gap: 10px;
  }
  .tcv2-estimator aside b {
    color: var(--navy);
    font-size: 0.9rem;
  }
  .tcv2-estimator aside div {
    background: #f6f8fb;
    border-radius: 6px;
    padding: 10px;
  }
  .tcv2-estimator aside span,
  .tcv2-estimator aside strong {
    display: block;
  }
  .tcv2-estimator aside span {
    color: #77859a;
    font-size: 0.66rem;
    margin-bottom: 4px;
  }
  .tcv2-estimator aside strong {
    color: var(--navy);
    font-size: 0.78rem;
  }
  .tcv2-estimator aside p {
    font-size: 0.66rem;
    line-height: 1.45;
  }
  .tcv2-timeline {
    display: grid;
    grid-template-columns: repeat(6, minmax(0,1fr));
    gap: 12px;
  }
  .tcv2-timeline article {
    position: relative;
    background: #fff;
    border: 1px solid #e7edf5;
    border-radius: 8px;
    overflow: hidden;
    text-align: center;
  }
  .tcv2-timeline article.parallel {
    outline: 3px solid rgba(255,94,0,0.75);
  }
  .tcv2-timeline img {
    height: 96px;
  }
  .tcv2-timeline span {
    position: absolute;
    top: 8px;
    left: 8px;
    background: var(--navy);
  }
  .tcv2-timeline .parallel::after {
    content: "Working in parallel";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    background: var(--orange);
    color: #fff;
    padding: 4px 10px;
    border-radius: 0 0 6px 6px;
    font-size: 0.58rem;
    font-weight: 900;
    text-transform: uppercase;
  }
  .tcv2-timeline h3 {
    padding: 12px 8px 5px;
    font-size: 0.76rem;
  }
  .tcv2-timeline p {
    padding: 0 8px 12px;
    color: var(--orange);
    font-size: 0.68rem;
    font-weight: 800;
  }
  .tcv2-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 14px;
    margin-top: 24px;
  }
  .tcv2-metrics div {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 16px 18px;
    background: #f6f8fb;
    border: 1px solid #e7edf5;
    border-radius: 8px;
  }
  .tcv2-metrics b,
  .tcv2-metrics span {
    display: block;
  }
  .tcv2-metrics b {
    color: var(--navy);
    font-size: 0.95rem;
  }
  .tcv2-metrics span {
    color: #64748b;
    font-size: 0.72rem;
  }
  .tcv2-afterline {
    margin-top: 28px;
    margin-bottom: 0;
  }
  .tcv2-story {
    background: #fff;
  }
  .tcv2-story-grid {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 48px;
    align-items: center;
  }
  .tcv2-story-grid p {
    margin-top: 14px;
  }
  .tcv2-story-photos {
    position: relative;
    min-height: 310px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .tcv2-story-photos img {
    height: 310px;
    border-radius: 8px;
    box-shadow: 0 18px 48px rgba(10,31,68,0.12);
  }
  .tcv2-story-photos img:first-child {
    clip-path: polygon(0 0, 92% 0, 72% 100%, 0 100%);
  }
  .tcv2-story-photos img:nth-child(2) {
    clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
    margin-left: -52px;
    width: calc(100% + 52px);
  }
  .tcv2-story-photos blockquote {
    position: absolute;
    right: 20px;
    bottom: 18px;
    width: min(360px, calc(100% - 40px));
    margin: 0;
    padding: 18px 20px;
    background: #071833;
    color: #fff;
    border-left: 4px solid var(--orange);
    border-radius: 6px;
    font-size: 0.82rem;
    line-height: 1.5;
    font-weight: 700;
  }
  .tcv2-industry {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 18px;
  }
  .tcv2-industry article {
    padding: 22px;
    background: #fff;
    border: 1px solid #e7edf5;
    border-radius: 8px;
  }
  .tcv2-industry span {
    background: rgba(255,94,0,0.1);
    color: var(--orange);
    border: 1px solid rgba(255,94,0,0.22);
    margin-bottom: 14px;
  }
  .tcv2-industry h3 {
    margin-bottom: 8px;
  }
  .tcv2-industry p {
    font-size: 0.82rem;
  }
  .tcv2-callout {
    margin-top: 24px;
    padding: 18px 24px;
    text-align: center;
    background: #eef4ff;
    color: var(--navy);
    border: 1px solid #d8e6fb;
    border-radius: 8px;
    font-weight: 850;
  }
  .tcv2-future {
    display: grid;
    grid-template-columns: 0.78fr 1.22fr;
    gap: 34px;
    align-items: center;
  }
  .tcv2-future p {
    margin-top: 14px;
  }
  .tcv2-future-cards,
  .tcv2-reasons,
  .tcv2-services {
    display: grid;
    gap: 18px;
  }
  .tcv2-future-cards {
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
  .tcv2-future-cards article {
    position: relative;
    min-height: 235px;
    border-radius: 8px;
    overflow: hidden;
    background: #071833;
  }
  .tcv2-future-cards img {
    position: absolute;
    inset: 0;
    opacity: 0.82;
  }
  .tcv2-future-cards article::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(4,15,35,0.92), rgba(4,15,35,0.12));
  }
  .tcv2-future-cards h3,
  .tcv2-future-cards p {
    position: relative;
    z-index: 2;
    color: #fff;
    padding: 0 16px;
  }
  .tcv2-future-cards h3 {
    padding-top: 154px;
    margin-bottom: 5px;
    font-size: 0.88rem;
  }
  .tcv2-future-cards p {
    padding-bottom: 16px;
    color: rgba(255,255,255,0.76);
    font-size: 0.72rem;
    line-height: 1.4;
  }
  .tcv2-reasons {
    grid-template-columns: repeat(4, minmax(0,1fr));
  }
  .tcv2-reasons article {
    padding: 18px;
  }
  .tcv2-reasons span,
  .tcv2-services span {
    width: 30px;
    height: 30px;
    background: rgba(255,94,0,0.1);
    color: var(--orange);
    border: 1px solid rgba(255,94,0,0.25);
    margin-bottom: 12px;
  }
  .tcv2-reasons h3,
  .tcv2-services h3 {
    margin-bottom: 8px;
  }
  .tcv2-reasons p {
    min-height: 78px;
    font-size: 0.78rem;
    line-height: 1.48;
  }
  .tcv2-reasons img {
    height: 118px;
    margin-top: 14px;
    border-radius: 6px;
  }
  .tcv2-services {
    grid-template-columns: repeat(4, minmax(0,1fr));
  }
  .tcv2-services article {
    padding: 18px;
  }
  .tcv2-services ul {
    margin: 0 0 14px;
    padding-left: 15px;
    color: #516176;
    font-size: 0.72rem;
    line-height: 1.7;
  }
  .tcv2-services li::marker {
    color: var(--orange);
  }
  .tcv2-services img {
    height: 118px;
    border-radius: 6px;
  }
  .tcv2-cta {
    padding: 76px 0;
    background: linear-gradient(135deg, #0b2148 0%, #071833 100%);
  }
  .tcv2-cta h2 {
    color: #fff;
    max-width: 720px;
    margin-top: 4px;
  }
  .tcv2-cta p {
    color: rgba(255,255,255,0.74);
    max-width: 620px;
    margin-top: 12px;
  }
  .tcv2-contact {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 54px;
    align-items: start;
  }
  .tcv2-contact > div > p {
    margin-top: 12px;
  }
  .tcv2-receive {
    margin-top: 22px;
    padding: 18px;
    background: #f6f8fb;
    border: 1px solid #e7edf5;
    border-radius: 8px;
  }
  .tcv2-receive b {
    display: block;
    color: var(--navy);
    margin-bottom: 10px;
  }
  .tcv2-receive ul {
    margin: 0;
    padding-left: 16px;
    color: #516176;
    font-size: 0.82rem;
    line-height: 1.8;
  }
  .tcv2-contact-small {
    color: var(--navy) !important;
    font-size: 0.86rem;
    font-weight: 800;
    margin-top: 22px !important;
  }
  .tcv2-form {
    display: grid;
    gap: 12px;
    padding: 22px;
    background: #fff;
    border: 1px solid #e7edf5;
    border-radius: 8px;
    box-shadow: 0 18px 48px rgba(10,31,68,0.08);
  }
  .tcv2-form h3 {
    margin-bottom: 4px;
  }
  .tcv2-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .tcv2-form label {
    display: block;
    color: var(--navy);
    font-size: 0.68rem;
    font-weight: 850;
    margin-bottom: 5px;
  }
  .tcv2-form input,
  .tcv2-form select,
  .tcv2-form textarea {
    width: 100%;
    border: 1px solid #dbe4ef;
    border-radius: 5px;
    padding: 11px 12px;
    color: var(--navy);
    background: #fbfcfe;
    font: inherit;
    font-size: 0.82rem;
    outline: none;
  }
  .tcv2-form textarea {
    min-height: 92px;
    resize: vertical;
  }
  .tcv2-form button {
    width: 100%;
    border: 0;
    border-radius: 5px;
    min-height: 42px;
    color: #fff;
    background: var(--orange);
    font-size: 0.82rem;
    font-weight: 850;
    cursor: pointer;
  }
  .tcv2-form small {
    text-align: center;
    color: #7a8798;
    font-size: 0.68rem;
  }
  @media (max-width: 1100px) {
    .tc-home-v2 h1 { font-size: 3.8rem; }
    .tc-home-v2 h2 { font-size: 2.1rem; }
    .tcv2-hero-points,
    .tcv2-flow,
    .tcv2-build-grid,
    .tcv2-timeline,
    .tcv2-reasons,
    .tcv2-services {
      grid-template-columns: repeat(2, minmax(0,1fr));
    }
    .tcv2-flow article:not(:last-child)::after { display: none; }
    .tcv2-system,
    .tcv2-story-grid,
    .tcv2-future,
    .tcv2-contact {
      grid-template-columns: 1fr;
    }
    .tcv2-future-cards,
    .tcv2-industry {
      grid-template-columns: repeat(3, minmax(0,1fr));
    }
  }
  @media (max-width: 820px) {
    #main-nav {
      padding: 0 18px;
    }
    .tcv2-shell {
      width: min(100% - 28px, 1180px);
    }
    .tcv2-section {
      padding: 50px 0;
    }
    .tcv2-hero {
      min-height: 620px;
    }
    .tcv2-hero::before {
      background: linear-gradient(180deg, rgba(4,15,35,0.96), rgba(4,15,35,0.72));
    }
    .tcv2-hero-media {
      inset: 54px 0 42px 0;
      opacity: 0.58;
    }
    .tc-home-v2 h1 { font-size: 3rem; }
    .tc-home-v2 h2 { font-size: 1.8rem; }
    .tcv2-hero-copy {
      padding-top: 52px;
    }
    .tcv2-system-grid,
    .tcv2-estimator,
    .tcv2-metrics,
    .tcv2-form-row {
      grid-template-columns: 1fr;
    }
    .tcv2-future-cards,
    .tcv2-industry {
      grid-template-columns: 1fr;
    }
    .tcv2-story-photos {
      grid-template-columns: 1fr;
    }
    .tcv2-story-photos img,
    .tcv2-story-photos img:nth-child(2) {
      clip-path: none;
      margin: 0;
      width: 100%;
      height: 220px;
    }
    .tcv2-story-photos blockquote {
      position: relative;
      right: auto;
      bottom: auto;
      width: 100%;
    }
  }
  @media (max-width: 620px) {
    .tcv2-actions,
    .tcv2-hero-points,
    .tcv2-flow,
    .tcv2-build-grid,
    .tcv2-timeline,
    .tcv2-reasons,
    .tcv2-services,
    .tcv2-est-options,
    .tcv2-future-cards,
    .tcv2-industry {
      grid-template-columns: 1fr;
    }
    .tcv2-actions {
      display: grid;
    }
    .tcv2-btn {
      width: 100%;
    }
    .tcv2-hero-strip {
      font-size: 0.72rem;
    }
    .tc-home-v2 h1 { font-size: 2.4rem; }
    .tc-home-v2 h2 { font-size: 1.8rem; }
    .tcv2-hero-copy {
      padding-top: 40px;
      padding-bottom: 60px;
    }
    .tcv2-hero {
      min-height: 580px;
    }
  }
  .how-parallel { background:#fff7f1; border:1.5px solid rgba(255,94,0,0.40); border-radius:12px; overflow:hidden; display:flex; flex-direction:column; }
  .how-pair-photos { display:grid; grid-template-columns:1fr 1fr; }
  .how-pair-photos .how-ph { position:relative; aspect-ratio:4/3; overflow:hidden; }
  .how-pair-photos .how-ph + .how-ph { border-left:2px solid #fff; }
  .how-parallel .how-num { position:absolute; top:10px; left:10px; z-index:3; width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:0.8rem; background:var(--navy); border:2px solid #fff; color:#fff; box-shadow:0 2px 6px rgba(0,0,0,0.25); }
  .how-parallel-banner { background:rgba(255,94,0,0.12); padding:0.6rem 1rem; text-align:center; border-top:1px solid rgba(255,94,0,0.25); border-bottom:1px solid rgba(255,94,0,0.25); }
  .hpb-eyebrow { display:block; font-size:0.58rem; font-weight:800; letter-spacing:0.1em; text-transform:uppercase; color:var(--orange); }
  .hpb-title { display:block; font-size:0.88rem; font-weight:800; color:var(--navy); line-height:1.2; margin:0.1rem 0; }
  .hpb-sub { display:block; font-size:0.68rem; color:var(--text-secondary); }
  .how-pair-bodies { display:grid; grid-template-columns:1fr 1fr; flex:1; }
  .how-pair-bodies .how-cbody { padding:0.8rem 0.9rem 1rem; }
  .how-pair-bodies .how-cbody + .how-cbody { border-left:1px solid var(--light-gray); }
  @media(max-width:900px){ .how-track { grid-template-columns:1fr 1fr; } .how-parallel { grid-column:1 / -1; } }
  /* ── Hero interactions (Claude) ── */
  .tcv2-hero-media img { animation: heroKen 20s ease-in-out infinite alternate; transform-origin: 62% 42%; will-change: transform; }
  @keyframes heroKen { from { transform: scale(1.04); } to { transform: scale(1.13); } }
  .tcv2-hero-points span { transition: transform .2s ease, color .2s ease; }
  .tcv2-hero-points span:hover { transform: translateY(-3px); }
  .tcv2-hero-points span:hover b { color: var(--orange); }
  .tcv2-actions .tcv2-btn { transition: transform .15s ease, box-shadow .2s ease, background .2s ease; }
  .tcv2-actions .tcv2-btn:hover { transform: translateY(-2px); }
  @media (prefers-reduced-motion: reduce){ .tcv2-hero-media img { animation: none; } }
  /* ── Panelized CFS 3-column system layout (Claude) ── */
  .cfs3-grid { display:grid; grid-template-columns:1.05fr 1.2fr 1.12fr; gap:2.6rem 3.4rem; align-items:center; max-width:1400px; margin:0 auto; }
  .cfs3-left p { color:#5b6472; font-size:0.96rem; line-height:1.6; margin-top:0.9rem; }
  .cfs3-feats { display:grid; grid-template-columns:1fr 1fr; gap:1.9rem 1.8rem; margin-top:2rem; }
  .cfs3-feats > div { display:block; }
  .cfs3-ico { width:42px; height:42px; border-radius:12px; background:rgba(255,94,0,0.12); color:var(--orange); display:flex; align-items:center; justify-content:center; margin-bottom:0.7rem; }
  .cfs3-ico svg { width:21px; height:21px; }
  .cfs3-feats b { display:block; font-size:0.92rem; color:var(--navy); font-weight:700; }
  .cfs3-feats > div > span:not(.cfs3-ico) { display:block; font-size:0.78rem; color:#6e6e73; line-height:1.5; margin-top:0.3rem; }
  .cfs3-photo { display:flex; align-items:center; justify-content:center; aspect-ratio:4/4.3; background:#fff; border:1px solid rgba(10,31,68,0.1); border-radius:14px; overflow:hidden; padding:0.4rem; }
  .cfs3-ph { width:100%; aspect-ratio:4/4.7; border:2px dashed rgba(10,31,68,0.18); border-radius:14px; background:linear-gradient(135deg,#eef1f6,#dce3ee); display:flex; flex-direction:column; align-items:center; justify-content:center; color:#7d8aa0; font-weight:700; font-size:0.95rem; text-align:center; gap:0.3rem; }
  .cfs3-ph small { font-weight:500; font-size:0.72rem; opacity:0.75; }
  .cfs3-layers { list-style:none; padding:0; margin:0; display:grid; gap:1.15rem; }
  .cfs3-layers li { display:flex; gap:0.85rem; align-items:flex-start; }
  .cfs3-num { flex:0 0 auto; width:28px; height:28px; border-radius:50%; background:var(--navy); color:#fff; font-weight:800; font-size:0.82rem; display:flex; align-items:center; justify-content:center; }
  .cfs3-layers b { display:block; font-size:0.82rem; color:var(--navy); font-weight:800; letter-spacing:0.03em; text-transform:uppercase; margin-bottom:0.18rem; }
  .cfs3-layers li > div > span { font-size:0.78rem; color:#6e6e73; line-height:1.45; }
  @media(max-width:980px){ .cfs3-grid { grid-template-columns:1fr; gap:2rem; } .cfs3-feats { grid-template-columns:1fr 1fr; } }
  /* ── CFS section interactions (Claude) ── */
  .cfs3-feats > div { transition: transform .2s ease; }
  .cfs3-feats > div:hover { transform: translateY(-3px); }
  .cfs3-ico { transition: background .2s ease, color .2s ease, transform .2s ease; }
  .cfs3-feats > div:hover .cfs3-ico { background: var(--orange); color:#fff; transform: translateY(-1px); }
  .cfs3-layers li { transition: transform .18s ease; }
  .cfs3-layers li:hover { transform: translateX(4px); }
  .cfs3-num { transition: background .2s ease, transform .2s ease; }
  .cfs3-layers li:hover .cfs3-num { background: var(--orange); transform: scale(1.12); }
  .cfs3-ph { position: relative; overflow: hidden; }
  .cfs3-ph::after { content:""; position:absolute; top:0; left:-60%; width:45%; height:100%; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.55),transparent); transform:skewX(-18deg); animation:cfsShimmer 4s ease-in-out infinite; pointer-events:none; }
  @keyframes cfsShimmer { 0%,100%{ left:-60%; } 55%{ left:130%; } }
  /* ── Hero interactions enhanced (Claude) ── */
  .tcv2-hero-points span b { transition: background .2s ease, color .2s ease, transform .2s ease; }
  .tcv2-hero-points span:hover b { background: var(--orange); color:#fff; transform: scale(1.12); }
  .tcv2-hero-copy > * { animation: heroUp .75s cubic-bezier(.4,0,.2,1) backwards; }
  .tcv2-hero-copy > *:nth-child(1){ animation-delay:.05s; }
  .tcv2-hero-copy > *:nth-child(2){ animation-delay:.15s; }
  .tcv2-hero-copy > *:nth-child(3){ animation-delay:.25s; }
  .tcv2-hero-copy > *:nth-child(4){ animation-delay:.35s; }
  .tcv2-hero-copy > *:nth-child(5){ animation-delay:.45s; }
  @keyframes heroUp { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:none; } }
  @media (prefers-reduced-motion: reduce){ .cfs3-ph::after,.tcv2-hero-copy > *{ animation:none; } }
  /* CFS layer leader-lines pointing to the wall image */
  .cfs3-layers { padding-left: 30px; }
  .cfs3-layers li { position: relative; }
  @media(max-width:980px){ .cfs3-layers { padding-left:0; }  }
  .contact-banner .cb-title { color:#fff !important; }
  .contact-banner .cb-sub { color:rgba(255,255,255,0.82) !important; }
  .cfs3-grid { position: relative; }

/* ===== RESTORED BACKGROUND IMAGES ===== */
#why-anchor-home .why-card:nth-child(1)::before { background-image: url('images/original/1.jpg'); }
#why-anchor-home .why-card:nth-child(2)::before { background-image: url('images/original/2.jpg'); }
#why-anchor-home .why-card:nth-child(3)::before { background-image: url('images/original/3.jpg'); }
#why-anchor-home .why-card:nth-child(4)::before { background-image: url('images/original/4.jpg'); }
#why-anchor-home .why-card:nth-child(5)::before { background-image: url('images/original/5.jpg'); }
#why-anchor-home .why-card:nth-child(6)::before { background-image: url('images/original/6.jpg'); }
#end-to-end .why-card:nth-child(1)::before { background-image: url('images/original/7.jpg'); }
#end-to-end .why-card:nth-child(2)::before { background-image: url('images/original/8.jpg'); }
#end-to-end .why-card:nth-child(3)::before { background-image: url('images/original/9.jpg'); }
#end-to-end .why-card:nth-child(4)::before { background-image: url('images/original/10.jpg'); }
#ins-grid .ins-art-card:nth-of-type(1) .ins-art-img::before { background-image: url('images/original/63.jpg'); }
#ins-grid .ins-art-card:nth-of-type(2) .ins-art-img::before { background-image: url('images/original/64.jpg'); }
#ins-grid .ins-art-card:nth-of-type(3) .ins-art-img::before { background-image: url('images/original/65.jpg'); }
#ins-grid .ins-art-card:nth-of-type(4) .ins-art-img::before { background-image: url('images/original/66.jpg'); }
#ins-grid .ins-art-card:nth-of-type(5) .ins-art-img::before { background-image: url('images/original/67.jpg'); }
#ins-grid .ins-art-card:nth-of-type(6) .ins-art-img::before { background-image: url('images/original/68.jpg'); }
#ins-grid .ins-art-card:nth-of-type(7) .ins-art-img::before { background-image: url('images/original/69.jpg'); }
#ins-grid .ins-art-card:nth-of-type(8) .ins-art-img::before { background-image: url('images/original/70.jpg'); }

/* Article imagery is owned by each article's image field, not by card position. */
#ins-grid .ins-art-card .ins-art-img::before {
  display: none !important;
  background-image: none !important;
}

/* Preserve the featured-card tint, but never cover its article-owned image. */
.ins-fh-visual::before {
  background: linear-gradient(180deg, rgba(10,31,68,0.18), rgba(10,31,68,0.82)) !important;
}


/* ===== MAP ENHANCEMENTS ===== */
@keyframes mapPulseOuter { 0%, 100% { opacity: 0.25; r: 22; } 50% { opacity: 0.05; r: 28; } }
.map-pulse-outer { animation: mapPulseOuter 3s ease-in-out infinite; }
.us-map-svg path { transition: fill 0.35s ease, stroke 0.35s ease, stroke-width 0.35s ease; cursor: pointer; }
.us-map-svg path:hover { fill: #8a9bb0; stroke: var(--orange); stroke-width: 1.5; }
.map-marker { cursor: pointer; transition: opacity 0.3s ease; }
.map-marker:hover { opacity: 0.8; }
.map-region { cursor: pointer; }
.map-region ellipse { transition: all 0.4s ease; }

/* ===== RESPONSIVE RATIO ENHANCEMENTS ===== */

/* 主内容区防止横向溢出，同时保留 body 的 overflow-x 作为兜底 */
main { min-width: 0; overflow-x: hidden; }

/* 联系页面比例适配 */
@media (max-width: 900px) {
  #contact .contact-grid { gap: 2.5rem; }
  .contact-banner { padding: 4rem 1.75rem; }
}

@media (max-width: 768px) {
  .contact-banner { padding: 3rem 1.25rem; margin-bottom: 2rem; }
  #contact .contact-grid { padding: 0 1.25rem; gap: 2rem; margin-top: 2.5rem; }
  .contact-form { padding: 1.25rem; border-radius: 14px; }
  .contact-points { gap: 0.75rem; }
  .contact-row { margin-bottom: 0.85rem; }
}

@media (max-width: 560px) {
  .form-grid { grid-template-columns: 1fr; }
  #contact .contact-grid { grid-template-columns: 1fr; padding: 0 1rem; }
  .contact-banner { padding: 2.5rem 1rem; }
  .contact-banner .cb-title { font-size: clamp(1.5rem, 8vw, 2rem); }
  .contact-banner .cb-sub { font-size: 0.95rem; }
}

/* 地图组件比例适配 */
@media (max-width: 768px) {
  .map-section { padding: 4rem 1rem; }
  .map-container { border-radius: 14px; margin-top: 2rem; }
  .map-legend { padding: 1rem; gap: 1rem; }
  .us-map-svg { min-width: 520px; }
  .map-container { overflow-x: auto; }
}

@media (max-width: 560px) {
  .map-section { padding: 3rem 0.75rem; }
  .map-container { border-radius: 12px; margin-top: 1.5rem; }
  .map-legend { padding: 0.875rem 1rem; font-size: 0.7rem; }
  .us-map-svg { min-width: 480px; }
}

@media (max-width: 400px) {
  .us-map-svg { min-width: 420px; }
  .map-project-list { grid-template-columns: 1fr; }
  .mpl-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.06); padding: 0.75rem 0; }
  .mpl-item:last-child { border-bottom: none; }
}

/* ===== MAP SECTION SPACING COMPACT FIX ===== */
.map-section { padding: 2rem 2rem !important; }
@media (max-width: 768px) { .map-section { padding: 1.5rem 1.25rem !important; } }
@media (max-width: 560px) { .map-section { padding: 1rem 0.75rem !important; } }
@media (max-width: 400px) { .map-section { padding: 1rem 0.75rem !important; } }

/* ===== MAP CONTAINER BOTTOM PADDING ===== */
.map-container { padding-bottom: 2rem !important; }
@media (max-width: 768px) { .map-container { padding-bottom: 1.5rem !important; } }
@media (max-width: 560px) { .map-container { padding-bottom: 1rem !important; } }

/* ===== MAP PROJECT LIST COMPACT ===== */
.map-project-list { padding: 0 1.5rem 1rem !important; }
.mpl-item { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
@media (max-width: 768px) { .map-project-list { padding: 0 1.25rem 0.75rem !important; } }
@media (max-width: 560px) { .map-project-list { padding: 0 0.75rem 0.75rem !important; } .mpl-item { padding-top: 0.4rem !important; padding-bottom: 0.4rem !important; } }

/* ===== FOOTER PUSH DOWN ===== */
footer { margin-top: 4rem !important; }
@media (max-width: 768px) { footer { margin-top: 2.5rem !important; } }
