/* ShearWise Pro — formal structural-engineering visual system */
:root {
  --sw-navy-950: #071827;
  --sw-navy-900: #0b2238;
  --sw-navy-800: #113551;
  --sw-steel-700: #315c78;
  --sw-steel-600: #47718c;
  --sw-blue-600: #176ba0;
  --sw-blue-500: #2382b9;
  --sw-blue-100: #e5f1f8;
  --sw-paper: #ffffff;
  --sw-canvas: #edf2f6;
  --sw-canvas-2: #f6f8fa;
  --sw-ink: #142838;
  --sw-muted: #5b6f7f;
  --sw-line: #ccd7df;
  --sw-line-dark: #9eb0bd;
  --sw-success: #147a52;
  --sw-danger: #b33a35;
  --sw-warning: #90621b;
  --sw-shadow-sm: 0 3px 12px rgba(7, 24, 39, .07);
  --sw-shadow-md: 0 12px 30px rgba(7, 24, 39, .10);
  --sw-shadow-lg: 0 24px 56px rgba(7, 24, 39, .14);
  --sw-max: 1240px;

  /* Compatibility tokens used by existing public pages. */
  --navy: var(--sw-navy-900);
  --navy2: var(--sw-navy-800);
  --orange: var(--sw-blue-600);
  --orange2: #6eb2d6;
  --light: var(--sw-canvas-2);
  --line: var(--sw-line);
  --text: var(--sw-ink);
  --muted: var(--sw-muted);
}

html { scroll-behavior: smooth; }
body.sw-engineering-theme {
  min-height: 100vh;
  margin: 0;
  color: var(--sw-ink);
  background-color: var(--sw-canvas);
  background-image:
    linear-gradient(rgba(49, 92, 120, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(49, 92, 120, .035) 1px, transparent 1px);
  background-size: 32px 32px;
  font-family: Inter, "Segoe UI", Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.sw-engineering-theme * { box-sizing: border-box; }
body.sw-engineering-theme ::selection { color: #fff; background: var(--sw-blue-600); }
body.sw-engineering-theme a,
body.sw-engineering-theme button,
body.sw-engineering-theme input,
body.sw-engineering-theme select,
body.sw-engineering-theme textarea { font-family: inherit; }
body.sw-engineering-theme a,
body.sw-engineering-theme button {
  transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
body.sw-engineering-theme a:hover,
body.sw-engineering-theme button:hover { transform: none; }
body.sw-engineering-theme button:focus-visible,
body.sw-engineering-theme a:focus-visible,
body.sw-engineering-theme input:focus-visible,
body.sw-engineering-theme select:focus-visible,
body.sw-engineering-theme textarea:focus-visible {
  outline: 3px solid rgba(35, 130, 185, .28);
  outline-offset: 2px;
}
body.sw-engineering-theme::-webkit-scrollbar { width: 11px; height: 11px; }
body.sw-engineering-theme::-webkit-scrollbar-track { background: #e8edf1; }
body.sw-engineering-theme::-webkit-scrollbar-thumb {
  border: 3px solid #e8edf1;
  border-radius: 999px;
  background: #718797;
}

/* Public-page consistency layer */
body.sw-engineering-theme:not(.sw-home) .top {
  background: var(--sw-navy-900) !important;
  border-bottom: 4px solid var(--sw-blue-600) !important;
  box-shadow: 0 5px 18px rgba(7, 24, 39, .14);
}
body.sw-engineering-theme:not(.sw-home) .nav { min-height: 72px; }
body.sw-engineering-theme:not(.sw-home) > nav.nav {
  color: #fff;
  background: var(--sw-navy-900);
  box-shadow: 0 0 0 100vmax var(--sw-navy-900), 0 6px 18px rgba(7, 24, 39, .14);
  clip-path: inset(0 -100vmax);
  border-bottom: 4px solid var(--sw-blue-600);
}
body.sw-engineering-theme:not(.sw-home) .brand,
body.sw-engineering-theme:not(.sw-home) .nav .brand {
  color: #fff;
  font-weight: 800;
  letter-spacing: -.02em;
}
body.sw-engineering-theme:not(.sw-home) .brand-mark,
body.sw-engineering-theme:not(.sw-home) .mark {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 5px;
  background: url('/assets/shearwise-mark.svg') center / contain no-repeat;
  transform: none;
}
body.sw-engineering-theme:not(.sw-home) .brand-mark::after,
body.sw-engineering-theme:not(.sw-home) .mark::after { display: none; }
body.sw-engineering-theme:not(.sw-home) .card,
body.sw-engineering-theme:not(.sw-home) .panel,
body.sw-engineering-theme:not(.sw-home) .plan-card,
body.sw-engineering-theme:not(.sw-home) .info,
body.sw-engineering-theme:not(.sw-home) .download-panel,
body.sw-engineering-theme:not(.sw-home) .table-card {
  border-color: var(--sw-line);
  border-radius: 8px;
  box-shadow: var(--sw-shadow-sm);
}
body.sw-engineering-theme:not(.sw-home) input,
body.sw-engineering-theme:not(.sw-home) select,
body.sw-engineering-theme:not(.sw-home) textarea {
  border-color: #b8c7d1;
  border-radius: 5px;
  background: #fff;
}
body.sw-engineering-theme:not(.sw-home) input:focus,
body.sw-engineering-theme:not(.sw-home) select:focus,
body.sw-engineering-theme:not(.sw-home) textarea:focus {
  border-color: var(--sw-blue-600);
  box-shadow: 0 0 0 3px rgba(23, 107, 160, .12);
  outline: none;
}
body.sw-engineering-theme:not(.sw-home) .btn,
body.sw-engineering-theme:not(.sw-home) .button,
body.sw-engineering-theme:not(.sw-home) button {
  border-radius: 5px;
}
body.sw-engineering-theme:not(.sw-home) .btn-primary,
body.sw-engineering-theme:not(.sw-home) .primary,
body.sw-engineering-theme:not(.sw-home) .button.primary,
body.sw-engineering-theme:not(.sw-home) .navlinks .cta {
  color: #fff;
  background: var(--sw-blue-600);
  border-color: var(--sw-blue-600);
  box-shadow: none;
}
body.sw-engineering-theme:not(.sw-home) .btn-primary:hover,
body.sw-engineering-theme:not(.sw-home) .primary:hover,
body.sw-engineering-theme:not(.sw-home) .button.primary:hover,
body.sw-engineering-theme:not(.sw-home) .navlinks .cta:hover { background: #125b89; }
body.sw-engineering-theme:not(.sw-home) .eyebrow,
body.sw-engineering-theme:not(.sw-home) .badge,
body.sw-engineering-theme:not(.sw-home) .tag { color: var(--sw-blue-600); }
body.sw-engineering-theme:not(.sw-home) .hero {
  background-color: var(--sw-navy-900);
  background-image:
    linear-gradient(rgba(137, 181, 207, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(137, 181, 207, .08) 1px, transparent 1px),
    linear-gradient(125deg, var(--sw-navy-950), var(--sw-navy-800)) !important;
  background-size: 38px 38px, 38px 38px, auto !important;
}
body.sw-engineering-theme:not(.sw-home) .hero h1 {
  letter-spacing: -.045em;
  text-transform: none;
}
body.sw-engineering-theme .sw-ufo-cursor,
body.sw-engineering-theme .sw-alien-assistant { display: none !important; }

/* ===== Homepage ===== */
body.sw-home {
  overflow-x: hidden;
  color: var(--sw-ink);
  background: var(--sw-paper);
  line-height: 1.58;
}
body.sw-home a { color: inherit; text-decoration: none; }
body.sw-home img { display: block; max-width: 100%; }
.sw-home-shell { min-height: 100vh; background: var(--sw-paper); }
.sw-home-container { width: min(var(--sw-max), calc(100% - 48px)); margin-inline: auto; }

.sw-home-header {
  position: sticky;
  top: 0;
  z-index: 90;
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  background: rgba(7, 24, 39, .97);
  backdrop-filter: blur(14px);
}
.sw-home-header::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--sw-blue-600) 0 31%, #6f8798 31% 68%, transparent 68%);
}
.sw-home-nav { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.sw-brand { display: inline-flex; align-items: center; gap: 11px; color: #fff; white-space: nowrap; }
.sw-brand img { width: 40px; height: 40px; }
.sw-brand b { display: block; font-size: 1.02rem; line-height: 1; letter-spacing: .035em; }
.sw-brand b span { color: #7dc2e5; }
.sw-brand small { display: block; margin-top: 5px; color: #aabac6; font-size: .56rem; font-weight: 650; letter-spacing: .16em; text-transform: uppercase; }
.sw-home-links { display: flex; align-items: center; gap: 24px; color: #c6d1d9; font-size: .8rem; font-weight: 650; }
.sw-home-links a:hover { color: #fff; }
.sw-home-actions { display: flex; align-items: center; gap: 10px; }
.sw-nav-login,
.sw-nav-cta {
  min-height: 40px;
  padding: 0 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: .78rem;
  font-weight: 750;
}
.sw-nav-login { color: #e6edf2; border-color: rgba(255, 255, 255, .28); }
.sw-nav-login:hover { background: rgba(255, 255, 255, .08); }
.sw-nav-cta { color: #fff; border-color: #2c87ba; background: var(--sw-blue-600); }
.sw-nav-cta:hover { background: #125b89; }
.sw-mobile-menu {
  display: none;
  width: 42px;
  height: 40px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 4px;
  background: transparent;
  font-size: 1.1rem;
}

.sw-hero {
  position: relative;
  padding: 92px 0 88px;
  overflow: hidden;
  border-bottom: 1px solid var(--sw-line);
  background:
    linear-gradient(rgba(49, 92, 120, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(49, 92, 120, .055) 1px, transparent 1px),
    linear-gradient(110deg, #f9fbfc 0 58%, #e9f0f4 58% 100%);
  background-size: 36px 36px, 36px 36px, auto;
}
.sw-hero::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 58%;
  width: 1px;
  background: rgba(49, 92, 120, .16);
}
.sw-hero-grid { display: grid; grid-template-columns: minmax(0, .94fr) minmax(470px, 1.06fr); gap: 60px; align-items: center; }
.sw-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--sw-blue-600);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.sw-kicker::before { content: ""; width: 32px; height: 2px; background: var(--sw-blue-600); }
.sw-hero h1,
.sw-section-title,
.sw-promo-title,
.sw-cta-title {
  font-family: Inter, "Segoe UI", Arial, Helvetica, sans-serif;
  font-weight: 760;
  text-transform: none;
  letter-spacing: -.05em;
}
.sw-hero h1 { max-width: 730px; margin: 18px 0 22px; color: var(--sw-navy-900); font-size: clamp(3.15rem, 5.6vw, 5.4rem); line-height: .98; }
.sw-hero h1 span { display: block; color: var(--sw-blue-600); }
.sw-hero-copy { max-width: 670px; color: #425b6d; font-size: 1.08rem; line-height: 1.68; }
.sw-hero-micro { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 25px 0 28px; color: #304d61; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sw-hero-micro span { display: flex; align-items: center; gap: 9px; }
.sw-hero-micro span::before { content: ""; width: 7px; height: 7px; border: 2px solid var(--sw-blue-600); background: #fff; }
.sw-hero-actions { display: flex; flex-wrap: wrap; gap: 11px; }
.sw-btn {
  min-height: 48px;
  padding: 0 19px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: .79rem;
  font-weight: 800;
}
.sw-btn.primary { color: #fff; border-color: var(--sw-blue-600); background: var(--sw-blue-600); }
.sw-btn.primary:hover { border-color: #125b89; background: #125b89; }
.sw-btn.secondary { color: var(--sw-navy-900); border-color: #9fb1bd; background: #fff; }
.sw-btn.secondary:hover { border-color: var(--sw-blue-600); color: var(--sw-blue-600); }
.sw-hero-trust { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; color: var(--sw-muted); font-size: .73rem; }
.sw-hero-trust span { display: flex; align-items: center; gap: 7px; }
.sw-hero-trust i { width: 18px; height: 18px; display: grid; place-items: center; color: #fff; background: var(--sw-success); font-size: .62rem; font-style: normal; }

.sw-hero-visual { position: relative; min-height: 500px; display: grid; place-items: center; }
.sw-analysis-card {
  position: relative;
  z-index: 2;
  width: min(100%, 590px);
  overflow: hidden;
  border: 1px solid #9fb0bc;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 26px 55px rgba(7, 24, 39, .18);
}
.sw-analysis-head { min-height: 58px; padding: 11px 15px; display: flex; align-items: center; justify-content: space-between; gap: 18px; color: #fff; background: var(--sw-navy-900); }
.sw-analysis-head strong { display: block; font-size: .92rem; letter-spacing: .01em; }
.sw-analysis-head small { display: block; margin-top: 3px; color: #b6c5cf; font-size: .62rem; text-transform: uppercase; letter-spacing: .11em; }
.sw-analysis-status { padding: 5px 9px; border: 1px solid rgba(126, 211, 175, .5); color: #a5e1c6; background: rgba(20, 122, 82, .17); font-size: .68rem; font-weight: 850; letter-spacing: .08em; }
.sw-analysis-body { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(160px, .8fr); min-height: 344px; }
.sw-elevation-model {
  position: relative;
  min-height: 344px;
  border-right: 1px solid var(--sw-line);
  background:
    linear-gradient(rgba(65, 102, 125, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(65, 102, 125, .07) 1px, transparent 1px),
    #fbfcfd;
  background-size: 20px 20px;
}
.sw-wall-outline { position: absolute; inset: 50px 35px 62px; border: 4px solid var(--sw-navy-800); background: rgba(213, 227, 235, .28); }
.sw-wall-outline::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(45deg, rgba(23, 107, 160, .15) 0 2px, transparent 2px 12px); }
.sw-wall-opening { position: absolute; z-index: 2; bottom: -4px; left: 50%; width: 43%; height: 65%; transform: translateX(-50%); border: 4px solid var(--sw-navy-800); border-bottom-color: #fbfcfd; background: #fff; }
.sw-wall-panel { position: absolute; z-index: 3; top: 0; bottom: 0; width: 24%; border-inline: 2px dashed var(--sw-blue-600); background: rgba(23, 107, 160, .11); }
.sw-wall-panel.left { left: 0; }
.sw-wall-panel.right { right: 0; }
.sw-dimension-line { position: absolute; right: 35px; bottom: 28px; left: 35px; border-top: 1px solid #526b7c; text-align: center; }
.sw-dimension-line::before,
.sw-dimension-line::after { content: ""; position: absolute; top: -5px; width: 1px; height: 10px; background: #526b7c; }
.sw-dimension-line::before { left: 0; }
.sw-dimension-line::after { right: 0; }
.sw-dimension-line span { position: relative; top: -12px; padding: 0 8px; color: #41596a; background: #fbfcfd; font: 700 .66rem/1.2 "Segoe UI", Arial, sans-serif; }
.sw-analysis-results { padding: 17px 15px; background: #f5f8fa; }
.sw-analysis-results h3 { margin: 0 0 12px; color: var(--sw-navy-800); font-size: .74rem; text-transform: uppercase; letter-spacing: .1em; }
.sw-result-row { padding: 10px 0; display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--sw-line); font-size: .69rem; }
.sw-result-row span { color: var(--sw-muted); }
.sw-result-row strong { color: var(--sw-navy-900); text-align: right; }
.sw-result-row strong.pass { color: var(--sw-success); }
.sw-analysis-foot { padding: 10px 15px; display: flex; justify-content: space-between; gap: 16px; color: #5f7280; border-top: 1px solid var(--sw-line); background: #fff; font-size: .63rem; }
.sw-holo-card {
  position: absolute;
  z-index: 4;
  right: -18px;
  bottom: 2px;
  width: 252px;
  padding: 13px;
  color: var(--sw-ink);
  border: 1px solid #9fb0bc;
  border-radius: 5px;
  background: #fff;
  box-shadow: var(--sw-shadow-md);
}
.sw-holo-head { display: flex; justify-content: space-between; color: var(--sw-steel-700); font-size: .58rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.sw-holo-head b { color: var(--sw-success); }
.sw-holo-beam { position: relative; height: 84px; margin: 8px 0 9px; overflow: hidden; border: 1px solid var(--sw-line); background: #f6f8fa; }
.sw-holo-beam::before { content: ""; position: absolute; top: 44px; right: 15px; left: 15px; height: 9px; border: 1px solid #526b7c; background: #9db1bd; }
.sw-holo-beam::after { content: ""; position: absolute; top: 14px; right: 28px; left: 28px; height: 30px; border-top: 2px solid var(--sw-danger); background: repeating-linear-gradient(90deg, transparent 0 20px, rgba(179, 58, 53, .6) 20px 22px); }
.sw-holo-support-a,
.sw-holo-support-b { position: absolute; top: 53px; width: 20px; height: 26px; border: 1px solid #526b7c; background: #c9d5dc; }
.sw-holo-support-a { left: 27px; }
.sw-holo-support-b { right: 27px; }
.sw-holo-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.sw-holo-metrics div { padding: 6px; border: 1px solid var(--sw-line); background: #f7f9fa; }
.sw-holo-metrics span { display: block; color: var(--sw-muted); font-size: .47rem; text-transform: uppercase; font-weight: 800; }
.sw-holo-metrics strong { display: block; margin-top: 2px; color: var(--sw-ink); font-size: .62rem; }
.sw-holo-metrics .ok { color: var(--sw-success); }

.sw-section { position: relative; padding: 86px 0; background: #fff; }
.sw-section.dark-alt { color: #fff; border-block: 1px solid #1f3e55; background: var(--sw-navy-900); }
.sw-section-head { max-width: 880px; margin: 0 auto 39px; text-align: center; }
.sw-section-head .sw-kicker { justify-content: center; }
.sw-section-head .sw-kicker::before { display: none; }
.sw-section-title { margin: 11px 0 14px; color: var(--sw-navy-900); font-size: clamp(2.35rem, 4.4vw, 4.25rem); line-height: 1.03; }
.sw-section-copy { max-width: 750px; margin: 0 auto; color: var(--sw-muted); font-size: .97rem; }
.dark-alt .sw-section-title { color: #fff; }
.dark-alt .sw-section-copy { color: #afbfca; }
.dark-alt .sw-kicker { color: #7bc1e3; }
.dark-alt .sw-kicker::before { background: #7bc1e3; }
.sw-calculator-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sw-calculator-card { position: relative; min-height: 224px; padding: 24px; border: 1px solid var(--sw-line); border-top: 4px solid var(--sw-steel-600); border-radius: 6px; background: #fff; box-shadow: var(--sw-shadow-sm); }
.sw-calculator-card:hover { border-color: #91a9b8; border-top-color: var(--sw-blue-600); box-shadow: var(--sw-shadow-md); }
.sw-calc-icon { width: 54px; height: 50px; margin-bottom: 17px; display: grid; place-items: center; color: var(--sw-blue-600); border: 1px solid #b9cad4; background: var(--sw-blue-100); font-size: 1.45rem; }
.sw-calculator-card h3 { margin: 0 0 8px; color: var(--sw-navy-900); font-size: 1.12rem; letter-spacing: -.02em; }
.sw-calculator-card p { max-width: 94%; margin: 0; color: var(--sw-muted); font-size: .82rem; line-height: 1.58; }
.sw-card-link { position: absolute; right: 24px; bottom: 19px; left: 24px; display: flex; justify-content: space-between; color: var(--sw-blue-600); font-size: .64rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }

.sw-report-grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(470px, 1.12fr); gap: 48px; align-items: center; }
.sw-report-copy h2 { margin: 12px 0 20px; text-align: left; }
.sw-report-copy > p { color: #b1c0ca; }
.sw-report-steps { display: grid; gap: 8px; margin: 24px 0; }
.sw-report-step { padding: 12px 14px; display: grid; grid-template-columns: 38px 1fr; gap: 11px; align-items: center; border: 1px solid #294b62; background: #0d2b42; }
.sw-report-step b { color: #7bc1e3; font-size: .72rem; }
.sw-report-step span { color: #d0dae0; font-size: .78rem; }
.sw-support-mini { margin-top: 18px; padding: 13px; border: 1px solid #376178; background: #0c2a40; }
.sw-support-mini-head { display: flex; justify-content: space-between; color: #93cbe6; font-size: .58rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.sw-support-mini-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 9px; }
.sw-support-mini-grid div { padding: 8px; color: #e5edf2; border: 1px solid #31536a; background: #0a2133; text-align: center; font-size: .64rem; }
.sw-report-preview { position: relative; padding: 12px; border: 1px solid #526f82; background: #fff; box-shadow: 0 28px 60px rgba(0, 0, 0, .25); }
.sw-report-preview::before { content: "REPORT OUTPUT"; position: absolute; top: -13px; left: 14px; padding: 4px 9px; color: #d9e8f0; border: 1px solid #526f82; background: var(--sw-navy-900); font-size: .52rem; font-weight: 850; letter-spacing: .11em; }
.sw-report-preview img { width: 100%; border: 1px solid var(--sw-line); }

.sw-support-showcase { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.sw-support-card { padding: 24px; border: 1px solid var(--sw-line); border-radius: 6px; background: #fff; text-align: center; }
.sw-support-drawing { position: relative; height: 130px; margin-bottom: 10px; display: grid; place-items: center; background: linear-gradient(rgba(49, 92, 120, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(49, 92, 120, .045) 1px, transparent 1px); background-size: 16px 16px; }
.sw-support-drawing .main-beam { position: absolute; top: 28px; right: 16%; left: 16%; height: 18px; border: 1px solid #526b7c; background: #a7b8c3; }
.sw-support-drawing .plate { position: absolute; top: 47px; width: 72px; height: 12px; border: 1px solid #526b7c; background: #93a8b6; box-shadow: 0 14px 0 #8199a8; }
.sw-support-drawing .plate::after { content: ""; position: absolute; top: 25px; left: 20px; width: 30px; height: 58px; border: 1px solid #526b7c; background: #aabac4; }
.sw-support-drawing .cross-beam { position: absolute; top: 47px; width: 72px; height: 72px; border: 1px solid #526b7c; background: linear-gradient(90deg, #8299a8, #bdcad2); transform: skewY(-4deg); }
.sw-support-drawing .post { position: absolute; top: 47px; width: 48px; height: 78px; border: 1px solid #526b7c; background: linear-gradient(90deg, #879dab, #bcc9d1); }
.sw-support-card h3 { margin: 5px 0 8px; color: var(--sw-navy-900); font-size: 1.13rem; }
.sw-support-card p { margin: 0; color: var(--sw-muted); font-size: .79rem; }
.sw-support-card em { display: block; margin-top: 12px; color: var(--sw-blue-600); font-size: .63rem; font-style: normal; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }

.sw-promo { padding: 72px 0; background: var(--sw-canvas-2); }
.sw-promo-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 40px; align-items: center; min-height: 300px; padding: 40px; overflow: hidden; color: #fff; border: 1px solid #294b62; border-radius: 7px; background: var(--sw-navy-900); box-shadow: var(--sw-shadow-lg); }
.sw-promo-card::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(rgba(138, 181, 207, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(138, 181, 207, .06) 1px, transparent 1px); background-size: 30px 30px; }
.sw-promo-content,
.sw-offer-box { position: relative; z-index: 1; }
.sw-promo .sw-kicker { color: #7bc1e3; }
.sw-promo .sw-kicker::before { background: #7bc1e3; }
.sw-promo-title { margin: 12px 0; color: #fff; font-size: clamp(2.3rem, 4vw, 4rem); line-height: 1.02; }
.sw-promo-content > p { max-width: 660px; color: #b9c7d0; }
.sw-promo-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 18px; margin-top: 20px; color: #d9e2e7; font-size: .76rem; }
.sw-promo-features span::before { content: "✓"; margin-right: 8px; color: #7fc8aa; font-weight: 900; }
.sw-promo-alien { display: none !important; }
.sw-offer-box { padding: 23px; color: var(--sw-ink); border: 1px solid #8fa3af; background: #fff; }
.sw-offer-label,
.sw-code-label { color: var(--sw-muted); font-size: .63rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.sw-price { display: flex; align-items: flex-start; margin: 8px 0 2px; color: var(--sw-navy-900); line-height: 1; }
.sw-price .currency { margin-top: 8px; font-size: 1.2rem; font-weight: 750; }
.sw-price .major { font-size: 4.2rem; font-weight: 800; letter-spacing: -.08em; }
.sw-price .cents { margin-top: 9px; font-size: 1.25rem; font-weight: 800; }
.sw-price .monthly { align-self: flex-end; margin: 0 0 8px 7px; color: var(--sw-muted); font-size: .62rem; font-weight: 800; }
.sw-offer-sub { color: var(--sw-muted); font-size: .74rem; }
.sw-code { display: block; margin: 3px 0 13px; color: var(--sw-blue-600); font: 800 1.08rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .08em; }
.sw-offer-box .sw-btn { width: 100%; }
.sw-offer-fine { margin: 8px 0 0; color: var(--sw-muted); text-align: center; font-size: .65rem; }

.sw-workflow-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.sw-workflow-step { padding: 22px; border: 1px solid #294b62; background: #0c293f; }
.sw-workflow-step .num { color: #77bddf; font-size: .66rem; font-weight: 850; letter-spacing: .1em; }
.sw-workflow-step h3 { margin: 14px 0 8px; color: #fff; font-size: 1rem; }
.sw-workflow-step p { margin: 0; color: #afbdc7; font-size: .78rem; }

.sw-final-cta { padding: 82px 0; border-top: 1px solid var(--sw-line); background: #fff; }
.sw-cta-card { padding: 48px; border: 1px solid var(--sw-line-dark); border-left: 7px solid var(--sw-blue-600); background: var(--sw-canvas-2); text-align: center; }
.sw-cta-title { margin: 0 0 12px; color: var(--sw-navy-900); font-size: clamp(2.2rem, 4vw, 3.8rem); line-height: 1.03; }
.sw-cta-card p { max-width: 720px; margin: 0 auto; color: var(--sw-muted); }
.sw-cta-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 11px; margin-top: 24px; }

.sw-home-footer { padding: 48px 0 24px; color: #b3c1ca; border-top: 4px solid var(--sw-blue-600); background: var(--sw-navy-950); }
.sw-footer-grid { display: grid; grid-template-columns: 1.65fr repeat(3, 1fr); gap: 38px; }
.sw-footer-brand p { max-width: 430px; color: #a7b5bf; font-size: .8rem; }
.sw-footer-grid h4 { margin: 0 0 13px; color: #fff; font-size: .72rem; letter-spacing: .09em; text-transform: uppercase; }
.sw-footer-grid > div > a:not(.sw-brand) { display: block; margin: 8px 0; color: #b5c3cc; font-size: .77rem; }
.sw-footer-grid > div > a:hover { color: #fff; }
.sw-footer-legal { margin-top: 34px; padding-top: 20px; display: flex; justify-content: space-between; gap: 26px; border-top: 1px solid #284255; color: #8fa0ab; font-size: .69rem; }
.sw-footer-legal p { max-width: 940px; margin: 0; }
.sw-footer-legal span { white-space: nowrap; }

/* Dashboard and account workspaces retain their application layouts while
   receiving the same restrained color, radius, and typography system. */
body.sw-engineering-theme .dashboard-shell,
body.sw-engineering-theme .swx-app-shell { background: var(--sw-canvas); }
body.sw-engineering-theme .swx-sidebar,
body.sw-engineering-theme .dashboard-sidebar { background: var(--sw-navy-900); }
body.sw-engineering-theme .swx-card,
body.sw-engineering-theme .workspace-launch-card,
body.sw-engineering-theme .metric-card,
body.sw-engineering-theme .dashboard-card { border-radius: 7px; }
body.sw-engineering-theme .swx-primary-btn,
body.sw-engineering-theme .swx-command-btn.primary,
body.sw-engineering-theme .action-btn.primary { background: var(--sw-blue-600); border-color: var(--sw-blue-600); }

@media (max-width: 1080px) {
  .sw-home-links { gap: 15px; }
  .sw-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(400px, .92fr); gap: 38px; }
  .sw-analysis-body { grid-template-columns: 1fr; }
  .sw-analysis-results { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 14px; }
  .sw-elevation-model { min-height: 290px; border-right: 0; border-bottom: 1px solid var(--sw-line); }
  .sw-holo-card { right: -5px; }
}
@media (max-width: 900px) {
  .sw-home-nav { flex-wrap: wrap; padding: 12px 0; }
  .sw-home-links { order: 4; width: 100%; display: none; padding: 12px 0 5px; border-top: 1px solid rgba(255, 255, 255, .13); }
  .sw-home-links.open { display: grid; grid-template-columns: repeat(2, 1fr); }
  .sw-home-actions { margin-left: auto; }
  .sw-mobile-menu { display: inline-grid; place-items: center; }
  .sw-hero { padding: 68px 0; }
  .sw-hero::before { display: none; }
  .sw-hero-grid,
  .sw-report-grid { grid-template-columns: 1fr; }
  .sw-hero-visual { min-height: 480px; }
  .sw-calculator-grid,
  .sw-support-showcase { grid-template-columns: repeat(2, 1fr); }
  .sw-workflow-grid { grid-template-columns: repeat(2, 1fr); }
  .sw-promo-card { grid-template-columns: 1fr; }
  .sw-offer-box { width: min(100%, 390px); }
  .sw-footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
  .sw-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .sw-home-container { width: min(var(--sw-max), calc(100% - 28px)); }
  .sw-home-actions .sw-nav-login,
  .sw-home-actions .sw-nav-cta { display: none; }
  .sw-hero h1 { font-size: clamp(2.65rem, 13vw, 4.1rem); }
  .sw-hero-visual { min-height: 510px; }
  .sw-analysis-body { display: block; }
  .sw-analysis-results { display: block; }
  .sw-holo-card { right: 7px; bottom: -8px; width: calc(100% - 14px); }
  .sw-calculator-grid,
  .sw-support-showcase,
  .sw-workflow-grid { grid-template-columns: 1fr; }
  .sw-promo-card { padding: 28px 20px; }
  .sw-promo-features { grid-template-columns: 1fr; }
  .sw-cta-card { padding: 34px 20px; }
  .sw-footer-grid { grid-template-columns: 1fr 1fr; }
  .sw-footer-brand { grid-column: 1 / -1; }
  .sw-footer-legal { display: grid; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media print {
  body.sw-engineering-theme { background: #fff !important; }
  .sw-home-header,
  .sw-home-footer { display: none !important; }
}
